SQL SERVER 系列(5)select複雜查詢
首先來說一下select的語法:
select 字段名列表 from 表名 [where=條件]
其中字段名列表指的是查詢的字段名,表名是要查詢的表,where條件是隻查詢滿足條件的記錄。
注意:1:如果是所有字段可用*表示
2:如果是所有記錄,則可省略where條件
下面來看個實例,對其瞭解更深一步。
實例:在員工表中查看佟湘玉的年齡和性別
select 性別,年齡 from yuangong where 姓名='佟湘玉'
好了有了上面的基礎我們來看看select複雜查詢常結合的運算符。運算符是一些符號,它們能夠用來執行算術運算、字符串連接、賦值以及在字段、常量和變量之間進行比較。下面爲大家說說一些常用的運算符。
1:算術運算符:包括加(+)、減(—)、乘(*)、除(/)和取模(取餘)(%)
2:字符型運算符:
3:關係型運算符:
4:邏輯字符型:
下面爲大家詳細的說明一下。
一:算術運算符
算術運算符:+、-、*(乘)、/(整除)、%(取餘也叫取模)
先來對這幾個符號熟悉熟悉一下。
select 100 + 200(結果300)
select 200 – 100 (結果100)
select 200 * 100 (結果20000)
select 200 / 100 (結果2)
select 123 % 10 (結果3)
對這幾個運算符號有了一定的瞭解,下面來看個實例
實例:將yuangong表中所有人工資提升10%
update yuangong set 工資=工資+工資*0.1
二:字符型運算符
在這裏引入了like +(用於模糊查詢)
語法:
Select 字段名列表 from 表名 where 字段名 like’表達式’
表達式指:1:% (通配符)可以通配任意多個任意字符
2:_ (通配符)可以通配一個任意字符
3:[a-z] (通配符)通配從小寫a到小寫z的任一個字母
4:[^a-z] (通配符)通配除小寫以外的任意字符
通過實例來進一步的瞭解。
實例:在yuangong表中查找姓李的員工記錄
select * from yuangong where 姓名 like '郭%'
實例:在yuangong表中查找2005年參加工作的員工信息
select * from yuangong where 工作日期 like '%2005%'
實例:在yuangong表中查找二月份參加工作的員工信息
select * from yuangong where 工作日期 like '02%'
實例:顯示yuangong表中郵政編碼正確的員工信息
select * from yuangong where 郵政編碼 like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
實例:顯示yuangong表中郵政編碼含%的錯誤員工信息
select * from yuangong where 郵政編碼 like '%[%]%'
或者select * from yuangong where 郵政編碼 like '%!%%' escape'!'(這裏的意思是說明!後面是個指定字符不是通配符)
字符型運算符就說這麼多,繼續下面的知識。
三:關係型運算符
關係型字符:>、<、>=(大於等於)、<=(小於等於)、<>或!=(不等於)
關係型運算符比較簡單在這不多介紹了。
實例:顯示yuangong表中年齡不等於20的
select * from yuangong where 年齡<>20
四:邏輯運算符
基本預算:“與” and用表示 參與運算條件全部真時,則結果爲真
“或” or用表示 參與運算的條件只有一個真,結果爲真
“非” not用表示 對現有條件取反
同上面一樣我們用實例來詳細的說明一下:
實例:顯示yuangong表中年齡20以上的男同志信息
select * from yuangong where 年齡>20 and 性別='男'
實例:顯示南京和河北的男同志信息
select * from yuangong where 性別='男' and 籍貫='南京' or 性別='男' and 籍貫='河北'
或者select * from yuangong where 性別='男' and (籍貫='南京' or 籍貫='河北')
常用的運算符大致就是上面所說的,下面再說說常與select結合的一些常用語法。
五:select常結合的命令
① In
語法:
Where 字段名 in (字段值列表)
實例:顯示籍貫是北京、河北、南京的員工的信息
select * from yuangong where 籍貫 in ('河北','北京','南京')
② between
語法:
Where 字段名 between 值1 and 值2
實例:顯示年齡在20到30之間的員工的信息
select * from yuangong where 年齡 between 20 and 30
③ distinct
作用:相同輸出值只顯示一次
實例:顯示yuangong表中的部門名稱
select distinct 部門 from yuangong
④ top
作用:從第一記錄開始顯示n條
如:top1顯示第一條,top2顯示的二條
實例:顯示yuangong表中的前3條記錄
select top 3 * from yuangong
⑤ is null
在這裏這個命令是用來處理空值
實例:顯示yuangong表中郵政編碼爲空的員工信息
select * from yuangong where 郵政編碼 is null
實例:顯示yuangong表中郵政編碼不爲空的員工信息
select * from yuangong where not 郵政編碼 is null
今天說的都是些常用的命令,會給我們管理數據庫帶來很多方便。此篇博文就到這了。