您好,登錄后才能下訂單哦!
本文主要給大家介紹mysql數(shù)據(jù)類型、索引及其它簡(jiǎn)析,希望可以給大家補(bǔ)充和更新些知識(shí),如有其它問題需要了解的可以持續(xù)在億速云行業(yè)資訊里面關(guān)注我的更新文章的。
一、Mysql數(shù)據(jù)類型:
1、數(shù)值類型:
整數(shù)類型:使用unsigned修飾時(shí),只取正值,數(shù)值不夠指定寬度時(shí),在左邊補(bǔ)空格
整數(shù)類型包括:tinyint,smallint,int等
浮點(diǎn)型: (5,2)總長(zhǎng)度和小數(shù)點(diǎn)后的長(zhǎng)度
包括:float,double,decimal(固定長(zhǎng)度,不符合長(zhǎng)度要求輸入不進(jìn)去)
2、字符類型:
char: 定長(zhǎng),255個(gè)字符,右邊用空格補(bǔ)齊,效率高
varchar: 可變長(zhǎng),按數(shù)據(jù)實(shí)際大小分配空間,郵箱可用varchar
大文本類型:text、blob
3、日期時(shí)間類型:
日期時(shí)間:datetime(8個(gè)字節(jié)) timestamp(4個(gè)字節(jié))
日期: date 0001-01-01~9999-12-31
年份:year 1901-2155 當(dāng)用兩位表示時(shí) :01-69 表示20XX 70-99 表示 19XX
時(shí)間:time HH:MM:SS,占用三個(gè)字節(jié)
4、時(shí)間函數(shù)
now() :獲取調(diào)用此函數(shù)時(shí)的系統(tǒng)日期時(shí)間
month() ,date() time() :獲取指定的月份,日期,時(shí)間
5、枚舉類型:愛好,性別,專業(yè)
字段名 enum(值1,值2,值3) 單選 可用數(shù)字來表示
字段名 set (值1,值2,值3) 多選
6、字段約束條件:限制如何給字段賦值
null(為空) ,not null(非空),default(默認(rèn)值)
二、Mysql索引
優(yōu)缺點(diǎn):占用物理存儲(chǔ)空間,減慢寫的速度;加快查詢的速度
1、普通索引:index
可以有多個(gè)索引字段,其值可以重復(fù)和空值,在表結(jié)構(gòu)中,其key鍵的值顯示為:mul
創(chuàng)建:create table user( id int(3), index(id)); //創(chuàng)建表時(shí)創(chuàng)建
create index id on user1(id); //在已存在的表里創(chuàng)建
刪除:drop index id on user1; //在user1表里刪除index為id的索引
2、唯一索引:unique index 在鍵值那欄表示為:UNI
一個(gè)表中可以有多個(gè)唯一索引,對(duì)應(yīng)字段的值不能重復(fù),當(dāng)不為空時(shí),限制功能
和主鍵相同。
創(chuàng)建:create unique index hz_id on s2(hz_id);
刪除: drop index hz_id on s2;
三、主鍵、復(fù)合主鍵,外鍵
1、主鍵:primary key 一個(gè)表只能有一個(gè)主鍵,其表示為:PRI
對(duì)應(yīng)的字段值不能為空。
創(chuàng)建:alter table 表名 add primary key (字段名);
刪除:alter table 表名 drop primary key;
primary key 與 auto_increment連用,字段的值自動(dòng)增長(zhǎng)
在創(chuàng)建主鍵時(shí),在后面加上 auto_increment,刪除主鍵時(shí),
首先要?jiǎng)h除自增屬性,也就是先修改字段的屬性
2、復(fù)合主鍵:表中多個(gè)字段一起做主鍵,要一起創(chuàng)建
創(chuàng)建:alter table s1 add primary key(stu_id,name);
刪除: alter table s1 drop primary key;
3、外鍵使用規(guī)則:存儲(chǔ)引擎是innodb,類型和寬度一樣,被參考表:最好是主鍵
創(chuàng)建:foreign key(A表字段名) references B表名(字段名)
on update cascade(同步更新) on delete cascade;(同步刪除)
刪除外鍵:alter table 表名 drop foreign key 約束名;
外鍵名查詢:show create table 表名\G,可以查詢
四、Mysql存儲(chǔ)引擎
何為存儲(chǔ)引擎:負(fù)責(zé)為數(shù)據(jù)庫(kù)執(zhí)行實(shí)際的數(shù)據(jù)I/O操作,
不同的存儲(chǔ)引擎,其存儲(chǔ)數(shù)據(jù)的方式也不一樣,
在mysql5.7中,默認(rèn)的存儲(chǔ)引擎是innodb.
1、查看:show create table sys_in; //查看某個(gè)表的存儲(chǔ)引擎
show engines; //查看數(shù)據(jù)庫(kù)支持的和默認(rèn)的存儲(chǔ)引擎
2、修改數(shù)據(jù)庫(kù)默認(rèn)的存儲(chǔ)引擎: vim /etc/my.cnf
default-storage-engine=myisam/innodb
3、修改某個(gè)存在表的默認(rèn)引擎:
alter table 表名 engine=innodb;
4、myisam和innodb的區(qū)別
myisam:支持表級(jí)鎖,適合多讀少寫;.frm(表結(jié)構(gòu)), .MYI(索引), .MYD(數(shù)據(jù))
innodb:支持行級(jí)鎖,適合多寫少讀,支持外鍵,支持事務(wù),事務(wù)回滾,.frm(表結(jié)構(gòu)).ibd(索引+數(shù)據(jù))
5、鎖和事務(wù)的相關(guān)定義
鎖類型:讀鎖(共享鎖),寫鎖(排它鎖)
鎖粒度:表鎖,行鎖,頁(yè)鎖(內(nèi)存)
事務(wù):一次sql操作從連接到斷開連接的過程稱為事務(wù)。要么成功,要么失敗
事務(wù)日志文件:ib_logfile(sql語(yǔ)句存放位置);ibdata1(數(shù)據(jù)信息)
看了以上關(guān)于mysql數(shù)據(jù)類型、索引及其它簡(jiǎn)析,希望能給大家在實(shí)際運(yùn)用中帶來一定的幫助。本文由于篇幅有限,難免會(huì)有不足和需要補(bǔ)充的地方,如有需要更加專業(yè)的解答,可在官網(wǎng)聯(lián)系我們的24小時(shí)售前售后,隨時(shí)幫您解答問題的。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。