本文實例講述了MySQL數據表基本操作。,具體如下:
1.主鍵約束要求主鍵列的數據唯一,并且不允許為空。主鍵能夠唯一地識別表中的一條記錄,可以結合外鍵來定義不同數據表之間的關系,并且可以加快數據庫查詢的速度。主鍵和記錄之間的關系如同身份證和人之間的關系。
2.字表的外鍵必須關聯父表的主鍵,且關聯字段的數據類型必須匹配。如果類型不一樣。創建子表時,就會出現錯誤:ERROR 1005(HY000):can't create table 'databases.tablesname'(error:150)
3.非空約束指字段的值不能為空。
4.唯一性約束:要求該列唯一,允許為空,但只能出現一個空值。唯一約束可以確保一列或者幾列不出現重復值。
5.unique和primary key 的區別:一個表中可以有多個字段聲明為unique,但只能有一個primary key聲明:聲明為關鍵字的列不允許為空值,但是聲明為unique的字段允許空值null的存在。
【例.1】創建員工表tb_emp1
選擇創建表的數據庫:
| USE test_db; |
創建tb_emp1表:
| CREATE TABLE tb_emp1(id int(11),name varchar(25),deptId int(11),salary float); |
【例.2】定義數據表tb_emp 2,其主鍵為id:
| CREATE TABLE tb_emp2(id int(11) PRIMARY KEY,name varchar(25),deptId int(11),salary float); |
【例.3】定義完所有列之后指定主鍵
定義數據表tb_emp 3,其主鍵為id:
| CREATE TABLE tb_emp3(id int(11),name varchar(25),deptId int(11),salary float,PRIMARY KEY(id)); |
【例.4】定義數據表tb_emp4,創建多字段聯合主鍵SQL語句為:
| CREATE TABLE tb_emp4(name varchar(25),deptId int(11),salary float,PRIMARY KEY(name,deptId)); |
【例.5】定義數據表tb_emp5,并在tb_emp5表上創建外鍵約束
創建一個部門表tb_dept1:
| CREATE TABLE tb_dept1(id int(11) PRIMARY KEY,name varchar(22) NOT NULL,location varchar(50)); |
定義數據表tb_emp5,讓它的鍵deptId作為外鍵關聯到tb_dept1的主鍵id:
| CREATE TABLE tb_emp5(id int(11) PRIMARY KEY,name varchar(25),deptId int(11),salary float,CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES tb_dept1(id)); |
【例.6】定義數據表tb_emp6,指定員工的名稱不能為空,SQL語句為:
| CREATE TABLE tb_emp6(id int(11) PRIMARY KEY,name varchar(25) NOT NULL,deptId int(11),salary float,CONSTRAINT fk_emp_dept2 FOREIGN KEY (deptId) REFERENCES tb_dept(id)); |
【例.7】定義數據表tb_dept2,指定部門的名稱唯一,SQL語句為:
| CREATE TABLE tb_dept2(id int(11) PRIMARY KEY,name varchar(22) UNIQUE,location varchar(50)); |