限制條件:限制字段指派
NULL:是否允許為空
key:索引類型
default:預設值
Extra:額外設定
create table t1 (class char(10) ,name char(10) not null, age tinyint not null default 28, likes set("a","b") default "c");
修改表結構
alter table 表名 動作
添加字段---add
alter table t1 add mail varchar(50) default "[email protected]"; #添加表字段,設定預設值
alter table t1 add stu_num char(9) first; #在最前面添加
alter table t1 add pay float(7,2) default 20000 after class; #在class字段後面添加
修改字段---modify
在插入表記錄之前需要先設計好字段結構
alter table t1 modify mail char(50); #修改表字段的類型
alter table t1 modify mail char(50) after class; #移動表的位置
修改字段名---change
alter table t1 change pay money float(7,2);
alter table t1 change yy age int(1) not null default 28
删除字段---drop
alter table t1 drop age,drop qq
修改表名---rename
alter table t1 rename tt1;
鍵值
鍵值類型:
普通索引 index 唯一索引 unique 主鍵 primary key 外鍵 foreign key 全文索引 fulltext
什麼是索引
對記錄集的多個字段進行排序的方法
類似于書的目錄
包括Btree(預設,二叉樹),B+tree,hash
索引的優缺點
加快讀的速度,降低資料的維護速度,占用存儲空間
索引的使用:使用規則,索引,建立,删除
普通索引
工作過程:去t1表的排隊檔案t1.idb中找,找到結果後直接定位到所在的行,并把表資訊顯示出來
一個表中可以有多個INDEX字段;值允許重複且可賦NULL值;KEY标志是MUL
預設索引名=字段名
建表的時候指定索引字段:
create table t3 ( name char(10), age tinyint, index(name),index(age) );
show index from t3\G #檢視表中的索引字段(豎行顯示)
drop index name on t3 #删除表中的索引
在已有表裡建立索引
create index 索引名 on tt1(name)
一個表中隻能有一個primary key字段;不能重複,不能為空;複合主鍵必須一起建立;KEY标志是PRI;通常與AUTO_INCREMENT連用;
建表的時候指定主鍵字段:
create table t4( class char(7), name char(10), stu_id int, primary key(stu_id) )
在已有表裡添加主鍵(先添加自增長再添加主鍵)
alter table tt1 add primary key(class)
複合主鍵(同時一樣才重複)
create table t6 ( class char(7), name char(10), pay enum("yes","no") default "no", primary key(class,name,pay) )
删除主鍵:alter table t6 drop primary key(如果有自增長,需先去掉自增長)
與auto_increment連用,讓字段的值自增長,字段的類型必須為數值且是主鍵
create table t7(id int(1)primary key auto_increment,name char(10),sex enum("w","m"),age tinyint)
存儲引擎必須是innodb;字段類型和寬度要一緻;被參照字段必須是索引類型的一種(primary key)
on update cascade 同步更新 on delete cascade 同步删除
create table yg( yg_id int(1) primary key auto_increment, name char(15) )engine=innodb #開啟innodb引擎
create table gz( gz_id int(1), gz float(7,2) default 20000, foreign key(gz_id) references yg(yg_id) on update cascade on delete cascade )engine=innodb
show create table gz\G #檢視外鍵名
alter table gz drop foreign key gz_ibfk_1 #删除外鍵
alter table gz add foreign key(gz_id) references yg(yg_id) on update cascade on delete cascade #添加外鍵