MySQL
一、基本查詢
語法:SELECT 列名1,列名2,列名3 FROM 表名
#查詢t_employees表中所有員工的所有信息
SELECT * FROM t_employees;
SELECT 所有的列名 FROM t_employees;
經驗:生產環境下,優先使用列名查詢。*的方式雖然看起來便捷,但實際上需要轉換成全列名,效率低,可讀性差
對列中的數據進行運算
語法:SELECT 列名+2,列名*5,列名/13 FROM 表名
沒有%,%在數據庫裏代表的是佔位符。
列的別名
語法:列名 AS ‘想叫的列名’
#查詢員工表中所有員工的編號、姓名、日薪(列的運算 / 22),列名均爲中文
SELECT EMPLOYEE_ID AS '編號',FIRST_NAME AS '姓',LAST_NAME AS '名',SALARY / 22 AS'日薪' FROM t_employees;
#起別名,沒有對原表的列名發生影響
查詢結果去重
語法:distinct 列名
#查詢員工表中,所有經理的ID編號
SELECT DISTINCT MANAGER_ID AS '經理編號' FROM t_employees;
#查詢員工表中,所有的工資 (去掉重複的)
SELECT DISTINCT SALARY FROM t_employees;
二、排序查詢
SELECT 列名 FROM 表名 ORDER BY 排序列名 [排序規則]
#查詢員工的編號,名字,薪資,按照工資進行升序排序
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees ORDER BY salary ASC;
#查詢員工的編號,名字,薪資,按照姓名進行升序排序
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees ORDER BY FIRST_NAME;
#查詢員工的編號,名字,薪資,按照工資進行降序排序
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees ORDER BY salary DESC;
經驗:當進行升序排序時,排序規則可以不顯示聲明。默認爲升序排序規則
三、條件查詢
語法: SELECT 列名 FROM 表名 WHERE 條件
值判斷
#查詢工資爲2500的員工信息
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees WHERE salary = 2500;
#查詢姓爲Steven的
SELECT EMPLOYEE_ID,FIRST_NAME,SALARY FROM t_employees WHERE FIRST_NAME='Steven';
#查詢員工工資大於6000的員工的信息
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees
WHERE salary>=6000;
#查詢員工工資不等於2500的員工信息
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees
WHERE salary<>2500;(!=同理)
邏輯判斷(and、or、not)
#查詢員工工資在6000~10000的員工信息
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees
WHERE salary>=6000 AND salary<=10000;
#查詢工資是10000的或者是9000的員工信息
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees
WHERE salary =10000 OR salary = 9000;
#查詢除了工資是10000的員工信息
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees
WHERE NOT salary =10000;
區間判斷(between and)
#區間判斷 包含區間邊界的兩個值
SELECT EMPLOYEE_ID,FIRST_NAME,salary FROM t_employees
WHERE salary BETWEEN 6000 AND 10000;
注意:between and要遵循 between 小值 and 大值;
NULL值判斷(IS NULL、IS NOT NULL)
#查詢出 沒有經理編號的員工 IS NULL
SELECT EMPLOYEE_ID,FIRST_NAME,MANAGER_ID FROM t_employees
WHERE MANAGER_ID IS NULL;
#查詢出 沒有經理編號以外的員工信息
SELECT EMPLOYEE_ID,FIRST_NAME,MANAGER_ID FROM t_employees
WHERE MANAGER_ID IS NOT NULL;
#查詢出 沒有經理編號以外的員工信息(此處NOT爲取反。兩個結果)
SELECT EMPLOYEE_ID,FIRST_NAME,MANAGER_ID FROM t_employees
WHERE NOT MANAGER_ID IS NULL;