Mysql數據庫-初識Mysql

一、創建數據庫

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)
)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章