MySQL:創建、修改和刪除表
1.創建數據庫:CREATE DATABASE 數據庫名;
刪除數據庫:DROP DATABASE 數據庫名;
查看數據庫編碼:SHOW CREATE DATABASE 數據庫名;
修改數據庫默認編碼:ALTER DATABASE 數據庫名 DEFAULT CHARACTER SET 字符編碼名 [COLLATE ...];
查詢存儲引擎的類型:SHOW ENGINES;
查詢結果中,Engine參數指存儲引擎名稱;Support參數說明MySQL是否支持該類型引擎;Comment參數表示對該引擎的評論;Transaction參數表示是否支持事務處理;XA參數表示是否分布式交易處理的XA規範;Savepoints參數表示是否支持保存點,以方便事務的回滾操作;
InnoDB存儲引擎是default的,也就是數據庫默認的存儲引擎,下面我們簡單介紹一下InnoDB:InnoDB是MySQL的一種存儲引擎,InnoDB給MySQL提供了事務、回滾、崩潰修復能力和多版本並發控制的事務安全。InnoDB是MySQL上第一個提供外鍵約束的表引擎,而且對事務處理的能力,也是其他存儲引擎不能比擬的。不過這種引擎的缺點就是讀寫效率稍差,占用的數據空間相對比較大。
2.創建表:CREATE TABLE 表名 (
屬性名 數據類型 [完整約束條件],
屬性名 數據類型 [完整約束條件],
...
...
);
在創建之前要選擇數據庫,格式:USE 數據庫名;
查看表編碼:SHOW CREATE TABLE 表名;
查看字段編碼:SHOW FULL COLUMNS FROM 表名;
約束條件表:
約束條件 |
說明 |
PRIMARY KEY |
標識該屬性為該表的主鍵,可以唯一的標識對應的元組 |
FOREIGN KEY |
標識該屬性為該表的外鍵,是與之聯系某表的主鍵 |
NOT NULL |
標識該屬性不能為空 |
UNIQUE |
標識該屬性的值是唯一的 |
AUTO_INCREMENT |
標識該屬性的值是自動增加,這是MySQL的SQL語句的特色 |
DEFAULT |
為該屬性設置默認值 |
1)設置表的主鍵:
單字段主鍵格式:屬性名 數據類型 PRIMARY KEY
CREATE TABLE student1 ( id int PRIMARY KEY, name varchar(20) );
多字段主鍵格式:PRIMARY KEY(屬性名1,屬性名2....屬性名n)
CREATE TABLE student2 ( id int, stu_id int, name varchar(20), PRIMARY KEY(id,stu_id) );
2)設置表的外鍵:
CONSTRAINT 外鍵別名 FOREIGN KEY(屬性1,屬性2,....屬性n) REFERENCES 表名(屬性1‘,屬性2‘,...屬性n‘)
CREATE TABLE teacher ( id int PRIMARY KEY, stu_id int, name varchar(20), CONSTRAINT STUID FOREIGN KEY(stu_id) REFERENCES student1(id) );
設置表的非空約束:屬性名 數據類型 NOT NULL
設置表的唯一性約束:屬性名 數據類型 UNIQUE
設置表的屬性值自動增加:屬性名 數據類型 AUTO_INCREMENT
AUTO_INCREMENT約束的字段可以是任何整數類型(TINYINT、SMALLINT、INT和BIGINT),在默認的情況下,該字段的值是從1開始自增
設置表的屬性的默認值:屬性名 數據類型 DEFAULT 默認值
CREATE TABLE student3 ( id int PRIMARY KEY AUTO_INCREMENT, teacher_id int UNIQUE, name varchar(20) NOT NULL, sex varchar(10) DEFAULT ‘male‘ );
3)查看表結構:
查看表基本結構語句:DESCRIBE 表名;
通過查看表的結構,就很明確的對表進行解讀,而且可以查看一下自己創建的表有沒錯誤,這個SQL語句必須會用
查看表詳細結構語句:SHOW CREATE TABLE 表名;
通過這個SQL語句可以查看表的詳細定義,除了字段名、字段的數據類型、約束條件外,還可以查看表的默認存儲引擎和字符編碼
3.修改表
1)修改表名:ALTER TABLE 舊表名 RENAME 新表名;
2)修改字段的數據類型:ALTER TABLE 表名 MODIFY 屬性名 數據類型;
ALTER TABLE 表名 CHANGE change address address char(40) ;
3)修改字段名:ALTER TABLE 表名 CHANGE 舊屬性名 新屬性名 新數據類型;
4)增加字段:ALTER TABLE 表名 ADD 屬性名1 數據類型 [完整性約束條件] [FIRST | AFTER 屬性名2];
“屬性名1”參數指需要增加的字段的名稱;“FIRST”參數是可選參數,其作用是將新增字段設置為表的第一個字段;“AFTER”參數也是可選的參數,其作用是將新增字段添加到“屬性名2”後面;“屬性名2”當然就是指表中已經有的字段
5)刪除字段:ALTER TABLE 表名 DROP 屬性名;
6)更改表的存儲引擎:ALTER TABLE 表名 ENGINE = 存儲引擎名;
7)刪除表的外鍵約束:ALTER TABLE 表名 DROP FOREIGN KEY 外鍵別名;
8)修改表的字符編碼格式:
修改表的默認字符集和所有字符列(CHAR,VARCHAR,TEXT):ALTER TABLE 表名 CONVERT TO CHARACTER SET 字符編碼名 [COLLATE ...]
修改表的默認字符集:ALTER TABLE 表名 DEFAULT CHARACTER SET 字符編碼名[COLLATE...];
修改字段的字符集:ALTER TABLE 表名 CHANGE 屬性名1 屬性名2 CHARACTER SET 字符編碼名 [COLLATE ...];
4.刪除表:
刪除沒有被關聯的普通表:DROP TABLE 表名;
刪除被其他表關聯的父表:
方法一:先刪除子表,在刪除父表
方法二:刪除父表的外鍵約束(上面有介紹),再刪該表
修改表的編碼:ALTER TABLE `Admin_table` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
MySQL:創建、修改和刪除表