数据库面试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 ...
随机推荐
- json decimal and datetime
python json模块默认不能序列化decimal和datetime数据,可以通过自定义一个序列化的类实现: link: http://www.cnblogs.com/buxizhizhoum/p ...
- iOS Hardware Guide
来自U3D文档 Hardware models The following list summarizes iOS hardware available in devices of various g ...
- 全屏幕显示AVI
uses Unit2; procedure TForm1.Button1Click(Sender: TObject);begin Form2.Show; Form2.WindowState := ...
- 常用类一一基本数据类型的包装类(WrapperClass)一一Byte Short nteger Long Float Double Character Boolean
为什么需要包装类? JAVA是支持跨平台的.可以在服务器 也可以在手机上运行 基本数据类型 在栈中 效率更高 包装类 将数据类型转换成对象 在 堆中 利于操作 package cn.bjsxt.w ...
- C#累加器函数Aggregate用法 讲解
Enumerable.Aggregate 扩展方法在System.Linq命名空间中,是Enumerable类的第一个方法(按字母顺序排名),但确是Enumerable里面相对复杂的方法. MSDN对 ...
- js中怎么写自执行函数
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- etcd ui
https://github.com/henszey/etcd-browser docker build --build-arg http_proxy=http://109.105.4.17:3128 ...
- zookeeper集群搭建 windows
本次zk测试部署版本为3.4.6版本,下载地址http://mirrors.cnnic.cn/apache/zookeeper/ 限于服务器个数有限本次测试了两种情况 1.单节点方式:部署在一台服务器 ...
- C语言实现大数四则运算
一.简介 众所周知,C语言中INT类型是有限制,不能进行超过其范围的运算,而如果采用float类型进行运算,由于float在内存中特殊的存储形式,又失去了计算的进度.要解决整个问题,一种解决方法是通过 ...
- 利用简单的参数传递来实现单条查询的easyui-datagrid
前一阵子老师给出了一个题目, 说让设计个表格, 学生系统的, 可以查询学生的信息和成绩, 科目自己定, 数据库建表也自己定. 数据库的建表可是建的相当的简陋, 反正老师不是很满意, 后来数据表格做出来 ...