• 2015-11-15 06:30:02 阅读( 383 ) Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题： 1、查询“001”课程比... 您想查看更多的信息： 面试题

2015-11-15 06:30:02
阅读( 383 )
Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
Teacher(T#,Tname) 教师表
问题：
1、查询“001”课程比“002”课程成绩高的所有学生的学号；
select a.S#
from (select s#,score from SC where C#=’001′) a,
(select s#,score from SC where C#=’002′) b
where a.score>b.score and a.s#=b.s#;
2、查询平均成绩大于60分的同学的学号和平均成绩；
select S#,avg(score)
from sc
group by S# having avg(score) >60;
3、查询所有同学的学号、姓名、选课数、总成绩；
select Student.S#,Student.Sname,count(SC.C#),sum(score)
from Student left Outer join SC on Student.S#=SC.S#
group by Student.S#,Sname
4、查询姓“李”的老师的个数；
select count(distinct(Tname))
from Teacher
where Tname like ‘李%’;
5、查询没学过“叶平”老师课的同学的学号、姓名；
select Student.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.S#,Student.Sname
from Student,SC
where Student.S#=SC.S# and SC.C#=’001′and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#=’002′);
7、查询学过“叶平”老师所教的所有课的同学的学号、姓名；
select S#,Sname
from Student
where S# in
(select S#
from SC ,Course ,Teacher
where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname=’叶平’ group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname=’叶平’));
8、查询所有课程成绩小于60分的同学的学号、姓名；
select S#,Sname
from Student
where S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60);
9、查询没有学全所有课的同学的学号、姓名；
select Student.S#,Student.Sname
from Student,SC
where Student.S#=SC.S#
group by Student.S#,Student.Sname having count(C#)
10、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名；
select S#,Sname
from Student,SC
where Student.S#=SC.S# and C# in (select C# from SC where S#='1001');
11、删除学习“叶平”老师课的SC表记录；
Delect SC
from course ,Teacher
where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平';
12、查询各科成绩最高和最低的分：以如下形式显示：课程ID，最高分，最低分
SELECT L.C# 课程ID,L.score 最高分,R.score 最低分
FROM SC L ,SC R
WHERE L.C# = R.C#
and
L.score = (SELECT MAX(IL.score)
FROM SC IL,Student IM
WHERE IL.C# = L.C# and IM.S#=IL.S#
GROUP BY IL.C#)
and
R.Score = (SELECT MIN(IR.score)
FROM SC IR
WHERE IR.C# = R.C#
GROUP BY IR.C# );
13、查询学生平均成绩及其名次
SELECT 1+(SELECT COUNT( distinct 平均成绩)
FROM (SELECT S#,AVG(score) 平均成绩
FROM SC
GROUP BY S# ) T1
WHERE 平均成绩 > T2.平均成绩) 名次, S# 学生学号,平均成绩
FROM (SELECT S#,AVG(score) 平均成绩 FROM SC GROUP BY S# ) T2
ORDER BY 平均成绩 desc;
14、查询各科成绩前三名的记录:(不考虑成绩并列情况)
SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数
FROM SC t1
WHERE score IN (SELECT TOP 3 score
FROM SC
WHERE t1.C#= C#
ORDER BY score DESC)
ORDER BY t1.C#;
15、查询每门功成绩最好的前两名
SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数
FROM SC t1
WHERE score IN (SELECT TOP 2 score
FROM SC
WHERE t1.C#= C#
ORDER BY score DESC )
ORDER BY t1.C#;
补充：
已经知道原表
year salary
——————
2000 1000
2001 2000
2002 3000
2003 4000
解：
select b.year,sum(a.salary)
from salary a,salary b
where a.year<=b.year
group by b.year
order by b.year;
在面试过程中多次碰到一道SQL查询的题目，查询A(ID,Name)表中第31至40条记录，ID作为主键可能是不是连续增长的列，完整的查询语句如下：
方法一：
select top 10 *
from A
where ID >(select max(ID) from (select top 30 ID from A order by ID ) T) order by ID
方法二：
select top 10 *
from A
where ID not In (select top 30 ID from A order by ID)
order by ID
分享给朋友：
亲~ 如果您有更好的答案 可在评论区发表您独到的见解。
您想查看更多的信息：
面试题

展开全文
• 技术面试中，问到MySQL时，学生表查询SQL语句，肯定是被问得最多的。如果你天天玩表，对你来说应该会是小菜一碟。但是还是有很多职场老将在这里折戟沉沙，甚是可惜！今天，臻叔就带大家一起盘点一下，学生表到底都会...

技术面试中，问到MySQL时，学生表查询SQL语句，肯定是被问得最多的。
如果你天天玩表，对你来说应该会是小菜一碟。
但是还是有很多职场老将在这里折戟沉沙，甚是可惜！
今天，臻叔就带大家一起盘点一下，学生表到底都会问什么！？
「高能预警」：以下列举的问题，都有答案，亲手验证过正确性
文章很长，建议收藏，面试前可以拿出来看一看
建议先看题目，自己练习，不会的再看答案
先来看看题目
给定四个表:student(学生表)
teacher(老师表)
course(课程表)
sc(成绩表)
根据题目要求，写出SQL语句。
「问题列表」
1、查询每个学生的学号、姓名和每门课的成绩
2、查询都学过2号同学(sid=2)学习过的课程的同学的学号
3、查询“语文(cid=1)”课程比“数学(cid=2)”课程成绩高的所有学生的学号；
4、查询平均成绩大于60分的同学的学号和平均成绩；
5、查询所有同学的学号、姓名、选课数、总成绩；
6、查询姓“李”的老师的个数；
7、查询没学过“叶平”老师课的同学的学号、姓名；
8、查询学过“语文(cid=1)”并且也学过“数学(cid=2)”课程的同学的学号、姓名；
9、查询学过“叶平”老师所教的所有课的同学的学号、姓名；
10、查询课程编号“数学(cid=2)”的成绩比课程编号“语文(cid=1)”课程低的所有同学的学号、姓名；
11、查询所有课程成绩小于60分的同学的学号、姓名；
12、查询没有学全所有课的同学的学号、姓名；
13、按平均成绩从高到低显示所有学生的“语文“、“数学”、“英语”三门的课程成绩，按如下形式显示： 学生
ID,语文,数学,英语,有效课程数,有效平均分
14、查询各科成绩最高和最低的分：以如下形式显示：课程ID，最高分，最低分
15、查询男生、女生人数, 以如下形式显示：男生人数，女生人数
16、查询课程名称为“数学”，且分数低于60的学生姓名和分数
17、查询两门以上不及格课程的同学的学号及其平均成绩；
18、检索“cid=4”课程分数小于60，按分数降序排列的同学学号
「表结构以及部分数据如下图展示」
student表
teacher表
course表
sc表
面试题详解
1、查询每个学生的学号、姓名和每门课的成绩；
(1)利用隐式内联，只输出两表中都有的字段
SQL语句：
SELECT
student.sid AS 学生ID,
student.sname AS 学生姓名,
(SELECT course.cname FROM course WHERE course.cid=sc.cid) AS 课程名称,
sc.score AS 成绩
FROM student,sc
WHERE student.sid = sc.sid
查询结果：
(2)利用左连接，假如左表有，右表没有，则按左表为准，右表缺省字段置为NULL
SQL语句：
SELECT
student.sid AS 学生ID,
student.sname AS 学生姓名,
(SELECT course.cname FROM course WHERE course.cid=sc.cid) AS 课程名称,
sc.score AS 成绩
FROM student
LEFT JOIN sc
ON student.sid = sc.sid
因为 student 表 和 sc 表没有冗余字段，所以(1)和(2)两种查询方法结果一致。
2、查询都学过2号同学(sid=2)学习过的课程的同学的学号
SQL语句：
SELECT sid
FROM sc
WHERE cid IN (SELECT cid FROM sc WHERE sid=2)
GROUP BY sid
HAVING COUNT(*) = (SELECT COUNT(*) FROM sc WHERE sid=2)
查询结果：
3、查询“语文(cid=1)”课程比“数学(cid=2)”课程成绩高的所有学生的学号；
SQL语句：
SELECT a.sid
FROM
(SELECT sid, score FROM sc WHERE cid=1) a,
(SELECT sid, score FROM sc WHERE cid=2) b
WHERE a.sid=b.sid AND a.score > b.score;
查询结果：
4、查询平均成绩大于60分的同学的学号和平均成绩；
SQL语句：
SELECT sid, AVG(score)
FROM sc
GROUP BY sid
HAVING AVG(score) > 60;
查询结果：
5、查询所有同学的学号、姓名、选课数、总成绩；
SQL：
SELECT a.sid, a.sname, COUNT(a.cid), SUM(a.score)
FROM
(SELECT student.sid, student.sname, sc.cid, sc.score FROM student JOIN sc WHERE student.sid=sc.sid) a
GROUP BY sid;
查询结果：
6、查询姓“周”的老师的个数；
SQL：
SELECT COUNT(*) FROM teacher WHERE tname LIKE '周%';
查询结果：
7、查询没学过“叶平”老师课的同学的学号、姓名；
SQL：
# 我自己写的
SELECT student.sid, student.sname
FROM student
WHERE student.sid NOT IN
(
SELECT sc.sid
FROM sc
WHERE cid =
(
SELECT course.cid
FROM course
JOIN teacher
WHERE course.tid=teacher.tid AND teacher.tname='叶平'
)
);
# 参考答案
SELECT student.sid,student.sname
FROM student
WHERE sid NOT IN
(
SELECT DISTINCT(sc.sid)
FROM sc, course, teacher
WHERE sc.cid=course.cid AND teacher.tid=course.tid AND teacher.tname='叶平'
);
查询结果：
8、查询学过“语文(cid=1)”并且也学过“数学(cid=2)”课程的同学的学号、姓名；
SQL：
SELECT student.sid,student.sname
FROM student, sc
WHERE student.sid=sc.sid AND sc.cid=1
AND
EXISTS
( SELECT * FROM sc AS sc_2 WHERE sc_2.sid=sc.sid AND sc_2.cid=2);
查询结果：
9、查询学过“叶平”老师所教的所有课的同学的学号、姓名；
SQL：
SELECT student.sid,student.sname
FROM student
WHERE sid IN
(
SELECT sid
FROM sc ,course ,teacher
WHERE sc.cid=course.cid AND teacher.tid=course.tid AND teacher.tname='叶平'
GROUP BY sid
HAVING COUNT(sc.cid)=
(
SELECT COUNT(cid)
FROM course,teacher
WHERE teacher.tid=course.tid AND teacher.tname='叶平'
)
);
查询结果：
10、查询课程编号“数学(cid=2)”的成绩比课程编号“语文(cid=1)”课程低的所有同学的学号、姓名；
SQL：
SELECT sid,sname
FROM student
WHERE sid=
(
SELECT a.sid
FROM
(SELECT sid, score FROM sc WHERE cid=1) a,
(SELECT sid, score FROM sc WHERE cid=2) b
WHERE a.sid=b.sid AND a.score > b.score
)
查询结果：
「11」、查询所有课程成绩小于60分的同学的学号、姓名；
SQL：
SELECT sid,sname
FROM student
WHERE sid NOT IN
(
SELECT student.sid FROM student AS s,sc WHERE s.sid=sc.sid AND score>60
);
查询结果： 无
12、查询没有学全所有课的同学的学号、姓名；
SQL：
SELECT student.sid, student.sname
FROM student,sc
WHERE student.sid=sc.sid
GROUP BY sid
HAVING COUNT(cid) < (SELECT COUNT(cid) FROM course)
查询结果：
13、按平均成绩从高到低显示所有学生的“语文“、“数学”、“英语”三门的课程成绩，按如下形式显示： 学生ID,语文,数学,英语,有效课程数,有效平均分
SQL：
SELECT sid AS 学生ID,
(SELECT score FROM sc WHERE sc.sid=sc_2.sid AND cid=1) AS 语文,
(SELECT score FROM sc WHERE sc.sid=sc_2.sid AND cid=2) AS 数学,
(SELECT score FROM sc WHERE sc.sid=sc_2.sid AND cid=3) AS 英语,
COUNT(*) AS 有效课程数,
AVG(score)
FROM sc AS sc_2
GROUP BY sid
ORDER BY AVG(sc_2.score)
查询结果：
14、查询各科成绩最高和最低的分：以如下形式显示：课程ID，最高分，最低分
SQL：
SELECT cid AS 课程ID, MAX(score) AS 最高分, MIN(score) AS 最低分
FROM sc
GROUP BY cid
查询结果：
15、查询男生、女生人数 ：以如下形式显示：男生人数，女生人数
SQL：
SELECT
(SELECT COUNT(ssex) FROM student GROUP BY ssex HAVING ssex='男') AS 男生人数,
(SELECT COUNT(ssex) FROM student GROUP BY ssex HAVING ssex='女') AS 女生人数;
查询结果：
16、查询课程名称为“数学”，且分数低于60的学生姓名和分数
SQL：
SELECT student.sid, student.sname
FROM student,sc
WHERE student.sid=sc.sid AND cid=(SELECT cid FROM course WHERE cname='数学') AND score > 60
查询结果：
17、查询两门及两门以上不及格课程的同学的学号及其平均成绩
SQL：
SELECT sid, AVG(score) FROM sc WHERE sid IN (SELECT sid FROM sc WHERE score < 60 GROUP BY sid HAVING COUNT(*)>1) GROUP BY sid;
查询结果：
18、检索“cid=4”课程分数小于60，按分数降序排列的同学学号
SQL：
SELECT sid FROM sc WHERE cid=4 AND score < 60 ORDER BY score DESC
查询结果：

展开全文
• 一、取得平均薪水最高的部门的部门编号第一步：求出部门的平均薪水select e.deptno, avg(e.sal) as avgsal from emp e group by e.deptno;deptnoavgsal102916.666667202715.000000301566.666667第二步：将以上查询...

一、取得平均薪水最高的部门的部门编号
第一步：求出部门的平均薪水
select  e.deptno, avg(e.sal) as avgsal  from emp e  group by e.deptno;
deptnoavgsal
102916.666667
202715.000000
301566.666667
第二步：将以上查询结果当成临时表t(deptno, avgsal)，查询平均薪水的最高值
select max(t.avgsal) as maxAvgSal from t;
将t指向上述查询结果：
select max(t.avgsal) as maxAvgSal from (select  e.deptno, avg(e.sal) as avgsal  from emp e  group by e.deptno)  t;
maxAvgSal
2916.666667
第三步：过滤第一步的查询结果，将第二步查询到的最高值代入：
select  e.deptno, avg(e.sal) as avgsal  from emp e  group by e.deptno  having avgsal = 2916.666667;
转换成：
select  e.deptno, avg(e.sal) as avgsal  from emp e  group by e.deptno  having avgsal =
(select max(t.avgsal) as maxAvgSal from (select  e.deptno, avg(e.sal) as avgsal  from emp e  group by e.deptno)  t);

展开全文
• SQL架构 编写一个 SQL 查询，获取Employee表中第二高的薪水（Salary）。 +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 200 | | 3 | 300 | +----+--------+ 例如上述Employee表，SQL查询...
1. 第二高的薪水
难度简单844收藏分享切换为英文接收动态反馈
SQL架构
编写一个 SQL 查询，获取 Employee 表中第二高的薪水（Salary） 。
+----+--------+
| Id | Salary |
+----+--------+
| 1  | 100    |
| 2  | 200    |
| 3  | 300    |
+----+--------+

例如上述 Employee 表，SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水，那么查询应返回 null。
+---------------------+
| SecondHighestSalary |
+---------------------+
| 200                 |
+---------------------+
答案：select (select distinct salary from Employee order by salary desc limit 1,1) as SecondHighestSalary

2. 超过经理收入的员工
难度简单396收藏分享切换为英文接收动态反馈
SQL架构
Employee 表包含所有员工，他们的经理也属于员工。每个员工都有一个 Id，此外还有一列对应员工的经理的 Id。
+----+-------+--------+-----------+
| Id | Name  | Salary | ManagerId |
+----+-------+--------+-----------+
| 1  | Joe   | 70000  | 3         |
| 2  | Henry | 80000  | 4         |
| 3  | Sam   | 60000  | NULL      |
| 4  | Max   | 90000  | NULL      |
+----+-------+--------+-----------+

给定 Employee 表，编写一个 SQL 查询，该查询可以获取收入超过他们经理的员工的姓名。在上面的表格中，Joe 是唯一一个收入超过他的经理的员工。
+----------+
| Employee |
+----------+
| Joe      |
+----------+
答案：select Name as 'Employee' from Employee e where Salary > ( select Salary from Employee where id = e.ManagerId )

3. 查找重复的电子邮箱
难度简单292收藏分享切换为英文接收动态反馈
SQL架构
编写一个 SQL 查询，查找 Person 表中所有重复的电子邮箱。
示例：
+----+---------+
| Id | Email   |
+----+---------+
| 1  | a@b.com |
| 2  | c@d.com |
| 3  | a@b.com |
+----+---------+

根据以上输入，你的查询应返回以下结果：
+---------+
| Email   |
+---------+
| a@b.com |
+---------+

说明：所有电子邮箱都是小写字母。
答案：select email from person group by email having count(email)>1

4. 组合两个表
难度简单895收藏分享切换为英文接收动态反馈
SQL架构
表1: Person
+-------------+---------+
| 列名         | 类型     |
+-------------+---------+
| PersonId    | int     |
| FirstName   | varchar |
| LastName    | varchar |
+-------------+---------+
PersonId 是上表主键

表2: Address
+-------------+---------+
| 列名         | 类型    |
+-------------+---------+
| PersonId    | int     |
| City        | varchar |
| State       | varchar |
+-------------+---------+


编写一个 SQL 查询，满足条件：无论 person 是否有地址信息，都需要基于上述两表提供 person 的以下信息：

FirstName, LastName, City, State
答案：select FirstName, LastName, City, State from Person left join Address on Person.PersonId = Address.PersonId

5. 两个表
班级表class （cid,sid）
分数表source（sid，source）
1，查询出每个班级的学生人数： select count(sid) from class group by cid;
2，查询出1001班级下，成绩大于80的人数
select count(s.sid) from class c,source s where c.sid=s.sid and c.cid = 1001 and s.source>80;

6. 部门工资最高的员工
难度中等402收藏分享切换为英文接收动态反馈
SQL架构
Employee 表包含所有员工信息，每个员工有其对应的 Id, salary 和 department Id。
+----+-------+--------+--------------+
| Id | Name  | Salary | DepartmentId |
+----+-------+--------+--------------+
| 1  | Joe   | 70000  | 1            |
| 2  | Jim   | 90000  | 1            |
| 3  | Henry | 80000  | 2            |
| 4  | Sam   | 60000  | 2            |
| 5  | Max   | 90000  | 1            |
+----+-------+--------+--------------+
Department 表包含公司所有部门的信息。
+----+----------+
| Id | Name     |
+----+----------+
| 1  | IT       |
| 2  | Sales    |
+----+----------+
编写一个 SQL 查询，找出每个部门工资最高的员工。对于上述表，您的 SQL 查询应返回以下行（行的顺序无关紧要）。
+------------+----------+--------+
| Department | Employee | Salary |
+------------+----------+--------+
| IT         | Max      | 90000  |
| IT         | Jim      | 90000  |
| Sales      | Henry    | 80000  |
+------------+----------+--------+
解释：
Max 和 Jim 在 IT 部门的工资都是最高的，Henry 在销售部的工资最高。
答案：
方法：使用 JOIN 和 IN 语句 算法
因为 Employee 表包含 Salary 和 DepartmentId 字段，我们可以以此在部门内查询最高工资。
SELECT     DepartmentId, MAX(Salary) FROM     Employee GROUP BY DepartmentId; 注意：有可能有多个员工同时拥有最高工资，所以最好在这个查询中不包含雇员名字的信息。
| DepartmentId | MAX(Salary) | |--------------|-------------| | 1            | 90000       | | 2            | 80000       | 然后，我们可以把表 Employee 和 Department 连接，再在这张临时表里用 IN 语句查询部门名字和工资的关系。
MySQL
SELECT     Department.name AS 'Department',     Employee.name AS 'Employee',     Salary FROM     Employee         JOIN     Department ON Employee.DepartmentId = Department.Id WHERE     (Employee.DepartmentId , Salary) IN     (   SELECT             DepartmentId, MAX(Salary)         FROM             Employee         GROUP BY DepartmentId     ) ;


展开全文
• ## sql语句面试题

千次阅读 2020-12-19 18:29:51
1）请编写sql语句对年龄进行升序排列 select * from afinfo order by birth; 2）请编写sql语句查询对“徐”姓开头的人员名单 select * from afinfo where name like ‘徐%’; 3）请编写sql语句修改“陈晓”的年龄为...
• 学习路径：《sql基础教程》第1遍(3天)→知乎中的sql网课+leetcode刷题(4天)→牛客网刷题(2天)→《sql基础教程》第2遍(1晚上)→sql面试练习50(3天)文中的代码都是按自己思路写的，大家在做的时候最好也按照自己的...
• 【行转列、列转行】问题（重要） （1）行转列 （2）列转行 （3）单列拆分转行 题目来源：知乎猴子 常见的SQL面试题：经典50题 一、简单查询 1. 查询姓“猴”的学生名单 select * from student where sname like "猴%...
• 根据这一张表进行sql操作-- 分组查询总分数select num,name,SUM(score) as scoreall from score2 GROUP BY name order by scoreall-- 计算每个人单科最高成绩select name,MAX(score) from score2 GROUP BY name-- ...
• 简单SQL查询：1):统计每个部门员工的数目select dept,count(*) from employee group by dept;2):统计每个部门员工的数目大于一个的记录select dept,count(*) from employee group by dept having count(*)>1;3):...
• 1.根据emp数据表编写SQL查出所有name重复的记录且按照age降序。+--------+--------+-----+| emp_no | name | age |+--------+--------+-----+| 1001 | 小明 |18 || 1002 | 王强 |20 || 1003 | 小雪 |20 || 1004 | ...
• 几道面试题汇总，并记录下来1)某内容管理系统中，表message有如下字段id文章idtitle文章标题content文章内容category_id文章分类idhits点击量创建上表，写出MySQL语句2)同样上述内容管理系统：表comment记录用户回复...
• 面试大公司的时候，很多情况下都有笔试，笔试经常包含软件测试的基础知识点、逻辑、等等，有时候也会碰到关于sql语句的题目，今天来列举一些简单的sql语句，希望对大家有所帮助。
• 手写sql语句面试题 一、数据表 二、简单查询 1.查询姓名中带“猴”的学生名单 三、汇总分析 1.查询选了课程的学生人数 2.查询各科成绩最高和最低的分， 以如下的形式显示：课程号，最高分，最低分 3.查询至少...
• SQL常见面试题 1.用一条SQL语句 查询出每门课都大于80分的学生姓名 name kecheng fenshu 张三语文 81 张三数学 75 李四语文 76 李四数学 90 王五语文 81 王五数学 100 王五英语 90 A: select distinct name from ...
• 一道SQL语句面试题，关于group by表内容：2005-05-09 胜2005-05-09 胜2005-05-09 负2005-05-09 负2005-05-10 胜2005-05-10 负2005-05-10 负如果要生成下列结果, 该如何写sql语句?胜 负2005-05-09 2 22005-05-10 1 2-...
• tbl_score记录了学生(有的学生考试以后被开除了，没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject)，要想打印出各个学生姓名及对应的的各科总成绩，则可以用SQL语句____.答：自然左外连接...
• Sql Join用于根据两个或多个表格中的列之间的关系，来查询数据一道面试题：两个SQL表描述如下：部门表(department)+——+———-+| id | name |+——+———-+| 1 | caiwu || 2 | xiaoshou || 3 | kefu |+——+——...
• Student(Sid,Sname,Sage,Ssex)学生表 Sid：学号 Sname：学生姓名 Sage：学生年龄 Ssex：学生性别 Course(Cid,Cname,T#)课程表 Cid：课程编号 Cname：课程名称 ... Tid：教师编号：
• 如何优化一条有问题的sql语句？针对sql语句的优化。我们可以从如下几个角度去分析回归到表的设计层面，数据类型选择是否合理大表碎片的整理是否完善表的统计信息，是不是准确的审查表的执行计划，判断字段上面有没有...
• 来自：CSDN，作者：sh_c_2450957609链接：https://blog.csdn.net/u010565545/article/details/100785261SQL在数据分...
• 1.#用一条SQL语句查询出平均薪资大于5000的部门中最高和最低薪资； select dept,MAX(salary),MIN(salary) from study GROUP BY dept HAVING avg(salary)>50002.mysql去除重复保留最大ID #去重保留最大IDDELETE ...
• 作者：sh_c_2450957609blog.csdn.net/u010565545/article/details/100785261SQL基础知识整理select 查询结果，如:[...
• 这两天面试了几个数据开发人员，问了一个相对简单的SQL查询问题，大致可以分解如下： 1、查询每个部门的工资支出之和（附加条件员工的领导非空） SELECT SUM(E.SAL), E.DEPTNO FROM TEMP_EMP E WHERE E.MGR IS NOT ...
• 数据库可能庞大而复杂，并且使用固定设计和建模方法来开发此类数据库。 2.什么是DBMS？ DBMS代表数据库管理系统。DBMS是负责创建，检索，更新和管理数据库的系统软件。通过充当数据库与其最终用户或应用程序软件...
• 与"李威彤"同乡的男生姓名 SELECT sname,snativeplace FROM student WHERE snativeplace IN (SELECT snativeplace FROM student WHERE sid IN (SELECT sid FROM student WHERE ssex='男') ...
• 关于join, cross join, inner join官方相关描述：In MySQL, JOIN, CROSS JOIN, and INNER JOIN are syntactic equivalents (they can replace ... In standard SQL, they are not equivalent. INNER JOIN is used wi...

...