T-SQL查詢基礎


今天來帶大家了解下在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 精彩的代碼分析時間就到這里,請持續關注哦!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM