数据库面试sql
问题一:、有三张表,学生表S,课程表C,学生课程表SC
01:写出建表语句
答:
create table s(id integer primary key,name varchar(20));
create table c(id integer primary key,name varchar(20));
create table sc(
sid integer references s(id),
cid integer references c(id),
primary key(sid,cid)
)
02:写出SQL语句,查询选修了所以选修课程的学生
答:
select stu.id,stu.name from s stu
where(
select COUNT(*) from sc
where sc.sid=stu.id
)=(
select COUNT(*) from c
)
03:写出SQL语句,查询选修了至少5门以上的课程的学生
答:
select stu.id,stu.name from s stu
where (
select COUNT(*) from sc
where sid=stu.id
)>=5
问题二:有三张表、Student学生表(学号、姓名、性别、组织部门)、
Course课程表(编号、课程名称)、
Sc选课表(学号、课程编号、成绩)
01、写一个SQL语句,查询选修了'计算机原理'的学生学号和姓名
答:
select stu.sno,stu.sname from Student stu
where(
select COUNT(*)from sc
where sno=stu.sno
and cno=(
select cno from Course
where cname='计算机原理'
)
)!=0
02、写一个SQL语句,查询'周星驰'同学选修的课程名称
答:
select cname from Course
where cno in(
select cno from sc where sno=(
select sno from Student
where sname='周星驰'
)
)
03、写一个SQL语句,查询选修了5门课程的学生学号和姓名
答:
select stu.sno,stu.sname from Student stu
where (
select COUNT(*) from sc where sno=stu.sno
) =5
04、查询两门以上(包括两门)课程不及格的学生名称以及平均成绩
答:
select s.sno,s,sname,AVG(sc.score)
from Student s,sc
where s.sno=sc.sno
group by s.sno,s.sname
having COUNT(
case when sc.score<60 then 1 end
)>2
问题三:数据库表Test结构如下:
ID NAME AGE MANAGER(所属主管人ID)
106 A 30 104
107 B 20 108
108 C 19 104
109 D 25 109
116 E 40 120
119 F 45 null
要求:列出所有年龄比所属主管年龄大的人的id和姓名?
答:
select employee.name from test employee
where employee.age>(
select manager.age from test manager
where manager.id=employee.manager
)
问题四:有如下两张表
表city:
CityNo CityName StateNo
bj 北京 null
sh 上海 null
gz 广州 gd
dl 大连 ln
表state:
StateNo StateName
gd 广东
ln 辽宁
sd 山东
nmg 内蒙古
欲得到结果如下:
CityNo CityName StateNo StateName
bj 北京 null null
dl 大连 ln 辽宁
gz 广州 gd 广东
sh 上海 null null
答:
select c.cityno,c.cityname,c.stateno,s.statename
from city c,state s
where c.stateno=s.stateno
order by c.cityno
问题五:有三张表
S(SNO,SNAME)学生关系。学号、姓名
C(CNO,CNAME,CTEACHER)课程关系。课程号、课程名称、任课老师
SC(SNO,CNO,SCGRADE)选课关系。SCGRADE成绩
01、找出没有选修过'张三'老师讲授的所有学生姓名
答:
select sname from s
where sno not in(
select sno from sc
where cno in(
select cno from c
where cname='张三'
)
)
02、列出有二门以上(含二门)不及格课程的学生姓名和学号
答:
select sname,(
select AVG(scgrade) from sc where sno=s.sno
) from s
where (select COUNT(*) from sc where sno=s.sno and
scgrade<60
)>=2
03、列出既学过'1'号课程,又学过'2'号课程的所有学生学号和姓名
答:
select sname from s
where sno in(select sno from where cno=1 or cno=2)
04、列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号及姓名
答:
select sname from s
where sno in(
select sno from sc where cno=1 and scgrade>(
select scgrade from sc
where sno=2 and cno=1
)
)
05、列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩
答:
select sname from s
where (select scgrade from sc
where sno=s.no and cno=1
)>(select scgrade from sc
where sno=s.sno and cno=2
)
数据库面试sql的更多相关文章
- 50个常用的笔试、面试sql语句
50个常用的笔试.面试sql语句 2009-12-17 15:05 Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,s ...
- java web面试技巧,数据库面试,java web轻量级开发面试教程
我最近看到一本比较好的讲java web方面面试的书,java web轻量级开发面试教程. 其中不仅用案例和视频讲述了Spring MVC,Hibernate, ORM等方面的技巧,而且还实际讲到了面 ...
- 数据库基础SQL知识面试题一
数据库基础SQL知识面试题一 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如标题所示,本篇博客主要介绍基础知识的面试题.大家可以用来测试面试者的技术水平,由于个人水平所限,难免 ...
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
- 如何转换SQL Server 2008数据库到SQL Server 2005
背景介绍: 公司一套系统使用的是SQL SERVER 2008数据库,突然一天收到邮件,需要将这套系统部署到各个不同地方(海外)的工厂,需要在各个工厂部署该数据库,等我将准备工作做好,整理文档 ...
- jdbc向各种数据库发送sql语句
1.有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事.换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Info ...
- SQL---Chapter01 数据库和SQL
数据库类型: 层次数据库(Hierarchical Database, HDB) 数据通过层次结构(树形结构)的方式表示出来. 关系型数据库(Relational Database, RDB) 使用专 ...
- 总结一些关于操作数据库是sql语句还是存储过程问题
总结一些关于操作数据库是sql语句还是存储过程问题 程序中,你跟数据的交互,需要向数据库拿数据.更改数据库的数据等,这些操作,本身不是程序完成的,而是程序发命令给数据库去做的,不管是通过sql语句方式 ...
- SQL Server 【附】创建"商品管理数据库"、"学生选课数据库"的SQL语句
附:(创建“商品管理数据库”的SQL语句) --建立"商品管理数据库"数据库-- create database 商品管理数据库 on(name='商品管理数据库_m', file ...
随机推荐
- 返回顶部 fixed oncheck(点击按钮)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 3 Python 函数介绍
1.函数的基本概念 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 减少重复代码 使程序变的可扩展 使程序变得易维护 语法定义 def ...
- delegate() 事件绑定 事件委托
定义和用法 delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数. 使用 delegate() 方法的事件处理程序适用于当前或未来 ...
- Haskell语言学习笔记(23)MonadReader, Reader, ReaderT
MonadReader 类型类 class Monad m => MonadReader r m | m -> r where ask :: m r ask = reader id loc ...
- jQuery中的几个模块总结
Query插件,以备并希望在前端方面有所长进.请批评指正. 一,类型判断全解 JQuery判断类型扩展方法:$.type() /*type: function( obj ) { if ( obj == ...
- Hibernate 中的锁( locking )
业务逻辑的实现过程中,往往需要保证数据访问的排他性.如在金融系统的日终结算处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数 ...
- django中怎么使用mysql数据库的事务
Mysql数据库事务: 在进行后端业务开始操作修改数据库时,可能会涉及到多张表的数据修改,对这些数据的修改应该是一个整体事务,即要么一起成功,要么一起失败. Django中对于数据库的事务,默认每执行 ...
- 断开的管道 java.io.IOException: Broken pipe 解决方法
一.Broken pipe产生原因分析 1.当访问某个服务突然服务器挂了,就会产生Broken pipe; 2.客户端读取超时关闭了连接,这时服务器往客户端再写数据就发生了broken pipe异常! ...
- The Hard Thing About Hard Things
1.大多数的管理书籍都是告诉你如何做正确的事,不把事情搞砸.而好书是告诉你,当事情已经搞砸时,你该怎么办. 2.这是个个真实的世界,他们偷走了你的梦想,可你却不知道是谁偷的.
- sysbench——服务器cpu性能测试
一.前言 最近在工作中需要测试cpu占用率.内存占用率,我想要寻找一种合适的能提高cpu占用率的工具及方法.先尝试了使用 echo "scale=5000; 4*a(1)" | b ...