6.Mysql不要用top用limit
在我們使用查詢語句的時候,經常要返回前幾條或者中間某幾行數據,這個時候怎么辦呢?
查找時Mysql不能用top,反正我用不了,查了下可以用limit來替換。
比如,想查詢下TotalPay前20有哪些人,不能用SELECT TOP 20 * FROM 加州薪水 WHERE OtherPay > 23;
那用啥?答案是order by +limit,先排序再查前幾
select * from 加州薪水 order by TotalPay desc limit 10
7.SQL LIKE 操作符
超喜歡這個like有木有,比如我只知道某個人叫John什么的,用它查就可以查到全名
select * from 加州薪水 where EmployeeName like 'John%'

好吧有2377人叫John什么的。
like用法很相似,上述語句中可以'%xxx'、'xxx%'、'%xxx%',如果不想包含某個字段,用如下:
select * from 加州薪水 where EmployeeName not like 'John%'
這里還有一個關於通配符的延伸,除了%,常用的還有 _ [] [! ]

圖片來源:http://www.w3school.com.cn/sql/sql_wildcards.asp
舉個例子:
知道某個人叫John_on Y_U什么的,查詢一下:
select * from 加州薪水 where EmployeeName like 'John_on Y_U'
想找名字開頭是J或A或P的人,查找一下:
select * from 加州薪水 where EmployeeName like '[JAP]%'
如果要排除名字開頭是J或A或P的人,直接在[]中加個感嘆號
8. in和between
要找兩個人,知道他們名字,直接查找:(Mysql中不分大小寫,所有有時候可能會出現名字大小寫的同一個人返回兩次)
select *from 加州薪水 where EmployeeName in ('GARY JIMENEZ','VINCENT NOLAN')

between類似in,理解為介於某某與某某之間的行,不介於就在前加個not
9.SQL Alias(別名)
給表取個小別名jia
select EmployeeName from 加州薪水 as jia
給列EmployeeName取個小別名Em
select EmployeeName as Em from 加州薪水
四、SQL函數練習
這一節針對於數據庫中的計算

1.最基礎模板
根據下面這個模板,我們也知道了除了avg外,像first、last、count、max、min、sum、mid、len用法
select 函數(column) from table_name
2.group by
對於稍微復雜點的計算,group by函數不能忘記,比如在加州薪水例子中,我們需要查不同職位的薪水為多少,代碼如下:
select JobTitle,avg(BasePay) from 加州薪水 group by JobTitle

3.HAVING 子句
在 SQL 中增加 HAVING 子句原因是,WHERE 關鍵字無法與合計函數一起使用。舉個例子,我們希望查找平均基本工資超過70000的職位
select JobTitle,avg(BasePay) from 加州薪水 group by JobTitle having avg(BasePay>70000)

4.大小寫轉換
UCASE() 函數把字段的值轉換為大寫。如果要把大寫轉為小寫,用LCASE 函數
select ucase(column_name) from table_name
5.round函數
round函數用於把數值字段舍入為指定的小數位數。
比如我想把basepay部分的數值精確到后一位小數點:
select round(BasePay,1) from 加州薪水
