一选择题
1.SQL语言通常称为()
A.结构化操纵语言
B.结构化控制语言
C.结构化定义语言
D.结构化查询语言
2.下列SQL语句命令,属于数据定义语言的是( )。
A.SELECT
b .CREATE
c·GRANT
d .DELETE
3·以下操作不属于数据更新的( )。
A.插入
B.删除
C. 修改
D.查询
4,在创建基本表的过程中,下列说法正确的是( )。
A.在一个数据库中,两个基本表的名字可以相同
B.表名和属性列的名字不区分大小写
C.在给表命名时,第一个字符必须是字母或数字
D.在给表中的属性列命名时,第一个字符必须是字母或数字
5. Oracle提供了5种约束条件保证数据的完整性和参考完整性,其中主键约束包含该键上的每一列的两种约束是( )。
A.非空约束和检查约束
B.非空约束和唯一约束
C.唯一约束和检查约束
D.外键约束和检查约束
6.下列说法错误的是( )。
A.主键约束既可以作为列级完整性约束条件,也可以作为表级完整性约束条件
B.唯一约束可以作为列级完整性约束条件,但不可以作为表级完整性约束条件
C.非空约束可以作为列级完整性约束条件,但不可以作为表级完整性约束条件
D.外键约束既可以作为列级完整性约束条件,也可以作为表级完整性约束条件
7,在SQL语句中,对分组情况满足的条件进行判断的语句是( )。
A.HAVING
B.ORDER BY
C.WHERE
D.GROUP
8,连接两个表M与N中的数据,形成一个结果集,并在会话中显示这个结果。表M与表N有一个共享列,在两个表中都称为w.即使表N中没有相应数值,下列选项中WHERE子句可以显示表M中w列为2的数据的是()。
A.WHERE M. W=2 AND M. W=N.W;
B.WHERE M. W=2;
C.Where M.W=2 AND M.W(+)=N.W (+);
D.WHERE M. W=2 AND M. W=N.W (+);
9,查询所有成绩均大于80分的学生姓名,应执行( )语句
A.选择SNAME FROM STUDENT WHERE EXISTS (SELECTFROM SO)
医生表: do
那里的学生。SNO = SC。SNO和等级> 80);
医生姓名、年龄
B.从存在的学生中选择SNAME(从SC中选择)
列名
那里的学生。SNO = SC。SNO和等级<=80);
C.从不存在的学生中选择SNAME(选择
多德诺
来自SC的学生。SNO = SC。SNO和等级<=80);
年龄
D.从不存在的学生中选择SNAME(选择*)
萨尔
来自SC的学生。SNO = SC。SNO和等级> 80);
10,下列描述不正确的是( )。
A.向表中插入数据之前,要先有表的结构
B.插入的数据及列名之间用逗号分开
C.在INSERT语句中列名是可以选择指定的,如果没有指定列名,则表示这些列按表中或视图中列的顺序和个数
D.插入值的数据类型、个数、前后顺序不用与表中属性列的数据类型、个数、前后顺序匹配11,将java课程的学分改为4学分,正确的语句是( )。
A.更新课程学分=4,其中CNAME= 'java';
B.更新课程集学分=4,其中CNAME= JAVA';
C.更新学分=4,其中CNAME= 'java';
D.更新学分=4,其中CNAME= JAVA';
12,下列有关UPDATE语句描述错误的是( )。
A. UPDATE关键字用于定位修改哪一张表
B. SET关键字用于定位修改这张表中的哪些属性列
C. WHERE<;条件>用于定位修改这些属性列当中的哪些行
D.在UPDATE语句中不可以嵌套子查询
13,下列有关DELETE语句描述错误的是( )
A. DELETE语句的功能是从指定表中删除满足WHERE<;条件>的所有元组
B. DELETE语句既可以删除表中的数据,也可以删除表的结构
C.在DELETE语句中可以嵌套子查询
D.在删除表中的数据时,应满足定义表时设定的约束条件
二、上机实验题
1.某数据库中包含科室表和医生表。
科室表:dept_table(deptno,dname,loc),表中属性列依次是科室编号、科室名称、科室所在地点。科室表结构如下:
医生表:doctor_table(docno,docname,age,sal,deptno),表中属性列依次是医生编号、医生姓名、年龄、工资、所在科室编号。医生表结构如下:
(1)用SQL语句实现以下基本表的创建
①科室表(dept_table)的创建。
②医生表(doctor_table)的创建。
(2)根据各表结构,用SQL语句完成下列操作
①将医生表doctor_table中的docname列的数据类型修改为char(20)。
②doctor_table表中添加一个名为chk_sal的约束,从而保证医生的工资必须大于800。
③将张三医生的工资调高20%。
④删除科室号为10,工资低于2000的医生信息。
⑤查询各个科室的科室名称及其医生人数,查询结果按照医生人数的升序排列,如果
人数相同,按照科室名称降序排列。
⑥查询各科室中至少有2个人工资在2500以上的科室号和医生人数。
⑦查询平均工资超过3000的科室编号。
⑧查询孙七医生所在的科室名称及科室地点。
⑨查询姓赵的医生姓名、年龄和所在科室名称。
⑩建一个“口腔科”科室的视图dept_10,包括医生编号、医生姓名及工资。
答案:
一、选择题
1.D
2.B
3.D
4.B
5.B
6.B
7.A
8.D
9.C 10.D 11.A 12.D 13.B
二、上机实验题
1.某数据库中包含科室表和医生表。
科室表:dept_table(deptno,dname,loc),表中属性列依次是科室编号、科室名称、科室所在地点。科室表结构如下:
医生表:doctor_table(docno,docname,age,sal,deptno),表中属性列依次是医生编号、医生姓名、年龄、工资、所在科室编号。医生表结构如下:
(1)用SQL语句实现以下基本表的创建
③科室表(dept_table)的创建。
④医生表(doctor_table)的创建。
(2)根据各表结构,用SQL语句完成下列操作
⑪将医生表doctor_table中的docname列的数据类型修改为char(20)。
⑫doctor_table表中添加一个名为chk_sal的约束,从而保证医生的工资必须大于800。
⑬将张三医生的工资调高20%。
⑭删除科室号为10,工资低于2000的医生信息。
⑮查询各个科室的科室名称及其医生人数,查询结果按照医生人数的升序排列,如果人数相同,按照科室名称降序排列。
⑯查询各科室中至少有2个人工资在2500以上的科室号和医生人数。
⑰查询平均工资超过3000的科室编号。
⑱查询孙七医生所在的科室名称及科室地点。
⑲查询姓赵的医生姓名、年龄和所在科室名称。
⑳建一个“口腔科”科室的视图dept_10,包括医生编号、医生姓名及工资。
答:
(1)用SQL语句实现以下基本表的创建
①create table dept_table
(deptno char(8) primary key,
dname varchar(15) unique,
loc varchar(9));
②create table doctor_table
(docno char(8) primary key,
docname varchar(10) not null,
age int check(age between 18 and 55),
sal number,
deptno char(8) references dept_table (deptno));
(2)根据各表结构,用SQL语句完成下列操作
①alter table doctor_table modify docname char(20);
②alter table doctor_table add constraint chk_sal check(sal>800);
③update doctor_table set sal=sal+sal*0.2 where docname='张三';
④delete from doctor_table where d eptno='10’ and sal<2000;
⑤select dname,count(docno) from dept_table,doctor_table where doctor_table.deptno=dept_table.deptno group by dname order by count(docno) asc,dname desc;
⑥select deptno,count(*) from doctor_table where sal>2500 group by deptno having count(*)>=2;
⑦select deptno from doctor_table group by deptno having avg(sal)>3000;
⑧select dname,loc from doctor_table,dept_table where doctor_table.deptno=
dept_table.deptno and docname='孙七';
sql约束条件大于0⑨select docname,age,dname from doctor_table,dept_table where doctor_table.deptno =dept_table.deptno and docname like '赵%';
⑩create view dept_10 as select docno,docname,sal from doctor_table,dept_table
where doctor_table.deptno=dept_table.deptno and dname='口腔科';

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。