千家信息网

SQLServer从入门到精通

发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,1、数据分页OFFSET:指定在从查询表达式中返回行之前,将跳过的行数。FETCH:指定在OFFSET子句后,将返回的行数。OFFSET是页号的同义词,FRTCH则代表每页显示的行数。select P
千家信息网最后更新 2025年02月08日SQLServer从入门到精通

1、数据分页

OFFSET:指定在从查询表达式中返回行之前,将跳过的行数。

FETCH:指定在OFFSET子句后,将返回的行数。


OFFSET是页号的同义词,FRTCH则代表每页显示的行数。

select ProductID, ProductNumber, Name AS ProductName, ListPricefrom Production.Productorder by ProductIDoffset 0 rowsfetch next 10 rows only


2、使用变量

声明变量:declare @variable int

三种赋值方法:可以使用SET关键字,这是最佳选择;也可以在SELECT语句中为变量分配一个值;还可以在声明变量的过程中为其赋值。

declare @variable intset @variable = 
select @variable = from 
declare @variable int = 


3、更改数据库名称

alert database test_dbmotify name=company


4、查询前三条数据

select TOP 3 * from test_table


5、性别不为男

select * from test_table where not S_sex='男'


6、用户权限

赋予权限

grant update,delete on test_tableto sa with grant option

取消权限

deny update on test_table to sa cascade


7、case语句

select s_id,s_name,case s_name    when  '马华'  then  '班长'    when  '徐三'  then  '学习委员'    when    '刘杰'    then    '体育委员'    else    '无'endas    '职位'from    stu_info


8、延迟10秒

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


9、函数

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


10、数据类型转换函数

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


11、日期和时间函数

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


12、系统函数





































0