標籤:update 方式 signed 欄位名 name 建立 var 不同的 ade
一、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------資料類型,索引,鍵,儲存引擎