MySQL資料表的基本操作二:表結構查看、修改與表操作,mysql基本操作
一、查看資料表結構
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: bmCreate 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=latin11 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支援的主要儲存引擎
引擎名 |
是否支援 |
FEDERATED |
否 |
MRG_MYISAM |
是 |
MyISAM |
是 |
BLACKHOLE |
是 |
CSV |
是 |
MEMORY |
是 |
ARCHIVE |
是 |
InnoDB |
預設 |
PERFORMANCE_SCHEMA |
是 |
文法
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 changedmysql> 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 failsmysql> alter table employee drop foreign key fk_emp_dept;Query OK, 0 rows affected (0.22 sec)Records: 0 Duplicates: 0 Warnings: 0mysql> 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)
如果您們在嘗試的過程中遇到什麼問題或者My Code有錯誤的地方,請給予指正,非常感謝!
連絡方式:david.louis.tian@outlook.com
著作權@:轉載請標明出處!
MYSQL資料表名稱更改
一句query來實現,不可能
一次執行一個的語句是
RENAME TABLE tb_name TO new_name;
老子教你一招.
用程式輸出一組語句然後在mysql執行
例: php
我倒想把程式碼都給你寫上,可不知道你mysql的資料結構,154651166 park412@hotmail.com
你加我
如果心情好可以幫你解決
mysql兩個表資料查詢更改語句
update A set [key]='php' from B where A.id=B.aid and B.body like '%php%'