您好,登錄后才能下訂單哦!
對于漢字的排序,是按首字母的順序來排序的。使用DISTINCT是要要付出代價的;因為要去掉重復值,必須對結果關系進行排序,相同的元組排列在一起,只有按這種方法對元組進行分組才能去掉重復值,而這一工作甚至比查詢本身還費時間。
使用‘*’通配符時要慎重,在不需要查詢所有列時,盡量采用前面介紹的單列查詢或多列查詢,以免占用過多的資源。
ORDERBY子句一定要放在所有子句的最后,默認是ASC(遞增排序);ORDER BY后面可
以采用1、2、3……進行排序,1、2、3……代表了SELECT后面列的次序。
例如:
SELECT column1,column2,column3 FROM dual ORDER BY 1,2;則相當于
SELECT column1,column2,column3 FROM dual ORDER BY column1,column2;
3.1、當ORDERBY所需要的列不在SELECT語句所選的范圍內時,采用列的序號顯然是行不通的。這時可以將列別與序號混合起來解決這個問題。
3.2、對大小寫字符的排序,一般的數據庫管理系統認為二者是等同的。
WHERE子句獲取FROM子句返回的結果集,并應用WHERE子句中定義的搜索條件對結果集進行篩選。對FROM子句返回結果的每一行都要根據搜索條件進行校驗,符合條件的返回,不符合的從結果中去除。
NULL值參與任何比較運算,結果都將視為FALSE,即,無論是“NULL <> 1200”還是
“NULL= 1200”,其結果都為FALSE;對NULL值得操作只能是:“IS NULL”或
“IS NOT NULL”;NULL值參與的任何算數運算后,算數表達式的值都為NULL;如果NULL參與聚集運算,則除COUNT(*)之外其他聚集函數都忽略NULL;NULL參與AND邏輯運算時,如下圖:
邏輯運算符“AND”的優先級高于“OR”,為了實現同時運算,應用括號。
例如:下面SQL執行結果是計算機和生物類的薪資大于1000的所有老師的信息。
SELECT TNAME, DNAME, SAL
FROM TEACHER
WHERE (DNAME = ‘計算機’OR DNAME = ‘生物’)
AND SAL > 1000
ORDER BY SAL;
如果沒有括號,則查詢出來的是計算機類的薪資大于1000的所有老師的信息
IN與OR相比,IN的優點如下:
當選擇的條件很多時,采用IN運算符就顯的很簡便,只需在括號內用逗號間隔依次羅列即可。
使用IN運算符,其后面所列的條件可以是另一條SELECT語句,即子查詢。
LIKE運算符
在SQL語言中是通過通配符來實現的。SQL語言提供的通配符有“%”,“_”,“*”和“[]”;只有CHAR、VARCHAR和TEXT類型的數據才能使用LIKE運算符和通配符。
當查詢條件中沒有通配符時可以用”<>”代替LIKE。例如:
SELECT * FROM teacher t WHERE t.dname NOT LIKE ‘計算機’;等價于
SELECT * FROM teacher t WHERE t.dname <> ‘計算機’;
“%”表示任意多個字符;“_”代表一個字符;“[]”多個字符匹配;
使用ESCAPE定義轉義符,告訴DBMS后面的字符是實際值;例如:
LIKE ‘%M%’ ESCAPE ‘M’;’M’前面的%是通配符,后面的是實際的字符。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。