MYSQL---數據庫中表的操作

在數據庫中創建表

1.首先選中一個數據庫 use example;//example爲數據庫名

2.創建表: create table example0(id int,name varchar(20),sex boolean);//example0爲表名

 屬性之間用逗號分隔開
在創建表的同時考慮完整性約束條件 
主鍵用來標識唯一記錄,表中主鍵值互不相同

1)設置表的單字段主鍵 create table example1(id int primary key,name varchar(20),sex boolean);

2)設置表的多字段主鍵 create table example2(id int,name varchar(20),sex boolean,primary key(id,name));

外鍵用來建立該表與父表之間的聯繫,父表刪除某條信息時,子表與之對應的信息必須改變。比如學生表和課程表,當學生退學時,在學生表中刪除該學號信息時,課程表中的課程成績等對應信息必須刪除。

3)設置表的外鍵 (example3表的外鍵id,name依賴example2的主鍵id,name.其中c_fk爲外鍵別名)
create table example3(id int,name varchar(20),score float,constraint c_fk foreign key(id,name) references example2(id,name));

給已有表添加外鍵 alter table 表名 add constraint c_fk foreign key(id,name) references example2(id,name);

設置外鍵時,出現錯誤121,表明外鍵重複不能創建外鍵。不同表中外鍵也不能重複。

4)設置表的非空約束 即字段的值不能爲空,如果新插入的該記錄中字段值爲空,則系統報錯。 eg:屬性名 數據類型名 not null
create table example4(id int not null primary key,name varchar(20),sex boolean);

5)設置表的唯一性約束 即該字段的值不能重複出現。 eg:屬性名 數據類型名 unique
create table example5(id int not null primary key,name varchar(20) unique,sex boolean);

6)設置表的屬性值自動增加,主要爲表中插入新的記錄自動生成唯一的ID.一個表只能有一個字段用auto_increment約束,且爲主鍵的一部分。約束的字段可以是任何整數類型。默認從1遞增。而且自增字段不能設置默認值
create table example6(id int not null primary key auto_increment,name varchar(20) unique,sex boolean);
id的值被設置爲自動增長,以後每插入一個新的記錄,id的值就在原來的基礎上增加1;

7)設置表的屬性的默認值。當新插入記錄未給字段指定值時,系統將自動爲這個字段插入默認值。
create table example6(id int not null primary key,name varchar(20) unique,sex boolean default 1/true);
這裏寫圖片描述
查看錶結構

1.查看錶結構 : describe 或 desc 均可查看錶的結構
其中表結構中的 field(字段) type(數據類型) null(是否爲空) key(是否爲主外鍵) default(默認值) extra(額外信息)

2.查看錶的詳細結構語句 show create table 表名 \G;
除了可以查看錶的字段名,數據類型,完整性約束條件等信息,還可以查看錶的默認存儲引擎和字符編碼,加上\G之後可以更直觀的顯示信息。

修改表
1.修改表名 alter table 舊錶名 rename 新表名

2.修改字段的數據類型 alter table 表名 modify 屬性名 數據類型(修改後的新數據類型)

3.修改字段名 alter table 表名 change 舊屬性名 新屬性名 數據類型

4.增加字段
1) 增加無完整性約束的字段(表中多了一個字段) alter table 表名 add 屬性名 數據類型 ;

2) 增加有完整性約束的字段(表中多了一個字段) alter table 表名 add 屬性名 數據類型 約束條件(not null等);

3) 在增加字段的時候,應該儘可能加上完整性約束條件,這樣可以提高數據的安全性。
a)表的第一個位置增加字段 alter table 表名 add 屬性名 數據類型 約束條件 first;

b) 在指定位置增加字段 alter table 表名 add 屬性名 數據類型 約束條件 after 表中已有的屬性名;

c)對於一個數據表而言,字段的排列順序並沒有什麼影響,但是對於創建表的人,將相關的屬性名放在一起,便於更好理解表的結構

d)刪除字段 alter table 表名 drop 屬性名

e)修改字段的排列位置

字段修改到第一個位置 alter table 表名 modify 屬性名 數據類型 first;

字段修改到指定位置 alter table 表名 modify 屬性名 數據類型 after 表中已有的屬性名;

g)修改表的存儲引擎 alter table 表名 engine=存儲引擎名;
如果一個表中已經有較多的數據,請不要隨便更改存儲引擎,防止出現意料之外的影響。

h)刪除表的外鍵約束 alter table 表名 drop foreign key 外鍵別名;
可用show create table 表名;該語句來顯示外鍵約束是否已經被刪除

刪除表

1.刪除沒有被關聯的普通表 drop table 表名 刪除一個表時,表中的所有數據也都會被刪除

2.刪除被其他表關聯的父表
1)先刪除子表,再刪除父表 ,但會犧牲子表數據
2)先刪除子表的外鍵約束,再刪除父表

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章