| 符號 | 功能 |
|---|---|
| > | 大于 |
| 小于 | |
| >= | 大于等于 |
| = | 小于等于 |
| = | 等于 |
| > 或 != | 不等于 |
| BETWEEN … AND … | 在某個范圍之內(都包含) |
| IN(…) | 多選一 |
| LIKE 占位符 | 模糊查詢 _單個任意字符 %多個任意字符 |
| IS NULL | 是NULL |
| IS NOT NULL | 不是NULL |
| AND 或 | 并且 |
| OR 或 || | 或者 |
| NOT 或 ! | 非,不是 |
聚合函數
函數名稱及其功能
| 函數名 | 功能 |
|---|---|
| count(列名) | 統計數量(一般選用不為null的列) |
| max(列名) | 最大值 |
| min(列名) | 最小值 |
| sum(列名) | 求和 |
| avg(列名) | 平均值 |
聚合函數語法
-- 標準語法 SELECT 函數名(列名) FROM 表名 [WHERE 條件]; -- 計算product表中總記錄條數 SELECT COUNT(*) FROM product; -- 獲取最高價格 SELECT MAX(price) FROM product; -- 獲取最高價格的商品名稱 SELECT NAME,price FROM product WHERE price = (SELECT MAX(price) FROM product); -- 獲取最低庫存 SELECT MIN(stock) FROM product; -- 獲取最低庫存的商品名稱 SELECT NAME,stock FROM product WHERE stock = (SELECT MIN(stock) FROM product); -- 獲取總庫存數量 SELECT SUM(stock) FROM product; -- 獲取品牌為蘋果的總庫存數量 SELECT SUM(stock) FROM product WHERE brand='蘋果'; -- 獲取品牌為小米的平均商品價格 SELECT AVG(price) FROM product WHERE brand='小米';
排序查詢
分類
| 關鍵字 | 功能 |
|---|---|
| ORDER BY 列名1 排序方式1,列名2 排序方式2 | 對指定列排序,ASC升序(默認的) DESC降序 |
- 注:多個排序條件,當前邊的條件值一樣時,才會判斷第二條件
排序語法
-- 標準語法 SELECT 列名 FROM 表名 [WHERE 條件] ORDER BY 列名1 排序方式1,列名2 排序方式2; -- 按照庫存升序排序 SELECT * FROM product ORDER BY stock ASC;
分組查詢
-- 標準語法 SELECT 列名 FROM 表名 [WHERE 條件] GROUP BY 分組列名 [HAVING 分組后條件過濾] [ORDER BY 排序列名 排序方式];
分頁查詢
-- 標準語法 SELECT 列名 FROM 表名 [WHERE 條件] GROUP BY 分組列名 [HAVING 分組后條件過濾] [ORDER BY 排序列名 排序方式] LIMIT 開始索引,查詢條數; -- 公式:開始索引 = (當前頁碼-1) * 每頁顯示的條數
1.約束的概念和分類
約束的概念
約束的分類
| 約束 | 說明 |
|---|---|
| PRIMARY KEY | 主鍵約束 |
| PRIMARY KEY AUTO_INCREMENT | 主鍵、自動增長 |
| UNIQUE | 唯一約束 |
| NOT NULL | 非空約束 |
| FOREIGN KEY | 外鍵約束 |
| FOREIGN KEY ON UPDATE CASCADE | 外鍵級聯更新 |
| FOREIGN KEY ON DELETE CASCADE | 外鍵級聯刪除 |
2.主鍵約束
主鍵約束特點
建表時添加主鍵約束
-- 標準語法
CREATE TABLE 表名(
列名 數據類型 PRIMARY KEY,
列名 數據類型,
...
);
-- 創建student表
CREATE TABLE student(
id INT PRIMARY KEY -- 給id添加主鍵約束
);
-- 添加數據
INSERT INTO student VALUES (1),(2);
-- 主鍵默認唯一,添加重復數據,會報錯
INSERT INTO student VALUES (2);
-- 主鍵默認非空,不能添加null的數據
INSERT INTO student VALUES (NULL);
-- 查詢student表
SELECT * FROM student;
-- 查詢student表詳細
DESC student;
刪除主鍵
-- 標準語法 ALTER TABLE 表名 DROP PRIMARY KEY; -- 刪除主鍵 ALTER TABLE student DROP PRIMARY KEY;
建表后單獨添加主鍵
-- 標準語法 ALTER TABLE 表名 MODIFY 列名 數據類型 PRIMARY KEY; -- 添加主鍵 ALTER TABLE student MODIFY id INT PRIMARY KEY;
3.主鍵自動增長約束
建表時添加主鍵自增約束
-- 標準語法
CREATE TABLE 表名(
列名 數據類型 PRIMARY KEY AUTO_INCREMENT,
列名 數據類型,
...
);
-- 創建student2表
CREATE TABLE student2(
id INT PRIMARY KEY AUTO_INCREMENT -- 給id添加主鍵自增約束
);
-- 添加數據
INSERT INTO student2 VALUES (1),(2);
-- 添加null值,會自動增長
INSERT INTO student2 VALUES (NULL),(NULL);
-- 查詢student2表
SELECT * FROM student2;
-- student2表詳細
DESC student2;
刪除自動增長
-- 標準語法 ALTER TABLE 表名 MODIFY 列名 數據類型; -- 刪除自動增長 ALTER TABLE student2 MODIFY id INT;
建表后單獨添加自動增長
-- 標準語法 ALTER TABLE 表名 MODIFY 列名 數據類型 AUTO_INCREMENT; -- 添加自動增長 ALTER TABLE student2 MODIFY id INT AUTO_INCREMENT;
4.唯一約束
建表時添加唯一約束
-- 標準語法
CREATE TABLE 表名(
列名 數據類型 UNIQUE,
列名 數據類型,
...
);
-- 創建student3表
CREATE TABLE student3(
id INT PRIMARY KEY AUTO_INCREMENT,
tel VARCHAR(20) UNIQUE -- 給tel列添加唯一約束
);
-- 添加數據
INSERT INTO student3 VALUES (NULL,'18888888888'),(NULL,'18666666666');
-- 添加重復數據,會報錯
INSERT INTO student3 VALUES (NULL,'18666666666');
-- 查詢student3數據表
SELECT * FROM student3;
-- student3表詳細
DESC student3;
刪除唯一約束
-- 標準語法 ALTER TABLE 表名 DROP INDEX 列名; -- 刪除唯一約束 ALTER TABLE student3 DROP INDEX tel;
建表后單獨添加唯一約束
-- 標準語法 ALTER TABLE 表名 MODIFY 列名 數據類型 UNIQUE; -- 添加唯一約束 ALTER TABLE student3 MODIFY tel VARCHAR(20) UNIQUE;
5.非空約束
建表時添加非空約束
-- 標準語法
CREATE TABLE 表名(
列名 數據類型 NOT NULL,
列名 數據類型,
...
);
-- 創建student4表
CREATE TABLE student4(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20) NOT NULL -- 給name添加非空約束
);
-- 添加數據
INSERT INTO student4 VALUES (NULL,'張三'),(NULL,'李四');
-- 添加null值,會報錯
INSERT INTO student4 VALUES (NULL,NULL);
刪除非空約束
-- 標準語法 ALTER TABLE 表名 MODIFY 列名 數據類型; -- 刪除非空約束 ALTER TABLE student4 MODIFY NAME VARCHAR(20);
建表后單獨添加非空約束
-- 標準語法 ALTER TABLE 表名 MODIFY 列名 數據類型 NOT NULL -- 添加非空約束 ALTER TABLE student4 MODIFY NAME VARCHAR(20) NOT NULL;
外鍵約束
外鍵約束的格式(一般在創建表的最后寫這些)
CONSTRAINT 外鍵名 FOREIGN KEY (本表外鍵列名) REFERENCES 主表名(主表主鍵列名)
到此這篇關于MySql新手入門的基本操作匯總的文章就介紹到這了,更多相關MySql基本操作內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!