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