面试常见查询语句(能掌握以下几个例子就基本可以了)

表结构:
student(s#,sname,sage,ssex)学生表
course(c#,cname,T#)课程表
sc(s#,c#,score)成绩表
Teacher(T#,tname)教师表

1.查询001课程比002课程成绩高的所有学生的学号:
select sc1.s#
from sc sc1 join sc sc2 on sc1.s# = sc2.s#
where sc1.c# = ‘001’ and sc2.c# = ‘002’ and sc1.score > sc2.score

2.查询平均成绩大于60分的同学的学号和平均成绩:
select s#, avg(score) from sc group by s# having avg(score)>60;

3.查询所有同学的学号,姓名,选课数,总成绩:
select student.s#,student.name ,count(sc.c#) ,sum(sc.score)
from student left join sc on student.s# = sc.s# 注:内连接要计算笛卡尔积,这里使用左外连接效率更高

4.查询姓李的老师个数:
select count(T#) from Teacher where tname like “李%”
注:模糊查询, %代表任意字符,_代表任一单个字符,[……]代表是括号中字符中的单个字符, [^……]代表不是括号中字符中的单个字符

5.查询没有学过叶萍老师课的同学学号,姓名:
select studet.s# student.sname
from student
where s# not in (select distinct(sc.s#) from sc, course, teacher where sc.c# = course.c# and teacher.t# = course.t# and teacher.tname = “叶萍”);
三表联合 + 子查询

6.查询学过001和002课程的同学的姓名学号:
select student.s3 student .sname
from student join course on student.s# = course.s#
where(course.c# = ‘001’ union course.c# = ‘002’);

7.查询学过叶萍老师课的同学的学号,姓名:
select student.s# student.sname
from student
where s# in(select distinct(sc.s#) from sc course teacher where sc.c# = course.c# and teacher.t# = course.t# and teacher.tnmae = “叶萍”) 注:distinct为去重函数

8.查询002成绩比001低的同学的学号,姓名:
select student.s# student .name
from student where student.s# in(select sc1.s# from sc sc1 join sc sc2 on sc1.s# = sc2.s# where s1.c# = 001 and s2.c# = 002 and sc1.score> sc2.score);

9.查询所有课程成绩小于60分的同学的学号,姓名:
select student.s# student.sname from student join sc on student.s# = sc.s#
where sc.score > 60;

10.查询没有学全 所有课的同学的学号和姓名:
select student.s# student.sname from student,sc
where student.s# = sc.s# group by student.s#,student.sname having count(c#) < (select count(c#)from course);

11.查询至少有一门课程与学号1001的同学所学相同的同学的学号和姓名:
select student.s# ,student.sname from student join sc
where student.s# = sc.s# and c# in select c# from sc where s# = ‘1001’

12.查询至少学过学号为001同学所有一门课的其他同学的学号和姓名:
select distinct student.s#,student,sname from
SC join student on SC.s# = student.s#
where c# in(select c# from sc where s#=’001’);

时间: 2024-09-20 01:07:30

面试常见查询语句(能掌握以下几个例子就基本可以了)的相关文章

详解Oracle的几种分页查询语句

分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句.ROWNUM <= 40和RN >= 21控制分页查询的每页的范围. 上面给出的这个分页查询语句,在大多数情况拥有较高的效率.分页的目的就是控制输出结果集大小,

Php中使用Select 查询语句的实例

 php中要查询mysql数据库中的内容我们必须先连接mysql数据库,然后再利用sql语句进行查询,下面我们来看一些例子吧 sql有许多对数据库操作的语句.但是常见和比较需要的是这么几个语句 .SELECT 语句用于从数据库中选取数据.    那么我们先来介绍第一种 SELECT语句 语句1:SELECT *  FROM table_name 解说:意思就是读取整个表table_name里面的数据显示出来 语句1:SELECT * FROM table_name Where x = 1 解说:

sql join on关联查询语句用法

加入是用来从多个表中的行结合起来.每当在一个SQL语句的FROM子句中列出的两个或多个表进行联接. 有不同类型的联接.让我们看看几个例子.  内部联接(简单的加入) 机会是,你已经写了一个SQL语句,使用一个内部联接.这是最常见的类型,加入.内部联接满足联接条件的多个表返回所有行.  代码如下 复制代码 SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date FROM suppliers, orders W

Php中使用Select 查询语句的实例_php实例

sql有许多对数据库操作的语句.但是常见和比较需要的是这么几个语句 .SELECT 语句用于从数据库中选取数据. 那么我们先来介绍第一种 SELECT语句语句1:SELECT *  FROM table_name解说:意思就是读取整个表table_name里面的数据显示出来语句1:SELECT * FROM table_name Where x = 1解说:意思就是读取表table_name里面键名为:x 值为:1的 数据显示出来 Select 查询语句的例子 复制代码 代码如下: <?php$

工作10几年的dba总结的sql查询语句优化

目录 1.什么是执行计划?执行计划是依赖于什么信息. 2. 统一SQL语句的写法减少解析开销 3. 减少SQL语句的嵌套 4. 使用"临时表"暂存中间结果 5. OLTP系统SQL语句必须采用绑定变量 6. 倾斜字段的绑定变量窥测问题 7. begin tran的事务要尽量地小. 8. 一些SQL查询语句应加上nolock 9.加nolock后查询经常发生页分裂的表,容易产生跳读或重复读 10.聚集索引没有建在表的顺序字段上,该表容易发生页分裂 11.使用复合索引提高多个where条件

.Net+SQL Server企业应用性能优化笔记3——SQL查询语句

在上一篇文章中我们使用了几种方法来确定瓶颈,找到瓶颈,下面再回顾一下: LoadRunner压力测试+Windows计数器,这种方法主要是找出大概的性能问题是在哪台服务器,主要是哪个资源紧张. ANTS Profiler+SQL Server Profiler,这两个工具的完美搭配可以准确的定位性能是出在哪个函数,哪个SQL语句上. 如果性能问题是出在程序上,那么就要根据业务对程序中的函数进行调整,可能是函数中的写法有问题,算法有问题,这种调整如果不能解决问题的话,那么就要从架构上进行考虑,我们

海量数据库查询语句_MsSql

以下代码说明了我们实例中数据库的"红头文件"一表的部分数据结构: CREATE TABLE [dbo].[TGongwen] (    --TGongwen是红头文件表名   [Gid] [int] IDENTITY (1, 1) NOT NULL ,--本表的id号,也是主键   [title] [varchar] (80) COLLATE Chinese_PRC_CI_AS NULL ,  --红头文件的标题   [fariqi] [datetime] NULL ,--发布日期  

php mysqli查询语句返回值类型实例分析_php技巧

本文实例分析了php mysqli查询语句返回值类型.分享给大家供大家参考,具体如下: <?php $link = new mysqli('localhost', 'root','123','test'); $sql = 'select uName from userInfo'; $a = $link->query($sql); echo '<pre>'; echo '有结果集<br>'; var_dump($a); echo '</pre>'; $sql

Oracle分页查询语句(一)

Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. 分页查询格式: SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40)WHERE RN >= 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句.ROWNUM <= 40和RN >= 21控制分页查询的每页的范围. 上面给出的这个分页查询语句,