SQLServer從入門到精通

一、數據分頁
sql

OFFSET:指定在從查詢表達式中返回行以前,將跳過的行數。數據庫

FETCH:指定在OFFSET子句後,將返回的行數。express


OFFSET是頁號的同義詞,FRTCH則表明每頁顯示的行數。ide

select ProductID, ProductNumber, Name AS ProductName, ListPrice
from Production.Product
order by ProductID
offset 0 rows
fetch next 10 rows only


二、使用變量函數

聲明變量:declare  @variable  int
sqlserver

三種賦值方法:可使用SET關鍵字,這是最佳選擇;也能夠在SELECT語句中爲變量分配一個值;還能夠在聲明變量的過程當中爲其賦值。學習

declare @variable int
set @variable = <value>
select @variable = <column or expression>
from <table name>
declare @variable int = <value>


三、更改數據庫名稱fetch

alert database test_db
motify name=company


四、查詢前三條數據spa

select TOP 3 * from test_table


五、性別不爲男server

select * from test_table where not S_sex='男'


六、用戶權限

賦予權限

grant update,delete on test_table
to sa with grant option

取消權限

deny update on test_table to sa cascade


七、case語句

select s_id,s_name,
case s_name
    when  '馬華'  then  '班長'
    when  '徐三'  then  '學習委員'
    when    '劉傑'    then    '體育委員'
    else    '無'
end
as    '職位'
from    stu_info


八、延遲10秒

declare @name varchar(50);
set @name='admin';
begin
waitfor delay '00:00:10';
print @name;
end;


九、函數

select ASCII('s'),ASCII('sql'),ASCII('1');

輸出:    115    115    49

select char(115),char(49);

輸出:    s    1

select left('football',4);    //right,取右邊的四個

輸出:    foot

select '('+' book '+')','('+LTRIM(' book ')+')';    //刪除字符串左邊的空格

輸出:    ( book )(book )

select STR(3141.55,6,1),STR(123.45,2,2)    //數字轉化爲字符串

輸出:    3141.6**

select REVERSE('abc')    //字符串逆序

輸出:    cba

SELECT LEN('no'),LEN('日期'),LEN(12345)    //字符串長度

輸出:    2    2    5

SELECT CHARINDEX('a','banana'),CHARINDEX('a','banana',4),CHARINDEX('na','banana',4)    //指定字符開始位置

輸出:    2    4    5

SELECT LOWER('BEA'),LOWER('Well')    //大寫字符轉換爲小寫,UPPER--轉換爲大寫

輸出:    bea    well

SELECT REPLACE('xxx.sqlserver2012.com','x','w')    //字符串替換

輸出:    www.sqlserver2012.com

SELECT ABS(2),ABS(-3.3),ABS(-33)    //取絕對值

輸出:    2    3.3    33

SELECT PI()    //圓周率

輸出:    3.14159265358979

SELECT SQRT(9),SQRT(40)    //求平方根

輸出:    36.32455532033676

SELECT RAND(),RAND(),RAND()    //產生0-1之間的一個隨機數
SELECT ROUND(1.38,1),ROUND(1.38,0),ROUND(232.38,-1),ROUND(232.38,-2)    //四捨五入

輸出:    1.40 1.00     230.00     200.00

SELECT SIGN(-21),SIGN(0),SIGN(21)    //符號函數

輸出:    -101

SELECT CEILING(-3.35),CEILING(3.35)    //向上取整

輸出:    -34

SELECT FLOOR(-3.35),FLOOR(3.35)    //向下取整

輸出:    -43

SELECT POWER(2,2),POWER(2.00,-2)    //冪運算

輸出:    40.25

SELECT EXP(3),EXP(-3),EXP(0)    //已e爲底的冪運算

輸出:    20.08553692318770.04978706836786391


十、數據類型轉換函數

SELECT CAST('121231' AS DATE),CAST(100 AS CHAR(3)),CONVERT(TIME,'2016-12-13 10:57:00')    //數據轉換

輸出:    2012-12-31100    10:57:00.0000000


十一、日期和時間函數

select   getdate()    //獲取當前日期
SELECT GETUTCDATE()    //獲取世界標準日期值
select  day('2016-12-13 01:01:01')    //獲取天
select  month('2016-12-13 01:01:01')    //獲取月
select  year('2016-12-13 01:01:01')    //獲取年
select    datename(weekday,'2016-12-13 01:01:01')    //星期幾
select    datename(dayofyear,'2016-12-13 01:01:01')    //一年的第幾天


增長時間

SELECT DATEADD(YEAR,1,'2016-12-13 01:01:01'),
DATEADD(MONTH,2,'2016-12-13 01:01:01'),
DATEADD(HOUR,1,'2016-12-13 01:01:01')

輸出:2017-12-13 01:01:01.000 2017-02-13 01:01:01.000 2016-12-13 02:01:01.000


十二、系統函數

相關文章
相關標籤/搜索