您的位置:首页 > 数据库 > MySQL

MySQL基础知识---------ALTER TABLE/CREATE DATABASE语法

2014-02-21 13:49 288 查看
ALTERTABLE用于更改原有表的结构。例如,您可以增加或删减列,创建或取消索引,更改原有列的类型,或重新命名列或表。您还可以更改表的评注和表的类型。

如果您使用ALTER
TABLE更改列规约,但是DESCRIBEtbl_name提示您列规约并没有改变,则可能是因为MySQL忽略了您所做的更改。忽略更改的原因见13.1.5.1节,“沉寂的列规格变更”。例如,如果您试图把VARCHAR列更改为CHAR列,此时,如果表包含其它长度可变的列,则MySQL仍会使用VARCHAR。

ALTER
TABLE运行时会对原表进行临时复制,在副本上进行更改,然后删除原表,再对新表进行重命名。在执行ALTER
TABLE时,其它用户可以阅读原表,但是对表的更新和修改的操作将被延迟,直到新表生成为止。新表生成后,这些更新和修改信息会自动转移到新表上。

CREATE{DATABASE|SCHEMA}[IFNOTEXISTS]db_name

[create_specification[,create_specification]...]


create_specification:

[DEFAULT]CHARACTERSETcharset_name

|[DEFAULT]COLLATEcollation_name


CREATEDATABASE用于创建数据库,并进行命名。如果要使用CREATE
DATABASE,您需要获得数据库CREATE权限。

有关合法数据库名称的规定列于9.2节,“数据库、表、索引、列和别名”。如果存在数据库,并且您没有指定IF
NOTEXISTS,则会出现错误。

create_specification选项用于指定数据库的特性。数据库特性储存在数据库目录中的db.opt文件中。CHARACTER
SET子句用于指定默认的数据库字符集。COLLATE子句用于指定默认的数据库整序。字符集和整序名称在第10章:字符集支持中讨论。

有些目录包含文件,这些文件与数据库中的表对应。MySQL中的数据库的执行方法与这些目录的执行方法相同。因为当数据库刚刚被创建时,在数据库中没有表,所以CREATE
DATABASE只创建一个目录。这个目录位于MySQL数据目录和db.opt文件之下。

如果您手动在数据目录之下创建一个目录(例如,使用mkdir),则服务器会认为这是一个数据库目录,并在SHOW
DATABASES的输出中显示出来。

也可以使用CREATESCHEMA。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: