![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SYiBjNhNjY0ATYhNWM5Y2N1kTZjZjM4ETO3QTY3EDN58CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
花了2周左右時間,斷斷續續看完了《SQL基礎教程》,對照《MySQL必知必會》,簡單做個筆記。
一、表的建立
CREATE TABLE 表名
(列名1 資料類型 資料限定條件,
列名2 資料類型 資料限定條件,
...
PRIMARY KEY(列名1,列名2...));
資料類型包括: int smallint tinyint 整數 ,char(size) 容納固定長度的字元串,varchar(size) 容納可變長度的字元串,date(yyyymmddd) 容納日期。
限定條件包括:NOT NULL: 限制強制列不接受 NULL 值。UNIQUE:限制唯一辨別資料庫表中的每條記錄。CHECK: 限制用于限制列中的值的範圍。DEFAULT:限制用于向列中插入預設值。
二、表的删除
DROP TABLE 表名;
三、表的增、删、改、查
(一)增
#1.插入完整的行
INSERT INTO 表名
(列名1,列名2,...,列名n)
VALUES(列值1,列值2,...,列值n);
#建議把列名寫全,一一對應(當然不寫也可以,但如果表結構發生改變,容易發生錯誤)
#2.插入多行
INSERT INTO 表名
(列名2,列名4,...,列名m)
VALUES(列值2,列值4,...,列值m);
#3.插入檢索出的資料
INSERT INTO 表1
(列名1,列名2,...,列名n)
SELECT 列名1,列名2,...,列名n FROM 表2;
#注意前面的列名與後面的列名并不要求一緻
(二)删
#1.從表中删除特定的行(注意是删除行,就是删除資料庫的一條記錄,不是删除列)
DELETE FROM 表名 WHERE 條件語句
#2.從表中删除所有行
DELETE FROM 表名
(三)改
#1.更新表中特定行
UPDATE 表名 SET 列名1='修改的内容1',
列名2='修改的内容2',
...
WHERE 條件語句
#2.删除某列的值
UPDATE 表名 SET 列名=NULL WHERE 條件語句
(四)查
#1.檢索多列(含1列)
SELECT 列名1,列名2,...,列名n FROM 表名
#2.檢索所有列
SELECT * FROM 表名
#3.檢索不同的行(傳回該列不同的值)
SELECT DISTINCT 列名 FROM 表名
#4.限制結果(傳回第一行或前幾行)
SELECT 列名1,列名2,...,列名n FROM 表名 LIMIT m,n
#m表示從m開始,n表示要檢索的行數,注意資料的行數從0開始
#5.排序檢索資料
SELECT 列名1,列名2,...,列名n FROM 表名 ORDER BY 列名m
#6.按多個列排序
SELECT 列名1,列名2,...,列名n FROM 表名 ORDER BY 列名m,列名k
#預設升序排列 ASC,降序排列為DESC