【1】系统时间
--1、获取系统当前时间
select GETDATE()
insert into UserInfos(UserName,[Password],Age)--Password在系统中有保留字,应使用[]转义
values('lily','123456',19);
insert into UserInfos(UserName,[Password],Age,Sex,CreateTime)
values('sherry','456789',21,1,'2020-12-01');
select * from UserInfos;
【2】别名
--2、起别名(3种)
select userid as 编号,username 姓名,[password] 密码 ,年龄=age
from UserInfos;
【3】cast()拼接
--3、拼接
--(1)(字符串)字段拼接,数字与字符串不可拼接,数字+数字进行计算
select userid as 编号,(username+[password]) 组合字段 ,年龄=age
from UserInfos;
--(2)数字与字符串拼接,需要进行转换
select cast(userid as varchar)+username 组合字段,[password] 密码 ,年龄=age
from UserInfos;
--(3)中间可以任意加字符
select username + '-'+ [password] 组合字段 ,年龄=age
from UserInfos;
【4】空值判断
--4、判断空值用is [not]
--判断数值用=
select * from UserInfos;
insert into UserInfos(UserName,Password,Sex)
values('john','123789',0);
select * from UserInfos
where age is null;--不能写成age=null,不是等值判断,而是存在与否的问题
【5】伪列
--5、查询常量列
select *,'常量列' from UserInfos;
select *,0 as IsVaild from UserInfos;--增加“默认无效”列
【6】查询部分条数据
--6、查询2条数据
select top 2 * from UserInfos;
--查询20%条的数据(四舍五入,向上取整)
select top 20 persent * from UserInfos;
【7】字符串函数
函数名 | 描 述 | 示 例 |
CHARINDEX | 寻找一个指定的字符串在另一个字符串中的起始位置 | SELECT CHARINDEX('JBNS','MyJbns Course',1 ) 返回:4 |
LEN | 返回传递给它的字符串长度 | SELECT LEN('SQL Server课程') 返回:12 |
UPPER | 把传递给它的字符串转换为大写 | SELECT UPPER('sql server课程') 返回:SQL SERVER课程 |
LTRIM | 清除字符左边的空格 | SELECT LTRIM (' 周智宇 ') 返回:周智宇 (后面的空格保留) |
RTRIM | 清除字符右边的空格 | SELECT RTRIM (' 周智宇 ') 返回: 周智宇(前面的空格保留) |
RIGHT | 从字符串右边返回指定数目的字符 | SELECT RIGHT('买卖提.吐尔松',3) 返回:吐尔松 |
REPLACE | 替换一个字符串中的字符 | SELECT REPLACE('莫乐可切.杨可','可','兰') 返回:莫乐兰切.杨兰 |
STUFF | 在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串 | SELECT STUFF('ABCDEFG', 2, 3, '我的音乐我的世界') 返回:A我的音乐我的世界EFG |
【8】日期函数
函数名 | 描 述 | 示 例 |
GETDATE | 取得当前的系统日期 | SELECT GETDATE() 返回:今天的日期 |
DATEADD | 将指定的数值添加到指定的日期部分后的日期 | SELECT DATEADD(mm,4,'01/01/2009') 返回:以当前的日期格式返回05/01/2009 |
DATEDIFF | 两个日期之间的指定日期部分的间隔 | SELECT DATEDIFF(mm, '01/01/2009', '05/01/2009') 返回:4 |
DATENAME | 日期中指定日期部分的字符串形式 | SELECT DATENAME(dw, '01/01/2000') 返回:Saturday或星期六 |
DATEPART | 日期中指定日期部分的整数形式 | SELECT DATEPART(day, '01/15/2000') 返回:15 |
select getdate() 本机:自己电脑的时间;远程:别的电脑的时间
01/05/2020 :2020年5月1日
datename(mm,getdate()) 获取格式信息(一个字符串):09;datepart(mm,getdate()) 获取整数信息(一个数字):9
【9】数学函数
函数名 | 描 述 | 示 例 |
RAND | 返回从 0 到 1 之间的随机 float 值 | SELECT RAND( ) 返回:0.79288062146374 |
ABS | 取数值表达式的绝对值 | SELECT ABS(-43) 返回:43 |
CEILING | 取大于或等于指定数值、表达式的最小整数 (向上取整) | SELECT CEILING(43.5) 返回:44 |
FLOOR | 取小于或等于指定表达式的最大整数(向下取整) | SELECT FLOOR(43.5) 返回:43 |
POWER | 取数值表达式的幂值 | SELECT POWER(5,2) 返回:25 |
ROUND | 将数值表达式四舍五入为指定精度 | SELECT ROUND(43.553,1) 返回:43.600 |
SIGN | 对于正数返回+1,对于负数返回-1,对于0则返回0 | SELECT SIGN(-43) 返回:-1 |
SQRT | 取浮点表达式的平方根 | SELECT SQRT(9) 返回:3 |
select cast(rand()*2 as int); 结果总是0或1
【10】系统函数
函数名 | 描 述 | 示 例 |
CONVERT | 用来转变数据类型 | SELECT CONVERT (VARCHAR (5),12345) 返回:字符串12345 |
CURRENT_USER | 返回当前用户的名字 | SELECT CURRENT_USER 返回:你登录的用户名 |
DATALENGTH | 返回用于指定表达式的字节数 | SELECT DATALENGTH ('中国A联盟') 返回:9 |
HOST_NAME | 返回当前用户所登录的计算机名字 | SELECT HOST_NAME() 返回:你所登录的计算机的名字 |
SYSTEM_USER | 返回当前所登录的用户名称 | SELECT SYSTEM_USER 返回:你当前所登录的用户名 |
USER_NAME | 从给定的用户ID返回用户名 | SELECT USER_NAME(1) 返回:从任意数据库中返回“dbo” |
--convert(要转换成的类型,字段名,格式)
--其中“格式”可以上网搜“sql server convert格式”,能搜到很全
--101:表示“月/日/年”
select UserId,UserName,convert(varchar,CreateTime,101) as Createtime
from UserInfos;
sql server convert格式:https://www.w3school.com.cn/sql/func_convert.asp
[dbo]代表当前登录对象