第一题
选择题(每题2分,共20分)
1已知员工表emp(empno,ename,job,sal)其中empno 员工编号,ename 员工姓名,job员工的职位,sal员工的工资。若要查看工资大于2000的员工的信息,则正确的sql语句是 ( b )
A、 select * from emp;
B、select * from emp where sal>2000;
C 、select * emp where sal>2000 ;
D 、select * from emp sal>2000;
2已知员工表emp(empno,ename,job,sal)其中empno 员工编号,ename 员工姓名,job员工的职位,sal员工的工资。查询所有员工的姓名和工资,则正确的sql语句是( b )
A、select ename,sal on emp;
B、select ename,sal from emp;
C、select emp from ename,sal;
D、select emp(ename,job);
3已知员工表emp(empno,ename,job,sal)其中empno 员工编号,ename 员工姓名,job员工的职位,sal员工的工资。查询工资sal大于3000职位为manager的员工信息的SQL语句为(b )
A、select * from emp where sal >3000 or job=’manager’;
B、select * from emp where sal >3000 and job=’manager’;
C、select * from emp where sal >3000 ,job=’manager’;
D、select * from emp where sal >3000 or job!=’manager’;
4有一个SQL语句为select * from fruits where price=20 or price=30 or price=35; 则下列语句中与其等同的是( b)
A. select * from fruits where price = (20,30,35) ;
B. select * from fruits where price in (20,30,35);
C. select * from fruits where price!=20 or 30 or 35;
D. select * from fruits where price!=20 and price!=30 and price!=35;
5已知员工表emp(empno,ename,job,sal,comm,deptno)其中empno 员工编号,ename 员工姓名,job员工的职位,sal员工的工资,comm 奖金,deptno 员工所在部门编号。查询奖金为空的员工信息,则正确的sql语句是( a )
A、select * from emp where comm=null;
B、select * from emp where comm is not null;
C、select * from emp where comm <>null;
D、select * from emp where comm is null;
6 SQL语言中,条件表示年龄在40至50之间的表达式为 ( b )。
A. IN (40,50) B. BETWEEN 40 AND 50 C. BETWEEN 40 OR 50 D. BETWEEN 40 ,50
7 表示职称为副教授同时性别为男的表达式为( b )
A. 职称='副教授' OR 性别='男' B. 职称='副教授' AND 性别='男'
C. BETWEEN '副教授' AND '男' D. IN ('副教授','男')
8表示职称为不是副教授同时性别不是男的表达式为( b )
A. 职称!='副教授 性别!='男' B. 职称!='副教授' AND 性别!='男'
C. BETWEEN '副教授' AND '男' D. IN ('副教授','男')
9若要删除表S中所有的编号(id)为偶数的记录可使用( a )
A.delete from S where id%2=0
B. update table S
C.truncate S
D. drop table S where id%2=1;
10已知学生表S(SN,SNAME,SAGE) 其中SN是学号,SNAME学生姓名,SAGE学生年龄。若要查询年龄不能被3整除的学生的信息的SQL语句为( c )
A、 select * from S having SAGE/3!=0 ;
B、select * from S having SAGE%3==0 ;
C 、select * from S where SAGE%3!=0 ;
D 、select * from S having SAGE%3!=0;
手写代码(共50分每题5分)
- 1. 使用SQL语句新建一个教师管理数据库,命名为TDB 。
Create database TDB character set utf8;
- 在TDB数据库中创建一个教师信息表TS,其表的结构如下表1。
字段名 | 字段描述 | 数据类型 | 主键 | 外键 | 非空 | 唯一 | 自增 |
Number | 教工号 | int | 是 | 否 | 是 | 是 | 否 |
Name | 姓名 | varchar(30) | 否 | 否 | 是 | 否 | 否 |
Sex | 性别 | varchar(4) | 否 | 否 | 否 | 否 | 否 |
Age | 年龄 | int | 否 | 否 | 否 | 否 | 否 |
DepNo | 部门名称 | varchar(50) | 否 | 否 | 否 | 否 | 否 |
Salary | 工资 | float | 否 | 否 | 否 | 否 | 否 |
Address | 家庭住址 | varchar(100) | 否 | 否 | 否 | 否 | 否 |
- 修改部门名称为精英学院的老师工资增加1000元。
Update ts set salary+1000 where depno=’精英学院’
- 查询出教工号为1001的教师信息。
Select * from ts where Number=1001
- 找出所有其家庭地址为北小营的女教师的教工号、姓名及部门名称。
Select number,name,depno from ts where address=’北小营’ and sex=’女’
- 查询出部门名称包括市场部、教务处、大数据、物联网的教职工信息
Select * from te where depno in(市场部,教务处,大数据)
- 查询出部门不是市场部和教务处的所有教职工的姓名、性别、部门和住址
Select name,sex,depno,addr from ts where depno not in(‘市场部’,’教务处’)
- 查询出工资在5千到1万之间教职工姓名和部门
Select name,depno from ts where salary between 5000 and 10000
- 查询出家庭住址为空的教师姓名、性别和部门
Select name,sex,depno from te where address=null
- 查询出年龄为30到40岁之间的女教师姓名和、部门和工资
Select name,depno,salary from ts where sex=’女’ and age between 30 and 40
第二题
- 选择题(每题2分,共20分)
1有学生成绩表SC(SN学号,CN课程号,grade成绩),查询学生成绩表,根据成绩和学号降序排列显示的,正确的SQL语句为( c)
A、select * from SC order by grade,SN asc;
B、select * from SC order by “SN” asc;
C、select * from SC order by SN desc,grade;
D、select * from SC order by grade desc,sn desc;
2表示职称为副教授同时性别为男的表达式为( b )
A. 职称='副教授' OR 性别='男' B. 职称='副教授' AND 性别='男'
C. BETWEEN '副教授' AND '男' D. IN ('副教授','男')
3表示职称为不是副教授同时性别不是男的表达式为( b )
A. 职称!='副教授 性别!='男' B. 职称!='副教授' AND 性别!='男'
C. BETWEEN '副教授' AND '男' D. IN ('副教授','男')
4若要删除表S中所有的编号(id)为偶数的记录可使用( a )
A.delete from S where id%2=0
B. update table S
C.truncate S
D. drop table S where id%2=1;
5已知学生表S(SN,SNAME,SAGE) 其中SN是学号,SNAME学生姓名,SAGE学生年龄。若要查询年龄不能被3整除的学生的信息的SQL语句为( c )
A、 select * from S having SAGE/3!=0 ;
B、select * from S having SAGE%3==0 ;
C 、select * from S where SAGE%3!=0 ;
D 、select * from S having SAGE%3!=0;
6.以下是聚合函数求数据总和的时 (c )
A、MAX
B、SUM
C、COUNT
D、AVG
7.查找条件为:姓名不是NULL的记录(c)
A、where name ! NULL
B、where name not NULL
C、where name is not NULL
D、where name !=NULL
8. UNIQUE 唯一约束的作用是什么(c)
A、保证各行在该列下的值不重复
B、保证各行在该列下的值不为空
C、保证该列只能添加唯一约束,不能出现其他约束
D、保证唯一约束不被删除
9.一张表中可以有几个主键(a)
A、1个 B、2个 C、3个 D、4个
10.修改数据表结构用一下哪项(a)
A、update B、select C、delete D、alter
三、手写代码(共 50 分每题10分)
- 请创建名为JingYing的数据库,并按照图中显示的数据创建表shop,id是编号,name是名称,price是金额,image是数量,写出创表所用的代码,并设置字符集为:utf-8;
Create database JingYing character set utf8;
Id (主键、自增) | Name (非空,唯一) | Price (非空,保留两位小数) | Image (非空,最大长度255)) |
Create table shop(id int,name varchar(255),price float, image varchar(255))
- 在题一创建好的数据表中任意添加5条数据
Insert into shop values(1001’冰箱’,4999.99,’2000’),(1002’电视’,2999.89,’3000’),(1003’洗衣机’,2580.99,’1500’),(1004’饮水机’,666.99,’1000’),(1005’豆浆机’,560.00,’1800’),
- 查询id为1002的数据的姓名和价格
Select name,price from shop where id=1022
- 查询名称为冰箱的数据信息
Select * from shop where name=’冰箱’
- 把题2添加的数据中,Name的值改为‘Mysql’;
Update shop set name=’mysql’ where id=1001