数据库应用6-2.ppt_第1页
数据库应用6-2.ppt_第2页
数据库应用6-2.ppt_第3页
数据库应用6-2.ppt_第4页
数据库应用6-2.ppt_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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语句 (p10

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

3、Y order_list ASC | DESC ,1. SELECT语句的格式 SELECTselect_list INTO new_table_name FROM table_list WHERE conditions GROUP BY group_by_list HAVING search_conditions ORDER BY order_list ASC | DESC ,可以是“*”,表示所有列。,举例: SELECT * FROM tb_pubinfo 显示tb_pubinfo数据表中的全部列。,1. SELECT语句的格式 SELECTselect_list INTO new_ta

4、ble_name FROM table_list WHERE conditions GROUP BY group_by_list HAVING search_conditions ORDER BY order_list ASC | DESC ,DISTINCT:从查询结果中删除两行完全相同的数据,举例: SELECT DISTINCT PublishID FROM tb_bookinfo,注意:指明要显示的字段,1. SELECT语句的格式 SELECTselect_list INTO new_table_name FROM table_list WHERE conditions GROUP

5、BY group_by_list HAVING search_conditions ORDER 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语句的格式 SELECTselect_list INTO new_table_name FROM table_list WHERE conditions GROUP BY group_by_list HAVING search_conditions ORDER BY order_list ASC | DESC ,INTO

7、语句可以使得查询结果生成一个新表。,例: SELECT bookID AS 编号,bookname AS 书名 INTO tb_new_bookinfo FROM tb_bookinfo,1. SELECT语句的格式 SELECTselect_list INTO new_table_name FROM table_list WHERE conditions GROUP BY group_by_list HAVING search_conditions ORDER BY order_list ASC | DESC ,FROM table_list 这是一个必选项,指明了从哪些表中取数据,并且可用

8、关键字AS为表起别名。,1. SELECT语句的格式 SELECTselect_list INTO new_table_name FROM table_list WHERE conditions GROUP BY group_by_list HAVING search_conditions ORDER BY order_list ASC | DESC ,可选项WHERE WHERE子句用来设置一个筛选条件,使得查询结果中仅包含那些满足条件的数据。,例: SELECT bookID,bookname,price FROM tb_bookinfo WHERE price20 与其等价的语句为 SE

9、LECT bookID,bookname,price FROM tb_bookinfo WHERE NOT price=20,例: SELECT bookID,bookname,price FROM tb_bookinfo WHERE price20 AND publishID=P102 在tb_bookinfo 数据表中找出所有单价大于20并且出版社编号为P102的图书。,例:在WHERE条件中使用运算符IN SELECT * FROM tb_bookinfo WHERE authorID IN (A002,B001) 执行结果返回tb_bookinfo 数据表中所有作者编号为A002或B0

10、01的那些行。,LIKE运算符可以与%通配符一起使用,放在WHERE子句中做查询。 SELECT * FROM tb_bookinfo WHERE bookname LIKE 计% 执行结果返回tb_bookinfo 数据表中所有书名以“计”开头的书。,1. SELECT语句的格式 SELECTselect_list INTO new_table_name FROM table_list WHERE conditions GROUP BY group_by_list HAVING search_conditions ORDER BY order_list ASC | DESC ,可选项GROU

11、P BY GROUP BY子句用来进行分类汇总。,例: SELECT publishID,AVG(price) FROM tb_bookinfo GROUP BY publishID 在tb_bookinfo 数据表中查询各出版社的图书的平均单价。,1. SELECT语句的格式 SELECTselect_list INTO new_table_name FROM table_list WHERE conditions GROUP BY group_by_list HAVING search_conditions ORDER BY order_list ASC | DESC ,可选项HAVING

12、 HAVING子句与WHERE子句类似,但HAVING子句可以使用累计函数(如SUM,AVG等函数)。,例:在tb_bookinfo 数据表中查询平均单价大于25元的各出版社。 SELECT publishID AS 出版社编号, AVG(price) AS 平均价格 FROM tb_bookinfo GROUP BY publishID HAVING AVG(price) 25,1. SELECT语句的格式 SELECTselect_list INTO new_table_name FROM table_list WHERE conditions GROUP BY group_by_list

13、 HAVING search_conditions ORDER BY order_list ASC | DESC ,可选项ORDER BY 用来按升序(ASC)或降序(DESC)来显示结果。,例: SELECT * FROM tb_bookinfo ORDER BY price DESC,1. SELECT语句的格式 SELECTselect_list INTO new_table_name FROM table_list WHERE conditions GROUP BY group_by_list HAVING search_conditions ORDER BY order_list A

14、SC | DESC ,Select语句基本结构中包含了8个子局,这些子句的排列顺序是固定的,其中除了select子句外,其他子句都可省略,但若出现,则必须按照基本结构中的顺序排列。,(8)使用JOIN语句 (p116) 在from子句中指定了多个数据源时,通常还需要使用JOIN指定数据源之间的联接条件。,在JOIN联接时,将第一个表中的每一条记录依次与第二个表中的每一条记录联接成一条新的记录。 如果A、B表中分别有10条记录,则联接后可得100条记录。,在两个表联接之后,可使用ON指定条件进行筛选。,连接分为内连接和外连接。 外连接又分为左连接、右连接和全连接。,以下例子中所使用的数据表来自c

15、ompany数据库中的2个表TBL_A和TBL_B。,内连接: 结果中只包含两个表中同时满足条件的行。 SELECT TBL_A.emp_id, TBL_A. emp_name, TBL_A. emp_age, 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_ag

16、e, TBL_B.specialty, TBL_B.level FROM TBL_A LEFT OUTER JOIN TBL_B ON TBL_A. emp_id = TBL_B. emp_id,注意:这里不要有“,”,右连接 结果集中包含位于关键字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,练习: 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论