數據庫基礎之01(搭建數據庫服務器、連接數據庫、建庫建表寫內容)

1、搭建數據庫服務器

 

目錄

1、搭建數據庫服務器

2、把數據存儲到數據庫服務器上的過程?

3、使用SQL (結構化查詢語言)命令 管理數據庫

4、斷開與數據庫連接

5、指定表的字符集 可以存儲中文數據

6、Mysql數據類型

6-1、數值型

6-2、字符類型

6-3、枚舉類型 : 讓字段的值 在規定的範圍內選擇

6-4、日期時間類型:


什麼是數據庫?存儲數據的倉庫

部署一臺數據庫,提供數據庫存儲服務?
 
購買服務器 (硬件主機  雲主機 )
 
安裝操作系統: Unix    Linux   Windows

 

 1、搭建數據庫服務器                                                          

1-1數據庫類型
常用的幾種關係型數據庫(  RDBMS )
Mysql 、 Oracle 、 SQL server  、DB2  
特點:按照一定的規則存儲數據                                   
常用的幾種非關係型數據庫(  NOSQL)
Redis   Mongodb  Memcached
                                                               
Mysql的特點:
開源且跨平臺: unix  linux   windows
支持主流的編程語言:php  java   python  ruby  perl  
可移植性好: 系統只要有C 運行環境即可運行Mysql
其可移植性體現如下:
A服務器
遠程傳宋Mysql數據庫主目錄到B服務器
scp  -r  /usr/local/mysql/  b:/usr/local/
 
B服務器上只需安裝gcc和gcc-c++軟件環境
yum  -y  install gcc   gcc-c++
ls /usr/local/mysql/
 
1-2、數據庫服務通常和網站服務一起使用:LAMP   LNMP
 L-----Linux  A-----Apache  N----Nginx   
 M-----Mysql  P-----PHP                                                 
 
如購物網站  遊戲網站  視頻網站  論壇網站  金融網絡
 
1-3、裝包、配置、起服務、查看服務信息
軟件包的來源? 官網下載  XXX    .  主.       次.               修改次數  
                         軟件名      主版本    次版本   偶數爲穩定版,奇數爲測試版
mysql-5.7.17.tar    
mysql-community-server-5.7.17-1.el7.x86_64.rpm
mysql-community-client-5.7.17-1.el7.x86_64.rpm
 
1-3-1、裝包
rpm  -qa  | grep -i mariadb----檢查有沒有安裝mariadb
systemctl  stop  mariadb-----若已安裝則先停服務
rpm -e --nodeps mariadb-server-----卸載mariadb-server------   --nodeps不檢查依賴關係
rpm -e --nodeps mariadb-libs-------卸載mariadb-libs
rm  -rf  /var/lib/mysql/*------刪除/var/lib/mysql/*主目錄
rm  -rf /etc/my.cnf------刪除主配置文件
tar -xf /root/mysql-5.7.17.tar-----解壓mysql-5.7.17.tar軟件包組
yum  -y  install  perl-JSON-----安裝依賴包
yum -y install  mysql-comm*     ----批量安裝解壓出來的mysql-community的軟件
rpm -qa | grep -i mysql---列出所有已安裝的帶有mysql名字的軟件包
[root@host50 ~]# rpm -qa | grep -i mysql
mysql-community-libs-5.7.17-1.el7.x86_64
mysql-community-embedded-compat-5.7.17-1.el7.x86_64
mysql-community-embedded-devel-5.7.17-1.el7.x86_64
mysql-community-server-5.7.17-1.el7.x86_64
mysql-community-test-5.7.17-1.el7.x86_64
php-mysql-5.4.16-42.el7.x86_64
mysql-community-common-5.7.17-1.el7.x86_64
mysql-community-devel-5.7.17-1.el7.x86_64
mysql-community-libs-compat-5.7.17-1.el7.x86_64
mysql-community-embedded-5.7.17-1.el7.x86_64
mysql-community-client-5.7.17-1.el7.x86_64
mysql-community-minimal-debuginfo-5.7.17-1.el7.x86_64
 
1-3-2、修改配置文件 /etc/my.cnf
[mysqld]
#skip_grant_tables------略過權限限制
#skip_networking----數據庫只能被本機訪問
#secure-file_priv=/mydata---------自定義數據導入導出文件存儲的目錄
1-3-3、啓動服務
   30  systemctl  start  mysqld
   31  systemctl  status  mysqld
   32  ls /var/lib/mysql
   33  systemctl  enable  mysqld
 
1-3-4、查看服務信息
端口號 3306     ss  -utnlp | grep  mysqld
進程 mysqld   ps  -C  mysqld

2、把數據存儲到數據庫服務器上的過程?

1 連接數據庫服務器
# grep password /var/log/mysqld.log
 
2018-07-10T02:46:42.233732Z 1 [Note] A temporary password is generated for root@localhost: PjCJW&is,8jV  
注意:第一次登陸的時候需要先用系統自動生成的密碼,用該密碼登陸後會提示您先改密碼,否則什麼也做不了
]#mysql  -hlocalhost   -uroot   -p'PjCJW&is,8jV'
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=6;
mysql> alter user  root@"localhost" identified by "123456";
mysql> show  databases;
mysql> quit
 
]#mysql  -hlocalhost   -uroot   -p123456
mysql> show  databases;


3、使用SQL (結構化查詢語言)命令 管理數據庫

3-1、創建庫  相當於系統的文件夾(查看  創建  切換  刪除)
show databases;-----列出所有庫名
create database  庫名;----新建庫
use  庫名;-----進入某一個庫
select  database();-----查看當前在哪個庫下
show tables;----列出庫下的所有表,記得先進庫
drop  database  庫名;-------刪掉哪一個庫
 
3-2、數據庫名的命名規則:
1.可以使用數字、字母、下劃線,但不能純數字
2.區分大小寫,且具有唯一性
3.不可以使用指令關鍵字、特殊字符
 
3-3、 創建表 ( 相當於系統文件)表必須在庫裏創建(創建表 查看內容  查看錶結構   刪除表  寫入數據)

create  table   studb.stuinfo(name   char(15),sex  char(10),age int,tel   char(11) );-----創建表
 
desc  studb.stuinfo;----查看錶結構

select  * from studb.stuinfo;-----查看錶內容
 
insert into  studb.stuinfo  values("bob","boy",21,"8888888"),("zhaozhibin","boy",19,"66666666");---增加表內容
 
update studb.stuinfo set sex="girl";----改表內容
 
delete from studb.stuinfo;---刪除表內容
 
drop table stuinfo;-----刪除表
show tables;----列出所有表


4、斷開與數據庫連接

>quit;
 


5、指定表的字符集 可以存儲中文數據

use  studb;
create  table  studb.學生表 (姓名  char(10) , 年齡 int) DEFAULT CHARSET=utf8;----表名和字段名默認可以使用中文,但字段內容默認不能使用中文,所以必須加DEFAULT CHARSET=utf8
 
alter  table  studb.學生表  DEFAULT CHARSET=utf8;----通過修改表結構來加上DEFAULT CHARSET=utf8選項
 
show  create  table  學生表;-----展出創建的表結構
 


6、Mysql數據類型

1.數值型:工資、消費金額、身高、體重
2.字符型:電腦品牌、姓名、住址、花名
3.枚舉類型:性別、興趣愛好、特長
4.日期類型:出生日期、上學時間、下班時間

 

6-1、數值型

整數型
create  table t2(level  tinyint  unsigned);---tinyint小整數,unsigned只保存正數
 
浮點類型   
整數.小數   總寬度
1029.33        6

create table  t3 (pay  float(5,2));----float(5,2)小數位精確兩位,總顯示寬度爲5,該顯示寬度不會限制字段賦值的大小,但通過設置顯示寬度的大小可以實現字符視覺整齊的效果,比如最大的數所佔寬度爲10,則設爲10,不足位數的會用0補齊。
 
(數值類型)的寬度是顯示寬度,不能限制字段賦值的大小字段值的大小由類型決定,僅適用於數值類型
 
insert  into  t3  values(1118.23);
 


6-2、字符類型

char (字符數)-----  定長,字符數最大255,不夠指定字符時在右邊用空格補齊,字符數超出時無法寫入,特點,不省空間,但節省內存
varchar( 字符數)----- 變長,字符數最大到65535,按數據實際大小分配存儲空間,字符數超出時無法寫入,特點省空間,浪費內存   
 
大文本類型
text/blob------字符數大於65535存儲時使用
/root/media/film/xxx.avi
 音頻文件   圖片   視頻文件
 
create  table   t5(name  char(5))
insert into   t5  values  ("bob"),("ab");
 
create  table   t6(name  varchar(5))
insert into   t6  values  ("bob"),("ab");
寫入後對比效果
 
create  table   t7  (
gamename char(15), level smallint unsigned , pay  float(7,2) );
 
insert into  t7  values("zbj",250,1880.22);
 
 

6-3、枚舉類型 : 讓字段的值 在規定的範圍內選擇

enum(值列表)  單選
set(值列表)  多選
 
create  table   t8  ( name  char(15),sex  enum("boy","girl","no"),likes  set("game","film","eat","sleeps") );
 
insert into   t8  values("bob","man","it,book");
 
搭建MySQL數據庫服務器 並設置數據庫管理員root用本機登陸密碼爲123456
 


6-4、日期時間類型:

目錄

2、把數據存儲到數據庫服務器上的過程?

3、使用SQL (結構化查詢語言)命令 管理數據庫

4、斷開與數據庫連接

5、指定表的字符集 可以存儲中文數據

6、Mysql數據類型

6-1、數值型

6-2、字符類型

6-3、枚舉類型 : 讓字段的值 在規定的範圍內選擇

6-4、日期時間類型:


年  year    YYYY   2018
日期  date   YYYYMMDD    20180711
時間  time   HHMMSS      083000
日期時間    datetime      YYYYMMDDHHMMSS----當未賦值時則爲null         
timestamp     20180711093758-----當未賦值時則以當前時間賦值
 
create  table  t1(
name char(15),  姓名
s_year     year,   出生年份
birthday   date,  生日
work       time,   上班時間
meetting   datetime   約會時間
);
desc  t1;
insert into  t1  values("pengyuyan",1990,220000,20181120,20181224203000);
 
MySQL服務時間函數: MySQL服務內置的命令。
 
select  now();--------------  獲取系統日期時間
select  year( now()  );------ 獲取系統年份
select  year( 20191224 );---- 獲取指定時間年份
select  month( now() );-------獲取系統月份
select  month( 20191224 );--- 獲取指定時間月份
select  day( 20191224 );----- 獲取指定時間幾號
select  day( now() );-------  獲取系統時間幾號
select  date( now() );------- 獲取系統日期  
select  time( now() );------- 獲取系統時間
 
 insert into  t1 values("bob",year(now()),date(now()),time(151223),now());

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章