一、查看數據表結構
1) 查看表基本結構語句 DESCRIBE
語法:DESCRIBE 表名;
示例:
mysql> DESCRIBE product; +--------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------+----------------+ | product_id | int(11) | NO | PRI | NULL | auto_increment | | product_name | varchar(50) | NO | | NULL | | | description | varchar(200) | YES | | NULL | | +--------------+--------------+------+-----+---------+----------------+
語法:DESC 表名;
示例:
mysql> DESC product; +--------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------+----------------+ | product_id | int(11) | NO | PRI | NULL | auto_increment | | product_name | varchar(50) | NO | | NULL | | | description | varchar(200) | YES | | NULL | | +--------------+--------------+------+-----+---------+----------------+說明:
NULL: 表示該列是否可以存儲NULL值;Key: 表示該列是否已編制索引。PRI表示是表主鍵的一部分;UNI表示該列是UNIQUE索引一部分;MUL表示該列中某個給定值允許出現多次;Default: 表示該列是否有默認值,如果有是多少;Extra: 表示可以獲取的與給定列有關的附加信息。例如AUTO_INCREMENT等;
2) 查看表詳細結構語句 SHOW CREATE TABLE
功能說明:
用來顯示創建表時的語句
語法:
SHOW CREATE TABLE <表名\G>;提示:
該語句可以用來查看創建表的詳細語句;還可以用來查看存儲引擎和字符編碼;加上參數'\G'後,可使顯示結果更加直觀,易於查看;
示例:
mysql> show create table bm\G; *************************** 1. row *************************** Table: bm Create Table: CREATE TABLE `bm` ( `id` int(11) NOT NULL, `name` varchar(22) DEFAULT NULL, `location` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `STH` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.02 sec)二、修改數據表
1) 修改表名
語法
ALTER TABLE <舊表名> RENAME [TO] <新表名>;
示例
ALTER TABLE bm RENAME department;
2) 修改字段的數據類型
語法
ALTER TABLE <表名> MODIFY <字段名> <數據類型>;
示例
ALTER TABLE department MODIFY id VARCHAR(11);
3) 修改字段名
語法
ALTER TABLE <表名> CHANGE <舊字段名><新字段名><新數據類型>;
示例
ALTER TABLE employees CHANGE location loc VARCHAR(350);//類型可以和原來保持一樣,不用修改
4) 添加字段
語法
ALTER TABLE <表名> ADD <新字段名> <數據類型> [約束條件] [FIRST|AFTER已存在字段名];//默認添加到最後一列後面
示例
ALTER TABLE employees ADD manager_id INT(10); ALTER TABLE employees ADD age INT(11) NOT NULL;//非空約束 ALTER TABLE employees ADD sal FLOAT FIRST;//在表的第一列添加 ALTER TABLE employees ADD hire_date DATE AFTER manager_id;//在指定列後添加
5) 刪除字段
語法
ALTER TABLE <表名> DROP <字段名>;示例
ALTER TABLE employees DROP manager_id; ALTER TABLE employees DROP hire_date;
6) 修改字段的排列位置
語法
ALTER TABLE <表名> MODIFY <字段1><數據類型> FIRST|AFTER <字段2>;示例
ALTER TABLE employees MODIFY name VARCHAR(22) FIRST;//把name移動到第一列 ALTER TABLE department MODIFY location VARCHAR(350) AFTER department_id;//把location列移到department_id列之後
7) 更改表的存儲引擎
MySQL支持的主要存儲引擎
語法
ALTER TABLE <表名> ENGINE=<更改後的存儲引擎名>;示例
ALTER TABLE department ENGINE=MyISAM;
8) 刪除表的外鍵約束
語法
ALTER TABLE <表名> DROP FOREIGN KEY <外鍵約束名>;示例
ALTER TABLE employees DROP FOREIGN KEY fk_emp_dept;
三、刪除數據表
1) 刪除沒有被關聯的表
語法
DROP TABLE [IF EXISTS] 表1,表2,...表n;
示例
DROP TABLE IF EXISTS employees;
2) 刪除被其他表關聯的主表
說明:先要刪除外鍵
示例mysql> create database rm_tab; Query OK, 1 row affected (0.00 sec) mysql> use rm_tab; Database changed mysql> create table department -> ( -> id int(11) primary key, -> name varchar(22), -> location varchar(200) -> ); Query OK, 0 rows affected (0.07 sec) mysql> create table employee -> ( -> id int(11) primary key, -> name varchar(25), -> department_id int(11), -> salary float, -> constraint fk_emp_dept foreign key(department_id) references department(id) -> ); Query OK, 0 rows affected (0.10 sec) mysql> drop table department; ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails mysql> alter table employee drop foreign key fk_emp_dept; Query OK, 0 rows affected (0.22 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> drop table department; Query OK, 0 rows affected (0.04 sec) mysql> show tables; +------------------+ | Tables_in_rm_tab | +------------------+ | employee | +------------------+ 1 row in set (0.00 sec)
如果您們在嘗試的過程中遇到什麼問題或者我的代碼有錯誤的地方,請給予指正,非常感謝!
聯系方式:[email protected]
版權@:轉載請標明出處!