1、数学函数:操作一个数据,返回一个结果
取上限 ceiling 如果有一个小数就取大于它的一个最小整数 列如9.5 就会取到 10
select code,name,ceiling(price) from car
取下限 floor 如果有一个小数就会舍掉小数点以后的数取整
select floor(price) from car
ABS 绝对值 一张表中有负数就会变成正数
派PI(),圆周率,括号里不需要加东西
ROUND 四舍五入
select round(3.14,1) l两个参数 前面是一个小数,后面是表示保留几位小数
(3.16,1)输出的结果就是3.2
SQRT 开根号
SQUARE平方,自己乘以自己
2、字符串函数:
转换成大写 select upper(pic) from car
转换成小写 select lower() from car
去空格
select ltrim(' 123 ') 去左空格
select rtrim(' 123 ') 去右空格
space() 里面放几个数字,就打印出几个空格
LEFT ,类似于substring,从左边开头截取
select LEFT('123456',3) 结果是123
len 长度
select len('aaaaaa') 返回几个长度
replace 替换
select replace('aaaaabbaaaaa','bb','haha') 把第一个字符串中的bb替换成haha
reverse 翻转
select reverse('abc') 结果是cba
字符串转换函数 str
select str(1.567,3,1) 把1.567转换成字符串,最多留3位,小数点也算一位,保留小数点后1位
字符串截取 SUBSTRING
select substring('abcdefg',2,3) 从第二位开始截取,截取的长度是3个,结果就是bcd
3、日期时间函数:
获取当前系统时间GETADTE()
select getdate() 获取的是当前电脑上的时间
sysdatetime() 获取数据库服务的时间
获取年月日 year month day
select year('1991-1-1')
判断日期是否正确,isdate 返回 bit
select isdate('2016-2-30')返回bit类型,如果是false就返回0,true就返回1
添加时间 dateadd
select dateadd(year,5,'2000-1-1') 第一个参数是要添加什么,第二个是添加多少,第三个是给谁添加
结果返回的是2005-1-1
返回星期几 datename 返回的值是字符串
select datename(weekday,'2000-1-1')
也可以返回第几天,按月
select datename(day,'2000-1-1')
一年中第几天
select datename(dayofyear,'2000-1-1')
datepart 一样可以返回周几,但是返回的是int类型
TSQL编程
1、索引
添加索引,设计界面,在任何一列前右键--索引/键--点击进入添加某一列为索引
2、视图
视图就是我们查询出来的虚拟表
创建视图:create view 视图名
as
SQL查询语句,分组,排序,in 等都不能写
视图的用法:select * from 视图名
建立视图查询更方便
下图,点击执行就保存了视图
下图:从数据库中——视图就可显示
3、SQL编程 语法格式
定义变量:declare @变量名 数据类型 所有的变量都以@开头
列如:select @a int
变量赋值:set @变量名= 值
set @a=10
select @a --直接打印在结果框中
set @a=10 --赋值,不打印
select @a --输出 结果 打印在消息框中
print @a --第二种输出方式
变量使用情况:
查汽车表中名称含有宝马两个字的
declare @name varchar(20)
set @name='宝马'
select * from car where name like '%'+@name+'%'
查汽车表中所有汽车的平均值并输出
declare @price decimal(10,4)
select @price=avg(price) from car
print '所有汽车的平均价格为:'+cast(@price as varchar(20)) 表示数据转换
-------------------------------------------------------------------------
if....else 的用法,if 后面没有小括号,花括号用begin end 替代
if 判断条件
begin
要执行的语句
end
else
begin
要执行的语句
end
--------------------------------------------------------------------------
declare @a int
declare @b int
declare @c int
set @a=10
set @b=5
if @a>@b
begin
set @c=@a+@b
end
else
begin
set @c=@a-@b
end
print @c
--------------------------------------------------------------------------------
C#里的 switch case 变形到数据库里的用法
declare @ccname varchar(20)
set @ccname='宝马'
select * from car where name like
case -- switch...开头
when @ccname='宝马' then'%宝马%' 当....输出...
when @ccname='奥迪' then'%奥迪%'
else '%' 条件都不满足执行这个
end --switch.... 结尾
----------------------------------------------------------------------------
循环:
注意循环四要素
declare @str varchar(20)
set @str='你好'
declare @i int
set @i=1
while @<=10 条件
begin
print @str+cast(@i as varchar(20))
set @i=@i+1 循环体
end
-----------------------------------------------
注意:语句结束之后不要写分号或逗号