学习文档10/17
SQL常见面试题总结(1)
检索数据:
SELECT
用于从数据库中查询数据
从 Customers 表中检索所有的 ID
现有表 Customers
如下:
cust_id |
A |
B |
C |
编写 SQL 语句,从 Customers
表中检索所有的 cust_id
。
答案:
SELECT cust_id
FROM Customers
检索并列出已订购产品的清单
表 OrderItems
含有非空的列 prod_id
代表商品 id,包含了所有已订购的商品(有些已被订购多次)。
prod_id |
a1 |
a2 |
a3 |
a4 |
a5 |
a6 |
a7 |
编写 SQL 语句,检索并列出所有已订购商品(prod_id
)的去重后的清单
SELECT DISTINCT prod_id
FROM OrderItems
知识点:DISTINCT
用于返回列中的唯一不同值
检索所有列
现在有 Customers
表(表中含有列 cust_id
代表客户 id,cust_name
代表客户姓名)
cust_id | cust_name |
---|---|
a1 | andy |
a2 | ben |
a3 | tony |
a4 | tom |
a5 | an |
a6 | lee |
a7 | hex |
需要编写 SQL 语句,检索所有列
答案:
SELECT cust_id, cust_name
FROM Customers
排序检索数据
ORDER BY
用于对结果集按照一个列或者多个列进行排序。默认按照升序对记录进行排序,如果需要按照降序对记录进行排序,可以使用 DESC
关键字
检索顾客名称并且排序
有表 Customers
,cust_id
代表客户 id,cust_name
代表客户姓名
cust_id | cust_name |
---|---|
a1 | andy |
a2 | ben |
a3 | tony |
a4 | tom |
a5 | an |
a6 | lee |
a7 | hex |
从 Customers
中检索所有的顾客名称(cust_name
),并按从 Z 到 A 的顺序显示结果。
答案:
SELECT cust_name
FROM Customers
ORDER BY cust_name DESC
对顾客 ID 和日期排序有 Orders
表
MySQL基础
什么是关系型数据库?
顾名思义,关系型数据库(RDB,Relational Database)就是一种建立在关系模型的基础上的数据库。关系模型表明了数据库中所存储的数据之间的联系(一对一、一对多、多对多)。
关系型数据库中,我们的数据都被存放在了各种表中(比如用户表),表中的每一行就存放着一条数据(比如一个用户的信息)。
大部分关系型数据库都使用 SQL 来操作数据库中的数据。并且,大部分关系型数据库都支持事务的四大特性(ACID)。
有哪些常见的关系型数据库呢?
MySQL、PostgreSQL、Oracle、SQL Server、SQLite(微信本地的聊天记录的存储就是用的 SQLite)