MySQL三-----資料庫和表的基本操作
1.1建立和檢視資料庫
建立資料庫語法:
CREATE DATABASE 資料庫名稱
示例:CREATE DATABASE is;建立一個名為is的資料庫;
檢視所有已經存在的資料庫:
SHOW DATABASE;
檢視一個已經存在的資料庫的資訊:
SHOW CREATE DATABASE is;
1.2修改資料庫
MySQL一旦安裝完成,建立的資料庫編碼也就確定了,但如果想修改資料庫的編碼,可以使用以下語句:
ALTER DATABASE 資料庫名稱 DEFAULT CHARACTER SET gbk COLLATE gbk_bin;
1.3刪除資料庫
DROP DATABASE 資料庫名稱;
2.1資料表的基本操作
在建立資料表之前,需要指明在哪一個資料庫建立,
USE 資料庫名稱;
表示,以下的操作是在當前資料庫中操作。
建立資料表語法格式如下:
CREATE TABLE 表名
(
欄位名1,資料型別[完整性約束條件],
欄位名2,資料型別[完整性約束條件],
欄位名3,資料型別[完整性約束條件],
欄位名1,資料型別[完整性約束條件],
)
表名是指要建立的資料表的名稱,“欄位名”是資料表的列表,完整性約束,指的是欄位的某些特殊約束條件。
示例:
CREATE TABLE tb_grade
(
Id INT (10),
name VARCHAR(20),
grade FLOAT
);
2.2檢視資料表資訊
2.2.1使用SHOW CREATE TABLE 檢視資料表
SHOW CTEATE TABLE 表名;
如果要使檢視的結果整齊,需要在後面加上\G ;
SHOW CTEATE TABLE tb_grade\G
2.2.2使用DESCRIBE語句檢視資料表
DESCRIBE 表名;
也可以簡寫為:DESC表名;
2.3修改資料表
2.3.1修改資料表名
在資料庫中,不同的資料表是通過表名來進行區分的,在MySQL中,修改表名的語法規則如下:
ALTER TABLE 舊錶名 RENAME [TO] 新表名;
2.3.2修改欄位名
ALTER TABLE 表名 CHANGE 舊欄位名 新欄位名 新資料型別;
需要注意的是,新資料型別不能為空,且必須設定成與原欄位名相同;
2.3.3修改欄位的資料型別
修改欄位的資料型別,就是將欄位的資料型別轉為另外一種資料型別。
ALTER TABLE 表名 MODIFY 欄位名 資料型別;
2.3.4新增欄位
ALTER TABLE 表名 ADD 新欄位名 資料型別 [約束條件] [FIRST|AFTER 已存在欄位名]
在上述格式中,新欄位名是新增的欄位的名稱,“FIRST”為可選引數,用於將新新增的欄位設定為表的第一欄位,“AFTER”也為可選引數,用於將新新增的欄位新增到指定的“已存在的欄位名”後面;
2.3.5 刪除欄位
ALTER TABLE 表名 DROP 欄位名;
2.3.6修改欄位的排列位置
ALTER TABLE 表名 MODIFY 欄位名1 資料型別 FRIST|AFTER 欄位名2
2.3.7刪除資料表
DROP TABLE 表名;
3.表的約束
為了防止在資料表中插入錯誤的資料,在MySQL中,定義了一些維護資料庫完整性的規則,即表的約束
約束條件 說明
PRIMARY KEY
FOREIGN KEY
NOT NULL
UNIQUE
DEFAULT 主鍵約束,用於唯一標識對於的記錄
外來鍵約束
非空約束
唯一性約束
預設值約束,設定欄位的預設值
在MySQL中為了快速查詢表中的資訊,可以設定主鍵來實現。主鍵約束分為兩種:
3.1單欄位主鍵
單欄位主鍵是指由一個欄位構成的主鍵,語法如下:
欄位名 資料型別 PRIMARY KEY
示例:
CREATE TABLE example(id INT PRIMARY KEY,
name VARCHAR(20),
grade FLOAT
);
上述SQL執行之後,表中建立了id ,name ,grade 三個欄位,其中,id欄位是主鍵。
3.2多欄位主鍵
多欄位主鍵指的是多個欄位組合而成的主鍵,語法如下:
PRIMARY KEY(欄位名1,欄位名2,欄位名3)
示例:
CREATE TABLE example(id INT,
name VARCHAR(20),
grade FLOAT,
PRIMARY KEY(id,name)
);
主鍵為兩個,這兩個欄位的組合可以唯一確定一條記錄。
3.3非空約束
非空約束指的是欄位是值不能為NULL,在MySQL中,非空約束是通過NOT NULL定義的,基本語法如下:
欄位名 資料型別 NOT NULL;
CREATE TABLE example(id INT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
grade FLOAT
);
3.4唯一約束
唯一約束用於保證資料表中的欄位的唯一性,即表中的欄位的值不能重複出現。
欄位名 資料型別 NOT NULL;
CREATE TABLE example(id INT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
grade FLOAT UNIQUE
);
3.5預設約束
欄位名 資料型別 DEFAULT 預設值;
CREATE TABLE example(id INT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
grade FLOAT DEFAULT 0
);
3.6設定表的欄位值自動增加
在資料表中,若想為表中插入的新紀錄自動生成唯一的ID,可以使用以下方法:
欄位名 資料型別 AUTO_INCREMENT;
示例:
CREATE TABLE example(id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
grade FLOAT
);