📜  门| GATE CS 2021 |设置 2 |第 31 题(1)

📅  最后修改于: 2023-12-03 14:58:21.809000             🧑  作者: Mango

门 GATE CS 2021 设置 2 第 31 题

这道题是 GATE CS 2021 设置 2 第 31 题,考察关系型数据库设计和 SQL 查询。

题目描述

给出一个通讯录表格,其中包含了以下字段:

  • id:记录的唯一标识
  • firstname:姓名
  • lastname:姓氏
  • email:电子邮件地址
  • phone:电话号码
  • address:地址

你需要设计数据库表格,并编写 SQL 查询语句,完成以下任务:

  1. 添加一条新记录,记录的信息如下:
    • 姓名:John
    • 姓氏:Doe
    • 电子邮件地址:john.doe@example.com
    • 电话号码:+1-408-555-5555
    • 地址:1600 Amphitheatre Parkway, Mountain View, CA 94043, USA
  2. 查询所有姓氏为 "Doe" 的记录,要求按照姓名的升序排序。
  3. 查询前 5 条记录,要求按照记录的唯一标识的降序排序。
解题思路

根据题目描述,我们需要设计一个包含上述字段的表格,并编写相应的 SQL 查询语句。

创建表格

我们可以使用以下 SQL 语句创建表格:

CREATE TABLE addressbook (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  firstname TEXT,
  lastname TEXT,
  email TEXT,
  phone TEXT,
  address TEXT
);

其中 PRIMARY KEY 指定 id 为主键,并使用 AUTOINCREMENT 自增长。

添加数据

使用以下 SQL 语句可以添加一条新记录:

INSERT INTO addressbook (firstname, lastname, email, phone, address)
VALUES ('John', 'Doe', 'john.doe@example.com', '+1-408-555-5555', '1600 Amphitheatre Parkway, Mountain View, CA 94043, USA');

查询数据

这道题需要我们编写两个 SQL 查询语句。

查询姓氏为 "Doe" 的所有记录,并按照姓名的升序排序,可以使用以下 SQL 语句:

SELECT * FROM addressbook WHERE lastname = 'Doe' ORDER BY firstname ASC;

查询前 5 条记录,并按照记录唯一标识的降序排序,可以使用以下 SQL 语句:

SELECT * FROM addressbook ORDER BY id DESC LIMIT 5;
总结

这道 GATE CS 2021 设置 2 第 31 题考察了关系型数据库设计和 SQL 查询相关的知识点。需要我们设计表格并编写相应的 SQL 查询语句来完成题目描述中给出的任务。