《数据库技术及应用》实验报告3.docx
《《数据库技术及应用》实验报告3.docx》由会员分享,可在线阅读,更多相关《《数据库技术及应用》实验报告3.docx(12页珍藏版)》请在冰点文库上搜索。
![《数据库技术及应用》实验报告3.docx](https://file1.bingdoc.com/fileroot1/2023-7/14/b772a9f7-188f-4385-ab1d-5b11ca9a0965/b772a9f7-188f-4385-ab1d-5b11ca9a09651.gif)
《数据库技术及应用》实验报告3
实验报告
课程名称
数据库技术及应用
实验项目名称
实验3数据表中的数据操作
实验时间
(日期及节次)
周一10-12节
专业
软件工程
学生所在学院
软件学院
年级
学号
姓名
指导教师
实验室名称
4号楼138
实验成绩
预习情况
操作技术
实验报告
附加:
综合创新能力
实验
综合成绩
教师签字
黑龙江大学教务处
黑龙江大学计算机科学与技术专业、软件工程专业
《数据库技术及应用》课程实验报告
学号
姓名
班级
实验时间
周一10-12节
实验名称
实验3数据表中的数据操作
一、实验目的
数据表中的数据操作
二、实验环境
WindowsXP,Oracle数据库
三、主要内容
已知一个已经建好的数据库factory,现在该数据库上存在三个表。
现按照如下要求完成各项操作,写出对应的SQL语句
1.写出建立三个表的Createtable语句
2.向department表中插入数据(部门号为10,部门名称为审计处)的insert语句
3.查询职工的所有基本信息
4.显示所有职工的年龄
5.显示所有职工中的最大年龄
6.求出各部门的党员的人数
7.显示所有职工的姓名和2004年1月的工资
8.显示所有职工的职工号,姓名,部门名称,2004.2的工资,并按照部门顺序进行排列
9.显示部门名及该部门所有职工的平均工资
10.显示所有平均工资高于1200的部门名称和对应的平均工资
四、实验总结
假脱机文件内容
SQL>createtableworker(职工号number(4),姓名char(8),性别char
(2),出生日期date,
2党员否number,参加工作时间date,部门号number(4));
createtableworker(职工号number(4),姓名char(8),性别char
(2),出生日期date,
*
第1行出现错误:
ORA-00955:
名称已由现有对象使用
SQL>createtablew(职工号number(4),姓名char(8),性别char
(2),出生日期date,
2党员否number,参加工作时间date,部门号number(4));
表已创建。
SQL>createtabledepartment(部门号number(4),部门名称varchar(20));
表已创建。
SQL>createtablesalary(职工号number(4),姓名char(8),性别char
(2),出生日期date,
2党员否number,参加工作时间date,部门号number(4));
表已创建。
SQL>droptablew;
表已删除。
SQL>createtableworker(职工号number(4),姓名char(8),性别char
(2),出生日期date,
2党员否number,参加工作时间date,部门号number(4));
createtableworker(职工号number(4),姓名char(8),性别char
(2),出生日期date,
*
第1行出现错误:
ORA-00955:
名称已由现有对象使用
SQL>droptableworker;
表已删除。
SQL>createtableworker(职工号number(4),姓名char(8),性别char
(2),出生日期date,
2党员否number,参加工作时间date,部门号number(4));
表已创建。
SQL>insertintodepartment(部门号,部门名)values(10,’审计处’);
insertintodepartment(部门号,部门名)values(10,’审计处’)
*
第1行出现错误:
ORA-00911:
无效字符
SQL>insertintodepartment(部门号,部门名)values(10,’审计处’);
insertintodepartment(部门号,部门名)values(10,’审计处’)
*
第1行出现错误:
ORA-00911:
无效字符
SQL>insertintodepartment(部门号,部门名)values(10,'审计处');
insertintodepartment(部门号,部门名)values(10,'审计处')
*
第1行出现错误:
ORA-00904:
"部门名":
标识符无效
SQL>insertintodepartment(部门号,部门名称)values(10,'审计处');
已创建1行。
SQL>select职工号,姓名,性别,出生日期,党员否,参加工作时间,部门号fromworker;
未选定行
SQL>select姓名,sysdate/365年龄fromworker;
select姓名,sysdate/365年龄fromworker
*
第1行出现错误:
ORA-00932:
数据类型不一致:
应为NUMBER,但却获得DATE
SQL>select姓名,年龄fromworker;
select姓名,年龄fromworker
*
第1行出现错误:
ORA-00904:
"年龄":
标识符无效
SQL>select姓名fromworker;
未选定行
SQL>selectmax(sysdate/365)年龄fromworker;
selectmax(sysdate/365)年龄fromworker
*
第1行出现错误:
ORA-00932:
数据类型不一致:
应为NUMBER,但却获得DATE
SQL>selectcount(*)
2fromdepartment
3where部门号=(select部门号fromworkerwhere党员否=1)
4groupby部门号;
未选定行
SQL>select姓名,工资fromsalarywheredate=2004.7;
select姓名,工资fromsalarywheredate=2004.7
*
第1行出现错误:
ORA-00936:
缺失表达式
SQL>select职工号,姓名,部门名称,salary
2fromworker,department,salary
3whereworker.部门号=department.部门号andworker.职工号=salary.职工号andsalary.date=2004.2;
select职工号,姓名,部门名称,salary
*
第1行出现错误:
ORA-00911:
无效字符
SQL>select职工号,姓名,部门名称,salary
2fromworker,department,salary
3whereworker.部门号=department.部门号andworker.职工号=salary.职工号andsalary.date=2004.2;
whereworker.部门号=department.部门号andworker.职工号=salary.职工号andsalary.date=2004.2
*
第3行出现错误:
ORA-01747:
user.table.column,table.column或列说明无效
SQL>select部门名,avg(salary)
2fromsalary,department,worker
3whereworker.部门号=department.部门号andworker.职工号=salary.职工号
4groupby部门号;
select部门名,avg(salary)
*
第1行出现错误:
ORA-00911:
无效字符
SQL>select部门名,avg(salary)
2fromsalary,department,worker
3whereworker.部门号=department.部门号andworker.职工号=salary.职工号
4groupby部门号;
groupby部门号
*
第4行出现错误:
ORA-00918:
未明确定义列
SQL>select部门名称,avg(salary)
2fromsalary,department,worker
3whereworker.部门号=department.部门号andworker.职工号=salary.职工号and
4avg(salary)>1200
5groupby部门号;
avg(salary)>1200
*
第4行出现错误:
ORA-00934:
此处不允许使用分组函数
SQL>selectenamefromemp;
ENAME
----------
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
ENAME
----------
JAMES
FORD
MILLER
已选择14行。
SQL>updatetableempsetenameas姓名;
updatetableempsetenameas姓名
*
第1行出现错误:
ORA-00903:
表名无效
SQL>updateempsetenameas姓名;
updateempsetenameas姓名
*
第1行出现错误:
ORA-00927:
缺失等号
SQL>updateempsetenameas=姓名;
updateempsetenameas=姓名
*
第1行出现错误:
ORA-00927:
缺失等号
SQL>updateempsetename=姓名;
updateempsetename=姓名
*
第1行出现错误:
ORA-00904:
"姓名":
标识符无效
SQL>updatetableempsetenameas=姓名;
updatetableempsetenameas=姓名
*
第1行出现错误:
ORA-00903:
表名无效
SQL>selectdistinct部门号fromemp;
selectdistinct部门号fromemp
*
第1行出现错误:
ORA-00904:
"DISTINCT部门号":
标识符无效
SQL>selectename,salfromempwheresalary>2000;
selectename,salfromempwheresalary>2000
*
第1行出现错误:
ORA-00911:
无效字符
SQL>selectename,salfromempwheresalary>2000;
selectename,salfromempwheresalary>2000
*
第1行出现错误:
ORA-00904:
"SALARY":
标识符无效
SQL>selectename,salfromempwheresalbetween2000and3000;
ENAMESAL
--------------------
JONES2975
BLAKE2850
CLARK2450
SCOTT3000
FORD3000
SQL>selectenamefromempwhereenamelike"A%";
selectenamefromempwhereenamelike"A%"
*
第1行出现错误:
ORA-00904:
"A%":
标识符无效
SQL>selectenamefromempwhereenamelike"%A%";
selectenamefromempwhereenamelike"%A%"
*
第1行出现错误:
ORA-00904:
"%A%":
标识符无效
SQL>selectenamefromempwhereenamelike"__A%";
selectenamefromempwhereenamelike"__A%"
*
第1行出现错误:
ORA-00904:
"__A%":
标识符无效
SQL>selectename,salfromemporderbysaldesc;
ENAMESAL
--------------------
KING5000
FORD3000
SCOTT3000
JONES2975
BLAKE2850
CLARK2450
ALLEN1600
TURNER1500
MILLER1300
WARD1250
MARTIN1250
ENAMESAL
--------------------
ADAMS1100
JAMES950
SMITH800
已选择14行。
SQL>selectenamefromempwherelocisnull;
selectenamefromempwherelocisnull
*
第1行出现错误:
ORA-00904:
"LOC":
标识符无效
SQL>spooloff