ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:54.12KB ,
资源ID:10468759      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10468759.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第四章SQL语言.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

第四章SQL语言.docx

1、第四章SQL语言第四章 数据库查询语言SQL4.1 SQL语言概述 数据查询命令(SELECT) 数据定义命令(CREATE等) 数据操纵命令(INSERT等) 数据管理命令(GRANT等)可以独立完成数据库的全部操作,包括建立数据库、建表、查询、更新、维护数据、数据库的重新构造、数据库安全性等。注意:第三章讲的命令只适用于VF。SQL语言适合在任何语言(VB、VC等)中使用,应用更广泛,效率更高,是考试的重点(笔试和上机)。4.2查询功能难点:写出查询条件(逻辑表达式)。 查询命令的基本格式:SELECT ALL |DISTINCT 字段名 FROM 表名 WHERE 条件4.2.1 简单查

2、询例1:从学生表中检索所有学生的姓名。SELECT 姓名 FROM 学生例2:从学生表中检索所有学生姓名(不能重复)SELECT DISTINCT 姓名 FROM 学生 例3:从学生表中检索所有学生的姓名、年龄、出生日期。SELECT 姓名,年龄,出生日期FROM 学生例4:从学生表中检索所有学生(包括所有字段)SELECT FROM 学生例5:从学生表中检索所有年龄小于21的学生。SELECT FROM 学生 WHERE 年龄=21 AND 年龄=2 例3:求各个年龄值(年龄13)的学生人数。SELECT 年龄,COUNT()AS 人数 FROM 学生 GROUP BY 年龄 HAVING

3、年龄13 SELECT 年龄,COUNT()AS 人数 FROM 学生 WHERE 年龄13 GROUP BY 年龄例4:求各个年龄值(年龄13)的女生人数。SELECT 年龄,COUNT()AS 人数 FROM 学生 WHERE 性别=“女”GROUP BY 年龄 HAVING 年龄13 注意:HAVING短语必须与GROUP BY短语同时使用。 使用HAVING短语的同时能使用WHERE短语。先执行WHERE后的条件从表中过滤不符合条件的记录,再执行GROUP对剩下的记录分组,接着执行HAVING后的条件过滤不符合条件的分组,最后对每个分组执行SELECT后的函数计算。4.2.8 利用空值

4、查询(NULL)例1:学生表中所在学院为空值NULL的同学。SELECT 学号,姓名 FROM 学生 WHERE 所在学院 IS NULL例2:学生表中所在学院不为空值NULL的同学。SELECT 学号,姓名 FROM 学生 WHERE 所在学院 IS NOT NULL4.2.9 别名与自连接查询例1:查询学生赵明的所有课程的成绩。SELECT 学生.学号,姓名,课程编号,成绩FROM 学生,成绩 WHERE 姓名=“赵明”.AND. 学生.学号=成绩.学号SELECT X.学号,姓名,课程编号,成绩FROM 学生 X,成绩 C WHERE 姓名=“赵明”.AND. X.学号=C.学号例2:查

5、询学生赵明的班长。SELECT A.姓名,“的班长是”,B.姓名FROM 学生 A,学生 B WHERE A姓名=“赵明” .AND. A.班长=B.学号SELECT 姓名 FROM 学生 WHERE 学号 IN (SELECT 班长 FROM 学生 WHERE 姓名=赵明)4.2.10 内外层互相关联嵌套查询内层查询需要外层查询的值,外层查询需要内层查询的结果。例1:查询每个学生的最高成绩。SELECT FROM 成绩 a WHERE 成绩=(select max(成绩) from 成绩 b where a.学号=b.学号)(2) 查询已经选修了课程的学生信息。SELECT FROM 学生

6、a WHERE 学号 in ( select 学号 from 成绩 b where a.学号=b.学号)4.2.11 使用量词和谓词的查询例1:EXISTS用来检查子查询是否有结果 (1) 查询已经选修了课程的学生信息。SELECT FROM 学生 a WHERE EXISTS (select 学号 from 成绩 b where a.学号=b.学号)(2) 查询没有选修了课程的学生信息。SELECT FROM 学生 a WHERE NOT EXISTS ( select 学号 from 成绩 b where a.学号=b.学号)(3) 查询选修课程01的学生信息。SELECT FROM 学生

7、 a WHERE EXISTS ( select from 成绩 b where a.学号=b.学号 AND 课程编号=”01”)例2:ANY或SOME用来检查子查询是否有一个结果使条件为真。(1)查询其他院中比001学院某一学生年龄小的学生年龄、姓名。SELECT 姓名,年龄FROM 学生 WHERE 所在学院”001” AND 年龄 ANY ( select 年龄 from 学生 where 所在学院=”001”) (2)查询其他院中比001学院所有学生年龄都小的学生年龄、姓名。SELECT 姓名,年龄FROM 学生 WHERE 所在学院”001” AND 年龄 ALL ( select

8、年龄 from 学生 where 所在学院=”001”)等价于:SELECT 姓名,年龄FROM 学生 WHERE 所在学院”001” AND 年龄 ( select MIN(年龄) from 学生 where 所在学院=”001”)4.2.12 超连接查询(1) 普通连接(JOIN 或 INNER JOIN)(只有满足条件的记录出现在结果中)查询每个学生的选修课程情况SELECT a.学号,姓名,课程编号 FROM 学生 a JOIN 成绩 b ON a.学号=b.学号等价于:SELECT a.学号,姓名,课程编号 FROM 学生 a, 成绩 b WHERE a.学号=b.学号(2)左连接(

9、除满足条件的记录出现在结果中,第一个表中不满足条件的记录也出现在结果中)SELECT a.学号,姓名,课程编号 FROM 学生 a LEFT JOIN 成绩 b ON a.学号=b.学号(3)右连接(除满足条件的记录出现在结果中,第二个表中不满足条件的记录也出现在结果中)查询所有学生所在学院名称SELECT 学号,姓名,学院名称 FROM 学生 RIGHT JOIN 学院 ON 所在学院=学院编号(4)全连接(除满足条件的记录出现在结果中,两个表中不满足条件的记录也出现在结果中)查询所有学生所在学院名称SELECT 学号,姓名,学院名称 FROM 学生 FULL JOIN 学院 ON 所在学院

10、=学院编号4.2.13 集合的并运算例1:查询性别为女或年龄不大于19的学生。SELECT FROM 学生 WHERE 性别=“女” UNIONSELECT FROM 学生 WHERE 年龄0 ERROR “数据错误” DEFAULT 0(2)修改已有字段格式1:修改已有字段的类型、宽度,字段有效性规则。ALTER TABLE 表名 ALTER COLUMN 字段名 字段类型 宽度,小数位数 NULL | NOT NULL CHECK PRIMARY KEY | UNIQUE 例如:ALTER TABLE 职工 ALTER 工资 N(6,1) CHECK 工资500格式2:修改、删除已有字段的

11、有效性规则ALTER TABLE 表名 ALTER COLUMN 字段名 宽度,小数位数 NULL | NOT NULL SET CHECK DROP DEFAULT DROPCHECK例如:ALTER TABLE 职工 ALTER 工资 SET CHECK 工资100例如:ALTER TABLE 职工 ALTER 工资 DROP CHECK格式3:修改字段名称、删除已有字段ALTER TABLE 表名 RENAME COLUMN 字段名 TO 新的名称 DROP COLUMN 字段名例如:将字段“工资”改名为“月工资”ALTER TABLE 职工 RENAME COLUMN 工资 TO 月工

12、资例如:删除字段“出生日期”ALTER TABLE 职工 DROP COLUMN 出生日期4.4.4 视图的定义1、 概念:逻辑表、虚拟表,可以像使用表一样使用视图。用户一般只需看到视图,而不是全部的表。2、 建立视图格式:CREATE VIEW 视图名 AS SELECT语句例如:单表视图CREATE VIEW 男生 AS SELECT * FROM 学生 WHERE 性别=”男”例如:多表视图CREATE VIEW 赵明成绩 AS SELECT 姓名,课程编号,成绩 FROM 学生 a,成绩 b WHERE 姓名=”赵明” AND a.学号=b.学号例如:视图中的虚字段CREATE VIE

13、W 总成绩 AS SELECT 姓名, SUM(成绩) 总成绩FROM 学生 a, 成绩 b WHERE a.学号=b.学号 GROUP BY b.学号3. 删除视图DROP VIEW 视图名例如:DROP VIEW 男生注意:使用视图的好处: 简化了查询操作 视图中并不真正存放数据,保证了数据安全 每个用户只能看到自己需要的数据 视图对插入、更新、删除操作有限制注意:索引名与索引表达式的区别:按索引表达式建立索引文件。按索引名区分一个索引文件中的不同索引。索引表达式只在建立索引文件时起作用。以后要使用某个索引必须通过命令SET ORDER to索引名 设置当前索引。 通过SQL命令建立候选索引:ALTER TABLE 职工 ADD UNIQUE 职工编号 TAG 职工编号 通过非SQL命令建立普通索引:INDEX ON 职工编号 TAG 职工编号 通过非SQL命令建立候选索引:INDEX ON 职工编号 TAG 职工编号 CANDIDATE 通过非SQL命令建立唯一索引:INDEX ON 职工编号 TAG 职工编号 UNIQUE使用连接查询:查询结果涉及多个表。使用嵌套查询或连接查询:查询结果涉及一个表。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2