Oracle 答案

发布 2022-09-02 13:45:28 阅读 1913

一、 数据库知识。(10分)

创建数据库(database)“考核管理系统”,包括表(table)“员工”,“成绩”,“员工”表包括字段“部门”,“姓名”,“成绩”表包括“姓名”“分数”,“等级”,80分以上为a,80分以下为b.

table1员工。

table2成绩。

1) 用sql写出创建数据库“考核管理系统”,创建表“员工”和表“成绩”(5分)

create table 表名(

列名1 字段名,列名2 字段名,……

2)用sql填入样本并统计每个部门等级为a的员工数量(5分)

插入样本数据。

insert into 表名(列名1,列名2,……values(值1,值2,……

统计等级为a部门员工数。

select from table1 a,table2 b where > 80

group by

三、图书(图书号,图书名,作者编号,出版社,出版日期),作者(作者姓名,作者编号,年龄,性别)用sql语句查询年龄小于平均年龄的作者姓名,图书名和出版社。

select 作者。作者姓名,图书。图书名,图书。出版社 from 作者,图书。

where 作者。年龄 < select **g(年龄) from作者) and作者。 作者编号 =图书。作者编号;

5、假设现在存在一个数据库student,用来存放学生信息,该数据库中存在两张表分别为。

studentinfo、studentclass,这两个表的结构如下:

studentinfo 学生信息表。

注:“#”表示这个字段是关键字。

classinfo 班级信息表。

注:“#”表示这个字段是关键字。

存在如下两个数据文件。

中的数据如下:

2006010001|张三|20|134***深圳市龙岗区|2006010901|

2006010002|李四|21|134***深圳市龙岗区|2006020405|

2006010003|张三|19|134***深圳市宝安区|2006030102|

2006010004|王五|21|134***深圳市龙岗区|2006010901|

中数据如下:

2006010901|2006级信息技术学院计算机1班|陈峰|45|

2006020405|2006级外语学院英语5班|张永|30|

2006030102|2006级数电学员数学2班|李四|45|

2006040501|2006级文体学院**1班|赵四|18|

请根据上述描述,完成下面题目:

1) 创建上述studentinfo、studentclass表:

- create table

create table studentinfo

numbers char(10),names char(8),age number default 0,tel char(11),address char(50),classnum char(10)

- create table

create table studentclass

classnum char(10),classname char(36),assistant char(12),studentnums number

这里注意:1、 oracle中int是number

2、 number字段我改成numbers,主要是怕后面出关键字等错。

3、 class name中不能有空格,否则建不起表。

4、 题目中的关键字没有明白意思,是主键?如果是,请建表时加入相关主键的语句。这里没有加。

5、 我很恶心出这个题的人,不带这样整人的,建一个表都这样多的不对,这个题目真恶心。

2) 将上面两个文件的数据分别导入数据库的两个表中。

>studentinfo,>classtinfos}

oracle中没有遇到过unl后缀的,都是dmp或sql,这个题我确实不知道如何写语句。

(3)请用sql语句查询出studentinfo表中所有的班级编号,查询结果不允许有重复记录出现。

select distinct from studentinfo t

4)请用一条sql语句,查询出学号为***的张三的**号码、年龄、住址、班级名称、指导员,并列出查询结果。

select

from studentinfo t,studentclass c

where

and 5)请用sql语句,修改学号为***的同学的**号码为137***其所在班级的人数为46人。

这个题:所在班级人数查出来是45人,是想同时update?这里写一个查出45的记录然后更新的sql,如果同时更新,请参照sql自己写。

update studentinfo t

set where

6)请用sql语句为班级信息表添加一个班长的字段,并将学生信息表中的学生姓名的字段类型修改为:char(6)

alter table studentclass add monitorname char(6) default xxx;

alter table studentinfo modify names char(6);

班长字段的要求如下:

7)请用sql语句,删除年龄最大的姓名为张三的学生记录。

delete from studentinfo t where

select max(age)

from studentinfo t

where '张三')

8)请用文字解释共享锁和独占锁的区别,并分别列出这两种课表操作的语句。

独占锁,别人不能任何操作;比如:insert,update,delete 操作。

共享锁,别人可读;比如for update 操作。

软通动力(华为)试题。

a表b表c表。

请写出如下sql语句。

1、查询出选择“语文”课程的学历、姓名。

select 学号,姓名 from a where 学号=

select 学号 from c where 课程编号=(select 课程编号 from b where 课程名称=’语文’))

2、查询出张三选课的课程名称。

select 课程名称 from b where 课程编号= (select 课程编号 from c where 学号= (select 学号 from a where 姓名=’张三’))

3、查询出选修课程数量多于2门的学号。

select 学号 from c group by 学号 h**ing count(学号)>2;

6.给出数据库正常启动所经历的几种状态?

答:startup nomount 数据库实例启动。

startup mount 数据库装载。

startup open 数据库打开。

8.查询a(id,name)表中第31至40条记录,id作为主键可能是不是连续增长的列,完整的查询语句如下:

答:selecttop 10 * from a where id >(select max(id) from (selecttop 30 id from a order by a) t) order by a

9.查询表a中存在id重复三次以上的记录,完整的查询语句如下:

答:select * from (select count(10) as count fgroup by id)t >3

1. linux下面启动oracle数据库 1、su – oracle 2、lsnrctl start 3、sqlplus /nologin 4、conn / as sysdba 5、startup

1. 存在表t(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sql

select *

from (select c.*,rownum as rn

from (select * from adapterfault_report t order by uuid desc) c)

where rn between 21 and 30;

问:数据库了解哪些?oracle还是sqlserver?oracle删除用什么命令?删除一张表?删除表里的记录呢?数据库里常见的数据类型有没有了解过?

Oracle答案

已知学生表xs有学号 姓名 毕业院校 成绩 cj 等字段,请写一个sql语句实现按学号末两位数分组显示。结果显示如下 分组号学号姓名。0 20100881203 周荣通。0 20100881206 游连桦。0 20100881209 陈艳。0 20100881212 叶荣林。0 2010088121...

oracle练习 答案

练习1 请查询表dept中所有部门的情况。select from dept 练习2 查询表dept中的部门号 部门名称两个字段的所有信息。select deptno,dname from dept 练习3 请从表emp中查询10号部门工作的雇员姓名和工资。select ename,sal from ...

oracle练习 答案

实验一。练习1 请查询表dept中所有部门的情况。select from dept 练习2 查询表dept中的部门号 部门名称两个字段的所有信息。select deptno,dname from dept 练习3 请从表emp中查询10号部门工作的雇员姓名和工资。select ename,sal f...