数据库补充:常量,变量,函数及注释符,运算符,通配符,流程控制

 

常量

数据在内在中存储始终不变化的量叫常量 ,也称文字值或标量值.

常见的常量有: 数字常量,字符串常量;日期和时间常量;符号常量

变量

数据在内存中存储可以变化的量叫变量 SQL可以使用两种变量,一种是局部变量(以@开头,set 赋值,select 给多个局部变量赋值)和全局变量.

局部变量实例1

declare @song char(20)

set @song='I love flower'

print @song

局部变量实例2

declare @song char(20),@a int,@b int

select @song='I love flower',@a=1,@b=2

print @song

print @a

print @b

注释符,运算符,通配符,流程控制

注释 :不参与代码的编译

eg:

/*对Mydb数据库进行操作

显示My数据库中的Table1表中的全部内容

其中,Go命令标志批处理的结束

*/

Use Mydb

Select * from table1

Go

 

通配符 一般用like 与通配符结合起来(%,_,[],[^])

[]-指定范围([a~f])或集合([abcdef])中的任何单个字符 eg [0~9]123 表示以0~9之间任意一个字符开头,以’123’结尾的字符

[^]-表示不属于指定范围([a~f])或集合([abcdef])中的任何单个字符 eg [^0~5]123 表示不以0~5之间任意一个字符开头,却以’123’结尾的字符

流程控制

Begin…end 将多个SQL语句组合为一个逻辑块

declare @x int,@y int,@t int

select @x=1,@y=2

begin

set @t=@x

set @x=@y

set @y=@t

end

print @x

print @y

输入结果为 2 1

Waitfor; goto;while,if…else;break;return;continue

--while实现-10数字相加

declare @n int,@sum int

set @n=1

set @sum=0

while @n<=10

begin

set @sum=@n+@sum

set @n=@n+1

end

print @sum

 

/*goto语句实现跳转结果输出2 3*/

declare @x int

select @x=1

loving:

    print @x

    select @x=@x+1

while @x<=3 goto loving

/*waitfor语句结果过秒后输出'祝你节日快乐!'*/

waitfor delay '00:00:05'

print '祝你节日快乐!'

/*waitfor语句结果等到某个时间输出'祝你节日快乐!'*/

waitfor time '22:26:05'

print '祝你节日快乐!'

常用命令

 

Declare命令 用于声明一个或多个局部变量,游标变量或表变量

 

Print命令 显示一个字符串(最长为255个字符),局部变量或全局变量的内容

 

Select 查询和赋值

 

Set 局部变量赋值

 

Use 在前工作区打开或关闭数据库

 

Dbcc命令 用于验证数据库完整性,查找错误和分析系统使用情况等

/*demoData 是指定的数据库名*/

dbcc checkalloc('demoData')

Checkpoint命令

Raiserror 在SQL Server系统中返回错误信息时同时返回用户指定的信息

Readtext命令 用于读取text,ntext或image列中的值,从指定的位置开始读取指定的字符数

Backup

Restore

Shutdown

Writetext

函数

聚合函数

 

数学函数

         通常可以用在SQL语句的表达式中,eg avg,sum,max,min….

字符串函数

日期和时间函数

--getdate 返回当前系统日期和时间
select GETDATE() as '现在时间'
--day 返回指定日期的天
select day('2013-07-05') as '指定日'
go
select DAY(getdate()) as '当前日'
--month 返回指定日期的月
select month('2013-07-05') as '指定月'
go
select month(getdate()) as '当前月'
--year 返回指定日期的年
select year('2013-07-05') as '指定年'
go
select year(getdate()) as '当前年'
--datediff 返回日期和时间的边界数 datediff(datepart,startdate,enddate)
--datepart可为year,quarter(季度),month,day,week,hour,minute,scond,millisecond
select datediff(day,'2012-07-05','2013-07-05') as '时间差距-datepart为日'
go
select datediff(QUARTER,'2012-07-05','2013-07-05') as '时间差距-datepart为季度'
go
select datediff(MILLISECOND,'2013-07-04','2013-07-05') as '时间差距-datepart为毫秒'
go
--dateadd() 添加日期时间 格式 dateadd(datepart,number,date)
select DATEADD("month",1,getdate()) as '加一个月的时间'

转换函数(castconvert)

--语法格式cast(expression as data_type)

select CAST('luoqing' as nvarchar(3))

as 输出结果

--语法格式convert(data_type[lenght],expression[,style])

select

    GETDATE() as UncovertedDateTime,

    cast(getdate() as nvarchar(30)) as UsingCast,

    convert(nvarchar(30),getdate(),126) as UsingConvrtTo_ISO601

go

元数据函数

Col_length 返回列定义的函数

--语法格式col_length('table','column')

select col_length ( 'Student','StudentName') as char类型长度

Col_name 返回数据库列的名称

--语法格式col_name('table_id','column_id'),table_id=object_id('table')

select col_name ( object_id('Student'),3 )

as char类型长度

Db_name 返回数据库名

--语法格式db_name()

select DB_NAME() as [Current Database]

posted @ 2013-07-05 08:04  乡香田甜  阅读(476)  评论(0编辑  收藏  举报