- 1、本文档共106页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 表中数据的操作 本章要点: SQL的语句类型 SQL的单表数据查询 SQL多表连接查询 数据操纵 4.1 SQL的语句类型 (1)查询语言(QL) 查询语言用来对已存在的数据库中的数据按照指定的组合、条件表达式或排序进行检索。它的基本结构是由SELECT子句、FROM子句、WHERE子句组成的查询块。 (2)数据操纵语言(DML) DML的命令用来改变数据库中的数据,它有3个基本语句:INSERT (插入) 、UPDATE(修改)、DELETE(删除)。 (3)数据定义语言(DDL) DDL用来创建数据库中的各种对象,包括数据库模式、表、视图、索引、同义词、聚簇等,它的基本语句有:CREATE DATABASE、CREATE TABLE、CREATE VIEW、CREATE INDEX等。 (4)数据控制语言(DCL) DCL用来授予或回收访问数据库的某种特权,控制数据操纵事务的发生时间及效果、对数据库进行监视等。数据控制基本语句有:GRANT、REVOKE、COMMIT、ROLLBACK、LOCK、UNLOCK等。 SQL语言功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、数据操纵、数据控制的核心功能只用了9个动词:CREATE、DROP、ALTER、SELECT、INSERT、UPDATE、DELETE、GRANT、REVOKE,如表4-1所示。而且SQL语言语法简单,接近英语口语,因此易学易用。 表4-1 SQL语言的动词 4.2 SQL的单表数据查询 SQL的SELECT语句用于检索数据。 “SELECT-FROM-WHERE”的基本结构块: SELECT A1,A2,…,An FROM R1,R2,…,Rm WHERE P 4.2.1 单表查询 一、选择表中若干列 1.查询指定的列 例1、查询全体学生的学号和姓名。 SELECT Sno,Sname FROM Student 例2、查询全体学生的姓名、学号和所在系 SELECT Sname,Sno,Sdept FROM Student 注:目标列的选择顺序可以与表中定义的列的顺序不一致 2.查询全部列 例3 查询全体学生的详细记录。 SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student 等价于: SELECT * FROM Student 3、查询经过计算的列 SELECT 子句中的目标列名序列可以是表中存在的属性列,也可以是表达式的结果。 例4 查询全体学生的姓名及出生年份。 SELECT Sname,2009-Sage FROM Student 例5 查询全体学生的姓名、出生年份和所在系,要求去掉所在系名右边的无用空格。 SELECT Sname,2009-Sage,RTRIM(Sdept) FROM Student 注:RTRIM()函数的作用是去掉右边的无用空格。 改变列标题的语法格式为: 列名|表达式[AS]列标题 或: 列标题=列名|表达式 例如,对于例5可写成: SELECT Sname 姓名,2009-Sage 出生年份,LTRIM(Sdept)所在系 FROM Student 二、选择表中的若干元组 1、消除取值相同的行 如果要去掉结果表中的重复行,可通过使用DISTINCT实现,DISTINCT要写在SELECT关键字的后边,其他修饰符和查询列标的前边。 例6 在修课表中查询有哪些学生修了课程,要求列出学生的学号,去掉重复列。 SELECT DISTINCT Sno FROM SC 2、查询满足条件的元组 查询满足条件的元组是通过WHERE子句实现的。WHERE子句的格式为: WHERE 搜索条件 搜索条件::= { [NOT]谓词|(搜索条件)} [{AND|OR} [NOT]{谓词|(搜索条件)}] } [,…] 常用的谓词如下表所示 1)比较大小 例7、查询计算机系全体学生的姓名 SELECT Sname FROM Student WHERE Sdept=‘计算机系’ 例8、查询所有年龄在20岁以下的学生的姓名和年龄。 SELECT Sname,Sage FROM Student WHERE Sage20 或 SELECT Sname,Sage FROM
文档评论(0)