今天來帶大家了解下在sql server 中的查詢機制
使用select語句進行查詢
1.查詢所有的數據行和列
select * from student
2.查詢部分行和列
select scode,sname,saddress from * student where saddress='北京'
3.在查詢中使用列的別名
select scode as 學生編號,sname as 姓名 ,saddress as 地址 from student where saddress<>'北京'
4.查詢空值
select sname from student where semail is null
5.在查詢中使用常量
select 姓名=sname ,地址=saddress,'漢族' as 民族 from student
6.查詢返回限制的函數
select top 5 sname, saddress from student where Ssex=0
查詢排序
如何使用order by
如果要按照一定順序排列查詢語句選中的行,則需要使用order by 字句,並且排序可以是升序(asc)可以是降序(desc),
eg: 將學生成績按照升序排列
select studentID as 學生編號, CourseID as 課程ID,Score as 成績 from Score where Score >60 order by Score,CourseID
在查詢中使用函數
1.字符串函數
函數名稱: 1.CharIndex('str1','str2',index)//位置從開始 --第一個參數:要查詢的字符串 --第二個參數:在哪個字符串中搜索 --第三個參數:從str2的第幾個字母開始搜索 --注意點:如果在str2中沒有找到str1,那么返回 eg: SELECT CHARINDEX('JBNS','My Jbns Course') 2.len():獲取小括號中字符串的長度,空格也算一個字符長度 eg: SELECT LEN('SQL Server課程') 3.upper():將括號中出現的英文全部轉換成大寫 eg: select upper('i can speak english.你能嗎?') select lower('I HAVE A DREAM') 4.LTrim():清除括號中內容左邊的空格(left:right) eg: select rtrim(' 生活不是林黛玉, ') 5.既想移除左邊空格,也想移除右邊空格 eg: select rtrim(ltrim(' 生活不是林黛玉, ')) select ltrim(rtrim(' 你還好吧! ')) 6.思路靈活 eg: select len(rtrim('今年奇怪了,北京沒下雪,去去去 ')) 7.substring('字符串',截取的位置,截取的長度) eg: select substring('我是中國人,我愛自己偉大的祖國,真的',6,1) 8.right():從字符串(左)右邊返回指定類型的字符 eg: select left('大家今天好像都沒有交日記本,我去',3) select right('大家今天好像都沒有交日記本,我去',2) 9.replace('str1','要替換的字符','目標字符'): eg: select replace('張海迪,殘疾人,雖然手不殘疾,但是X殘疾','殘 疾','好') 10.stuff('字符串',刪除的起始位置,刪除的長度,'插入的字符串') eg: select stuff('我愛你中國,我愛你故鄉',4,2,'北京')
2.日期函數
1.getdate():獲取當前日期和時間 eg: select getdate() 2.dateadd(按年/月/日添加,增量,時間) eg: select dateadd(yy,100,'2014-8-6') select dateadd(year,-20,getdate()) 3.datediff(按年/月/日求差,小時間,大時間) eg: select datediff(year,'1998-01-01',getdate()) 4.datename:獲取某個日期是星期幾 eg: select datename(dw,'2014-08-06') 5.datepart(mm,日期):獲取指定日期對應的年/月/日部分 eg: select datepart(yy,getdate()) 通過該方式也可以獲取當天是周幾 eg: select datepart(dw,getdate())
3.數學函數
1.rand():產生一個到之間的隨機數 eg: select right(rand(),4) 2..abs:取絕對值 eg: select abs(-10) select abs(10)非負數 3.ceiling:天花板,你要看天花板,抬頭,向上取整 eg: select ceiling(1.999991) 4.floor:向下取整 eg: select floor(1.999999) select ceiling(1.000000000000001) select floor(2.999999999999999) 5.power(5,2)求冪值 eg: select power(4,4) select 1*2/3+5-56+100-5/100 select power(2,3) 6.round:將一個數字四舍五入到指定精度 eg: select round(42.564,1) 7.sign:如果括號中寫的是一個正數,返回,如果是負數,返回-1 eg: --如果是返回 select sign(20) select sign(0) 8.sqrt()開平方 eg: select sqrt(9)
4.常用的系統函數
convert:(用來轉換數據類型) eg: select convert (varchar(5),12345) 返回:字符串'12345'
ok 精彩的代碼分析時間就到這里,請持續關注哦!
