天才是长期劳动的结果。 —— 牛顿
包含LeetCode上数据库相关题目。
175.Combine Two Tables(组合两个表)(Easy)
SQL Schema:
1 | Create table Person (PersonId int, FirstName varchar(255), LastName varchar(255)) |
表1: Person
1 | +-------------+---------+ |
表2: Address
1 | +-------------+---------+ |
Write a SQL query for a report that provides the following information for each person in the Person table, regardless if there is an address for each of those people:
1 | FirstName, LastName, City, State |
解:题意为,编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
1 | FirstName, LastName, City, State |
这道题考查的是SQL连接查询,非常经典的查询过程可以浓缩成这张图,非常利于记忆:
这道题实际上是想通过PersonId来将Person表和Address进行连接查询,而且结果要展示Person所有的信息和Address表中的部分信息。
1 | SELECT FirstName,LastName,City,State |
总的来说,这道题还是很简单的。
176.Second Highest Salary(第二高的薪水)(Easy)
编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。
1 | +----+--------+ |
例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。
1 | +---------------------+ |