主页 > InnoDB存储引擎 > MySQL创建表

MySQL创建表

小牛教程 InnoDB存储引擎 2021年06月16日


  
  
  创建数据库是简单的部分,但此时它是空的,正如SHOW TABLES告诉您的:
  
  mysql> SHOW TABLES;
  
  Empty set (0.00 sec)
  
  更难的部分是决定您的数据库的结构应该是什么:您需要哪些表以及每个表中应该包含哪些列。
  
  您需要一个包含每个宠物记录的表。这可以称为pet表,它应该包含,作为最低限度,每只动物的名字。因为名称本身不是很有趣,所以该表应该包含其他信息。例如,如果您家中不止一个人养宠物,您可能需要列出每只动物的主人。您可能还想记录一些基本的描述信息,例如物种和性别。
  
  年龄呢?这可能很有趣,但存储在数据库中并不是一件好事。年龄会随着时间的推移而变化,这意味着您必须经常更新记录。相反,最好存储一个固定值,例如出生日期。然后,每当您需要年龄时,您可以将其计算为当前日期和出生日期之间的差值。MySQL 提供了做日期运算的函数,所以这并不难。存储出生日期而不是年龄还有其他优点:
  
  您可以将数据库用于为即将到来的宠物生日生成提醒等任务。(如果您认为这种类型的查询有些愚蠢,请注意,这与您在业务数据库的上下文中可能会提出的问题相同,以确定您需要在当前周或本月向其发送生日祝福的客户,为此计算机辅助的个人接触。)
  
  您可以计算与当前日期以外的日期相关的年龄。例如,如果您将死亡日期存储在数据库中,您就可以轻松计算出宠物死亡时的年龄。
  
  您可能会想到pet表格中可能有用的其他类型的信息,但到目前为止确定的信息已经足够了:姓名、所有者、物种、性别、出生和死亡。
  
  使用CREATE TABLE语句来指定表的布局:
  
  mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
  
  species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
  
  VARCHAR是、 和 列的不错选择 name,因为列值的长度不同。这些列定义中的长度不必全部相同,也不必相同。您通常可以从to 中 选择任何长度,任何您认为最合理的长度。如果你做了一个糟糕的选择,后来发现你需要一个更长的字段,MySQL 提供了一个语句。 ownerspecies20165535ALTER TABLE
  
  可以选择几种类型的值来表示动物记录中的性别,例如'm'and 'f',或者可能是'male'and 'female'。使用单个字符'm'和最简单'f'。
  
  和 列 的DATE数据类型的使用是一个相当明显的选择。 birthdeath
  
  一旦你创建了一个表,SHOW TABLES应该产生一些输出:
  
  mysql> SHOW TABLES;
  
  +---------------------+
  
  | Tables in menagerie |
  
  +---------------------+
  
  | pet                 |
  
  +---------------------+
  
  要验证您的表是否按照您预期的方式创建,请使用以下DESCRIBE语句:
  
  mysql> DESCRIBE pet;
  
  +---------+-------------+------+-----+---------+-------+
  
  | Field   | Type        | Null | Key | Default | Extra |
  
  +---------+-------------+------+-----+---------+-------+
  
  | name    | varchar(20) | YES  |     | NULL    |       |
  
  | owner   | varchar(20) | YES  |     | NULL    |       |
  
  | species | varchar(20) | YES  |     | NULL    |       |
  
  | sex     | char(1)     | YES  |     | NULL    |       |
  
  | birth   | date        | YES  |     | NULL    |       |
  
  | death   | date        | YES  |     | NULL    |       |
  
  +---------+-------------+------+-----+---------+-------+
  
  您可以随时使用DESCRIBE,例如,如果您忘记了表中列的名称或它们的类型。
广告位
标签: sql语句