SQL宝典

上传人:ali****an 文档编号:110990783 上传时间:2019-11-01 格式:DOC 页数:53 大小:147.50KB
返回 下载 相关 举报
SQL宝典_第1页
第1页 / 共53页
SQL宝典_第2页
第2页 / 共53页
SQL宝典_第3页
第3页 / 共53页
SQL宝典_第4页
第4页 / 共53页
SQL宝典_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《SQL宝典》由会员分享,可在线阅读,更多相关《SQL宝典(53页珍藏版)》请在金锄头文库上搜索。

1、SQL宝典:SQL Server 数据库的高级操作(1) 批处理(2) 变量(3) 逻辑控制(4) 函数(5) 高级查询*/(1)批处理将多条SQL语句作为一个整体去编译,生成一个执行计划,然后,执行!理解批处理的关键在于编译,对于由多条语句组成的一个批处理,如果在编译时,其中,有一条出现语法错误,将会导致编译失败!create table t(a int,b int)- 注释- 如果多行注释中包含了批处理的标识符go- 在编译的过程中代码将会被go分割成多个部分来分批编译- 多行注释的标记将会被分隔而导致编译出错- 以下几条语句是三个非常经典的批处理- 你猜一下会添加几条记录!/*inser

2、t into t values (1,1)go*/insert into t values (2,2)go/*insert into t values (3,3)*/go- 查询看添加了几条记录select * from ttruncate table t(2)变量- 全局变量SQL Server中全局变量由系统定义、系统维护,用户一般仅可对其进行读取!- 查看SQL Server版本print version- 服务器名称print servername- 系统错误编号insert into t values (a,a)print errorinsert into t values (a,a

3、)if error = 245print Error- SQL Server 版本的语言信息print LANGUAGE- 一周的第一天从星期几算起print datefirst- CPU 执行命令所耗费时间的累加print cpu_busy- 获取最近添加的标识列的值create table tt(a int identity(3, 10),b int)insert into tt (b) values (1)print identityselect * from tt- 局部变量局部变量由用户定义,仅可在同一个批处理中调用和访问declare intAge tinyintset intAg

4、e = 12print intAgedeclare strName varchar(12)select strName = stateprint strNameselect au_lname, strName from authors(3)逻辑控制- IF条件判断declare i intset i = 12if (i 10)begin- print Dadadada!print Dadadada!end- elsebeginprint XiaoXiao!print XiaoXiao!end- While循环控制declare i int;set i = 12;print ireturn;wh

5、ile (i 18)beginprint i;set i = i + 1;if i 15break;end;- CASE 分支判断select au_lname, state, 犹他州 from authors where state = UTselect au_lname, state, 密西西比州 from authors where state = MIselect au_lname, state, 肯塔基州 from authors where state = KSselect au_lname, state, case statewhen UT then 犹他州when MI the

6、n 密西西比州when KS then 肯塔基州when CA then 加利福利亚else stateendfrom authors(4.1)系统函数- 获取指定字符串中左起第一个字符的ASC码print ascii(ABCDEF)- 根据给定的ASC码获取相应的字符print char(65)- 获取给定字符串的长度print len(abcdef)- 大小写转换print lower(ABCDEF)print upper(abcdef)- 去空格print ltrim( abcd dfd df )print rtrim( abcd dfd df )- 求绝对值print abs(-12)

7、- 幂- 3 的 2 次方print power(3,2)print power(3,3)- 随机数- 0 - 1000 之间的随机数print rand() * 1000 - 获取圆周率print pi()- 获取系统时间print getdate()- 获取3天前的时间print dateadd(day, -3 , getdate()- 获取3天后的时间print dateadd(day, 3 , getdate()- 获取3年前的时间print dateadd(year, -3 , getdate()- 获取3年后的时间print dateadd(year, 3 , getdate()-

8、 获取3月后的时间print dateadd(month, 3 , getdate()- 获取9小时后的时间print dateadd(hour, 9 , getdate()- 获取9分钟后的时间print dateadd(minute, 9 , getdate()- 获取指定时间之间相隔多少年print datediff(year, 2005-01-01, 2008-01-01)- 获取指定时间之间相隔多少月print datediff(month, 2005-01-01, 2008-01-01)- 获取指定时间之间相隔多少天print datediff(day, 2005-01-01, 2

9、008-01-01)- 字符串合并print abc + defprint abcderprint abc + 456print abc + 456- 类型转换print abc + convert(varchar(10), 456)select title_id, type, price from titles- 字符串连接必须保证类型一致(以下语句执行将会出错)- 类型转换select title_id + type + price from titles- 正确select title_id + type + convert(varchar(10), price) from titles

10、print 123 + convert(varchar(3), 123)print 123 + 123print convert(varchar(12), 2005-09-01,110)- 获取指定时间的特定部分print year(getdate()print month(getdate()print day(getdate()- 获取指定时间的特定部分print datepart(year, getdate()print datepart(month, getdate()print datepart(day, getdate()print datepart(hh, getdate()pri

11、nt datepart(mi, getdate()print datepart(ss, getdate()print datepart(ms, getdate()- 获取指定时间的间隔部分- 返回跨两个指定日期的日期和时间边界数print datediff(year, 2001-01-01, 2008-08-08)print datediff(month, 2001-01-01, 2008-08-08)print datediff(day, 2001-01-01, 2008-08-08)print datediff(hour, 2001-01-01, 2008-08-08)print date

12、diff(mi, 2001-01-01, 2008-08-08)print datediff(ss, 2001-01-01, 2008-08-08)- 在向指定日期加上一段时间的基础上,返回新的 datetime 值print dateadd(year, 5, getdate()print dateadd(month, 5, getdate()print dateadd(day, 5, getdate()print dateadd(hour, 5, getdate()print dateadd(mi, 5, getdate()print dateadd(ss, 5, getdate()- 其他

13、print host_id()print host_name()print db_id(pubs)print db_name(5)- 利用系统函数作为默认值约束drop table tttcreate table ttt(stu_namevarchar(12),stu_birthdaydatetime default (getdate()alter table tttadd constraint df_ttt_stu_birthday default (getdate() for stu_birthdayinsert into ttt values (ANiu, 2005-04-01)insert into ttt values (ANiu, getdate()insert into ttt values (AZhu, default)sp_help tttselect * from ttt(4.2)自定义函数select title_idfrom titles where type = businessselect stuff(title_id,1,3,ABB), type from titles where type = businessselect count(title_id) from titles where type = businessselect title_i

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号