MySQL資料表的基本操作二:表結構查看、修改與表操作

來源:互聯網
上載者:User

標籤: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有錯誤的地方,請給予指正,非常感謝!

連絡方式:[email protected]

著作權@:轉載請標明出處!

MySQL資料表的基本操作二:表結構查看、修改與表操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.