数据表是数据库的重要组成部分,每一个数据库都是由若干个数据表组成的。没有数据表就无法在数据库中存放数据。MySQL数据表的管理和操作是数据库管理员和开发人员日常工作中不可或缺的一部分。
创建数据表 CREATE
创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)约束的过程。
基本语法
在MySQL中,可以使用 CREATE TABLE
语句创建表:
CREATE TABLE (IF NOT EXISTS)<表名> (表定义选项)(表选项)(分区选项);
'''
`[表定义选项]`的格式为:
<列名1> <类型1> [,…] <列名n> <类型n>
'''
CREATE TABLE
命令语法比较多,其主要是由
表创建定义
(create-definition)、
表选项
(table-options)
分区选项
(partition-options)所组成的。
使用CREATE TABLE
创建表时,必须指定以下信息:
-
要创建的表的名称不区分大小写,不能使用SQL语言中的关键字,如
DROP
、
ALTER
、INSERT
等。 -
数据表中每个列(字段)的名称和数据类型,创建多个列要用逗号隔开。
使用说明
-
CREATE TABLE
:用于创建给定名称的表,必须拥有表CREATE的权限。 -
<表名>:指定要创建表的名称,必须符合标识符命名规则。表名称被指定为
db_name.tbl_name
,以便在特定的数据库中创建表。无论是否有当前数据库,都可以通过这种方式创建。 -
在当前数据库中创建表时,可以省略 db-name。如果使用加引号的识别名,则应对数据库和表名称分别加引号。例如,‘mydb’.‘mytbl’ 是合法的,但 ‘mydb.mytbl’ 不合法。
-
<表定义选项>:表创建定义,由列名(col_name)、列的定义(column_definition)以及可能的空值说明、完整性约束或表索引组成。
-
默认的情况是,表被创建到当前的数据库中。若表已存在、没有当前数据库或者数据库不存在,则会出现错误。
示例
CREATE TABLE demo(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(10) (DEFAULT '匿名' COMMENT '姓名',
···
(CONSTRAINT fk_demo0_demo FOREIGN KEY (demoID) REFERENCES demo(id))
'''建立名为fk_demo0_demo的外键约束,demo为父表,
其主键demoID被demo关联'''
)ENGINE=INNODB DEFAULT CAHRSET=utf8;
# “COMMENT” 关键字后跟一个字符串来为表添加注释,提供关于表的额外信息
修改数据表 ALTER
修改数据表的前提是