忘電子工掌出社 第6章 Transact s则语言 6.1S简介 6.2函数 6.3使用 Select语句 6.4使用WRE字句 6.5使用 ORDER BY字句 6.6汇总数据 6.7高级查询技巧
第6章 Transact SQL语言 6.1 SQL简介 6.2 函数 6.3 使用Select语句 6.4 使用WHERE字句 6.5 使用ORDER BY 字句 6.6 汇总数据 6.7 高级查询技巧
忘電子工掌出社 6.1SL语言简介 SQL( Structured@ uery language)意思为结构化查 询语言,SQL语言的主要功能就是同各种数据库建立联 系,进行沟通。在 SQL Server数据库中, Transact SQL语言由以下几部分组成 (1)数据定义语言(DDL) (2)数据操纵语言(DML) ·(3)数据控制语言(DCL) (4)流程控制语言(FCL) (5)其它语言要素(ADE) 返回目录
6.1 SQL语言简介 • SQL( Structured Query Language) 意思为结构化查 询语言,SQL语言的主要功能就是同各种数据库建立联 系,进行沟通。在SQL Server数据库中,TransactSQL语言由以下几部分组成: • (1)数据定义语言(DDL) • (2)数据操纵语言(DML) • (3)数据控制语言(DCL) • (4) 流程控制语言(FCL) • (5)其它语言要素 (ADE) • 返回目录
忘電子工掌出社 6.2函数 函数的主要作用是用来帮助用户获得系统的有 关信息、执行数学计算和统计功能、实现数据 类型转换等操作。 Transact-SL编程语言提供 种函数: (1)集合函数:集合函数用于对一组值执 计算,并返回一个单一的值。 ·(2)行集函数:行集函数可以在 Transact SQL语句中当作表引用。 (3)数量函数:数量函数用于对传递给它的 一个或者多个参数值进行处理和计算,并返回 个单一的值 ·本节主要介绍集合函数和数量函数 ·返回目录
6.2 函数 • 函数的主要作用是用来帮助用户获得系统的有 关信息、执行数学计算和统计功能、实现数据 类型转换等操作。Transact-SQL编程语言提供 了三种函数: • (1)集合函数:集合函数用于对一组值执行 计算,并返回一个单一的值。 • (2)行集函数:行集函数可以在TransactSQL语句中当作表引用。 • (3)数量函数:数量函数用于对传递给它的 一个或者多个参数值进行处理和计算,并返回 一个单一的值。 • 本节主要介绍集合函数和数量函数。 • 返回目录
忘電子工掌出社 6.2.1集合函数 集合函数对一个集合值进行操作,返回单个的数值。 如求一个结果集合的最大值、平均值等。常用的集合 函数如下: 1.SUM和AVG SUM和AVG函数分别用于求表达式中所有值项的总和与 平均值。其语法格式为: SUM/AVG ([ALL DISTINCT] ) 其中, expression是列名,可以是常量、列、函数或表 达式,其数据类型只能是:int、 smallint、 tinyint、 bigint、 decimal、 numeric、 float、real、 money和 smallmoney。Al!表示对所有值进行运算, DISTINCT表 示去除重复值,默认为ALL。 SUMAVG忽略NULL值。 ·【例61】求样例数据库pubs中每类书籍的平均价格和 返回目录
• 6.2.1 集合函数 • 集合函数对一个集合值进行操作,返回单个的数值。 如求一个结果集合的最大值、平均值等。常用的集合 函数如下: • 1.SUM和AVG • SUM和AVG函数分别用于求表达式中所有值项的总和与 平均值。其语法格式为: • SUM/AVG ([ALL | DISTINCT] ) • 其中,expression是列名,可以是常量、列、函数或表 达式,其数据类型只能是:int、smallint、tinyint、 bigint 、 decimal 、 numeric 、 float 、 real 、 money 和 smallmoney。All表示对所有值进行运算,DISTINCT表 示去除重复值,默认为ALL。SUM/AVG忽略NULL值。 • 【例6.1】 求样例数据库pubs中每类书籍的平均价格和 预付款总和。 • 返回目录
忘電子工掌出社 HOLSE DEECTHD 2.MAX和MIN ·MAX和MIN分别用于求表达式中所有值项的最大值与最小值。其语 法格式为: MAX/ MIN ([ALL DISTINCT ) 其中, expression是列名,可以是常量、列、函数或表达式,其数 据类型可以是数值型、字符型和日期型。Al!表示对所有值进行运 算, DISTINCT表示去除重复值,默认为ALL。 MAX/MIN忽略 NULL值 【例62】求样例数据库pubs中年度销售额最高的书。 ·3. COUNT COUNT函数用于统计组中满足条件的行数或总行数。其语法格式如 CoUnT ([ALL DISTINCT *) ·其中, expression是表达式,其数据类型是除 uniqueidentifier、 text、 Image或 ntext之外的任何类型。A1l表示对所有值进行运算, DISTINCT表示去除重复值,默认为ALL。选择*时将统计总行数。 COUNT忽略NULL值 ·返回目录
2. MAX和MIN • MAX和MIN分别用于求表达式中所有值项的最大值与最小值。其语 法格式为: • MAX/MIN([ALL | DISTINCT] ) • 其中,expression是列名,可以是常量、列、函数或表达式,其数 据类型可以是数值型、字符型和日期型。All表示对所有值进行运 算,DISTINCT表示去除重复值,默认为ALL。MAX/MIN忽略 NULL值。 • 【例6.2】求样例数据库pubs中年度销售额最高的书。 • 3. COUNT • COUNT函数用于统计组中满足条件的行数或总行数。其语法格式如 下: • COUNT ([ALL | DISTINCT] |*) • 其中,expression是表达式,其数据类型是除uniqueidentifier、 text、image或ntext之外的任何类型。All表示对所有值进行运算, DISTINCT表示去除重复值,默认为ALL。选择*时将统计总行数。 COUNT忽略NULL值。 • 返回目录
忘電子工掌出社 6.2.2数量函数 常用的数量函数包括数值函数、日期时间函数、字符串 函数、文本图像函数和系统函数 1.数值函数 数值函数用于对数字表达式进行数学运算并返回运算结 果 (1) ABS ABS函数返回给定数字表达式的绝对值。语法格式为: ABs (numeric expression 【例63】显示ABS函数对三个数字8.0、50和03的不 (2 RAND RAND函数返回0-1之间的一个随机值。语法格式为: RAND(ISeed]) 其中,参数seed为整型表达式,返回值类型为 float 返回目录
• 6.2.2 数量函数 • 常用的数量函数包括数值函数、日期时间函数、字符串 函数、文本图像函数和系统函数。 • 1. 数值函数 • 数值函数用于对数字表达式进行数学运算并返回运算结 果。 • (1)ABS • ABS函数返回给定数字表达式的绝对值。语法格式为: • ABS(numeric_expression) • 【例6.3】显示ABS函数对三个数字8.0、-5.0和0.3的不 同效果。 • (2)RAND • RAND函数返回0-1之间的一个随机值。语法格式为: • RAND([seed]) • 其中,参数seed为整型表达式,返回值类型为float。 • 返回目录
忘電子工掌出社 2.字符串函数 基本字符串函数: UPPER、 LOWER、 SPACE、 REPLACE、 REPLICATE、 STUFF、 REVERSE、 LTRIM、 RTRIM。 字符串查找函数: CHARINDEX、 PATINDEX。 长度和分析函数: DATALENGTH、 SUBSTRING、 RIGHT。 转换函数:ASCIⅠ、CHAR、STR、 SOUNDEX、 DIFFERENCE 下面给出几个例子说明字符串函数的使用 【例6.41-(例6.7 返回目录
• 2. 字符串函数 • 基本字符串函数:UPPER、LOWER、SPACE、REPLACE、 REPLICATE 、STUFF、REVERSE、LTRIM、RTRIM。 • 字符串查找函数:CHARINDEX、PATINDEX。 • 长度和分析函数:DATALENGTH、SUBSTRING、RIGHT。 • 转换函数:ASCⅡ、CHAR、STR、SOUNDEX、DIFFERENCE • 下面给出几个例子说明字符串函数的使用。 • 【例6.4】--【例6.7】 • 返回目录
忘電子工掌出社 3.日期和时间函数 日期和时间函数用于对日期和时间数据进行各种不同的处理和运 算,用于处理 datatime和 smalldatetime类型的数据,并返回一个字 符串、数字值或日期和时间值。 (1 DAY DAY函数返回 date expression中的日期值,语法格式如下 daY (date expression DAY函数使用整数值作参数,系统从1900年1月1日起往后数 指定,整数值+1天,再返回其日期。 (2 MONTH MONTH返回 date expression中的月份值,函数语法格式如下 MONTH( date expression 与DAY函数不同的是: MONTH函数的参数为整数时,一律返回 整数值1。即 SQL Server认为其是1900年1月 (3) YEAR YEAR函数返回 date expression中的年份值,语法格式如下 YEaR (date expression) ·返回目录
• 3. 日期和时间函数 • 日期和时间函数用于对日期和时间数据进行各种不同的处理和运 算,用于处理datatime和smalldatetime类型的数据,并返回一个字 符串、数字值或日期和时间值。 • (1)DAY • DAY函数返回 date_expression中的日期值,语法格式如下: • DAY (date_expression) • DAY函数使用整数值作参数,系统从 1900 年 1 月 1 日起往后数 指定,整数值+1天,再返回其日期。 • (2)MONTH • MONTH返回 date_expression中的月份值,函数语法格式如下: • MONTH(date_expression) • 与 DAY函数不同的是:MONTH函数的参数为整数时,一律返回 整数值1。即SQL Server认为其是1900年1月。 • (3)YEAR • YEAR函数返回 date_expression中的年份值,语法格式如下: • YEAR(date_expression) • 返回目录
忘電子工掌出社 6.3使用 Select语句 631使用 Select语句的基本介绍 SELECT语句是是查询数据的基本方法。 SELECT语句可 以从数据库中査询行,并允许从一个或多个表中选择 个或多个行或列 SELECT语句主要子句格式可归纳如下 SELECT [DISTINCT]TOP n] select_list [INTO new_table [FROM table_source TWHERE search_condition] [GROUP BY group_ by_expression] THAVING search condition] [ORDER BY order_expression [asC] ICOMPUTE expression] 其中:[]表示可选项。 返回目录
6.3使用Select语句 • 6.3.1使用Select 语句的基本介绍 • SELECT语句是是查询数据的基本方法。SELECT语句可 以从数据库中查询行,并允许从一个或多个表中选择 一个或多个行或列。 • SELECT语句主要子句格式可归纳如下: • SELECT [DISTINCT][TOP n] select_list • [INTO new_table] • [FROM table_source] • [WHERE search_condition] • [GROUP BY group_by_expression] • [HAVING search_condition] • [ORDER BY order_expression [ASC|DESC]] • [COMPUTE expression] • 其中:[ ]表示可选项。 返回目录
忘電子工掌出社 SELECT语句中各子句的作用如下 ① SELECT字句,指定由查询返回的列。 ②INTO字句,创建新表并将结果行从查询插入新表中。 ③FROM字句,指定从其中查询行的表 ·④ WHERE字句,指定用于限制返回的行的搜索条件 ·⑤ GROUP BY字句,指定查询结果的分组条件。 ⑥ HAVING字句,指定组或聚合的搜索条件 ⑦ ORDER BY字句,指定结果集的排序方式。 ⑧8 COMPUTE子句,在结果集的末尾生成一个汇总数 据
• SELECT语句中各子句的作用如下: • ① SELECT字句,指定由查询返回的列。 • ② INTO字句,创建新表并将结果行从查询插入新表中。 • ③ FROM字句,指定从其中查询行的表。 • ④ WHERE字句,指定用于限制返回的行的搜索条件。 • ⑤ GROUP BY字句,指定查询结果的分组条件。 • ⑥ HAVING字句,指定组或聚合的搜索条件。 • ⑦ ORDER BY字句,指定结果集的排序方式。 • ⑧ COMPUTE子句,在结果集的末尾生成一个汇总数 据行。 • 返回目录