北邮数据库实验二基本SQL练习.docx
《北邮数据库实验二基本SQL练习.docx》由会员分享,可在线阅读,更多相关《北邮数据库实验二基本SQL练习.docx(16页珍藏版)》请在冰点文库上搜索。
北邮数据库实验二基本SQL练习
一、实验目的
SQL是关系数据库的标准语言,已经成为关系数据库管理系统的核心。
结合数据库系统原理教学的理论知识,通过实验让学生熟悉基本SQL的用法,掌握SQL语言的数据操纵等基本功能。
二、实验内容
在第一次实验的基础上,在IBMDB2v8.1数据库管理系统中创建自己的数据库模式,并导入对应的数据。
实验SQL语句操作数据库表结构中的数据,获得预期的结果。
三、实验环境
普通PC、Windows8.1、IBMDB2v9.7数据库管理系统
四、实验结果
a.查询全体职工的职工号和姓名。
SQL如图1,查询结果为图2。
图1:
查询全体职工的职工号和姓名
图2:
查询全体职工的职工号和姓名实验结果
b.查询全体职工的记录,SQL如图3,查询结果为图4。
图3:
查询全体职工的记录SQL语句
图4:
查询全体职工的记录
c.查询全体职工的姓名和出生日期,SQL如图5,查询结果为图6。
图5:
查询全体职工的姓名和出生日期SQL
图6:
全体职工的姓名和出生日期
d.在职工表中查询有哪些职工担任了职务,并列出职工的职工号。
SQL如图7,查询结果为图8。
图7:
查询有哪些职工担任了职务,并列出职工的职工号SQL
图8:
担任了职务的职工号
e.查询全体主管的姓名。
SQL如图9,查询结果为图10。
图9:
查询全体主管的姓名SQL语句
图10:
查询全体主管的姓名
f.查询全体助理的职工号,SQL如图11,查询结果为图12。
图11:
全体助理的职工号SQL
图12:
全体助理的职工号
g.查询所有工资在20000以下的职工的姓名和出生日期。
SQL如图13,查询结果为图14。
图13:
所有工资在20000以下的职工的姓名和出生日期SQL
图14:
所有工资在20000以下的职工的姓名和出生日期
h.查询工资在10000-20000之间的职工的姓名、所担任职务和出生日期。
SQL如图15,查询结果为图16。
图15:
工资在10000-20000之间的职工的姓名、所担任职务和出生日期SQL
图16:
工资在10000-20000之间的职工的姓名、所担任职务和出生日期
i.查询工资不在10000-20000之间的职工的姓名、职工号和性别,SQL如图17,查询结果为图18。
图17:
工资不在10000-20000之间的职工的姓名、职工号和性别SQL
图18:
工资不在10000-20000之间的职工的姓名、职工号和性别
j.查询担任经理或助理职务员工的姓名和性别,SQL如图19,查询结果为图20。
图19:
担任经理或助理职务员工的姓名和性别SQL
图20:
担任经理或助理职务员工的姓名和性别
k.查询不担任经理或助理职务员工的姓名和性别,SQL如图21,查询结果为图22。
图21:
不担任经理或助理职务员工的姓名和性别SQL
图22:
不担任经理或助理职务员工的姓名和性别
l.查询fname为white的职员的详细信息,SQL如图23,查询结果为图24。
图23:
fname为white的职员的详细信息SQL
图24:
fname为white的职员的详细信息
m.查询fname中第二个字母为“o”或“e”的职员的姓名和职工号,SQL如图25,查询结果为图26。
图25:
fname中第二个字母为“o”或“e”的职员的姓名和职工号SQL
图26:
fname中第二个字母为“o”或“e”的职员的姓名和职工号
n.查询所有fame不是“white”的职工姓名,SQL如图27,查询结果为图28。
图27:
所有fame不是“white”的职工姓名SQL
图28:
所有fame不是“white”的职工姓名
o.查询职工号的最后一位不是2、3、5的职工的所有信息,SQL如图29,查询结果为图30。
图29:
职工号的最后一位不是2、3、5的职工的所有信息SQL
图30:
职工号的最后一位不是2、3、5的职工的所有信息
p.查询无电话号码的owner的编号和姓名,SQL如图31,查询结果为图32。
对职工按收入多少进行降序排序,SQL如图33,查询结果为图34。
图31:
无电话号码的owner的编号和姓名SQL
图32:
无电话号码的owner的编号和姓名
图33:
无电话号码的owner的编号和姓名SQL
图34:
无电话号码的owner的编号和姓名
q.查询所有担任助理职务员工的员工号和收入,查询结果按收入降序排列,SQL如图35,查询结果为图36。
图35:
所有担任助理职务员工的员工号和收入SQL
图36:
所有担任助理职务员工的员工号和收入
r.统计员工总人数,SQL如图37,查询结果为图38。
图37:
统计员工总人数SQL
图38:
统计员工总人数
s.统计担任经理职务员工的人数,SQL语句如下,实验结果为图39。
selectcountasmanagerno
fromstaff
whereposition='Manager'
图39:
统计担任经理职务员工的人数
t.计算所有担任助理职务员工的总收入之和,SQL语句如下,实验结果为图40。
selectsum(salary)assum
fromstaff
whereposition='Assistant'
图40:
所有担任助理职务员工的总收入之和
u.统计每个职务的员工人数,列出职务名称和人数,SQL语句如下,实验结果为图41。
selectposition,countasstaffno
fromstaff
groupbyposition
图41:
统计每个职务的员工人数,列出职务名称和人数
v.查询每种职务的员工人数和平均收入,SQL语句如下,实验结果为图42。
selectposition,countasstaffno,avg(salary)asavg
fromstaff
groupbyposition
图42:
每种职务的员工人数和平均收入
w.查询与Annbeech担任同一个职务的职工的职工号的SQL语句如下,实验结果为图43。
selectstaffno
fromstaff
whereposition=(selectpositionfromstaffwherefname='Ann'andlname='Beech')
图43:
与Annbeech担任同一个职务的职工的职工号
x.将职工号为“SA9”的职工的收入改为15000的SQL语句如下,实验结果为图44。
updatestaff
setsalary=1500
wherestaffno='SA9'
select*
fromstaff
wherestaffno='SA9'
图44:
职工号为“SA9”的职工的收入改为15000
y.删除所有收入低于10000的员工的记录的SQL语句如下,实验结果为图45。
deletefromstaff
wheresalary<10000
select*
fromstaff
图45:
删除所有收入低于10000的员工的记录