MySQL-创建表

时间:2020-02-23 14:41:00  来源:igfitidea点击:

在本教程中,我们将学习在MySQL中创建表。

在上一教程中,我们已经学习了如何创建数据库。
因此,打开终端,登录到MySQL服务器并运行USE命令以开始使用数据库。

什么是数据库表?

数据库表是我们以行和列格式存储数据的地方。

建立表格

要创建一个表,我们使用CREATE TABLE table_name命令并传递一些列名和所需的数据类型。

注意点!

  • 该表包含一个由" PRIMARY KEY"表示的主键列。

  • 为了确保一列存储唯一值,我们使用UNIQUE KEY约束。

  • 如果我们想将一列的默认值设置为null,我们写DEFAULT NULL。
    这意味着,如果我们不为该列提供任何值,则将保存NULL。

  • 如果要设置默认值,则编写" DEFAULT'VALUE1'"。
    如果我们不为该列提供任何值,则将保存'VALUE1'。

  • 如果必须为给定的列设置值,则将其设置为" NOT NULL"。

  • 对于整数数据类型列,我们还可以添加" AUTO_INCREMENT"属性。
    每当我们在表中插入新行时,这将有助于使列中的值增加1。

PRIMARY KEY有助于唯一地标识表中的行。
表中的任何两行都不能具有相同的主键值。

创建员工表

在下面的示例中,"员工"表有6列。

  • 雇员的employeeidID,它是主键。

  • firstname员工的名字。

  • lastname雇员的姓氏。

  • 得分员工得分的总分。

  • 上次修改员工详细信息的日期时间。

  • 创建时间创建员工帐户的日期时间。

让我们继续创建employee表。

CREATE TABLE `employee` (
    `employeeid` VARCHAR(20) NOT NULL,
    `firstname` VARCHAR(100) NOT NULL,
    `lastname` VARCHAR(100) NOT NULL,
    `score` INT DEFAULT 0,
    `lastmodified` DATETIME DEFAULT NULL,
    `created` DATETIME NOT NULL,
    PRIMARY KEY (`employeeid`),
    UNIQUE KEY `employeeid_employee_UNIQUE` (`employeeid`)
)  ENGINE=INNODB DEFAULT CHARSET=UTF8;

如果运行上面的SQL查询,我们将得到以下输出。

Query OK, 0 rows affected (0.03 sec)

在上面的SQL查询中,表" employee"正在使用" InnoDB"存储引擎。
使用的默认字符集是utf8

" UNIQUE KEY"约束的语法如下。

UNIQUE KEY symbol (`column_name`)

在上述用于创建employee表的SQL查询中,我们使用以下UNIQUE KEY约束。

UNIQUE KEY `employeeid_employee_UNIQUE` (`employeeid`)

上例中使用的符号格式为" columnName_tableName_UNIQUE"。
您可以对UNIQUE KEY符号使用其他任何格式。

现在,让我们探索雇员表的每一列。

类型描述
employeeidVARCHAR(20)此列可以保存可变长度的字符串,最多20个字符。该列具有" NOT NULL"属性,这意味着我们必须为此列设置一些值。
firstnameVARCHAR(100)此列可以保存最大长度为100个字符的可变长度字符串。这也被设置为" NOT NULL",这意味着我们必须为此列设置一些值。
lastnameVARCHAR(100)此列可以保存最大长度为100个字符的可变长度字符串,类似于firstname列。由于此列设置为" NOT NULL",因此我们必须为此列设置一些值。
scoreINT此列可以保存整数值。它具有属性" DEFAULT 0",这意味着如果我们不提供任何值,则该列将自动保存0。
lastmodifiedDATETIME此列将以"'YYYY-MM-DD HH-MM-SS'"格式保存日期时间值。为日期时间数据类型单击此处。它具有属性" DEFAULT NULL"(默认值),这意味着如果我们不提供任何值,则将在该列中保存" NULL"。
createdDATETIME类似于lastmodified列,它将以''YYYY-MM-DD HH-MM-SS'格式保存日期时间值。它具有'NOT NULL'属性,这意味着我们必须提供一些值。

让我们尝试创建另一个表,这一次,我们将为表的主键使用自动增量属性。

创建评论表

注释表具有以下4列。

  • commentid注释的ID,它是主键。

  • commentbody这是评论的主体。

  • lastmodified上次修改评论的日期时间。

  • 创建时间创建评论的日期时间。

CREATE TABLE `comments` (
    `commentid` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    `commentbody` VARCHAR(200) NOT NULL,
    `lastmodified` DATETIME DEFAULT NULL,
    `created` DATETIME NOT NULL,
    PRIMARY KEY (`commentid`),
    UNIQUE KEY `commentid_comments_UNIQUE` (`commentid`)
)  ENGINE=INNODB DEFAULT CHARSET=UTF8;

"评论"表的主键是"commentid"。

该列的数据类型为BIGINT,并且为UNSIGNED,这意味着它只能采用正整数值。

commentid列设置为" NOT NULL",表示需要一个值。

我们还在注释ID列中使用了" AUTO_INCREMENT"属性,这意味着在将数据插入注释表时不必为此列指定整数值。

由于具有AUTO_INCREMENT属性,因此将自动插入一个整数值,并且每次将该值增加1。