MySQL 创建,修改和删除表

jopen 9年前

登录数据库系统:

 mysql –h localhost –u root –p

    其中,“-h”参数指连接的主机名,因此此处是连接本机,所以后面的内容为localhost

    “-u”参数表示用户名,此处的用户名为 root;

    “-p”参数指用户名密码。


创建数据库:

CREATE DATABASE 数据库名;


显示已经存在的数据库:

SHOW DATABASES;


删除数据库:

DROP DATABASE 数据库;

数据库存储引擎:存储引擎指的表的类型。数据库的存储引擎决定了表在计算机中的存储方式。


查看数据库支持的存储引擎类型:

SHOW ENGINES;

查询MySQL支持的存储引擎:

SHOW VARIABLES LIKE ‘have%’;

查询默认存储引擎:

SHOW VARIABLES LIKE ‘storage_engine’;

如果想要更改默认的存储引擎,可以再my.ini 中进行修改。将”default-storage-engine=INNODB”更改为 “default-storage-engine = MyISAM”。然后重启服务,修改生效。( 有待验证,没找到这个文件,可能是文件名不一样了吧)

存储引擎的对比:

选择存储引擎的建议:MySQL 创建,修改和删除表

         InnoDB 存储引擎 InnoDB 存储引擎支持事务处理,支持外键。同时支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高,要求实现并发控制,那选择InnoDB存储引擎有其很大的优势。如果需要频繁的进行更新,删除操作的数据库,也可以选择InnoDB存储引擎。因为,该类存储引擎可以实现事务的提交(Commit)和回滚(Rollback)。

         MyISAM 存储引擎 MyISAM 存储引擎的插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM存储引擎能实现处理的高效率。如果应用的完整性,并发性要求很低,也可以选择MyISAM 存储引擎。

         MEMORY 存储引擎 MEMORY存储引擎的所有数据都在内存中,数据的处理速度快,但安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMORY 存储引擎。MEMORY 存储引擎对表的大小有要求,不能建立太大的表。所以,这类数据库只使用于相对较小的数据库表。

技巧同一个数据库中可以使用多种存储引擎的表。如果一个表要求较高的事务处理,可以选择InnoDB。这个数据库中可以将查询要求比较高的表选择MyISAM存储引擎。如果需要改数据库中需要一个用于查询的临时表,可以选择MEMORY存储引擎。

创建表的语法:

CREATE TABLE 表名 (属性名 数据类型 [完整性约束条件],                    属性名  数据类型 [完整性约束条件],                     ……                    属性名 数据类型  );

“表名”参数表示所要创建的表的名称,

“属性名”参数表示表中字段的名称,

“数据类型”参数指定字段的数据类型,

 “完整性约束条件”参数指定字段的某些特殊约束条件。

注意: 在使用CREATE TABLE语句创建表时,首先要使用USE语句选择数据库。选择数据语句的基本格式为”USE 数据库名。如果没有选择数据库,创建表时会出现”ERROR 1046(3D000):No database selected”错误。

完整性约束条件表

MySQL 创建,修改和删除表


DESCRIBE语句可以查看表的基本定义。其中包括,字段名,字段数据类型,是否为主键和默认值等。DESCRIBE语句的语法形式如下:

DESCRIBE 表名;(DESCRIBE 可以缩写成DESC)

SHOW CREATE TABLE语句可以查看表的详细定义。该语句可以查看表的字段名,字段的数据类型,完整性约束条件等信息外,还可以查看表默认的存储引擎和字符编码。SHOW CREATE TABLE语句的语法形式如下:

SHOW CREATE TABLE 表名;


修改表名:

ALTER TABLE 旧表名 RENAME [TO]新表名;


修改字段的数据类型:

ALTER TABLE 表名 MODIFY 属性名 数据类型;

其中,“表名“参数指所要修改的表的名称;

         “属性名“参数指需要修改的字段的名称;

         “数据类型“参数指修改后的新数据类型。


修改字段名:

ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型;

新数据类型“参数修改后的数据类型,如不需要修改,则将新数据类型设置成与原来一样。


增加字段:

ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件]  [FIRST|AFTER 属性名2];

“FIRST”参数也是可选参数,其作用是将新增字段设置为表的第一字段;

“AFTER 属性名2”参数也是可选参数,其作用是将新增字段添加到“属性名2“所指的字段后。如果执行的SQL语句中没有”FIRST” “AFTER 属性名2”参数指定新增字段的位置,新增的字段默认为表的最后一个字段。


删除字段:

ALTER TABLE 表名 DROP 属性名;

其中,“属性名“参数指需要从表中删除的字段的名称。


修改字段的排列顺序:

ALTER TABLE 表名 MODIFY 属性名1 数据类型 FIRST|AFTER 属性名2;

“属性名1“参数指需要修改位置的字段名称;

“数据类型“参数指属性名1”的数据类型;

FIRST“参数指定位置为表的第一个位置;

AFTER属性名2”参数指定属性名1”插入在属性名2”之后。


更改表的存储引擎:

ALTER TABLE 表名 ENGINE=存储引擎名;

其中,“存储引擎名“参数指设置的新存储引擎的名称。

MySQl存储引擎包括InnoDB, MyISAM, MEMORY等。


删除表的外键约束:

ALTER TABLE 表名 DROP FOREIGN KEY 外键别名;


删除表:

DROP TABLE 表名;

技巧:删除一个表时,表中的所有数据也会被删除。因此,在删除表的时候一定要慎重。最稳妥的做法是先将表中所有的数据备份出来,然后再删除表。一旦删除表后发现造成了损失,可以通过备份的数据还原,以便将损失降低到最小。

来自:http://my.oschina.net/lvhuizhenblog/blog/383132