数据库应用6-2

上传人:ji****n 文档编号:57673263 上传时间:2018-10-23 格式:PPT 页数:57 大小:664.50KB
返回 下载 相关 举报
数据库应用6-2_第1页
第1页 / 共57页
数据库应用6-2_第2页
第2页 / 共57页
数据库应用6-2_第3页
第3页 / 共57页
数据库应用6-2_第4页
第4页 / 共57页
数据库应用6-2_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《数据库应用6-2》由会员分享,可在线阅读,更多相关《数据库应用6-2(57页珍藏版)》请在金锄头文库上搜索。

1、(续),Transact-SQL语言,SQL语言中的语言可以从功能上分为3类:数据定义语言 DDL数据处理语言 DML数据控制语言 DCL,数据操纵语言,数据处理语言(Data Manipulation Language,简写DML)是指用来查询、添加、修改和删除数据库中数据的语句,它们是SELECT、INSERT、UPDATE、DELETE等。,数据操纵语言,数据处理语言(Data Manipulation Language,简写DML)是指用来查询、添加、修改和删除数据库中数据的语句,它们是SELECT、INSERT、UPDATE、DELETE等。,6.2 SELECT语句 (p106)S

2、ELECT语句用来从数据库中检索满足特定条件的记录。一个SELECT语句主要包含如下几部分: 从哪个或哪些表或视图中提取数据 选取表中的哪些列 选择满足什么条件的数据 查询结果以什么顺序显示,假定本节例子中所使用的数据均从图书管理数据库book_manage中的三个表中选取,图书信息表 tb_bookinf,1. SELECT语句的格式 SELECT select_list INTO new_table_name FROM table_list WHERE conditionsGROUP BY group_by_listHAVING search_conditionsORDER BY orde

3、r_list ASC | DESC ,1. SELECT语句的格式 SELECT select_list INTO new_table_name FROM table_list WHERE conditionsGROUP BY group_by_listHAVING search_conditionsORDER BY order_list ASC | DESC ,可以是“*”,表示所有列。,举例: SELECT * FROM tb_pubinfo 显示tb_pubinfo数据表中的全部列。,1. SELECT语句的格式 SELECT select_list INTO new_table_nam

4、e FROM table_list WHERE conditionsGROUP BY group_by_listHAVING search_conditionsORDER BY order_list ASC | DESC ,DISTINCT:从查询结果中删除两行完全相同的数据,举例: SELECT DISTINCT PublishID FROM tb_bookinfo,注意:指明要显示的字段,1. SELECT语句的格式 SELECT select_list INTO new_table_name FROM table_list WHERE conditionsGROUP BY group_b

5、y_listHAVING search_conditionsORDER BY order_list ASC | DESC ,TOP n:只显示查询结果的前n行,n是一个正整数。,举例: SELECT TOP 3 bookID,bookname FROM tb_bookinfo,注意:指明要显示的字段,AS:可以为每个表起一个别名。一旦为某个表起了别名后,就只能使用其别名。AS关键字也可以省略。 例:为tb_bookinfo 数据表定义了别名b SELECT b.bookID, b.bookname FROM tb_bookinfo AS b,AS还可以为查询中出现的字段起一个别名,使得显示结果

6、中标题出现的不是字段名,而是别名。 例: SELECT bookID AS 书号,bookname AS 书名 FROM tb_bookinfo 执行以上语句,用“书号”替换了“bookID”,用“书名”替换了“bookname”。,1. SELECT语句的格式 SELECT select_list INTO new_table_name FROM table_list WHERE conditionsGROUP BY group_by_listHAVING search_conditionsORDER BY order_list ASC | DESC ,INTO语句可以使得查询结果生成一个新

7、表。,例: SELECT bookID AS 编号,bookname AS 书名 INTO tb_new_bookinfo FROM tb_bookinfo,1. SELECT语句的格式 SELECT select_list INTO new_table_name FROM table_list WHERE conditionsGROUP BY group_by_listHAVING search_conditionsORDER BY order_list ASC | DESC ,FROM table_list 这是一个必选项,指明了从哪些表中取数据,并且可用关键字AS为表起别名。,1. SE

8、LECT语句的格式 SELECT select_list INTO new_table_name FROM table_list WHERE conditionsGROUP BY group_by_listHAVING search_conditionsORDER BY order_list ASC | DESC ,可选项WHERE WHERE子句用来设置一个筛选条件,使得查询结果中仅包含那些满足条件的数据。,例: SELECT bookID,bookname,price FROMtb_bookinfo WHERE price20 与其等价的语句为 SELECT bookID,bookname

9、,price FROM tb_bookinfo WHERE NOT price20 AND publishID=P102 在tb_bookinfo 数据表中找出所有单价大于20并且出版社编号为P102的图书。,例:在WHERE条件中使用运算符IN SELECT * FROM tb_bookinfo WHERE authorID IN (A002,B001)执行结果返回tb_bookinfo 数据表中所有作者编号为A002或B001的那些行。,LIKE运算符可以与%通配符一起使用,放在WHERE子句中做查询。 SELECT * FROM tb_bookinfo WHERE bookname LI

10、KE 计%执行结果返回tb_bookinfo 数据表中所有书名以“计”开头的书。,1. SELECT语句的格式 SELECT select_list INTO new_table_name FROM table_list WHERE conditionsGROUP BY group_by_listHAVING search_conditionsORDER BY order_list ASC | DESC ,可选项GROUP BY GROUP BY子句用来进行分类汇总。,例: SELECT publishID,AVG(price) FROM tb_bookinfo GROUP BY publis

11、hID在tb_bookinfo 数据表中查询各出版社的图书的平均单价。,1. SELECT语句的格式 SELECT select_list INTO new_table_name FROM table_list WHERE conditionsGROUP BY group_by_listHAVING search_conditionsORDER BY order_list ASC | DESC ,可选项HAVING HAVING子句与WHERE子句类似,但HAVING子句可以使用累计函数(如SUM,AVG等函数)。,例:在tb_bookinfo 数据表中查询平均单价大于25元的各出版社。 SE

12、LECT publishID AS 出版社编号,AVG(price) AS 平均价格FROM tb_bookinfo GROUP BY publishID HAVING AVG(price) 25,1. SELECT语句的格式 SELECT select_list INTO new_table_name FROM table_list WHERE conditionsGROUP BY group_by_listHAVING search_conditionsORDER BY order_list ASC | DESC ,可选项ORDER BY 用来按升序(ASC)或降序(DESC)来显示结果。

13、,例:SELECT * FROM tb_bookinfo ORDER BY price DESC,1. SELECT语句的格式 SELECT select_list INTO new_table_name FROM table_list WHERE conditionsGROUP BY group_by_listHAVING search_conditionsORDER BY order_list ASC | DESC ,Select语句基本结构中包含了8个子局,这些子句的排列顺序是固定的,其中除了select子句外,其他子句都可省略,但若出现,则必须按照基本结构中的顺序排列。,(8)使用JO

14、IN语句 (p116)在from子句中指定了多个数据源时,通常还需要使用JOIN指定数据源之间的联接条件。,在JOIN联接时,将第一个表中的每一条记录依次与第二个表中的每一条记录联接成一条新的记录。如果A、B表中分别有10条记录,则联接后可得100条记录。,在两个表联接之后,可使用ON指定条件进行筛选。,连接分为内连接和外连接。外连接又分为左连接、右连接和全连接。,以下例子中所使用的数据表来自company数据库中的2个表TBL_A和TBL_B。,内连接:结果中只包含两个表中同时满足条件的行。SELECT TBL_A.emp_id, TBL_A. emp_name, TBL_A. emp_ag

15、e, TBL_B.specialty FROM TBL_A INNER JOIN TBL_B ON TBL_A.emp_id = TBL_B.emp_id,注意:这里不要有“,”,左连接结果中包含位于关键字LEFT OUTER JOIN左侧的表中的所有行,以及该关键字右侧的表中满足条件的行。SELECT TBL_A.emp_id,TBL_A.emp_name,TBL_A.emp_age, TBL_B.specialty, TBL_B.level FROM TBL_A LEFT OUTER JOIN TBL_B ON TBL_A. emp_id = TBL_B. emp_id,注意:这里不要有“

16、,”,右连接结果集中包含位于关键字RIGHT OUTER JOIN右侧的表中的所有行,以及该关键字左侧的表中满足条件的行。 SELECT TBL_A.emp_id,TBL_A.emp_name,TBL_A.emp_age, TBL_B.specialty, TBL_B.level FROM TBL_A RIGHT OUTER JOIN TBL_B ON TBL_A.emp_id = TBL_B.emp_id,全连接结果中包含两个表中的所有行。 SELECT TBL_A.emp_id,TBL_A.emp_name,TBL_A.emp_age, TBL_B.specialty, TBL_B.level FROM TBL_A FULL OUTER JOIN TBL_B ON TBL_A.emp_id = TBL_B.emp_id,

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

最新文档


当前位置:首页 > 生活休闲 > 社会民生

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