创建产品目录表

MySQLBeginner
立即练习

介绍

一家本地书店在建立产品目录数据库时需要你的帮助。作为他们的数据库管理员,你需要创建一个用于存储书籍信息的表。本次挑战将测试你使用合适的数据类型和约束创建 MySQL 表的能力。

这是一个「挑战」项目,它与「引导实验」不同,你需要尝试独立完成挑战任务,而不是按照实验步骤一步步学习。挑战通常具有一定的难度。如果你觉得困难,可以与 Labby 讨论或查看解决方案。历史数据显示,这是一个 初学者 级别的挑战,通过率为 95%。它在学习者中获得了 97% 的好评率。

创建书籍表

你的任务是创建一个用于存储书店库存信息的表。该表需要能够有效地存储每本书的不同类型数据。

任务

  • root 用户身份连接到 MySQL
  • 使用 bookstore 数据库
  • 创建一个名为 books 的表,并使用合适的列和数据类型来存储以下信息:
    • 书籍 ID(应自动递增)
    • 书名(最大 200 个字符,必填)
    • 价格(必须支持最高 999.99 的小数)
    • 出版日期
    • 页数(仅限整数)
    • 描述(长文本)
    • 库存数量(必须为 0 或正数)

要求

  • 所有操作必须在 ~/project 目录下进行
  • 表名必须准确为 books
  • 所有列名必须使用小写
  • 主键必须命名为 id
  • 书名不能为空(NOT NULL)
  • 价格必须保留 2 位小数
  • quantity_in_stock 不允许出现负值

示例

正确创建表后,查看表结构应显示类似如下的输出:

DESCRIBE books;
+-------------------+--------------+------+-----+---------+----------------+
| Field             | Type         | Null | Key | Default | Extra          |
+-------------------+--------------+------+-----+---------+----------------+
| id                | int(11)      | NO   | PRI | NULL    | auto_increment |
| title             | varchar(200) | NO   |     | NULL    |                |
| price             | decimal(5,2) | YES  |     | NULL    |                |
| publication_date  | date         | YES  |     | NULL    |                |
| page_count        | int(11)      | YES  |     | NULL    |                |
| description       | text         | YES  |     | NULL    |                |
| quantity_in_stock | int(11)      | YES  |     | NULL    |                |
+-------------------+--------------+------+-----+---------+----------------+
✨ 查看解决方案并练习

总结

在本次挑战中,你练习了如何使用合适的数据类型和约束来创建 MySQL 表。所展示的技能包括为不同类型的信息选择合适的数据类型、实现自动递增主键、设置非空约束以及使用检查约束来验证数据。这些基础知识对于数据库设计至关重要,并且在处理 MySQL 数据库时会频繁使用。