USE db_name; //指定某数据库为默认数据库
CREATE DATABASE [IF NOT EXIST/*不存在时创建*/] db_name
[CHARACTER SET charset/*指定字符集*/]
[CHOLLATE chollation/*指定排序规则*/];
新建数据库后,会在mysql的数据目录新建对应的子目录,并在子目录中新建db.opt文件来存储数据库信息。可以通过以下语句查看数据库的定义:
SHOW CREATE DATABASE db_name;
DROP DATABASE db_name;
ALTER DATABASE db_name
[CHARACTER SET charset/*指定字符集*/]
[CHOLLATE chollation/*指定排序规则*/]
show engines;
或
select * from information_schema.engines;
结果如下:
其中,Support表示是否支持,Transaction表示是否支持事务,XA表示支持是否分布式事务处理,Savepoints表示是否支持部分事务回滚。不管使用那种引擎,在新建表时,均会在对应数据库的子目录中穿件table_name.frm文件。另外,有的存储引擎都有自己特定的文件扩展名:
存储引擎 | 文件 |
---|---|
MyISAM | .MYD(数据),.MYI(索引) |
MERGE | .MRG(各成员MyISAM数据表的名字构成的清单) |
InnoDB | .ibd(数据和索引) |
ARCHIVE | .ARZ(数据),.ARM(元数据) |
CSV | .CSV(数据),.CSM(元数据) |
不同的存储引擎对格式文件和数据表的处理方式如下:
MyISAM是MySql的默认存储引擎,它提供了键压缩功能,与其他引擎相比,它为AUTO_INCREATEMENT数据列提供了更多的功能。MyISAM通过FULLTEXT索引可以支持全文检索,支持空间数据类型和SPECIAL索引。
MERGE引擎可以同时查询多个MyISAM数据表,相当于合并了多个成员数据库,但是它要求数据表必须具备一样的结构。
数据完全存储在内存中,检索数据的速度快。但是,数据不具备持久性,内存掉电就会丢失。同时,MEMORY存储引擎默认使用散列索引,对相等比较效率较高,但是范围查找速度慢。它要求数据表中的字段必须为固定长度的字段。
支持事务的提交和回滚;
系统崩溃后可自动恢复;
外键及引用完整性支持,支持递归删除更新;
支持行级别锁和多版本机制,并发性能好;
存储时对数据压缩,检索时再解压缩,以节约存储空间;
其余同InnoDB
用于访问其他MySql服务器管理的数据。
MySql集群存储引擎,
二进制可移植性:直接通过拷贝硬盘文件到其他机器就能正常使用。