SQL数据库试题(笔试题)(5)

2019-04-02 19:59

INSERT INTO @G SELECT 1,1,1000

UNION ALL SELECT 2,1,1000 UNION ALL SELECT 3,1,800 UNION ALL SELECT 4,2,2000 -- 1

SELECT * FROM @G G

WHERE NOT EXISTS(SELECT 1 FROM @G WHERE GROUPS=G.GROUPS AND SALARY>G.SALARY)

SELECT G.* FROM @G G INNER JOIN (

SELECT GROUPS,MAX(SALARY) AS SALARY FROM @G

GROUP BY GROUPS )T

ON G.GROUPS=T.GROUPS AND G.SALARY=T.SALARY

select * from 工资表 as a where a.工资=(select max(b.工资) from 工资表 as b where a.部门编号=b.部门编号) -- 2

SELECT MIN(G.ID),G.GROUPS,G.SALARY FROM @G G INNER JOIN (

SELECT GROUPS,MAX(SALARY) AS SALARY FROM @G

GROUP BY GROUPS )T

ON G.GROUPS=T.GROUPS AND G.SALARY=T.SALARY GROUP BY G.GROUPS,G.SALARY

select * from 工资表 as a where a.工资=(select max(b.工资) from 工资表 as b where a.部门编号=b.部门编号) and

a.员工编号=(select max(c.员工编号) from 工资表 as c where a.部门编号=c.部门编号)

select min(员工编号)as 员工编号,部门编号,工资 from 工资表 as a where a.工资=(select max(b.工资) from 工资表 as b where a.部门编号=b.部门编号)group by 部门编号,工资

一定有更好的方法,请不吝赐教。

SQL面试题 (一)

有一个张员工工资表(SALARY),表有三列:员工编号(ID),工资(SALARY) 1.查询id重复记录

select * from 工资表 as a where ((select count(*) from 工资表 as b where a.员工编号=b.员工编号)>1)

SELECT * FROM 工资表

WHERE 员工编号 IN (

SELECT 员工编号 FROM 工资表

GROUP BY 员工编号 HAVING COUNT(*)>1 )

2.删除id重复记录,只保留第一条(说明,不需要考虑表中存在完全相同纪录的情况) SQL语句如下:

CREATE TABLE SALARY( ID INT NOT NULL,

SALARY MONEY NOT NULL )

INSERT INTO SALARY SELECT 1,1000

UNION ALL SELECT 1,800 UNION ALL SELECT 2,1200 UNION ALL SELECT 3,1100 UNION ALL SELECT 3,1200 UNION ALL SELECT 3,1300 SELECT * FROM SALARY -- 1

SELECT *

FROM SALARY WHERE ID IN (

SELECT ID FROM SALARY GROUP BY ID

HAVING COUNT(*)>1 ) -- 2

DELETE T

FROM SALARY T

WHERE EXISTS(SELECT 1 FROM SALARY WHERE T.ID=ID AND SALARY>T.SALARY)

四、设计题(本大题共2小题,每小题10分,共20分)

2、学生表:Student 学生表 (学号,姓名,性别,年龄,组织部门) Course 课程表 (编号,课程名称)

Sc 选课表 (学号,课程编号,成绩)

表结构如下:

(1).写一个SQL语句,查询选修了’计算机原理’的学生学号和姓名 (2).写一个SQL语句,查询’周星驰’同学选修了的课程名字 (3).写一个SQL语句,查询选修了5门课程的学生学号和姓名 select sno,sname from student where sno in (

select sno from sc

where cno = (

select cno from course

where cname='计算机原理' ) ) (2)

select cname from course where cno in (

select cno from sc

where sno = (

select sno from student

where sname='周星驰' )

) (3)

select sno,sname From student Where sno in (

select sno from sc

group by sno having count(sno)=5 )

(1)一道凊华同方的SQL面试题 已知一个表的结构为: 姓名 科目 成绩 张三 语文 20 张三 数学 30 张三 英语 50 李四 语文 70

李四 数学 60 李四 英语 90

怎样通过select语句把他变成以下结构: 姓名 语文 数学 英语 张三 20 30 50 李四 70 60 90

在Mysql上测试通过: use test;

drop table if exists studentscore;

create table studentscore (id int auto_increment primary key,姓名 varchar (20),科目 varchar (20),成绩 varchar (20) ) default charset=utf8;

INSERT INTO studentscore (id, 姓名, 科目, 成绩) VALUES

(1, \张三\语文\INSERT INTO studentscore (id, 姓名, 科目, 成绩) VALUES

(2, \张三\数学\INSERT INTO studentscore (id, 姓名, 科目, 成绩) VALUES

(3, \张三\英语\INSERT INTO studentscore (id, 姓名, 科目, 成绩) VALUES

(4, \李四\语文\INSERT INTO studentscore (id, 姓名, 科目, 成绩) VALUES

(5, \李四\数学\INSERT INTO studentscore (id, 姓名, 科目, 成绩) VALUES

(6, \李四\英语\

create view teststudent as

select A.姓名,A.成绩 as 语文,B.成绩 as 数学,C.成绩 as 英语 from studentscore A,studentscore B,studentscore C where A.姓名=B.姓名 and B.姓名=C.姓名 and A.科目='语文' and B.科目='数学' and C.科目='英语'; (2)

金蝶的一道SQL笔试题,上个周六的时候去金蝶面试,出了这样一道SQL题,共享之

给下面这样的一个表记录:

------------------------------------ 购物人 商品名称 数量 A 甲 2 B 乙 4 C 丙 1 A 丁 2 B 丙 5

给出所有购入商品为两种或两种以上的购物人记录

use test;

drop table if exists product;

create table product ( id int auto_increment primary key, 购物人 varchar (20), 商品名称 varchar (20), 数量 varchar (20) );

insert into product (id, 购物人, 商品名称, 数量) values (1,' A','甲','2'); insert into product (id, 购物人, 商品名称, 数量) values (2,' B','乙','4'); insert into product (id, 购物人, 商品名称, 数量) values (3,' C','丙','1'); insert into product (id, 购物人, 商品名称, 数量) values (4,' A','丁','2'); insert into product (id, 购物人, 商品名称, 数量) values (5,' B','丙','5');

select * from product group by 购物人 having count(商品名称)>=2;错误,因为结果是这样的:

A 甲 2 B 乙 4

select * from product where 购物人 in (select 购物人 from product group by 购物人 having count(商品名称)>=2) 正确 A 甲 2 B 乙 4 A 丁 2 B 丙 5


SQL数据库试题(笔试题)(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:四川省人民政府办公厅关于进一步做好被征地农民社会保障工作的通

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: