
国家品牌国际标准国家信息化计算机教育认证 www.ceac.org.cn 数据库原理与SQL Server 第4章 检索数据 高等职业教育电子信息类专业 “双证课程”培养方案配套演示文稿 中国高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 国家信息化计算机教育认证 高等职业教育电子信息类专业 “双证课程”培养方案配套演示文稿 中国高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 数据库原理与SQL Server 第4章 检索数据

www.ceac.org.cn 第4章 检索数据 ●4.1了解数据运算 Transact--SQL运算符和函数 ·4.2实现简单数据查询一SELECT语句 ·4.3实现复杂数据查询一高级SELECT语句 ·4.4数据库原理(二)关系运算 实训检索数据 高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 第4章 检索数据 ⚫ 4.1了解数据运算— Transact-SQL运算符和函数 ⚫ 4.2 实现简单数据查询— SELECT语句 ⚫ 4.3 实现复杂数据查询—高级SELECT语句 ⚫ 4.4 数据库原理(二)—关系运算 实训 检索数据

www.ceac.org.cn 4.1了解数据运算 Transact-.SQL语言数据运算 4.1.1 Transact-SQL运算符 (1)算术运算符:+、-、*、人% 注:null与任何值运算结果为null; +、-运算可用于datetime?型数据。 (2)字符串运算符:+ (3)比较运算符:=、>、=、、!< (4)逻辑运算符:not、and、or、between(指定范围)、 Iike(模糊匹配)、all(所有)、,in(包含于)、any(任意 一个)、some(部分)、exists(存在)。 (⑤)逻辑常量:ture、false. (6)赋值运算符:= 高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 4.1 了解数据运算 — Transact-SQL语言数据运算 4.1.1 Transact-SQL运算符 (1)算术运算符:+、-、 * 、/、% 注:null与任何值运算结果为null; +、- 运算可用于datetime型数据。 (2)字符串运算符:+ (3)比较运算符:=、>、=、、!=、!>、!< (4)逻辑运算符:not、and、or、between(指定范围)、 like(模糊匹配)、all(所有)、in(包含于)、any(任意 一个)、some(部分)、exists(存在)。 (5)逻辑常量:ture、false。 (6)赋值运算符:=

www.ceac.org.cn 4.1.2 Transact-SQL函数 1.数学函数 2.字符串函数 3.日期时间函数 4. 类型转换函数 高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 4.1.2 Transact-SQL函数 1.数学函数 2.字符串函数 3.日期时间函数 4.类型转换函数

www.ceac.org.cn 1.数学函数 sin(n)(正弦) asin(n)(反正弦) pi0(圆周率) abs(n)(绝对值) exp(n)(指数) Iog(n)(自然对数) power(n,m)(nm) round(n,m)(四舍五入) sign(n)(符号) sqrt(n)(平方根) rand(n)(随机数) 高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 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])(随机数)

www.ceac.org.cn 2.字符串函数 str(n,n1,n2)(数值转换为字符串) Ieft(s,n)(左取子串) right(s,n)(右取子串) substring(s,n1,n2)(取子串) lower(s)(转小写) upper(s)(转大写) Itrim(s)(删除左空格) rtrim(s)(删除右空格) space(n)(产生空空格) reverse(s)(反转字符串) len(s)(求串长) charindex(s1,s2)(字符串s1在字符串s2中的起始位置) 高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 2. 字符串函数 str(n,n1,n2)(数值转换为字符串) left(s,n)(左取子串) right(s,n)(右取子串) substring(s,n1,n2)(取子串) lower(s)(转小写) upper(s)(转大写) ltrim(s)(删除左空格) rtrim(s)(删除右空格) space(n)(产生空空格) reverse(s)(反转字符串) len(s)(求串长) charindex(s1,s2)(字符串s1在字符串s2中的起始位置)

www.ceac.org.cn 3.日期时间函数 getdate(、year(d)、month(d)、day(d) datepart(datepart,.d)(日期的datepart部分, dateparti为日期类型,参见表4-4) dateadd(datepart,.n,d)(日期加,即日期d的 dateparti部分加数值n后的新日期) datediff(datepart,dl,d2)(日期减,即日期dl 与d2的datepart部分相差的值) 高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 3. 日期时间函数 getdate()、year(d)、month(d)、 day(d) datepart(datepart,d)(日期的datepart部分, datepart为日期类型,参见表4-4) dateadd(datepart,n,d) (日期加,即日期d的 datepart部分加数值n后的新日期) datediff (datepart,d1,d2) (日期减,即日期d1 与d2的datepart部分相差的值)

www.ceac.org.cn 例4-1计算香港回归已经有多少年、多少天, 今天以后15个月是哪一天。 脚本: SELECT GETDATE(), DATEDIFF(YEAR,'1997-7-1',GETDATE()), DATEDIFF(DAY,'1997-7-1',GETDATE()), DATEADD(MONTH,15,GETDATE()) 高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 例4-1 计算香港回归已经有多少年、多少天, 今天以后15个月是哪一天。 脚本: SELECT GETDATE(), DATEDIFF(YEAR,'1997-7-1',GETDATE()), DATEDIFF(DAY,'1997-7-1',GETDATE()), DATEADD(MONTH,15, GETDATE())

www.ceac.org.cn 4.类型转换函数 convert(data_type,expression[,style|) cast(expression as data_type) 其中,style(日期样式)取值参见表4-5。 高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 4. 类型转换函数 convert(data_type,expression[,style]) cast(expression as data_type) 其中,style(日期样式)取值参见表4-5

www.ceac.org.cn 例4-2将当前时间日期转换为美国格式(mm/dd/yyyy 及mm-dd-yyyy)、ANSI(yyyy.mm.dd),并将当前时间 的时间部分转换为字符串。 脚本: select getdate(), convert(char(10),getdate(,101), convert(char(10),getdate(),102), convert(char(10),getdate(),110), convert(char(10),getdate(),114) 高等职业技术教育研究会&CEAC信息化培训认证管理办公室
www.ceac.org.cn 高等职业技术教育研究会 & CEAC信息化培训认证管理办公室 例4-2 将当前时间日期转换为美国格式(mm/dd/yyyy 及mm-dd-yyyy)、ANSI (yyyy.mm.dd),并将当前时间 的时间部分转换为字符串。 脚本: select getdate(), convert(char(10),getdate(),101), convert(char(10),getdate(),102), convert(char(10),getdate(),110), convert(char(10),getdate(),114)