1. 程式人生 > >mysql基礎篇之多表查詢(一)

mysql基礎篇之多表查詢(一)

1、前面的
select * from emp limit 5;


2、Null的用法
0和null是不一樣的,null表示空值,沒有值,0表示一個確定的值
其中null不能參與如下運算:<> != =
null可以參與is is not

3、排序

SELECT * from emp ORDER BY sal ASC,empno DESC

asc 為預設狀態下到的從小到大排序
desc 為從大到小排序

4、模糊查詢
A、萬用字元:%
-- A%以A開頭的  %A以A結尾的   %A%只要含有A的
-- _[這裡是下劃線] 表示任何單個字元

SELECT * from emp where ename like '_O%'

5、使用正則表示式匹配
正則表示式字元"."匹配任何單個的字元(單位元組字元)
一個字元類"[...]"匹配在方括號內的任何字元。例如,"[abc]"匹配"a"、"b"、"c"。為了命名字元的一個範圍,則使用一個“-”。“[a-z]”匹配任何小寫字母,而“[0-9]”匹配任何數字。
“*”匹配0個或多個在它前面的東西。例如“x*”匹配任何數量的“x”字元,“[0-9]*”匹配的任何數量的數字。而“.*”匹配任何數量的任何東西。
正則表示式是區分大小寫的,但是如果你希望,你能使用一個字元類匹配兩種寫法。例如“[aA]”匹配小寫或者大寫的“a”而[a-zA-Z]匹配兩種寫法的任何字母。
如果它出現在被測試值的任何地方,模式就匹配(只要他們匹配整個值,SQL 模式匹配)。
為了定位一個模式以便它必須匹配被測試值的開始或結尾,在模式開始處使用“^”或在模式的結尾用“$”。
為了說明擴充套件正則表示式如何工作,上面所示的LIKE 查詢在下面使用REGEXP 重寫:
為了找出以“三”開頭的名字,使用“^”匹配名字的開始。
 

SELECT * from emp where ename REGEXP '^j' -- 匹配以J開頭的字元
SELECT * from emp where ename REGEXP 's$' -- 匹配以S結尾的字元

SELECT * from emp where ename REGEXP 't{2}' -- {}代表連續出現次數