資料庫中的資料是存儲在基本表中的,是以需要先建立資料表再插入資料。
建立表
建立表的同時須指定表名、字段名和資料類型。
文法:
create table (
[,
,
...
]);:表名不可與SQL關鍵字相同,同一個資料庫中的表名不可重複。
:字段名不可與SQL關鍵字相同,同一個表中的字段名不可重複。
示例:建立employee員工資訊表
mysql> create table employee(
-> e_id varchar(5),
-> e_name varchar(5),
-> e_age int,
-> d_id varchar(5));
檢視表
在目前資料庫中可以檢視建立好的資料表。
文法:
show tables [like '表名'];like 子句是可選項,用于比對指定的表名,可以模糊比對,也可以精确比對。
示例1:檢視目前資料庫内的所有表
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| employee |
| emp7 |
+----------------+
示例2:使用like子句檢視以’emp’開頭的表
mysql> show tables like 'emp%';
+------------------------+
| Tables_in_test (emp%) |
+------------------------+
| employee |
| emp7 |
+------------------------+
示例3:檢視employee表的定義聲明
mysql> show create table employee\G;
*************************** 1. row ***************************
Table: employee
Create Table: CREATE TABLE `employee` (
`e_id` varchar(5) DEFAULT NULL,
`e_name` varchar(5) DEFAULT NULL,
`e_age` int(11) DEFAULT NULL,
`d_id` varchar(5) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
使用 SHOW CREATE TABLE 語句不僅可以檢視建立表時的詳細語句,而且可以檢視存儲引擎和字元編碼。如果不加“\G”參數,顯示的結果可能非常混亂,加上“\G”參數之後,可使顯示的結果更加直覺,易于檢視。
建立好資料表之後,可以檢視表結構。
文法:
describe ; 或 desc ;
示例:檢視employee表的結構定義
mysql> desc dep;
+--------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+------------+------+-----+---------+-------+
| e_id | varchar(5) | YES | | NULL | |
| e_name | char(5) | YES | | NULL | |
| e_age | int(11) | YES | | NULL | |
| d_id | varchar(5) | YES | | NULL | |
+--------+------------+------+-----+---------+-------+Null:表示該字段是否可以存儲 NULL 值。
Key:表示該字段是否已編制索引。PRI 表示主鍵,UNI 表示 UNIQUE 唯一索引,MUL 表示某個給定值允許出現多次。
Default:表示該字段是否有預設值,如果有,值是什麼。
Extra:表示可以擷取的附加資訊,如 AUTO_INCREMENT 等。
修改表
為實作資料庫中表規範化設計,有時候需要對已經建立的表進行結構修改或調整。
文法:修改表名
alter table rename ;
示例:将employee表名改為emp
mysql> alter table employee rename emp;
文法:添加新字段
alter table add [限制條件] [first|after 參照字段名];限制條件和字段位置可以不指定,預設無限制,在表中最後一列顯示。
示例:在emp表中添加新字段location
mysql> alter table emp add location varchar(5);
文法:修改字段名
alter table change ;
示例:修改字段名location為loc
mysql> alter table emp change location loc varchar(5);
文法:修改字段類型
alter table modify ;
示例:修改loc的字段類型為varchar(10)
mysql> alter table emp modify loc varchar(10);
文法:修改字段的排列位置
alter table modify first|after 參照字段名;
示例:修改字段loc的排列位置
mysql> alter table emp modify loc varchar(10) after d_id;
文法:删除字段
alter table drop ;
示例:删除字段loc
mysql> alter table emp drop loc;
删除表
删除表指删除表結構的同時删除表中資料,是以需謹慎使用。
文法:
drop table [if exists] [,,,...];可删除多張表,if exists避免表不存在時報錯。
示例1:删除emp表
mysql> drop table emp;
示例2:避免表不存在時報錯
mysql> drop table if exists emp;