《第4章数据操纵语句.ppt》由会员分享,可在线阅读,更多相关《第4章数据操纵语句.ppt(92页珍藏版)》请在三一文库上搜索。
1、1,第四章 数据操纵语句,4.1 在SQL Server Management Studio中查看记录 4.2 INSERT语句 4.3 UPDATE语句 4.4 DELETE语句 4.5 简单查询 4.6 数据统计查询,2,4.1 在SQL Server Management Studio中查看记录,4.1.1 打开表 4.1.2 快速定位记录 4.1.3 返回前几条记录,3,4.1.1 打开表,例:在SQL server Management Studio中打开 “Northwind” 数据库中的“products”表。 1.启动【SQL server Management Studio】
2、,在【对象资源管理器】中展开树形目录,定位到【products】表。 2. 右击【products】表,在弹出的快捷菜单中选择【打开表】选项。 3. 此时已经将【products】表打开了,右边对话框显示的是【products】表里的记录内容,该表格对话框名为【结果窗格】。,4,4.1.2 快速定位记录,在【结果窗格】的最下方,可以快速定位到上一条、下一条记录,也可以直接跳到第一条、最后一条记录。如果要想跳到某一条记录的话,在文本框内输入数字,再按回车键。,5,4.1.3 返回前几条记录,1.在打开表之后,调出【属性】对话框。调出方法为: 单击菜单栏中的【视图】|【属性窗口】选项。在【属性】对
3、话框里,展开【TOP规范】选项,在【(最前面)】下拉列表框里选择【是】选项,在【percent】下拉列表框里选择【否】选项,在【表达式】文本框里输入数字“10”。 2.选择【结果窗格】,然后再单击【运行SQL】按钮。在【结果窗格】里只显示前十条记录。,6,第四章 数据操纵语句,4.1 在SQL Server Management Studio中查看记录 4.2 INSERT语句 4.3 UPDATE语句 4.4 DELETE语句 4.5 简单查询 4.6 数据统计查询,7,4.2 INSERT语句,4.2.1 在SSMS中插入记录 4.2.2 用INSERT语句记录,8,4.2.1 在SSMS
4、中插入记录,注意事项: 1.标识列、计算列的字段不能输入字段内容。 2.不能为NULL值的字段必须输入字段内容。 3.输入字段内容的数据类型要和字段定义的数据类型一致。 4.如果字段上有约束,一定要符合约束要求。 5.如果要让字段输入默认值,则不用在字段内输入任何数据,在保存记录时,SQL server会自动填入默认值,但前提是该字段设置有默认值。,9,4.2.2 用INSERT语句记录,语法格式如下: INSERT INTO table_name ( column_list ) VALUES ( expression ,.n ) ,10,4.2.2 用INSERT语句记录,语法注释: INT
5、O:一个可选的关键字,可以将它用在 INSERT 和目标表之间。 table_name:将要接收数据的表或 table 变量的名称。 (column_list):要在其中插入数据的一列或多列的列表。必须用圆括号将column_list括起来,并且用逗号进行分隔。 VALUES:引入要插入的数据值的列表。对于column_list(如果已指定)中或者表中的每个列,都必须有一个数据值。必须用圆括号将值列表括起来。如果 VALUES 列表中的值与表中列的顺序不相同,或者未包含表中所有列的值,那么必须使用column_list明确地指定存储每个传入值的列。,11,4.2.2 用INSERT语句记录,1
6、.最简单的INSERT 语句 示范案例1 在“Northwind”数据库的“Order Details”表里插入一条记录,其中“OrderID”字段的值为10248;“ProductID”字段的值为1;“UnitPrice”字段的值为10;“Quantity”字段的值为2;“Discount”字段的值为0.8 。 程序清单如下: INSERT order details (orderid,productid,unitprice,quantity,discount) VALUES(10248,1,10,2,0.8),12,4.2.2 用INSERT语句记录,2.省略清单的INSERT语句 示范案
7、例2 在上例中省略字段清单,程序清单如下: INSERT order details VALUES(10249,2,10,2,0.9),13,4.2.2 用INSERT语句记录,3.标识列、允许为空字段的处理 示范案例3 在“Northwind”数据库的“Categories”表里插入一条记录,其中“CategoryName”字段的值为“图书”;“Description”字段的值为“所有类型的图书” 。 程序清单如下: INSERT INTO categories(categoryname,description) VALUES(图书,所有类型的图书),14,4.2.2 用INSERT语句记录
8、,4.有默认值字段的处理 示范案例4 在“学生”数据库中创建“教师”表(性别为有默认值列) 。在该表中录入数据。 程序清单如下: INSERT INTO teachers(teach_id,teach_name,tsex,tdegree) VALUES(rj001, 李波,DEFAULT, 本科),15,4.2.2 用INSERT语句记录,5.省略VALUES清单的INSERT语句 在T-SQL中,有一种简单的插入多行的方法。这种方法是使用SELECT语句查询出的结果代替VALUES子句。这种方法的语法结构如下: INSERT INTO table_name (column_name1,col
9、umn_name2,column_namen) SELECT column_name ,n FROM table_name WHERE search_conditions,16,4.2.2 用INSERT语句记录,示范案例5 在“Northwind”数据库中,从“Employees”表里查出“EmployeeID”、“LastName”、“FirstName”、“PostalCode”、“City”、“Address”、“HomePhone”7个字段,组成一个“雇员通信录”表。,17,4.2.2 用INSERT语句记录,程序清单如下: CREATE TABLE 雇员通信录 (雇员ID int
10、primary key, 姓氏 nvarchar(20) not null, 名字 nvarchar(10) not null, 邮政编码 nvarchar(10) null, 城市 nvarchar(15) null, 地址 nvarchar(60) null, 家庭电话 nvarchar(24) null) GO INSERT INTO 雇员通信录 SELECT employeeid,lastname,firstname,postalcode,city, address,homephone FROM employees GO,18,第四章 数据操纵语句,4.1 在SQL Server Ma
11、nagement Studio中查看记录 4.2 INSERT语句 4.3 UPDATE语句 4.4 DELETE语句 4.5 简单查询 4.6 数据统计查询,19,4.3 UPDATE语句,4.3.1 在SSMS中更新记录 4.3.2 用UPDATE语句更新记录,20,4.3.1 在SSMS中更新记录,注意事项: 1.在修改char和nchar这类长度固定的字段时,要注意其后的空格 。 2.在可以为空值NULL的字段中,如果要设为NULL,可以按Ctrl+0键 。 3.如果将记录字段内容修改过后,又想回到修改前的值,可用将光标聚焦到该字段,然后按Esc键。 4.如果想放弃整条记录的修改,可以
12、连按两次Esc键。,21,4.3.2 用UPDATE语句更新记录,语法格式如下: UPDATE table_name SET column_name = expression | DEFAULT | NULL ,.n FROM ,.n WHERE := table_name AS table_alias WITH ( ,.n ) ,22,4.3.2 用UPDATE语句更新记录,语法注释: table_name:需要更新的表的名称。 SET:指定要更新的列或变量名称的列表。 column_name:含有要更改数据的列的名称。 expression | DEFAULT | NULL :列值表达式。
13、 :修改数据来源表。,23,4.3.2 用UPDATE语句更新记录,示范案例6 使用T-SQL语句,将“Northwind”数据库“Employees”表中“EmployeeID”字段值为1的记录的“LastName”字段值修改为“bb” 。 程序清单如下: UPDATE employees SET lastname=bb WHERE employeeid=1,24,4.3.2 用UPDATE语句更新记录,示范案例7 用计算值来更新记录,修改“Northwind”数据库“Products”表中“ProductID”字段值为1的记录的“UnitPrice”字段的值,使其值在当前的基础上减少5 。
14、 程序清单如下: UPDATE products SET unitprice=unitprice-5 WHERE productid=1,25,第四章 数据操纵语句,4.1 在SQL Server Management Studio中查看记录 4.2 INSERT语句 4.3 UPDATE语句 4.4 DELETE语句 4.5 简单查询 4.6 数据统计查询,26,4.4 DELETE语句,4.4.1 在SSMS中删除记录 4.4.2 用DELETE语句删除记录 4.4.3 用Truncate table语句删除记录,27,4.4.1 在SSMS中删除记录,注意事项: 1.记录删除之后不能再撤
15、消删除 。 2.一次可以删除多条记录 。 3.在选择记录后,按Delete键也可以进行删除操作 。 4.如果要删除的记录是其他表的外键字段,删除操作可能会影响外键表 。,28,4.4.2 用DELETE语句删除记录,语法格式如下: DELETE table_name FROM ,.n WHERE := table_name AS table_alias ,.n ) ,29,4.4.2 用DELETE语句删除记录,语法注释: table_name:是要从其中删除行的表的名称。 FROM :指定附加的 FROM 子句。 table_name AS table_alias :是为删除操作提供标准的表
16、名。 WHERE:指定用于限制删除行数的条件。如果没有提供 WHERE 子句,则 DELETE 删除表中的所有行。 :指定删除行的限定条件。对搜索条件中可以包含的谓词数量没有限制。,30,4.4.2 用DELETE语句删除记录,示范案例8 将“Northwind”数据库“Order Details”表中“OrderID”字段值为10251的记录删除。 程序清单如下: DELETE order details WHERE orderid=10251,31,4.4.2 用DELETE语句删除记录,示范案例9 在“Northwind”数据库中删除雇员“Nancy”的所有订单。在该例中删除的数据引用的
17、是雇员表中的数据。 程序清单如下: DELETE orders FROM employees WHERE employees.employeeid=orders.employeeid AND employees.firstname=Nancy,32,4.4.3 用TRUNCATE TABLE语句删除记录,基本语法格式: TRUNCATE TABLE table_name 功能:删除表中的所有记录 语法注释: TRUNCATE TABLE:为关键字 table_name:为要删除所用记录的表名。,33,4.4.3 用TRUNCATE TABLE语句删除记录,TRUNCATE与DELETE比较:
18、比DELETE快,不记录日志的操作,它将释放表的数据和索引所占据的所有空间及所有为全部索引分配的页,删除的数据是不可恢复的。,34,4.4.3 用TRUNCATE TABLE语句删除记录,示范案例10 删除学生信息管理数据库student中教师表teachers中的所有记录 。 程序清单如下: DELETE teachers 或 TRUNCATE TABLE teachers,35,第四章 数据操纵语句,4.1 在SQL Server Management Studio中查看记录 4.2 INSERT语句 4.3 UPDATE语句 4.4 DELETE语句 4.5 简单查询 4.6 数据统计查
19、询,36,4.5 简单查询,4.5.1 选择表中的若干列 4.5.2 选择表中的若干记录 4.5.3 对查询的结果排序,37,4.5 简单查询,基本语法格式: SELECT DISTINCT|TOP n PERCENT WITH TIES select_list FROM table_list WHERE search_conditions ORDER BY order_list ASC | DESC ,38,4.5 简单查询,注释说明: SELECT子句用于指定所选择的要查询的特定表中的列,它可以是星号(*)、表达式、列表、变量等。 FROM子句用于指定要查询的表或者视图,最多可以指定16个
20、表或者视图,用逗号相互隔开。 WHERE子句 用来限定查询的范围和条件。 ORDER BY 用于指定排序方式。 DISTINCT 用于消除结果集中的重复值。 TOP n PERCENT 用于显示前n条或n%条的记录信息. WITH TIES 用于在结果集中包含附加记录,在使用ORDER BY子句时,当出现两个或多个记录和最后一条记录的值相等时,这些附加记录也将出现在结果集中。,39,4.5.1 选择表中的若干列,1.查询表中的所有列 示范案例11 查询“Northwind”数据库中Categories表中的所有记录 。 程序清单如下: USE northwind GO SELECT * FRO
21、M categories GO,40,4.5.1 选择表中的若干列,2.查询表中部分列 示范案例12 查询“Northwind”数据库中“Categories”表中的“categoryname”和“description”字段 。 程序清单如下: USE northwind GO SELECT categoryname,Description FROM categories GO,41,4.5.1 选择表中的若干列,3.为结果集内的列指定别名 格式:表达式 AS 别名 由于计算列不是数据表中的列,所以用到了“AS”关键字来指定列的别名。即使要查询的列是数据表中真实存在的列,也可以用“AS”来指
22、定别名。关键字AS可以省略。,42,4.5.1 选择表中的若干列,示范案例13 查询“Northwind”数据库中“Order Details”表中每个订单的总价 。 程序清单如下: USE northwind GO SELECT orderid,productid,unitprice,quantity,discount, unitprice*(1-discount)*quantity AS zongjia FROM order details GO,43,4.5.2 选择表中的若干记录,1.查看不重复记录DISTINCT 例如,在“Northwind”数据库中要查看货物在哪些城市里有过销售记
23、录。在订购表“Orders”中有一个字段是“ShipCity”,通过查询这个字段,就可以了解货物曾经销往过哪些城市。 如果程序代码如下: SELECT shipcity FROM orders 或 SELECT ALL shipcity FROM orders,44,4.5.2 选择表中的若干记录,如果要显示不重复的记录的话,可以使用如下代码 : SELECT DISTINCT shipcity FROM orders Distinct关键字可以同时指定多个字段,例如同时指定两个字段的话,那么查询的结果是两个字段同时不重复的记录,如以下代码: SELECT DISTINCT shipname,
24、shipcity FROM orders,45,4.5.2 选择表中的若干记录,示范案例14 在“northwind”数据库中“suppliers”表中检索所有行,但每个国家“Country”只显示一次。 程序清单如下: USE northwind GO SELECT DISTINCT country FROM suppliers GO,46,4.5.2 选择表中的若干记录,2.查看满足条件记录WHERE 如果只希望得到表中满足特定条件的一些记录,用户可以在查询语句中使用WHERE子句。,47,4.5.2 选择表中的若干记录,常用的查询条件 :,48,(1)比较大小 示范案例15 查询“Nor
25、thwind”数据库中“Products”表中库存量unitinstock不为零的产品 。 程序清单如下: USE northwind GO SELECT * FROM products WHERE unitsinstock0 GO,4.5.2 选择表中的若干记录,49,(2)确定范围 示范案例16 在“Northwind”数据库中“products”表中检索“unitprice”在$10.00到$20.00之间的所有产品的产品名称和单价 。 程序清单如下: SELECT * FROM products WHERE unitprice BETWEEN 10 AND 20 GO,4.5.2 选择
26、表中的若干记录,50,(3)确定集合IN 示范案例17 在“northwind”数据库中“suppliers”表中检索坐落在日本或意大利的公司列表 。 程序清单如下: SELECT * FROM suppliers WHERE country IN(Japan,Italy),4.5.2 选择表中的若干记录,51,4.5.2 选择表中的若干记录,(4)模糊查询通配符: 语法格式: not like ESCAPE %: 代表任意长度的字符串(长度可为0)的字符串。 _: 代表任意单个字符。 :表示和方括号中列出的任意一个字符相匹配。 : 表示不在方括号中列出的任意一个字符。,52,4.5.2 选择
27、表中的若干记录,例: acf-htionaction,aftion,agtion,ahtion 0-5ch 0ch,1ch,2ch,3ch,4ch,5ch Abplc Abcc,Abfc,53,4.5.2 选择表中的若干记录,字符匹配 示范案例18 在“northwind”数据库“customers”表中检索公司名称中包含字符串“restaurant”公司名称 。 程序清单如下: SELECT * FROM customers WHERE companyname LIKE %restaurant%,54,4.5.2 选择表中的若干记录,转义字符的使用: 示范案例19 在“northwind”数
28、据库的类别“categories”表查询类别名称categoryName中包含下划线_的所有的类别记录信息 。 程序清单如下: SELECT * FROM categories WHERE categoryname LIKE %_%,55,4.5.2 选择表中的若干记录,程序清单如下: SELECT * FROM categories WHERE categoryname LIKE %#_% ESCAPE # 这里的#号是程序员自行定义的转义字符,并在语句中使用ESCAPE关键字进行说明,可将其替换为其他的符号,如/、$等等 。 Select * FROM finances Where des
29、cription LIKE gs_ ESCAPE S Where ColumnA LIKE %5/% ESCAPE /,56,4.5.2 选择表中的若干记录,(5)涉及空值(非空值)查询 列表达式 is not null 示范案例20 在“northwind”数据库“Customers”表中查看区域为空值的顾客信息 。 程序清单如下: SELECT * FROM customers WHERE region IS NULL,57,4.5.2 选择表中的若干记录,(6)多重条件查询 示范案例21 在“northwind”数据库“products”表中检索产品名称“productname”以字母T
30、开头或产品标识为46,并且单价大于$16.00 。 程序清单如下: SELECT * FROM products WHERE (productname LIKE T% OR productid=46) AND unitprice 16,58,4.5.2 选择表中的若干记录,3.限制返回行数TOP TOP n PERCENT WITH TIES 示范案例22 在“Northwind”数据库“order details”订单明细表中查看订购数量最多的五条订单 。 程序清单如下(区别): SELECT TOP 5 * with ties FROM order details ORDER BY qua
31、ntity DESC SELECT TOP 5 with ties * FROM order details ORDER BY quantity DESC,59,4.5.3 对查询的结果排序,用户可以使用ORDER BY子句对查询结果按照一个或多个属性列的升序(ASC)或降序(DESC)排列,默认为升序。如果不使用ORDER BY子句,则结果集按照记录在表中的顺序排列。 基本语法格式: ORDER BY 列名,列名 DESC|ASC,60,4.5.3 对查询的结果排序,示范案例23 在“Northwind”数据库“products”产品表中查看所有产品记录,并以产品名排序。 程序清单如下: S
32、ELECT * FROM products ORDER BY productname,61,4.5.3 对查询的结果排序,当按多列排序时,先按前面的列排序,如果值相同再按后面的列排序。 示范案例24 在“Northwind”数据库“products”产品表中查看所有产品记录,并以供应商编号和产品名排序 。 程序清单如下: SELECT * FROM products ORDER BY supplierid,productname,62,第四章 数据操纵语句,4.1 在SQL Server Management Studio中查看记录 4.2 INSERT语句 4.3 UPDATE语句 4.4
33、DELETE语句 4.5 简单查询 4.6 数据统计查询,63,4.6 数据统计查询,4.6.1 使用聚合函数 4.6.2 对结果进行分组 4.6.3 用COMPUTE子句来归类,64,4.6.1 使用聚合函数,SQL Server提供了许多聚合函数,主要有:,65,4.6.1 使用聚合函数,字段的数据类型决定了可以用在该字段上的聚合函数类型。 如:SUM 和 AVG 只能用在数据类型代表数字的字段上。,66,4.6.1 使用聚合函数,示范案例25 在“Northwind”数据库中查询“employees”表中雇员的数目 。 程序清单如下: SELECT count(*) AS 雇员数目 FR
34、OM employees,67,4.6.1 使用聚合函数,实验并思考: 1) 如果本例中将count(*)更改为count(employeeid),其显示的个数为多少? 2) 如果改为count(city)呢?结果又如何呢?,68,4.6.1 使用聚合函数,对包含空值的字段使用聚合函数时,应注意 SQL Server 的聚合函数(COUNT(*) 除外)将忽略字段中的空值。 COUNT(*)将计算所有的行,即使每个字段都含有空值。,69,4.6.2 对结果进行分组,GROUP BY子句将查询结果集按某一列或多列值分组,分组列的值相等的为一组,并对每一组进行统计计算。对查询结果集分组的目的是为了
35、细化聚合函数的作用对象。 GROUP BY子句的语法格式为: GROUP BY ALL 列名,列名 WITH CUBE|ROLLUP HAVING 筛选条件表达式,70,4.6.2 对结果进行分组,语法注释: ALL:用于指定包含所有组和结果集 。 BY 列名:是按列名指定的字段进行分组 。 使用WITH CUBE会对GROUP BY所列出的所有分组字段进行汇总运算 。 使用WITH ROLLUP会对GROUP BY所列出的第一个分组字段进行汇总运算 。 HAVING筛选条件表达式:表示对生成的组筛选后再对满足条件的组进行统计 。,71,4.6.2 对结果进行分组,72,4.6.2 对结果进行
36、分组,示范案例26 统计“northwind”数据库“orders”表中每个城市的订单总数 。 程序清单如下: SELECT shipcity,count(orderid) AS 订单总数 FROM orders GROUP BY shipcity,73,4.6.2 对结果进行分组,使用 GROUP BY 子句时,应注意 SQL Server 将为每一组计算一个汇总值,并把汇总值保存在一个字段中。 对于指定的一组,SQL Server 只生成一条记录,不返回详细信息。 SQL Server 只对满足 WHERE 子句的记录进行分组和汇总。 不要对可能包含空值的字段使用 GROUP BY 子句,
37、因为空值也将被当作一组,而不管记录是否满足 WHERE 子句的条件。,74,USE northwind SELECT productid, orderid ,quantity FROM order details GO,4.6.2 对结果进行分组,75,4.6.2 对结果进行分组,示范案例27 统计“northwind”数据库订购“orders”表中订单总数超过20的城市,以及这些城市的订单总数和总运费 。 程序清单如下: SELECT shipcity,count(orderid) 订单总数, sum(freight) 运货费总数 FROM orders GROUP BY shipcity
38、HAVING count(orderid)20,76,USE northwind SELECT productid, orderid ,quantity FROM order details GO,4.6.2 对结果进行分组,77,4.6.2 对结果进行分组,示范案例28 在“northwind”数据库订购“orders”表中按年份统计每个城市的订单总数 。 程序清单如下: SELECT shipcity,count(orderid) 订单总数, year(orderdate) AS 订购年份 FROM orders GROUP BY shipcity,year(orderdate) ORDE
39、R BY shipcity,year(orderdate),78,4.6.2 对结果进行分组,描述,79,4.6.2 对结果进行分组,示范案例29 统计“Northwind”数据库“orders”表中每个城市的订单总数,并进行汇总。 程序清单如下: SELECT shipcity,count(orderid) AS 订单总数 FROM orders GROUP BY shipcity WITH CUBE,80,4.6.2 对结果进行分组,联合使用 GROUP BY 子句和 CUBE 操作符,能生成基于 GROUP BY 子句指定的所有字段的可能组合 使用 GROUP BY子句和 CUBE 操作
40、符时,应注意 如果在 GROUP BY 子句中有 n 个字段或表达式,SQL Server 将在结果集中返回 2n 种可能的组合。 结果集中含有 NULL 的记录代表该记录由 CUBE 操作符生成。,81,4.6.2 对结果进行分组,82,4.6.2 对结果进行分组,示范案例30 在“Northwind”数据库“orders”表中按年份统计每个城市的订单总数,并按城市进行汇总。 程序清单如下: SELECT shipcity,year(orderdate) AS 订购年份, count(orderid) AS 订单总数 FROM orders GROUP BY shipcity,year(or
41、derdate) WITH ROLLUP,83,4.6.2 对结果进行分组,联合使用 GROUP BY 子句和 ROLLUP 操作符,计算组中的汇总值 使用 GROUP BY 子句和 ROLLUP 操作符时,应注意 SQL Server 处理 GROUP BY 中字段列表的顺序是从右到左,然后对每个组使用聚合函数。 SQL Server 将在结果集中增加一行,这行将显示总和或平均值之类的汇总值,新增的行以 NULL 标识。,84,4.6.3 用COMPUTE子句来归类,COMPUTE子句对查询结果集中的所有记录进行汇总统计,并显示所有参加汇总记录的详细信息。当与by一起使用时,COMPUTE子
42、句在结果集内生成控制中断和小计。可在同一查询内指定COMPUTE BY和COMPUTE。 使用语法格式为: COMPUTE 聚合函数(列名) BY 列名,85,4.6.3 用COMPUTE子句来归类,注释说明: 聚合函数(列名):例如SUM(),AVG(),COUNT()等。此处的列名用于指明要用来汇总函数处理的字段或表达式,在此不能用字段别名,并且必须是SELECT子句列表中的一项 。 BY 列名:按指定列名的字段进行分组计算,并显示被统计记录的详细信息 。 BY选项必须与ORDER BY子句一起使用 。,86,4.6.3 用COMPUTE子句来归类,COMPUTE,示例 1,USE nor
43、thwind SELECT productid, orderid ,quantity FROM order details GO,87,4.6.3 用COMPUTE子句来归类,示范案例31 统计“northwind”数据库“orders”表中还没有发货的订单,以及运费的总数。 程序清单如下: SELECT orderid,shipcity,freight FROM orders WHERE shippeddate IS NULL COMPUTE sum(freight),88,4.6.3 用COMPUTE子句来归类,示例 2,USE northwind SELECT productid, or
44、derid ,quantity FROM order details GO,89,4.6.3 用COMPUTE子句来归类,示范案例32 在“northwind”数据库“orders”表中按城市统计还没有发货的订单,以及运费的总数。 程序清单如下: SELECT orderid,shipcity,freight FROM orders WHERE shippeddate IS NULL ORDER BY shipcity DESC COMPUTE sum(freight) BY shipcity,90,4.6.3 用COMPUTE子句来归类,使用COMPUTE 子句的注意事项和原则 COMPUT
45、E 子句中聚合函数使用的字段必须在SELECT 语句的选择列表中出现。 应当同时使用 ORDER BY 子句和 COMPUTE BY 子句,这样记录就会被分组显示。且ORDER BY 子句必须出现在 COMPUTE BY 子句前,其使用字段必须顺序相同。 不能同时使用 SELECT INTO 和 COMPUTE,因为 COMPUTE 不会生成关系型的输出结果。,91,几种分组语句的区别,GROUP BY和HAVING子句只能提供一种级别的汇总(或分组),并不显示详细记录信息。 GROUP BY和ROLLUP运算符可以提供一种类型的汇总,能够显示详细记录,并在结果集中生成汇总值,并提供标准的关系型格式的数据。 GROUP BY和CUBE运算符可以提供多种类型的汇总 ,能够显示详细记录,并在结果集中生成汇总值,并提供标准的关系型格式的数据。 COMPUTE或COMPUTE BY子句能够显示详细记录,所产生的额外数据汇总行属于非标准的非关系型格式。,92,小结,掌握 1、使用SSMS录入、修改、删除数据表中的数据 2、使用T-SQL语句录入、修改、删除数据表中的数据 3、掌握对数据的简单查询 4、掌握对数据的分组统计 了解 1、了解DELETE和TRUNCAT删除表的不同之处 2、了解COMPUTE及COMPUTE BY子句,
链接地址:https://www.31doc.com/p-2529146.html