數據庫基礎之02(修改表結構,普通索引,主鍵,外鍵)

目錄

1、修改表結構  :  對已經創建的表的結構做修改:alter  table  庫.表  執行動作;

1-1、添加新字段  add  

 1-2、刪除已有字段 drop   

1-3、修改已有字段類型  modify

1-4、修改字段名   change

1-5、修改表名 rename

2、MYSQL鍵值:約束如何給字段賦值。

2-1、索引介紹:給字段值排序的樹形結構,類似與“書的目錄”

2-2、查看索引的兩種方式

2-3、創建索引的兩種方式及刪除索引

 3、主鍵     primary  key   限制如何給字段賦值

3-1、建表時創建主鍵的兩種格式,兩種方法

3-2、刪除主鍵

3-3、創建複合主鍵: 表中的多個字段一起做主鍵 ,賦值時,主鍵字段的值不允許同時重複。

3-4、在已有表裏創建複合主鍵

3-5、刪除複合主鍵

3-6、主鍵通常和auto_increment 連用 讓字段的值自動增長,做自加1 計算        

4、外鍵:讓當前表字段的值,在另一個表字段值範圍裏選擇。

4-1、外鍵的使用規則:

4-1、首先創建被參考的表 員工信息表

4-2、創建外鍵 

4-3、刪除外鍵


1、修改表結構  :  對已經創建的表的結構做修改:alter  table  庫.表  執行動作;

1-1、添加新字段  add  

alter  table  db2.t1   
add  email  varchar(50)  default  "[email protected]" ,add  qq       char(11) ;-----默認添加到最後的字段

alter  table  db2.t1
add   stu_num  char(9)  first,------添加到第一個字段
add   likes  set("eat","sleeps","game","film")  after sex;------ 添加到某一個字段之後

 1-2、刪除已有字段 drop   

alter  table  db2.t1  drop  email ,  drop  qq;----逗號間隔可一次刪多個字段
 

1-3、修改已有字段類型  modify

修改字段類型時,若新的類型與字段已經存儲數據衝突,不允許修改。
不修改的部分要原樣寫一遍,否則就會使用默認值,通過modify還可以修改字段位置。
 
alter  table  t1 modify   sex  enum('boy','girl',"no") not null  default   "boy" after  name;-----修改sex字段爲多選,且不允許爲空,不賦值時默認值爲boy,並將該字段放在name字段之後
 

1-4、修改字段名   change

alter  table  t8 change  stu_num  stu_id  varchar(9);---修改字段名stu_num 爲 stu_id
 

1-5、修改表名 rename

alter  table  t8  rename  stuinfo;----修改表明爲stuinfo
show tables;
 

2、MYSQL鍵值:約束如何給字段賦值。

普通索引  index
 

2-1、索引介紹:給字段值排序的樹形結構,類似與“書的目錄”

算法(筆畫 部首  拼音  BTREE  b+tree  hash)
                                二叉樹
 
索引優點  :加快查詢數據的速度
索引缺點  :減慢寫入數據的速度 ,佔用磁盤空間
 

2-2、查看索引的兩種方式

desc   表;  key  ----> MUL
show  index  from 表\G;
 

2-3、創建索引的兩種方式及刪除索引

把已有表的字段設置爲index字段
create index  aaa on  stuinfo(name);-----創建了一個名爲aaa的索引在stuinfo表的(name)字段上
 
創建表時指定index字段
create  table  t9(
name  char(15)  not  null  default  "",
class  char(7) default   "nsd1804",
age  tinyint(2)  not null  default  19,
sex  enum("boy","girl") not null  default  "boy",
index(name),index(class));------將name和class兩個字段設爲了索引

刪除索引index
drop index  aaa  on  stuinfo;


 3、主鍵     primary  key   限制如何給字段賦值

primary key 使用規則:
1.一個表中只能有一個主鍵
2.設爲主鍵的字段賦值時不允許賦空值,即不能爲null,且該字段的值不允許重複
3.表中的多個字段一起做主鍵 ,賦值時,主鍵字段的值不允許同時重複。複合主鍵的出現是爲了解決一個主鍵字段無法允許第二個主鍵字段值相同的記錄的寫入,此時就需要再引用一個字段作爲主鍵來二次區分,才能再允許第二條記錄的寫入。注意複合主鍵的字段必須同時設爲主鍵,不允許追加設爲主鍵。
 

3-1、建表時創建主鍵的兩種格式,兩種方法

1.1 create table  t10(stu_id   char(9)  primary key,
name  char(10),
age  int(2));
 
1.2 create table  t11(
stu_id   char(9) ,
name  char(10),
age  int(2),
primary key(stu_id));

2.1在已有表裏創建主鍵字段

alter  table   t10  add   primary  key(stu_id);

 

3-2、刪除主鍵

alter  table  t10  drop  primary  key;
desc  t10;
insert into  t10  values("nsd180401","lucy",21);
insert into  t10  values(null,"lucy",21);  
select  * from t10;
 

3-3、創建複合主鍵: 表中的多個字段一起做主鍵 ,賦值時,主鍵字段的值不允許同時重複。

create  table  t12(
name  char(15),
class  char(7),
pay    enum("yes","no"),
primary key(name,class)
);
 
mysql> insert into   t12  values("bob","nsd1804","yes");
 
mysql> insert into   t12  values("bob","nsd1804","no");
ERROR 1062 (23000): Duplicate entry 'bob-nsd1804' for key 'PRIMARY'
 
mysql>  insert into   t12  values("bob","nsd1805","no");
mysql> insert into   t12  values("lucy","nsd1805","yes");

3-4、在已有表裏創建複合主鍵

delete from t12;
alter table  t12  add  primary  key(name,class);
 

3-5、刪除複合主鍵

alter table  t12  drop  primary  key;


3-6、主鍵通常和auto_increment 連用 讓字段的值自動增長,做自加1 計算
        

向表中插入記錄時 不給自動增長的字段賦值,字段的值是如何獲得的呢,用當前字段最大的值 +1  後 把結果做當前新記錄字段的值。此外也可手動賦值,但所賦值必須是非當前主鍵字段裏已有的值
create  table   t1(
id        int(2)  primary key  auto_increment,---將id字段設爲主鍵,且設爲自動增長
name   char(15)  not  null,
age     tinyint(2)  unsigned  default  19,
pay    float(7,2)  default  26800);
 
insert into   t1 (name,age,pay) values("tom",21,18000);
insert into   t1 (name,age,pay) values("lucy",23,18800);
select  * from  t1;


4、外鍵:讓當前表字段的值,在另一個表字段值範圍裏選擇。

 

4-1、外鍵的使用規則:

1.兩張表的存儲引擎必須是innodb
2.外鍵字段和參考字段的類型必須一致
3.被參考字段必須是鍵值的一種(主鍵)
 

4-1、首先創建被參考的表 員工信息表

create  table   yginfo(    
yg_id    int(2)  primary key  auto_increment,-----被參考字段必須爲主鍵
name   char(15)
)engine=innodb;-----存儲引擎必須是innodb
 
insert into  yginfo(name)values("bob");
insert into  yginfo(name)values("bob");
insert into  yginfo(name)values("lucy");
 

4-2、創建外鍵 

create  table   gztab(    
gz_id   int(2),  
pay  float(7,2),
foreign  key(gz_id ) ----創建gz_id爲外鍵  
references   yginfo(yg_id)----以yginfo表(yg_id)字段爲參考字段
on  delete cascade ------同步刪除    
on  update cascade ------同步修改
)engine=innodb; ---- 存儲引擎必須是innodb
 

4-3、刪除外鍵

show  create table  gztab;----在展現的表結構中找到外鍵名(CONSTRAINT關鍵字之後)
alter  table   gztab  drop  foreign key         gztab_ibfk_1;-----刪除外鍵
show  create table  gztab;------重新查看將不再有外鍵

感謝您的拜讀!!!

目錄

1、修改表結構  :  對已經創建的表的結構做修改:alter  table  庫.表  執行動作; 

1-1、添加新字段  add  

 1-2、刪除已有字段 drop   

1-3、修改已有字段類型  modify

1-4、修改字段名   change

1-5、修改表名 rename

2、MYSQL鍵值:約束如何給字段賦值。

2-1、索引介紹:給字段值排序的樹形結構,類似與“書的目錄”

2-2、查看索引的兩種方式

2-3、創建索引的兩種方式及刪除索引

 3、主鍵     primary  key   限制如何給字段賦值

3-1、建表時創建主鍵的兩種格式,兩種方法

3-2、刪除主鍵

3-3、創建複合主鍵: 表中的多個字段一起做主鍵 ,賦值時,主鍵字段的值不允許同時重複。

3-4、在已有表裏創建複合主鍵

3-5、刪除複合主鍵

3-6、主鍵通常和auto_increment 連用 讓字段的值自動增長,做自加1 計算        

4、外鍵:讓當前表字段的值,在另一個表字段值範圍裏選擇。

4-1、外鍵的使用規則:

4-1、首先創建被參考的表 員工信息表

4-2、創建外鍵 

4-3、刪除外鍵


發佈了41 篇原創文章 · 獲贊 20 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章