T-SQL编程以及常用函数


1.索引
添加索引,设计界面,在任何一列前右键--索引/键--点击进入添加某一列为索引

2.视图

视图就是我们查询出来的虚拟表
创建视图:create view 视图名
as
SQL查询语句,分组,排序,in 等都不能写
视图的用法: select * from 视图名

3.SQL编程

定义变量:declare @变量名 数据类型 declare @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...case的开头
when @ccname='宝马' then '%宝马%'
when @ccname='奥迪' then '%奥迪%'
else '%'
end --switch...case的结尾

-----------------------------------------------------
循环:
注意循环四要素

declare @str varchar(20)
set @str = '你好'
declare @i int
set @i = 1

while @i<=10
begin
print @str + cast (@i as varchar(20))
set @i = @i + 1
end

whie(条件)
{
循环体
}

-----------------------------------------------------
注意:语句结束之后不要写分号或逗号

-------------------------------------------------------------------------------------------------------------------------------------------------------------

常用函数

-------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

1.数学函数:操作一个数据,返回一个结果

--取上限ceiling
select code,name,ceiling(price) from car ;

--取下限 floor
select floor(price) from car

--ABS 绝对值

--派 PI(),圆周率,括号里不需要加东西

--ROUND 四舍五入
select ROUND(3.76,0)

--SQRT 开根号

--SQUARE 平方,乘以自己


2.字符串函数:

--转换大写 upper
select upper(pic) from car;

--转换小写 lower

--去空格
select ltrim (' 123 ') 去左空格

select ' 123123 ' 可以不查数据,直接这样显示出来

--space() 里面放几个数字,就打印出来几个空格

--LEFT,类似于SubString,从左边开头截取
select LEFT('123456',3);

--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);
从第2位开始截取3位,索引从1开始


3.时间日期函数:

--获取当前系统时间 GetDate()
select getdate();

sysdatetime() 获取数据库服务的时间戳

--获取年月日 year month day
select year('1999-1-1');

--判断日期是否正确,isdate 返回bit
select isdate('2000-2-31')返回bit类型,false是0,true是1

--添加时间 dateadd
select dateadd(year,5,'2000-1-1');
添加什么类型,加多少,给谁加

--返回星期几 datename,返回的值是字符串
select datename(weekday,'2000-1-1');

也可以返回第几天,按月
select datename(day,'2000-1-1');

一年中第几天
select datename(dayofyear,'2000-1-1');

datepart 一样可以返回周几,但是返回的是int类型

posted @ 2016-08-09 16:50  Dream&er  阅读(473)  评论(0编辑  收藏  举报