版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1利用永久表文件存放查询结果(INTO DBF|TABLE ) 【例】将男学生的信息存放到永久表ABC中。 SELECT * FROM 学生 WHERE 性别=男 INTO DBF ABC 等价于: SELECT * FROM 学生 WHERE 性别=男 INTO TABLE ABC 考点1 查询去向【注意】语句执行后,将在当前目录中生成ABC.DBF永久表,该表自动打开,成为当前文件。使用“显示”菜单的“浏览”命令,可以看到表ABC.DBF的记录。12.利用临时表文件存放查询结果(INTO CURSOR) 临时表是一个只读的.dbf文件,可以像一般的.dbf文件一样使用。当关闭查询相关的表文
2、件时,该临时表文件自动删除。 【例】将男学生的信息存放到临时表ABC中。SELECT * FROM 学生 WHERE 性别=“男”; INTO CURSOR ABC【注意】 INTO CURSOR后的表文件名不能写扩展名.DBF 如: INTO CURSOR ABC.DBF,会提示语法错误。 23利用文本文件存放查询结果(TO FILE )【例】将男学生的信息存放到文本文件ABC中。 SELECT * FROM 学生 WHERE 性别=男 TO FILE ABC 3连接查询练习81.3 select 单表 存文本文件SELECT * FROM 教师表;WHERE 教师表.工资 4500;ORD
3、ER BY 教师表.职工号;TO file one44.利用数组存放查询结果(INTO ARRAY)【例】查询学生表中计算机专业学生的学号、姓名、专业和入学成绩,将查询结果存放在数组ABC中。SELECT 学号,姓名,专业,入学成绩 FROM 学生;WHERE 专业=计算机 INTO ARRAY ABC 该查询执行后,系统会自动生成一个2行4列的数组ABC, 【注意】 INTO ARRAY后只写数组名,不能写数组的下标。 Abc(1,1)Abc(2,1)Abc(1,2)5考点2 普通联接查询Select 学生.学号,姓名,成绩 from 学生,选课Where 学生.学号=选课.学号 And 成
4、绩90 查询结果有意义吗?例:查询学生的学号、姓名和成绩信息。6【例】查询学生的学号、姓名和成绩信息。简单联接查询:SELECT 学生.学号,姓名,成绩 ;FROM 学生, 选课 WHERE 学生.学号=选课.学号内连接查询:SELECT 学生.学号,姓名,成绩;FROM 学生 JOIN 选课 ON 学生.学号=选课.学号 考点3 内联接查询7【例】查询学生的学号、姓名、课程名和成绩信息。 WHERE 学生.学号=选课.学号 AND 选课.课程号=课程.课程号SELECT 学生.学号,姓名,课程名,成绩 FROM 学生,选课,课程;SELE 学生.学号,姓名,课程名,成绩 FROM 学生 JO
5、IN 选课 JOIN 课程; ON 选课.课程号=课程.课程号 ON 学生.学号=选课.学号注意:多个表用“JOIN”语句联接的顺序要与联接条件“ON”的顺序相反。注意:筛选记录条件必须写在WHERE子句中考点4 三个表联接查询8D学生表S(学号,姓名,性别,年龄)课程表C(课程号,课程名,学分)学生选课表SC(学号,课程号,成绩)查询学号、姓名、课程名和成绩的SQL命令是_(07年4月) A.SELECT 学号,姓名,课程名,成绩 FROM S,SC,C WHERE S.学号 =SC.学号 AND SC.学号=C.学号B.SELECT 学号,姓名,课程名,成绩 FROM (S JOIN SC
6、 ON S.学号=SC.学号)JOIN C ON SC.课程号 =C.课程号C.SELECT S.学号,姓名,课程名,成绩 FROM S JOIN SC JOIN C ON S.学号=SC.学号 ON SC.课程号 =C.课程号D.SELECT S.学号,姓名,课程名,成绩 FROM S JOIN SC JOIN C ON SC.课程号=C.课程号 ON S.学号 =SC.学号 9【例】左联接查询学生的学号、姓名和成绩的信息。 SELECT 学生.学号,姓名,成绩 ; FROM 学生 LEFT JOIN 选课 ON 学生.学号=选课.学号 第一个表中不满足联接条件的记录会出现在查询结果中,由于
7、三名学生没有选课,因此相应的成绩为空。 考点5 左联接查询内连接记录+左表不满足条件的记录10【例】右联接查询学生的学号、课程名和成绩的信息。 SELECT 学号,课程名,成绩; FROM 选课 RIGHT JOIN 课程 ON 选课.课程号=课程.课程号 最后一个表中不满足联接条件的记录会出现在查询结果中,由于有一门课程没有被学生所选,因此相应的学号和成绩为空。 考点6 右联接查询内连接记录+右表不满足条件的记录.11【例】全联接查询学生的学号、姓名、课程名和成绩信息。SELECT 学生.学号,姓名,课程名,成绩 ;FROM 学生 FULL JOIN 选课 FULL JOIN 课程;ON 选
8、课.课程号=课程.课程号 ON 学生.学号=选课.学号 两个表(第一个表和最后一个表)中不满足条件的记录会出现在查询结果中。即全联接查询的结果是左联接查询和右联接查询结果的并集。 考点7 全联接查询12考点8 别名与自联接查询 在多表的联接查询中,经常需要使用关系名(表名)作为前缀,为了使前缀简化,SQL允许在FROM子句中为关系名(表名)定义别名,别名可以象关系名一样作为前缀使用。【格式】 【例】定义别名,查询学生的学号、姓名、课程名和成绩。SELECT S.学号,姓名,课程名,成绩 FROM 学生 S,选课 SC,课程 C;WHERE S.学号=SC.学号 AND SC.课程号=C.课程号
9、13当一个表自己与自己联接时,可以给表取两个别名,这样就可以像两个不同的表一样进行联接查询了。【例】根据下图课程表,查询所有课程的先行课信息。SELECT A.课程名,“的先行课是”,B.课程名;FROM 课程表 A,课程表 B;WHERE A.先行课= B.课程号AB14连接查询练习47.2 select 双表 连接SELECT 公司名称,订单编号,金额,送货方式; FROM customer JOIN order ON; Customer.客户编号 = Order.客户编号; ORDER BY 公司名称,订单编号; INTO TABLE results.dbf15Select 命令SELE
10、CTFROM 表1 ,表2DISTINCT字段表达式 ,字段表达式 AS 虚拟字段名 ORDER BY 字段 ASC|DESCWHERE 条件GROUP BY 字段 HAVING 条件INTO ARRAY 数组名INTO CURSOR 临时表名INTO DBF|TABLE 永久表名TO FILE 文本文件名 ADDITIVETOP 数值 | 数值 PERCENT16嵌套查询当查询的条件依赖于另一个查询的结果时,就要在查询条件WHERE短语中嵌套一个子查询。求解方法:先内层查询后外层查询17考点9 带有比较运算符的子查询(单值比较)=、!=、=、;英语专业的平均入学成绩(SELECT AVG(入
11、学成绩) FROM 学生 WHERE 专业=“英语”)1907010001的成绩SELECT 学号,课程号,成绩 FROM 选课 WHERE 成绩=【例3】查询成绩大于等于学号为“07010001”的所有科成绩的学生学号,课程号,成绩。(SELECT 成绩 FROM 选课 WHERE 学号=07010001)ALLANY注意:子查询的结果可以是一个字段的多个值。考点10 使用量词的子查询(多值比较)ALL 、 ANY、 SOME=all 大于等于所有(大于等于最大值) =any 大于等于某一个 (大于等于最小值)=any 小于等于某一个 (小于等于最大值)20【例4】查询选修了C001课程的学
12、生学号和姓名、性别。select 学号,姓名,性别;from 学生;Where 学号 在 选修了C001课学生的学号集合in( Select 学号 from 选课 Where 课程号=C001 )考点11 使用谓词的子查询(多值比较)IN 和NOT INselect 学生.学号,姓名,性别;from 学生,选课;Where 学生.学号=选课.学号 and 课程号=C00121SELECT 学号 FROM 选课;WHERE 课程号=“C001”【例5】查询同时选修了“C001”和“C004”课程的学生的学号。INAND学号(SELECT 学号 FROM 选课 WHERE 课程号=C004)22S
13、ELECT * FROM 学生 WHERE注意:存在谓词NOT EXISTS只判断子查询中是否有查询结果,在谓词NOT EXISTS前没有相应的字段名【例6】查询没有选修任何一门课的学生信息。(SELECT * FROM 选课 WHERE 学号=学生.学号)NOT EXISTS考点12 使用谓词的子查询(多值比较)EXISTS 和NOT EXISTS23考点13 集合的并运算【格式】 UNION 【说明】UNION语句默认组合结果中排除重复记录。【例】查询选修了003或005这两门课程的学生信息。SELECT * FROM 选课 WHERE 课程号=003;UNION;SELECT * FRO
14、M 选课 WHERE 课程号=005 24(14)给student表增加一个“平均戍绩”字段(数值型,总宽度6,2位小数)的SQL命令是 A)ALTER TABLE student ADD 平均成绩 N(6,2) B)ALTER TABLE student ADD 平均成绩 D(6,2) C)ALTER TABLE student ADD 平均成绩 E(6,2) D)ALTER TABLE student ADD 平均成绩 Y(6,2) A2011.3国二考试真题 25(15)在Visual FoxPro中,执行SQL的DELETE命令和传统的FoxPro DELETE命令都可以删除数据库表中
15、的记录,下面正确的描述是 A)SQL的DELETE命令删除数据库表中记录之前,不需要先用USE命令打开表 B)SQL的DELETE命令和传统的FoxPro DELETE命令删除数据库表中的记录之前, 都需要先用命令USE打开表 C)SQL的DELETE命令可以物理地删除数据库表中的记录,而传统的FoxPro DELETE 命令只能逻辑删除数据库表中的记录 D)传统的FoxPro DELETE命令还可以删除其它工作区中打开的数据库表中记录 A26(18)删除student表的“平均成绩”字段的正确SQL命令是 A)DELETE TABLE student DELETE COLUMN 平均成绩 B
16、)ALTER TABLE student DELETE COLUMN 平均成绩 C)ALTER TABLE student DROP COLUMN 平均成绩 D)DELETE TABLE student DROP COLUMN 平均成绩 C27(20)从student表删除年龄大于30的记录的正确SQL命令是 A)DELETE FOR 年龄30 B)DELETE FROM student WHERE 年龄30 C)DELETE student FOR 年龄30 D)DELETE student WHERE 年龄30 B28(24)向student表插入一条新记录的正确SQL语句是 A)APPE
17、ND INTO student VALUES(0401,王芳,女,18) B)APPEND student VALUES(0401,王芳,女,18) C)INSERT INTO student VALUES(0401,王芳,女,18) D)INSERT student VALUES(0401,王芳,女,18) C29(28)消除SQL SELECT查询结果中的重复记录,可采取的方法是 A)通过指定主关键字 B)通过指定惟一索引 C)使用DISTINCT短语 D)使用UNIQUE短语 C30第(31)-(35)题使用如下三个数据库表: 学生表:student(学号,姓名,性别,出生日期,院系)
18、课程表:course(课程号,课程名,学时) 选课成绩表:score(学号,课程号,成绩) 其中出生日期的数据类型为日期型,学时和成绩为数值型,其它均为字符型。 31(31)查询“计算机系”学生的学号、姓名、学生所选课程的课程名和成绩,正确的是 A)SELECT s.学号,姓名,课程名,成绩 FROM student s, score sc, course c; WHERE s.学号= sc.学号,sc.课程号=c.课程号,院系=计算机系 B)SELECT 学号,姓名,课程名,成绩 FROM student s, score sc, course c; WHERE s.学号sc.学号 AND
19、sc.课程号=c.课程号 AND 院系=计算机系 C)SELECT s.学号,姓名,课程名,成绩; FROM(student s JOIN score sc ON s.学号=sc.学号); JOIN course c ON sc.课程号=c.课程号; WHERE 院系计算机系 D)SELECT 学号,姓名,课程名,成绩; FROM(student s JOIN score sc ON s.学号=sc.学号); JOIN course c ON sc.课程号c.课程号; WHERE 院系计算机系 C3232)查询所修课程成绩都大于等于85分的学生的学号和姓名,正确的命令是 A)SELECT 学号
20、,姓名 FROM student s WHERE NOT EXISTS; (SELECT * FROM score sc WHERE sc.学号=s.学号 AND 成绩= 85) C)SELECT学号,姓名 FROM student s,score sc; WHERE s.学号=sc.学号 AND 成绩= 85 D)SELECT学号,姓名 FROM student s,score sc; WHERE s.学号=sc.学号 AND ALL 成绩=85 A33(33)查询选修课程在5门以上(含5门)的学生学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是 A)SELECT s.学号,姓名,平
21、均成绩 FROM student s, score sc; WHERE s.学号=sc.学号; GROUP BY s.学号 HAVING COUNT(*)=5 ORDER BY 平均成绩 DESC B)SELECT 学号,姓名,AVG(成绩) FROM student s, score sc ;WHERE s.学号sc.学号 AND COUNT(*)=5 ;GROUP BY 学号 ORDER BY 3 DESC C)SELECT s.学号,姓名,AVG(成绩) 平均成绩 FROM student s, score sc; WHERE s.学号=sc.学号 AND COUNT(*)=5;GROU
22、P BY s.学号 ORDER BY 平均成绩 DESC D)SELECT s.学号,姓名,AVG(成绩) 平均成绩 FROM student s, score sc; WHERE s.学号=sc.学号 ;GROUP BY s.学号 HAVING COUNT(*)=5; ORDER BY 3 DESC D34(34)查询同时选修课程号为C1和C5课程的学生的学号,正确的命令是 A)SELECT 学号 FROM score sc WHERE 课程号=C 1 AND 学号 IN; (SELECT 学号 FROM score sc WHERE 课程号=C5) B)SELECT 学号 FROM sco
23、re sc WHERE 课程号=C1 AND 学号=; (SELECT 学号 FROM score sc WHERE 课程号=C5C)SELECT 学号 FROM score sc WHERE 课程号=C1 AND 课程号=C5 D)SELECT 学号 FROM score sc WHERE 课程号=C1 OR C5 A35(35)删除学号为“20091001”且课程号为“C1”的选课记录,正确命令是 A)DELETE FROM score WHERE 课程号=C1;AND 学号=20091001 B)DELETE FROM score WHERE 课程号=C1;OR 学号=20091001
24、C)DELETE FORM score WHERE 课程号=C1;AND 学号=20091001 D)DELETE score WHERE 课程号=C1; AND 学号=20091001 A36(9)SQL语句“SELECT TOP 10 PERCENT * FROM 订单 ORDER BY 金额 DESC”的查询结果是订单中金额【9】的10的订单信息。 (11)使用SQL的CREATE TABLE语句建立数据库表时,为了说明主关键字应该使用关键词【11】KEY。 9. 最高11. primary37查询与视图38查询的概念 “查询”与直接使用SELECT语句查询的区别:“查询”:是一个名词,
25、指以.qpr为扩展名的文本文件,存放SELECT 语句。直接使用SELECT语句查询:是一个动词,指从数据表中找出满足条件的记录。39“查询设计器”的设计窗口查询结果中的字段,对应于SELECT短语 数据表或视图之间的联接关系,对应于JOIN ON短语 查询条件,对应于WHERE短语 查询结果记录的排列顺序,对应于ORDER BY短语 分组,对应于GROUP BY短语和HAVING短语 显示重复记录显示前面的记录,对应于DISTINCT短语和TOP短语 40利用设计器创建查询 进入“查询设计器”窗口常用以下方法:(1)文件新建 查询;(2)命令:CREAT QUERY。例:二9.1三个表的选择
26、顺序:cus-cbc-comm41运行查询选择“查询运行查询”命令:在命令窗口中键入:DO ;.qpr不能省略42视图 视图是操作表的一种手段,通过视图可以查询表,也可以更新表。视图的数据取自数据库表。视图不作为独立的文件存储,而是存放在定义它的数据库中,当数据库打开时就可以使用视图了,当产生视图的表被删除,相应的视图中的数据将消失。视图分为本地视图和远程视图。 431.使用命令:Creat view as 2.用视图设计器通过“新建对话框”打开视图设计器先打开数据库二、删除视图:Delete View 视图名Drop View视图名一、创建本地视图44视图设计器和查询设计器的界面主要不同之处:视图设计器的工具栏中没有“查询去向” 按钮; 视图设计器的“字段”选项卡中增加了“属性”按钮视图设计器增加了“更新条件”选项卡,用于设定数据更新的条件。 45查询与视
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 排气道班组安全教育培训课件
- 安全课件演讲
- 英文介绍开头
- 《安全生产技术 》高频考点
- 县域农村污水治理PPP项目合同
- 医疗医学学术汇报模板342
- 医疗医学护士品管圈5
- 中小学生中秋节习俗介绍班会 139
- 2026年春期人教版五年级下册数学 第七单元 折线统计图 核心素养教案
- 郴州市2024湖南资兴市政务服务中心招聘编外聘用人员2人笔试历年参考题库典型考点附带答案详解(3卷合一)试卷2套
- DB11T 381-2023 既有居住建筑节能改造技术规程
- 计算机应用数学基础 教学 作者 王学军 计算机应用数学课件 第10章 图论
- DF6205电能量采集装置用户手册-2
- 缺血性脑卒中静脉溶栓护理
- 电子电路基础-电子科技大学中国大学mooc课后章节答案期末考试题库2023年
- 四年级科学上册期末试卷及答案-苏教版
- 怀仁县肉牛养殖产业化项目可行性研究报告
- DB51T 2875-2022彩灯(自贡)工艺灯规范
- 主要负责人重大危险源安全检查表
- 《工程经济学》模拟试题答案 东北财经大学2023年春
- 2023-2024学年广西壮族自治区来宾市小学数学五年级下册期末自测试卷
评论
0/150
提交评论