一. 創建表的方法 語法:create table 表名( 屬性名數據類型完整約束條件, 屬性名數據類型條完整約束件, 。。。。。。。。。 屬性名數據類型 ); (1)舉例:1 create table example0( 2 id int, 3 name varchar(20), 4 sexboo ...
一. 創建表的方法
語法:create table 表名(
屬性名數據類型完整約束條件,
屬性名數據類型條完整約束件,
。。。。。。。。。
屬性名數據類型
);
(1)舉例:
1 create table example0( 2 id int, 3 name varchar(20), 4 sexboolean);
約束條件 | 說明 |
(1)primary key | 標識該欄位為表的主鍵, |
(2) foreign key | 標識該欄位為表的外鍵,與某主表相連繫 |
(3) not null | 標識該屬於的值不能為空 |
(4) unique | 標識這個屬性值是唯一 |
(5) auto_increment | 標識該屬性值的自動增加 |
(6) default | 為該屬性值設置預設值 |
1.1 設置表的主鍵
主鍵是一個表的特殊欄位,這個欄位是唯一標識表中的每條信息,主鍵和記錄的關係,跟人和身份證一樣。名字可以一樣,但是身份證號碼絕對不會一樣,主鍵用來標識每個記錄,每個記錄的主鍵值都不同。
主鍵可以幫助Mysql以最快的速度查找到表中的每一條信息,主鍵必須要滿足的條件那就是它的唯一性,表中的任意兩條記錄的主鍵值,不能相同,否則就會出現主鍵值衝突,主鍵值不能為空,可以是單一的欄位,也可以是多個欄位的組合。
主鍵衝突:
單主鍵情況:主鍵不能相同
多主鍵情況:表中有多主鍵時,只要主鍵不完全相同都是符合條件的,只有當所有主鍵一模一樣時才會主鍵衝突
1 create table sxkj( 2 User_id int primary key, 3 user_name varchar(20), 4 user_sexchar(7));主鍵
1.2 設置多個欄位做主鍵
1 舉例: 2 create table sxkj2( 3 user_id int, 4 user_name float, 5 grade float, 6 primary key(user_id,user_name));多主鍵
1.3 設置表的外鍵
外鍵是表的一個特殊欄位,如果aa是B表的一個屬性且依賴於A表的主鍵,那麼A表被稱為父表,B表被稱為子表。
語法:
constraint 外鍵別名 foreign key(外鍵欄位1,外鍵欄位2) references 表名(關聯的主鍵欄位1,主鍵欄位2);
1.4 設置表的非空值
語法:屬性名 數據類型 NOT NULL
1 舉例: 2 create table C( 3 user_id int NOT NULL);
1.5 設置表的唯一性約束
唯一性指的就是所有記錄中該欄位不能重覆出現
語法:屬性名 數據類型 unique
1 舉例: 2 create table D( 3 user_id int unique);
1.6 設置表的屬性值自動增加
Auto_increment是Mysql資料庫中特殊的約束條件,它的作用是向表中插入數據時自動生成唯一的ID,一個表只能有一個欄位使用auto_increment 約束,必須是唯一的。
語法:屬性名 數據類型 auto_increment
*預設欄位值從1開始自增。
1 舉例: 2 create table F( 3 user_id int primary key auto_increment);
1 插入一條空的信息 2 insert into F values(); 3 4 查看表格F的內容 5 select * from F; 6 7 在結果中可以看到user_id為1
1.7 設置表的預設值
在創建表時,可以指定表中的欄位的預設值,如果插入一條新的記錄時,沒有給這個欄位複製,那麼資料庫會自動的給這個欄位插入一個預設值,欄位的預設值用default來設置。
語法:屬性名 數據類型 default 預設值
舉例: create table G( user_id int primry key auto_increment, user_name varchar(20) default 'zero'); 向表中插入空數據: insert into G values(); //系統會預設第一欄位自增為1,第二欄位為預設值zero
二. 查看表結構的方法
Mysql DESCRIBE可以查看那表的基本定義,包括、欄位名稱,欄位的數據類型,是否為主鍵以及預設值等。。
2.1 語法:describe 表名;可以縮寫為desc
舉例:
desc B;
2.2 show create table查詢表詳細的結構語句
三. 修改表的方法
額外:修改表預設自增,從1000開始。
alter table F auto_increment=1000;
3.1 修改表名
語法:alter table 舊表名 rename 新表名;
舉例; alter table A rename zyA;
3.2 修改表的數據類型
語法:alter table 表名 modify 屬性名數據類型;
舉例; alter table A modify user_name double;
3.3 修改表的欄位名稱
語法: alter table 表名 change 舊屬性名新屬性名新數據類型;
舉例: alter table A change user_name user_zyname float;
3.4 修改增加欄位
alter table 表名 ADD 屬性名1 數據類型 [完整性約束條件] [FIRST |AFTER 屬性名2]
增加沒有約束條件的欄位:
alter table A add phone varchar(20)
增加有完整約束條件的欄位: alter table A add age int(4) not null;
在表的第一個位置增加欄位
預設情況每次增加的欄位。都在表的最後。
alter table tt add num int(8) primary key first;
執行在那個位置插入新的欄位,在phone後面增加
alter table A add address varchar(30) not null after phone;
總結:
(1)預設add增加欄位是在最後面增加
(2)如果想在表的最前端增加欄位用first關鍵字
(3)如果想在某一個欄位後面增加的新的欄位,使用after關鍵字
3.5 刪除一個欄位
alter table 表名 drop 屬性名;
舉例:刪除A表的age欄位 alter table A drop age;
3.6 更改表的存儲引擎
alter table 表名 engine=存儲引擎
alter table A engine=MYISAM
3.7 刪除表的外鍵約束
alter table 表名 drop foreign key 外鍵別名;
四. 刪除表的方法
4.1 刪除沒有被關聯的普通表
drop table 表名;
4.2 刪除被其他表關聯的父表
在資料庫中某些表之間建立了一些關聯關係。一些成為了父表,被其子表關聯,要刪除這些父表,就不是那麼簡單了。
刪除方法:先刪除所關聯的子表的外鍵,再刪除主表。
1.先用show create table 子表名 \G;查看子表的外鍵別名
2.再alter table 子表名 drop foreign key 外鍵別名;刪除外鍵別名
3.此時可以用drop table 父表名;刪除父表了