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时,其它用户可以阅读原表,但是对表的更新和修改的操作将被延迟,直到新表生成为止。新表生成后,这些更新和修改信息会自动转移到新表上。
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。
如果您使用ALTER
TABLE更改列规约,但是DESCRIBEtbl_name提示您列规约并没有改变,则可能是因为MySQL忽略了您所做的更改。忽略更改的原因见
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权限。
有关合法数据库名称的规定列于
NOTEXISTS,则会出现错误。
create_specification选项用于指定数据库的特性。数据库特性储存在数据库目录中的db.opt文件中。CHARACTER
SET子句用于指定默认的数据库字符集。COLLATE子句用于指定默认的数据库整序。字符集和整序名称在
有些目录包含文件,这些文件与数据库中的表对应。MySQL中的数据库的执行方法与这些目录的执行方法相同。因为当数据库刚刚被创建时,在数据库中没有表,所以CREATE
DATABASE只创建一个目录。这个目录位于MySQL数据目录和db.opt文件之下。
如果您手动在数据目录之下创建一个目录(例如,使用mkdir),则服务器会认为这是一个数据库目录,并在SHOW
DATABASES的输出中显示出来。
也可以使用CREATESCHEMA。
相关文章推荐
- MySQL create table 语法
- MySQL Create Table语句的应用与语法
- mysql5.5基础 show create table...\G 查看创建表时候用的SQL语句
- Create database/Create table 示例(Sql Server2005语法)
- MySQL语法及基础知识大全
- 【MySQL】 创建表CREATE TABLE语法
- MySQL Create Table语句的应用与语法
- MySQL Create Table语句的应用与语法
- mysql5.7基础 create database if not exists... 判断数据库是否存在 若不存在则创建
- MySQL语法及基础知识大全
- mysql(12):基础,ALTER 的语法介绍
- MySQL_Table_Create_Describe_Alter_Drop
- MySQL Create Table语句的应用与语法
- MySQL基础知识---------CREATE INDEX语法
- mysql 基础语法知识
- mysql基础知识(2)
- MySQL基础知识汇总
- Mysql基础知识
- MySQL基础知识
- HTML基本基础语法知识