access查询操作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、利用SQL语言创建查询
a)查询课程表的所有字段和记录.
SELECT * from 课程表
b)查询学生表的学号,姓名和性别。
SELECT 学号,姓名,性别from 学生表
c)查询有学生选修的课程名称。
SELECT 课程名from 课程表where 课程号in (select 课程号from 成绩表)
d)查询学生的姓名和年龄(精确到月)。
SELECT 姓名,(year(now())-year(出生日期))*12 from 学生表
e)查询编号包含”02”的系开的课程名称。
SELECT 课程名from 课程表where 开课单位in (select 院系编号from 院系表where 院系编号="02")
select 课程号from 课程表,院系表where 课程表.开课单位=院系表.院系编号and 院系编号="02"
f)查询学时数大于48或者小于27的课程名称。
select 课程名from 课程表where 学时数>48 or 学时数<27
g)查询籍贯为北京、山西和上海的学生名称。
select 姓名from 学生表where 籍贯=”北京” or 籍贯=”山西” or 籍贯=”上海”
h)查询课程名称包含“原理”的课程名称。
select 课程名from 课程表where 课程名like "*原理*"
i)查询信息系开的课程的名称、选修的学生姓名,成绩。
Select课程名,姓名,成绩from 课程表,学生表,成绩表,院系表where 课程表.课程号=成绩表.课程号and 学生表.学号=成绩表.学号and 课程表.开课单位=院系表.院系编号and 学生表.所属院系=院系表.院系编号and 院系名称=”信息系”
j)查询成绩在90分以上,开课单位为”信息系”,”法律系”和”会计系”的学生籍贯,并按照学生学号排序,将前两条记录存入到新表”result”中.
Select 籍贯from 学生表,成绩表,课程表where 学生表.学号=成绩表.学号and 课程表.
课程号=成绩表.课程号and 成绩>90 and (开课单位="04" or 开课单位="01" or 开课单位="05") order by 学生表.学号
连接查询(1、利用inner(left/right) join来完成SQL语句查询)
k)查询信息系开的课程名称、选修这些课程的学生姓名,成绩。
select 课程名,姓名,成绩from (院系表inner join (课程表inner join (成绩表inner join 学生表on 学生表.学号=成绩表.学号) on 课程表.课程号=成绩表.课程号) on 院系表.院系编号=课程表.开课单位) where 院系名称="信息系"
l)查询有开课的院系名称和课程名称.
Select distinct院系名称,课程名from (院系表inner join (课程表inner join 成绩表on 课程表.课程号=成绩表.课程号) on 院系表.院系编号=课程表.开课单位)
m)查询所有院系名称和所开课的课程名称.
Select 院系名称,课程名from (课程表right join 院系表on 课程表.开课单位=院系表.
院系编号)
2、联合查询(利用union完成SQL语句查询)
a)查询年龄低于25岁的所有教师和学生姓名.
Select 姓名from 学生表where (year(now())-year(出生日期))<25 union select 姓名
from 教师表where 年龄<25
b)查询学生的平均成绩,没有成绩的用0表示.
Select avg(成绩) from 成绩表group by 学号union
子查询(利用子查询的SQL语句完成查询)
c)查询出生日期小于年龄划分表中所有出生日期的学生姓名.
Select 姓名from 学生表where(year(now())-year(出生日期)) in (select min(year(now())-year(出生日期)) from 学生表)
d)查询没有选修课程的学生的学号和姓名。
Select 学号,姓名from 学生表where 学号not in (select 学号from 成绩表)
3、聚集查询(利用group by 和having 完成SQL语句查询)
a)查询选修课程的学生姓名和平均成绩,按照姓名分组.
Select 姓名,avg(成绩) from 学生表,成绩表where 学生表.学号=成绩表.学号group by 姓名
b)查询按照院系名称和性别进行分组后学生人数超过1人的院系名称、性别、和对应
的人数。
Select 院系名称,性别,count(*) from 院系表,学生表where 学生表.所属院系=院系表.院系编号group by 院系名称,性别having count(*)>1
c)查询开课总学时最少的院系名称。
Select 院系名称from 院系表,课程表where 院系表.院系编号=课程表.开课单位and (select sum(学时数) from 课程表group by 开课单位having sum(学时数))<=all(select sum(学时数) from 课程表group by 开课单位)
操作语言和定义语言
d)创建学生会表,包含字段(社团编号(整型),社团名称(文本型(10字节)),所
属院系(文本型(2字节))),其中社团编号为主码,所属院系为外码,参照院系
表的院系编号。
Create table 学生会表(社团编号int,社团名称text(10),所属院系text(2) references 院系表(院系编号),primary key(社团编号))
e)插入记录(1,“外联社”,03),(2,“文艺社”,05),(3,“交友社”,02)
al
f)更新2号记录的名称为“音乐社”。
Update 学生会表set 文艺社=音乐社
g)删除3号记录。
Delete from 学生会表where 社团编号=”3”
h)删除学生会表。
Drop table 学生会表