07 数据查询语言(DQL)--行选择(WHERE)
目錄
一、行選擇與列選擇的語法區別(有無where):
列選擇:select 列名、、、from 表名;
行選擇:select 列名、、、from 表名 where條件;
二、用選擇限制行:
三、MySQL中的比較條件:
1.常規比較條件:
2.其他比較條件:
2.1.BETWEEN...AND...:
2.2.IN(set):
2.3.LIKE:
2.4.IS NULL:
3.邏輯條件:AND、OR、NOT
4.優先規則:
5.運算符總結:
四、使用ORDER BY排序
1.注意:
2.SELECT 語句的執行順序如下:
3.使用別名排序(用列別名排序):
4.多列排序:
一、行選擇與列選擇的語法區別(有無where):
列選擇:select 列名、、、from 表名;
行選擇:select 列名、、、from 表名 where條件;
二、用選擇限制行:
用 WHERE 子句限制從查詢返回的行。一個 WHERE 子句包含一個
必須滿足的條件,WHERE 子句緊跟著 FROM 子句。如果條件是
true,返回滿足條件的行。
語法:SELECT * | 投影列 FROM 表名 WHERE 選擇條件;
例:select department_name,location_id from departments where departments_id = 4;
表示:查詢 departments 表中部門 ID 為 90 的部門名稱與工作地ID
三、MySQL中的比較條件:
1.常規比較條件:
?
符號!=也能表示不等于條件;
例:select last_name,salary from employees where salary<>5000;
表示:查詢 employees 表中員工薪水不等于 5000 的員工的姓名與薪水;
2.其他比較條件:
2.1.BETWEEN...AND...:
可以用 BETWEEN...AND... 范圍條件顯示基于一個值范圍的行。指定的范圍,包含一個下限和一個上限。
例:select employee_id,last_name,salary from employees where salary between 3000 and 8000;
表示:查詢 employees 表,薪水在 3000-8000 之間的雇員ID、名字與薪水。
2.2.IN(set):
使用IN成員條件測試在列表中的值
例:select employee_id,last_name,salary from employees where salary in(5000,6000,8000);
表示:查詢 employees 表,找出薪水是 5000,6000,8000 的雇員ID、名字與薪水。
2.3.LIKE:
1.使用LIKE條件執行有效搜索串值的通配符搜索
2.搜索條件既可以包含文字也可以包含數字(數字只字符串型,非整數型)
占位符:%表示零個或多個字符
? ? ? ? ? ? ? ? _表示一個字符
注意 :
在LIKE語句中,%表示零個或多個字符,_表示一個字符
例:select last_name from employees where last_name like ‘%e%’;
表示:查詢 employees 中雇員名字字母含有 e 的雇員名字。
例:select last_name from employees where last_name like ‘_e%’;
表示:查詢 employees 中雇員名字第二個字母是 e 的雇員名字。
2.4.IS NULL:
用IS NULL操作來測試空值,NULL條件,包括IS NULL條件和IS NOT NULL 條件;
IS NULL 條件用于空值測試。空值的意思是難以獲得的、未指定的、未知的或者不適用的。因此,?不能用 = ,因為 null 不能等于或不等于任何值。
例:select employee_id,last_name,commission_pct from employees where commission_pct is null;
表示:找出 emloyees 表中那些沒有傭金的雇員雇員ID、名字與傭金。
例:select employee_id,last_name,commission_pct from employees where commission_pct is not null;
表示:找出 employees 表中那些有傭金的雇員ID、名字與傭金。
3.邏輯條件:
?
邏輯條件組合兩個比較條件的結果來產生一個基于這些條件的單個的結果,或者逆轉一個單個條件的結果。當所有條件的結果為真時,返回行。
SQL 的三個邏輯運算符是:
AND
OR
NOT
可以在 WHERE 子句中用 AND 和 OR 運算符使用多個條件。
例:select last_name,salary from employees where salary = 8000 and last_name like '%e%';
表示:查詢 employees 表中雇員薪水是 8000 的并且名字中含有e 的雇員名字與薪水。
例:select last_name,salary from employees where salary = 8000 or last_name like '%e%';
表示:查詢 employees 表中雇員薪水是 8000 的或者名字中含有e 的雇員名字與薪水。
例:select last_name from employees where last_name not like '%u%';
表示:查詢 employees 表中雇員名字中不包含 u 的雇員的名字。
例:select?last_name from?employees where?last_name not?like?'%u%';
查詢 employees 表中雇員名字中不包含 u 的雇員的名字。
4.優先規則:
?
5.運算符總結:
四、使用ORDER BY排序
?
1.注意:
在一個不明確的查詢結果中排序返回的行。ORDER BY 子句用于排序。如果使用了 ORDER BY 子句,它必須位于 SQL 語句的最后。
2.SELECT 語句的執行順序如下:
FROM 子句
WHERE 子句
SELECT 子句
ORDER BY 子句(即查詢出結果后再對結果進行排序)
例:1.select employee_id,last_name,salary from employees order by salary;(默認升序排序ASC)
2.select employee_id,last_name,salary from employees order by salary?asc;
表示:查詢 employees 表中的所有雇員,顯示他們的ID、名字與薪水,并按薪水升序排序。
例:select employee_id ,last_name from employees order by last_name desc;
表示:查詢 employees 表中的所有雇員,顯示他們的ID與名字,并按雇員名字降序排序。
3.使用別名排序(用列別名排序):
例:select employee_id,last_name, 12*salary annsal from employees order by annsal desc;
表示:顯示雇員ID,名字。計算雇員的年薪,年薪列別名為annsal,并對該列進行降序排序
4.多列排序:
多列排序按ORDER BY 列表的順序就是排序的順序;并且可以排序一個不在SELECT列表中的列;
例:select department_id ,salary from employees order by department_id asc,salary desc;
表示:以升序排序顯示department_id列后,再根據前一個排序的基礎上,以降序排序顯示salary列;
總結
以上是生活随笔為你收集整理的07 数据查询语言(DQL)--行选择(WHERE)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DS1820温度测量程序
- 下一篇: Lightdb Pgpool-II 读写