SQL语法题合集(持续更新)

简介: 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;


二、第二高的薪水



Employee 表:

+-------------+------+

| Column Name | Type |

+-------------+------+

| id          | int  |

| salary      | int  |

+-------------+------+


id 是这个表的主键。

表的每一行包含员工的工资信息。


编写一个 SQL 查询,获取并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null 。


查询结果如下例所示。


示例 1:


输入:

Employee 表:

+----+--------+

|  id  | salary |

+ ----+--------+

|  1   | 100    |

|  2   | 200    |

|  3   | 300    |

+ ----+--------+


输出:

+---------------------+

| SecondHighestSalary |

+---------------------+

| 200                 |

+---------------------+


示例 2:


输入:

Employee 表:

+----+--------+

|  id  | salary |

+----+--------+

|  1   | 100    |

+----+--------+


输出:

+---------------------+

| SecondHighestSalary |

+---------------------+

| null                |

+---------------------+


select(
    select distinct salary as SecondHighestSalary 
    from Employee 
    order by salary desc
    limit 1,1
) as SecondHighestSalary;


相关文章
|
3天前
|
SQL 存储 关系型数据库
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
本文详细介绍了MySQL中的SQL语法,包括数据定义(DDL)、数据操作(DML)、数据查询(DQL)和数据控制(DCL)四个主要部分。内容涵盖了创建、修改和删除数据库、表以及表字段的操作,以及通过图形化工具DataGrip进行数据库管理和查询。此外,还讲解了数据的增、删、改、查操作,以及查询语句的条件、聚合函数、分组、排序和分页等知识点。
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
|
1月前
|
SQL 存储 关系型数据库
SQL `CREATE DATABASE` 语法
【11月更文挑战第10天】
66 3
|
1月前
|
SQL 关系型数据库 数据库
sql语法
【10月更文挑战第26天】sql语法
38 5
|
6月前
|
SQL 关系型数据库 MySQL
MySQL数据库基础第一篇(SQL通用语法与分类)
MySQL数据库基础第一篇(SQL通用语法与分类)
|
6月前
|
SQL PHP
thinkphp之进阶sql语法,持续更新
thinkphp之进阶sql语法,持续更新
36 0
|
6月前
|
SQL 存储 关系型数据库
SQL 使用心得【持续更新】
SQL 使用心得【持续更新】
|
2月前
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
|
2月前
|
SQL 存储 关系型数据库
mysql SQL必知语法
本文详细介绍了MySQLSQL的基本语法,包括SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY等关键字的使用,以及数据库操作如创建、删除表,数据类型,插入、查询、过滤、排序、连接和汇总数据的方法。通过学习这些内容,读者将能更好地管理和操
40 0
|
2月前
|
SQL 关系型数据库 MySQL
Mysql(2)—SQL语法详解
SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的标准编程语言。它主要用于数据的查询、插入、更新和删除等操作。SQL最初在1970年代由IBM的研究人员开发,旨在处理关系数据模型。
43 0
|
4月前
|
SQL 关系型数据库 MySQL
INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
【8月更文挑战第7天】INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
53 5