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