创建产品目录表

MySQLMySQLBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sql(("SQL")) -.-> sql/DataDefinitionandIntegrityGroup(["Data Definition and Integrity"]) mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) sql(("SQL")) -.-> sql/BasicSQLCommandsGroup(["Basic SQL Commands"]) mysql(("MySQL")) -.-> mysql/DatabaseFunctionsandDataTypesGroup(["Database Functions and Data Types"]) mysql/BasicKeywordsandStatementsGroup -.-> mysql/create_table("Table Creation") sql/BasicSQLCommandsGroup -.-> sql/create_table("CREATE TABLE statements") mysql/DatabaseFunctionsandDataTypesGroup -.-> mysql/int("Integer Type") mysql/DatabaseFunctionsandDataTypesGroup -.-> mysql/varchar("Variable Character Type") sql/DataDefinitionandIntegrityGroup -.-> sql/data_types("Data Types") sql/DataDefinitionandIntegrityGroup -.-> sql/constraints("Constraints") subgraph Lab Skills mysql/create_table -.-> lab-418298{{"创建产品目录表"}} sql/create_table -.-> lab-418298{{"创建产品目录表"}} mysql/int -.-> lab-418298{{"创建产品目录表"}} mysql/varchar -.-> lab-418298{{"创建产品目录表"}} sql/data_types -.-> lab-418298{{"创建产品目录表"}} sql/constraints -.-> lab-418298{{"创建产品目录表"}} end

创建书籍表

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

任务

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

要求

  • 所有操作必须在 ~/project 目录下执行
  • 表名必须为 books
  • 所有列名必须为小写
  • 主键必须命名为 id
  • 标题不能为 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 表。展示的技能包括为不同类型的信息选择合适的数据类型、实现自动递增的主键、设置 NOT NULL 约束以及使用 CHECK 约束来验证数据。这些基础知识对于数据库设计至关重要,并且在处理 MySQL 数据库时会经常用到。