精华内容
下载资源
问答
  • 经典的SQL语句面试题

    千次阅读 2020-12-18 18:12:38
    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

    +-------------+---------+
    | 列名         | 类型    |
    +-------------+---------+
    | AddressId   | int     |
    | PersonId    | int     |
    | City        | varchar |
    | State       | varchar |
    +-------------+---------+
    AddressId 是上表主键
    

    编写一个 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天)文中的代码都是按自己思路写的,大家在做的时候最好也按照自己的...
  • 常见的SQL面试题:经典50题(简单)

    千次阅读 2021-02-01 18:53:19
    【行转列、列转行】问题(重要) (1)行转列 (2)列转行 (3)单列拆分转行 题目来源:知乎猴子 常见的SQL面试题:经典50题 一、简单查询 1. 查询姓“猴”的学生名单 select * from student where sname like "猴%...
  • java面试题sql语句

    2021-02-12 18:26:20
    根据这一张表进行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-- ...
  • oracle sql面试题2

    2021-05-06 03:50:08
    简单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语句面试题

    2021-06-14 14:13:54
    手写sql语句面试题 一、数据表 二、简单查询 1.查询姓名中带“猴”的学生名单 三、汇总分析 1.查询选了课程的学生人数 2.查询各科成绩最高和最低的分, 以如下的形式显示:课程号,最高分,最低分 3.查询至少...
  • 2021-03-17 SQL常见面试题

    千次阅读 2021-03-17 21:01:18
    SQL常见面试题 1.用一条SQL语句 查询出每门课都大于80分的学生姓名 name kecheng fenshu 张三语文 81 张三数学 75 李四语文 76 李四数学 90 王五语文 81 王五数学 100 王五英语 90 A: select distinct name from ...
  • SQL经典面试题及答案

    2021-02-02 15:59:19
    一道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 |+——+——...
  • SQL数据库面试题以及答案(50题)

    千次阅读 2021-01-21 23:05:05
    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简单面试题

    2021-04-01 15:33:36
    这两天面试了几个数据开发人员,问了一个相对简单的SQL查询问题,大致可以分解如下: 1、查询每个部门的工资支出之和(附加条件员工的领导非空) SELECT SUM(E.SAL), E.DEPTNO FROM TEMP_EMP E WHERE E.MGR IS NOT ...
  • 此篇文章中所示用的sql语句适用于mysql关系型数据库查询数据,其他类型的数据库是否支持,没有去尝试,想要在mysql1.首先准备两个表,一个是学生表(student) 另一个是科目分数表(grade) 当数据准备完成后,接下来就...
  • 数据库可能庞大而复杂,并且使用固定设计和建模方法来开发此类数据库。 2.什么是DBMS? DBMS代表数据库管理系统。DBMS是负责创建,检索,更新和管理数据库的系统软件。通过充当数据库与其最终用户或应用程序软件...
  • sql语句面试题练习

    2021-01-24 20:48:42
    与"李威彤"同乡的男生姓名 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...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 58,784
精华内容 23,513
关键字:

复杂的sql语句面试题