1. 程式人生 > >mysql系列之2------數據類型,索引,鍵,存儲引擎

mysql系列之2------數據類型,索引,鍵,存儲引擎

事務 年份 自動 create default timestamp cas 長度 刪除

一、Mysql數據類型:

1、數值類型:

整數類型:使用unsigned修飾時,只取正值,數值不夠指定寬度時,在左邊補空格

整數類型包括:tinyint,smallint,int等

浮點型: (5,2)總長度和小數點後的長度

包括:float,double,decimal(固定長度,不符合長度要求輸入不進去)

2、字符類型:

char: 定長,255個字符,右邊用空格補齊,效率高

varchar: 可變長,按數據實際大小分配空間,郵箱可用varchar

大文本類型:text、blob

3、日期時間類型:

日期時間:datetime(8個字節) timestamp(4個字節)

日期: date 0001-01-01~9999-12-31

年份:year 1901-2155 當用兩位表示時 :01-69 表示20XX 70-99 表示 19XX

時間:time HH:MM:SS,占用三個字節

4、時間函數

now() :獲取調用此函數時的系統日期時間

month() ,date() time() :獲取指定的月份,日期,時間

5、枚舉類型:愛好,性別,專業

字段名 enum(值1,值2,值3) 單選 可用數字來表示

字段名 set (值1,值2,值3) 多選

6、字段約束條件:限制如何給字段賦值

null(為空) ,not null(非空),default(默認值)


二、Mysql索引

優缺點:占用物理存儲空間,減慢寫的速度;加快查詢的速度

1、普通索引:index

可以有多個索引字段,其值可以重復和空值,在表結構中,其key鍵的值顯示為:mul

創建:create table user( id int(3), index(id)); //創建表時創建

create index id on user1(id); //在已存在的表裏創建

刪除:drop index id on user1; //在user1表裏刪除index為id的索引

2、唯一索引:unique index 在鍵值那欄表示為:UNI

一個表中可以有多個唯一索引,對應字段的值不能重復,當不為空時,限制功能

和主鍵相同。

創建:create unique index hz_id on s2(hz_id);

刪除: drop index hz_id on s2;


三、主鍵、復合主鍵,外鍵

1、主鍵:primary key 一個表只能有一個主鍵,其表示為:PRI

對應的字段值不能為空。

創建:alter table 表名 add primary key (字段名);

刪除:alter table 表名 drop primary key;

primary key 與 auto_increment連用,字段的值自動增長

在創建主鍵時,在後面加上 auto_increment,刪除主鍵時,

首先要刪除自增屬性,也就是先修改字段的屬性

2、復合主鍵:表中多個字段一起做主鍵,要一起創建

創建:alter table s1 add primary key(stu_id,name);

刪除: alter table s1 drop primary key;

3、外鍵使用規則:存儲引擎是innodb,類型和寬度一樣,被參考表:最好是主鍵

創建:foreign key(A表字段名) references B表名(字段名)

on update cascade(同步更新) on delete cascade;(同步刪除)

刪除外鍵:alter table 表名 drop foreign key 約束名;

外鍵名查詢:show create table 表名\G,可以查詢


四、Mysql存儲引擎

何為存儲引擎:負責為數據庫執行實際的數據I/O操作,

不同的存儲引擎,其存儲數據的方式也不一樣,

在mysql5.7中,默認的存儲引擎是innodb.

1、查看:show create table sys_in; //查看某個表的存儲引擎

show engines; //查看數據庫支持的和默認的存儲引擎

2、修改數據庫默認的存儲引擎: vim /etc/my.cnf

default-storage-engine=myisam/innodb

3、修改某個存在表的默認引擎:

alter table 表名 engine=innodb;

4、myisam和innodb的區別

myisam:支持表級鎖,適合多讀少寫;.frm(表結構), .MYI(索引), .MYD(數據)

innodb:支持行級鎖,適合多寫少讀,支持外鍵,支持事務,事務回滾,.frm(表結構).ibd(索引+數據)





























mysql系列之2------數據類型,索引,鍵,存儲引擎