一、創建數據庫
1.連接數據庫 mysql -u用戶名 -p密碼。例如:mysql -uroot -p123456;
2.創建數據庫 create databases 數據庫名。例如:create databases test;
。
3.查看數據庫列表 show databases;
二、創建表
1.選擇數據庫 use 數據庫名 例如:use test;
2.創建表CREATE TABLE 表名(字段名 數據類型,字段名 數據類型, …)。例如:create table user(id INT,username VARCHAR(32),password VARCHAR(32),phone VARCHAR(11));
也可:
CREATE TABLE 表名
(
字段名,數據類型,
字段名,數據類型,
.....
)
3.查看錶結構describe 表名。例如:describe user;
也可簡寫爲 desc user
;還可以用其他方式查看,如:show columns from user;
。 show create table user;
。 show full fields from user;
。show fields from user;
。desc user id;(查看錶某字段信息)
三、主鍵約束
主鍵,是表中一列或者多列的組合,主鍵約束(Primary Key Constraint)要求主鍵列的數據唯一,並且不允許爲空,主鍵能夠唯一的標識表中的每一條記錄,可以結合外鍵來定義與不同數據表之間的關係。
怎麼理解主鍵呢?我們知道數據庫中的表可以存放很多數據,如果把表中的每一個數據比作一個人的話,那麼表的主鍵就可以看做是人的身份證。
添加主鍵約束
有兩種方式可以添加主鍵約束:
(1) 在定義列的同時指定主鍵:
(2) 在定義完所有列之後指定主鍵。
多字段聯合主鍵
在開發中還有一種情況很常見,就是將幾個字段聯合在一起作爲主鍵,那這個在代碼中怎麼實現呢?
舉個例子,我們將員工的名字和部門ID聯合起來作爲主鍵:
CREATE TABLE t_emp2
(
name VARCHAR(32),
deptId INT,
salary FLOAT,
PRIMARY KEY(name,deptId)
)
語句執行後,會將name和deptId字段組合成爲表t_emp2的多字段組合主鍵。
四、外鍵約束
在以後我們統一將外部關鍵字叫做外鍵,外鍵就是另一張表中的主鍵。
問:外鍵有啥用啊?
答:外鍵的主要作用就是保持數據的一致性,完整性。
再問:怎麼保證的呢?
答:看圖。
如圖有兩張表,classId 是T_Student的外鍵,是T_class 表的主鍵, 如果我們要刪除T_class 表中classId爲1的字段,程序是會報錯的,因爲t_student表中有數據和classId爲1的字段關聯了,是不能刪除的,這樣子就保證了數據的一致性和完整性。
繼續問:那怎麼才能刪除呢?
接着答:需要先刪除T__student表中classId爲1的兩個字段。
如何給表添加外部關鍵字
在MySQL中給表中字段添加外鍵約束的語法規則如下:
CONSTRAINT 外鍵名 FOREIGN KEY 字段名 REFERENCES 主表名(主鍵名)
舉個例子:現在有兩張表,t_emp、t_dept如下。
t_dept表
字段名稱 數據類型 備註
deptId INT 部門編號
name VARCHAR(22) 部門名稱
location VARCHAR(50) 部門位置
t_emp表
字段名稱 數據類型 備註
id INT 員工編號
name VARCHAR(22) 員工姓名
deptId INT 部門ID(外鍵類型必須和對應主鍵類型一直)
我們來創建兩張表,並給員工表(t_emp)添加外鍵:
CREATE TABLE t_dept
(
deptId INT PRIMARY KEY,
name VARCHAR(22),
location VARCHAR(50)
);
CREATE TABLE t_emp
(
id INT PRIMARY KEY,
name VARCHAR(22),
deptId INT,
CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES t_dept(deptId)
);
實際操作如圖:
五、添加常用約束
在數據庫的使用過程中我們經常要限制字段的取值,比如有些字我們不能讓它爲空,我們就需要添加非空約束
怎麼添加唯一約束
唯一約束(Unique Constraint)要求該列唯一,允許爲空,但是隻能有一個空值。唯一約束可以確保一列或者幾列不出現重複值。
定義部門表的部門名稱唯一,SQL語句如下:關鍵詞 UNIQUE。
CREATE TABLE t_dept(
id INT PRIMARY KEY,
name VARCHAR(22) UNIQUE,
location VARCHAR(50)
)
怎麼添加非空約束
關鍵詞:NOT NULL;
例如:
CREATE TABLE t_dept(
id INT PRIMARY KEY,
name VARCHAR(22) NOT NULL,
location VARCHAR(50)
)
怎麼使用默認約束
默認約束:即給字段一個默認值。
關鍵詞:DEFAULT;
例如:
CREATE TABLE t_emp(
id INT PRIMARY KEY,
name VARCHAR(22),
sex VARCHAR(2) DEFAULT '男'
) DEFAULT CHARSET=utf8;
注意:
如果是添加字符串型默認值要使用單引號,如果是整型則不需要加任何符號;
如果要添加的是中文默認值,則需要加上DEFAULT CHARSET=utf8;
使用英文字符則不需要。
設置表的屬性值自動增加
在數據庫應用中,經常有個需求就是,在每次插入新紀錄時,系統自動生成字段的主鍵值,即:
id name
1 張三
2 李四
ID每次自動加一 姓名
… XXX
10 XXX
關鍵詞:AUTO_INCREMENT,默認情況下初始值和增量都爲1。
例如:
CREATE TABLE t_tmp
(
id int PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(32)
)