第一篇:Access课堂练习六--SQL命令查询操作--书面练习
Access课堂练习
Access课堂练习六
姓名 学号
SQL命令查询书面练习
已知教师管理系统中的2个表分别为:
教师(教师编号,姓名,性别,部门编号,出生时间,工作时间,职称,基础工资,岗位工资,绩效工资)部门(部门编号,部门名称,担任职务,办公室电话(0571-6018845),业余爱好)
完成下列问题的SQL命令的表示:
1.查询教师表中出所有教师的姓名、性别和职称。
2.查询所有教师的姓名,性别,部门名称,担任职务和职称。3.查询教师表中姓名,性别,工龄和职称。4.查询教师表中姓名,性别,职称和工资总额。5.查询所有教授的姓名,部门名称和担任职务。6.查询55岁及上的教师姓名和性别。
7.查询教师表中工龄在10年到20的教师信息。
8.查询部门名称为“人事处”、“英语系”、“计算机系”的教师信息。9.查询按基础工资排序的教师信息。10.查询按职称分类的平均绩效工资。11.查询业余爱好中含有“运动”的教师信息。
12.查询部门表中办公室电话升级后(0571-86018845)的部门信息。
1.select 姓名,性别,职称 from 教师
2.select 姓名,性别,部门名称,担任职务,职称 from 教师,部门 3.select 姓名,性别,year(date(0))-year(工作时间)as 工龄 from 教师
4.select 姓名,性别,职称,基础工资+岗位工资+绩效工资 as 工资总额from 教师 5.select 姓名,部门名称,担任职务 from 教师,部门where 职称=”教授” 6.select 姓名,性别 from 教师 where year(date(0)-year(出生时间))>=55 浙江大学城市学院
Access课堂练习
浙江大学城市学院
第二篇:SQL语言数据查询操作
实验三 SQL语言——数据查询操作
一、实验时间
二、实验地点:317室
三、实验条件与环境
1. 通用PC机
2. PC机必须安装Windows 2000系列、Windows XP系列或Windows NT操作系统平台
3. PC机还须安装Microsoft SQL Server 2000 任意一版本(个人版、标准版、企业版)
4. 最好有一台公用的SQL Server 2000 服务器
四、实验目的1. 通过上机实验进一步加深对SQL查询语句的基本语法格式的掌握
2. 通过上机实验掌握单表查询的实现过程
3. 通过上机实验掌握多表关联查询的实现过程
4. 通过上机实验掌握嵌套查询的实现过程
5. 通过上机实验掌握集函数与谓词在Select语句中的使用
6. 通过上机实验加深了解Select语句与关系代数运算(如选择、投影、连接、除法等)两者之间的联系与区别
五、实验要求:
1. 本实验所有实验内容要求在规定时间(2课时)内完成2. 实验内容中涉及到的各查询操作均通过SQL语言来实现
3.实验完成后需要书写实验报告
六、实验内容:
1.查询为工程J1供应零件的供应商号码SNO
2.查询为工程J1供应零件P1的供应商号码SNO
3.查询为工程J1供应红色零件的供应商号码SNO
4.查询没有使用天津供应商生产的零件并且当前工程所使用零件的颜色全部为红色的工程号JNO
5.查询至少选用了供应商S1所供应的全部零件的工程号JNO
6.找出所有供应商的名称和所在城市
7.找出所有零件的名称、颜色和重量
8.找出使用供应商S1所供应零件的工程号码
9.找出工程项目J2使用的各种零件的名称及其重量
10.找出上海厂商供应的所有零件号码
11.找出使用上海产的零件的工程名称
12.找出没有使用天津产的零件的工程号码
13.找出重量最轻的红色零件的零件编号PNO
14.找出供应商与工程所在城市相同的供应商提供的零件号码
15.找出所有这样的一些<CITY,CITY,PNAME>三元组,使得第一个城市的供应商为第二个城市的工程供应零件的名称为PNAME
16.重复第15题,但不检索两个CITY值相同的三元组
17.找出供应商S1为工程名中含有“厂”字的工程供应的零件数量总和
18.找出为工程供应零件的总数量不低于500的供应商号码及供应总数量,结果按供应商号码分类并且按供应总数量降序排列
七、实验总结:
数据查询是一种极为重要的面向数据库的数据操纵方式。实验完成后,请同学们总结一下SELECT语
句实现各种类型查询任务的一般过程和操作实现方法,并对利用SELECT语句实现各类查询任务的解题规律与方法作一总结。
第三篇:Access上机练习2(SQL上机练习1)
实验项目名称:SQL简单查询 所属课程名称:数据库原理与应用 实验类型:操作型
实验要求:使用SQL视图完成SQL简单查询 实验目的:
1.熟悉SQL语言的数据查询功能; 2.熟悉Access中SQL视图的使用;
3.通过SQL语言的数据查询语句SELECT熟悉Access中表达式的构成与使用。*4.熟悉简单的多表查询。实验方案设计:
1.使用“教学管理.mdb”中的表,练习教材例【6-1】~【6-13】内容,熟悉Access中SQL视图的使用与SQL简单查询的实现。2.利用“教学管理.mdb”,独立完成布置的SQL查询要求。
练习:
1.显示“课程信息表”表中所有字段和记录。2.显示所有教师的姓名、性别,所属院系和职称情况。3.显示每位教师的工龄。
4.查询来校10年以上(含10年)的党员教师信息。5.查询所有财政学院和经济学院的教师信息。6.查询40岁以上(不含40岁)的非党员教师信息。7.查询姓名中含有“海”字的教师信息。8.显示全部学生的班级。
9.查询成绩在60分(含60分)到90分(含90分)之间的学生的学号。*10.显示有不及格成绩的学生名单。
*11.显示每位教师的公积金缴存情况,显示属性包括教师编号、姓名、公积金。*12.显示所有女党员的工龄和薪级工资。
*13.显示财政学院每位教师的姓名和他们的实发工资额。(提示:实发工资=岗位工资+薪级工资+岗位津贴-公积金)
14.自己设计一个查询,并用SQL命令实现(要求:对设计要有合理的解释,且最好有新意)。
第四篇:SQL综合练习(填空操作)
一,选择题
1,下面关于SQL语言的叙述中,哪一条是错误的().A.SQL既可作为联机交互环境中的查询语言又可嵌入到主语言中
B.SQL没有数据控制功能
C.使用SQL用户只能定义索引而不能引用索引
D.使用SQL用户可以定义和检索视图
2,SQL语言是()
A.高级语言 B.编程语言
C.结构化查询语言 D.宿主语言
3,在学生数据库中,用SQL语句列出的所有女生的姓名,应该对学生关系进行()操作.A.选择 B.连接 C.投影 D.选择和投影
4,NULL是指()
A.0 B.空格 C.无任何值 D.空字符串
5,下列哪条语句不属于SQL数据操纵功能范围()
A.SELECT B.CREAT TABLE C.DELETE D.INSERT
6,用()命令可建立唯一索引
A.CREATE TABLE B.CREATE CLUSTER
C.CREATE INDEX D.CREATE UNIQUE INDEX
二,填空题
1,SQL语言的使用方式有两种,一种是 ,另一种是
2,在SQL查询中,WHERE子句的功能是.3,视图是一个虚表,它是从 的表.4,SQL语言的数据操纵功能包括 , , ,和 ,5,在SQL支持的关系数据库三级模式结构中,外模式对应于 ,模式对应于 ,内模式对应于.6,在SELECT语句中,HAVING子句必须跟在 子句后面.三,问题及操作题
1,名词解释
SQL模式 SQL数据库 基本表 视图 相关子查询 联接查询
嵌入式SQL 游标
2,对于教学数据库的三个基本表
学生 S(S#,SNAME,AGE,SEX)
学习SC(S#,C#,GRADE)
课程 C(C#,CNAME,TEACHER)
试用SQL的查询语句表达下列查询:
(1)检索LIU老师所授课程的课程号和课程名.(2)检索年龄大于23岁的男学生的学号和姓名.(3)检索至少选修LIU老师所授课程中一门课程的女学生姓名.(4)检索WANG同学不学的课程的课程号.(5)检索至少选修两门课程的学生学号.(6)检索全部学生都选修的课程的课程号与课程名.(7)检索选修课程包含LIU老师所授课的学生学号.3, 设有两个基本表R(A,B,C)和S(A,B,C)试用SQL查询语句表达下列关系代数表达式:
(1)R∪S(2)R∩S(3)R-S(4)πA,B(R)πB,C(S)
4, 试用SQL查询语句表达下列对教学数据库中三个基本表S,SC,C的查询:
(1)统计有学生选修的课程门数.(2)求选修C4课程的学生的平均年龄.(3)求LIU老师所授课程的每门课程的学生平均成绩.(4)统计每门课程的学生选修人数(超过10人的课程才统计).要求输出课程号和选修人数, 查 询结果按人数降序排列,若人数相同,按课程号升序排列.(5)检索学号比WANG同学大,而年龄比他小的学生姓名.(6)检索姓名以WANG打头的所有学生的姓名和年龄.(7)在SC中检索成绩为空值的学生学号和课程号.(8)求年龄大于女同学平均年龄的男学生姓名和年龄.5, 试用SQL更新语句表达对教学数据库中三个基本表S,SC,C的各个更新操作:
(1)往基本表S中插入一个学生元组('S9','WU',18).(2)在基本表S中检索每一门课程成绩都大于等于80分的学生学号,姓名和性别, 并把检索到的值送往另一个已存在的基本表STUDENT(S#,SANME,SEX).(3)在基本表SC中删除尚无成绩的选课元组.(4)把WANG同学的学习选课和成绩全部删去
(5)把选修MATHS课不及格的成绩全改为空值.(6)把低于总平均成绩的女同学成绩提高5%.(7)在基本表SC中修改C4课程的成绩,若成绩小于等于75分时提高5%, 若成绩大于75分时提高4%(用两个UPDATE语句实现).6, 在宿主语言的程序中使用SQL语句有哪些规定
7,嵌入式SQL语句何时不必涉及到游标 何时必须涉及到游标
答案:
一,1,B 2,C 3,D 4,C 5,B 6,D
二,1,嵌入式 交互式 2,选择
3,基本表导出的表 4,数据查询 数据更新 数据插入 数据删除
5,视图或部分基本表 基本表 存储文件
6,GROUP BY
三,1,名词解释
SQL模式:SQL模式是表和授权的静态定义.一个SQL模式定义为基本表的集合.一个由模式名和模式拥有者的用户名或账号来确定,并包含模式中每一个元素(基本表,视图,索引等)的定义.SQL数据库:SQL(Structured Query Language),即'结构式查询语言',采用英语单词表示和结构式的语法规则.一个SQL数据库是表的汇集,它用一个或多个SQL模式定义.基本表:在SQL中,把传统的关系模型中的关系模式称为基本表(Base Table).基本表是实际存储在数据库中的表,对应一个关系.视图:在SQL中,把传统的关系模型中的子模式称为视图(View),视图是从若干基本表和(或)其他视图构造出来的表.相关子查询:在嵌套查询中出现的符合以下特征的子查询:子查询中查询条件依赖于外层查询中的某个值, 所以子查询的处理不只一次,要反复求值,以供外层查询使用.联接查询:查询时先对表进行笛卡尔积操作,然后再做等值联接,选择,投影等操作.联接查询的效率比嵌套查询低.嵌入式SQL:嵌入在高级语言的程序中使用的SQL语言称为嵌入式SQL.游标:游标是与某一查询结果相联系的符号名,用于把集合操作转换成单记录处理方式.2,(1)检索LIU老师所授课程的课程号和课程名.SELECT C#,CNAME
FROM C
WHERE TEACHER='LIU'
(2)检索年龄大于23岁的男学生的学号和姓名.SELECT S#,SNAME
FROM S
WHERE(AGE>23)AND(SEX='M')
(3)检索至少选修LIU老师所授课程中一门课程的女学生姓名.SELECT SNAME
FROM S
WHERE SEX='F' AND S# IN
(SELECT S#
FROM SC
WHERE C# IN
(SELECT C#
FROM C
WHERE TEACHER='LIU')
NOTICE:有多种写法,比如联接查询写法:
SELECT SNAME
FROM S,SC,C
WHERE SEX='F' AND SC.S#=S.S#
AND SC.C#=C.C#
AND TEACHER='LIU'
但上一种写法更好一些.(4)检索WANG同学不学的课程的课程号.SELECT C#
FROM C
WHERE C# NOT IN
(SELECT C#
FROM SC
WHERE S# IN
(SELECT S#
FROM S
WHERE SNAME='WANG'))
(5)检索至少选修两门课程的学生学号.SELECT DISTINCT X.SNO
FROM SC X,SC Y
WHERE X.SNO=Y.SNO AND X.CNOY.CNO
Notice:对表SC进行自连接,X,Y是SC的两个别名.(6)检索全部学生都选修的课程的课程号与课程名.SELECT C#,CNAME
FROM C
WHERE NOT EXISTS
(SELECT *
FROM S
WHERE S# NOT IN
(SELECT *
FROM SC
WHERE SC.C#=C.C#))
要从语义上分解:(1)选择课程的课程号与课程名,不存在不选这门课的同学.其中,“不选这门课的同学”可以表示为:
SELECT *
FROM S
WHERE S# NOT IN
(SELECT *
FROM SC
WHERE SC.C#=C.C#)
或者
SELECT *
FROM S
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE S.S#=C.S# AND
SC.C#=C.C#)
(7)检索选修课程包含LIU老师所授课的学生学号.SELECT DISTINCT S#
FROM SC
WHERE C# IN
(SELECT C#
FROM C
WHERE TEACHER='LIU'))
3,(1)SELECT A,B,C
FROM R
UNION
SELECT A,B,C
FROM S
(2)SELECT A,B,C
FROM R
INTERSECT
SELECT A,B,C
FROM S
(3)SELECT A,B,C
FROM R
WHERE NOT EXISTS
(SELECT A,B,C
FROM S
WHERE R.A=S.A AND R.B=S.B AND R.C=S.C)
(4)SELECT R.A,R.B,S.C
FROM R,S
WHERE R.B=S.B
4,(1)统计有学生选修的课程门数.SELECT COUNT(DISTINCT C#)FROM SC
(2)求选修C4课程的学生的平均年龄.SELECT AVG(AGE)
FROM S
WHERE S# IN
(SELECT S#
FROM SC
WHERE C#='C4')
或者,SELECT AVG(AGE)
FROM S,SC
WHERE S.S#=SC.S# AND C#='004'
(3)求LIU老师所授课程的每门课程的学生平均成绩.SELECT CNAME,AVG(GRADE)
FROM SC ,C
WHERE SC.C#=C.C# AND TEACHER='LIU'
GROUP BY C#
(4)统计每门课程的学生选修人数(超过10人的课程才统计).要求输出课程号和选修人数, 查询结果按人数降序排列,若人数相同,按课程号升序排列.SELECT DISTINCT C#,COUNT(S#)
FROM SC
GROUP BY C#
HAVING COUNT(S#)>10
ORDER BY 2 DESC, C# ASC
(5)检索学号比WANG同学大,而年龄比他小的学生姓名.SELECT X.SNAME
FROM S AS X, S AS Y
WHERE Y.SNAME='WANG' AND X.S#>Y.S# AND X.AGE(SELECT AVG(AGE)FROM S AS Y WHERE Y.SEX='女')
5,(1)往基本表S中插入一个学生元组('S9','WU',18).INSERT INTO S(S#,SNAME,AGE)VALUES('59','WU',18)
(2)在基本表S中检索每一门课程成绩都大于等于80分的学生学号,姓名和性别, 并把检索到的值送往另一个已存在的基本表STUDENT(S#,SANME,SEX).INSERT INTO STUDENT(S#,SNAME,SEX)
SELECT S#,SNAME,SEX
FROM S WHERE NOT EXISTS
(SELECT * FROM SC WHERE
GRADE<80 AND S.S#=SC.S#)
(3)在基本表SC中删除尚无成绩的选课元组.DELETE FROM SC
WHERE GRADE IS NULL
(4)把WANG同学的学习选课和成绩全部删去.DELETE FROM SC
WHERE S# IN
(SELECT S#
FROM S
WHERE SNAME='WANG')
(5)把选修MATHS课不及格的成绩全改为空值.UPDATE SC
SET GRADE=NULL
WHERE GRADE<60 AND C# IN
(SELECT C#
FROM C
WHERE CNAME='MATHS')
6)把低于总平均成绩的女同学成绩提高5%.UPDATE SC
SET GRADE=GRADE*1.05
WHERE GRADE<(SELECT AVG(GRADE)FROM SC)AND S# IN(SELECT S# FROM S WHERE SEX='F')
(7)在基本表SC中修改C4课程的成绩,若成绩小于等于75分时提高5%, 若成绩大于75分时提高4%(用两个UPDATE语句实现).UPDATE SC
SET GRADE=GRADE*1.05
WHERE C#='C4' AND GRADE75
6, 在宿主语言的程序中使用SLQ语句有以下规定:
(1)在程序中要区分SQL语句与宿主语言语句
(2)允许嵌入的SQL语句引用宿主语言的程序变量(称为共享变量),但有两条规定:
1)引用时,这些变量前必须加“:”作为前缀标识,以示与数据库中变量有区别.2)这些变量由宿主语言的程序定义,并用SQL的DECLARE语句说明.(3)SQL的集合处理方式与宿主语言单记录处理方式之间要协调.需要采用游标机制,把集合操作转换成单记录处理方式.7,(1)INSERT,DELETE,UPDATE语句,查询结果肯定是单元组时的SELECT语句, 都可直接嵌入在主程序中使用,不必涉及到游标.(2)当SELECT语句查询结果是多个元组时,此时宿主语言程序无法使用, 一定要用游标机制把多个元组一次一个地传送给宿主语言处理.