数据库原理与SQL Server

Download Report

Transcript 数据库原理与SQL Server

《数据库应用-数据库原理与SQL Server》
—— 国家级精品课程
http://www.xihangzh.com/sjk
数据库原理与SQL Server
第9课 编写程序
主讲:壮志剑
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
第9课 设计程序
目标:

掌握Transact-SQL程序设计语言

了解Transact-SQL程序设计方法
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
4.1 Transact-SQL语言基础
SQL:Structured Query Language ,RDBMS标准语言
数据定义(DDL): CREATE、ALTER、DROP
数据操纵(DML): SELECT、INSERT、DELETE、UPDATE
T-SQL
数据控制(DCL): GRANY、DENY、ROVOKE
附加语言元素:
变量、运算符、函数、流程控制语句
引例:求方程x2-3x+1=0的根
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
一、基本语句
注释语句 : --<注释文本>
或 /*
<注释文本>
[…]
*/
定义批处理结束语句 :GO
输出语句 :PRINT <表达式>
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
二、数据类型
整型:bigint(8)、int(4)、smallint(2)、tinyint(1)
数值
定点: decimal或numeric
实型
浮点: float(8)、real(4)
字符: char(1~8000)、varchar(变长)、text(>8000)
数据类型
时间日期: datetime(1753-9999)、smalldatetime(1900-2079)
货币: money(8)、smallmoney(4)
二进制: bit(0/1)、binary、varbinary(变长)、image
自定义
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
三、变量
定义:DECLARE @<局部变量名> <数据类型>
局部变量
赋值:SET @<局部变量名>=<表达式>
作用域:批
变量
全局变量:系统变量,以@@开头,称无参函数
实例 查看SQL Server版本、服务器、服务名称等信息
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
四、运算符
1. 算术运算符:+、-、*、/、%
2. 字符串运算符:+(注意与算术加的区别)
3.关系运算符:=、>、<、>=、<=、<>、!=、!>、!<
4.逻辑运算符:not、and、or、between、like、in、
any、some、all、exists
5. 赋值运算符:=
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
五、函数
1.数学函数:sin(n)(正弦)、asin(n)(反正弦)、pi()(圆周率)、abs(n)(绝对值)、
exp(n)( 指 数 ) 、 log(n)( 对 数 ) 、 power(n,m)(nm) 、 round(n,m)( 四 舍 五 入 ) 、
sign(n)(符号)、sqrt(n)(平方根)、rand([n])(随机数) 等
2.字符串函数:str(n,n1,n2)(数值转字符串)、len(s)(串长)、left(s,n)(左子串)、
right(s,n)(右子串)、substring(s,n1,n2)(子串)、lower(s)(转小写)、upper(s)(转
大写)、ltrim(s)(删除左空格)、rtrim(s)(删除右空格)、space(n)(产生空格)、
REVERSE(s)(反转字符串)、charindex(s1,s2)(s1在s2中的起始位置)等
3.日期时间函数:getdate()、year(d)、month(d)、day(d)、datepart(datepart,d)
(datepart日期类型)、dateadd(datepart,n,d)(日期加)、datediff(datepart,d1,d2)
(日期减)等
实例 计算香港回归多少年、多少天,今天以后15个月是哪一天。
4.类型转换函数:cast(expression AS data_type)
convert(data_type,expression[,style])
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
4.2 流程控制语句
顺序结构
结构化程序
选择结构
循环结构
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
一、定义语句块语句
语句格式:
BEGIN
<T-SQL语句>|<语句块>
END
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
二、选择结构
1. 条件语句: IF <逻辑表达式>
<T-SQL语句>|<语句块>
[ELSE
<T-SQL语句>|<语句块>]
实例 根据分数输出考试等级
实例 求3个整数中最大数
2.多路分支语句: CASE
WHEN <逻辑表达式> THEN <表达式>
[…]
ELSE <表达式>
END
实例 用CASE语句实现根据分数输出考试等级
实例 根据身份证号输出学生年龄
集合并
西安航空技术高等专科学校
CASE语句作表达式
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
三、循环结构
1. 循环语句:WHILE <逻辑表达式>
<T-SQL语句>|<语句块>
实例 求1到100之间的奇数和
2. 中断语句 :BREAK
3. 短路语句 :CONTINUE
实例 求100~200之间的所有素数
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
四、无条件转移语句
语句格式:
GOTO <标号>
实例 求10的阶乘
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
五、等待语句
语句格式:
WAITFOR DELAY '<时间间隔>'|TIME '<时间>'
实例 设置等待一小时后执行查询
实例 设置到十点整执行查询
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
六、返回语句
语句格式:
RETURN [<整数表达式>]
返回值:0
执行成功
负数 失败
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
4.2 脚本文件
脚本:一条或多条T-SQL语句 。
脚本文件 :保存脚本的文件 ,扩展名.sql。
如库结构、表结构文件。
执行:查询分析器、osql、isql。
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
一、在查询分析器中使用脚本
查询分析器→文件→保存
查询分析器→文件→打开
实例 将求素数的脚本保存为脚本文件
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
二、在osql中使用脚本
osql:查询SQL Server 2000的交互式命令行工具。
语法格式:
osql [-S<服务器名>] [-U<用户名>] [-P<密码>] [-i<脚本文件>]
实例 使用osql查询数据库student表c的所有信息
实例 使用osql执行脚本文件
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
作业
第四章
习题 1、2、3、4、5、6、7、8
西安航空技术高等专科学校
数据库应用-数据库原理与SQL Server
http://www.xihangzh.com/sjk
实训
实训名称:Transact-SQL程序设计
目的要求:掌握用Transact-SQL语句设计程序的方法
操作步骤:
① 启动查询分析器。
② 用T-SQL编写程序,求前多少个自然数之和不超过5 000,并存储为脚本文
件“<班级>_<学号>_1”。
③ 用T-SQL语句编写程序,输出所有的水仙花数,并存储为脚本文件“<班级
>_<学号>_2”。所谓水仙花数是指一个3位整数,其各位数字的立方和等于该
数本身。
④ 在osql中执行上述脚本文件。
⑤ 完成实例4-1~4-9。
西安航空技术高等专科学校