首页 > 代码库 > MySQL数据库及表的管理
MySQL数据库及表的管理
库管理
1.创建数据库
mysql> help create database; CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name
2.删除数据库
mysql> help drop database; DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
3.修改数据库的字符集和排序字符以及数据字典
mysql> help alter database; ALTER {DATABASE | SCHEMA} [db_name] alter_specification ... ALTER {DATABASE | SCHEMA} db_name UPGRADE DATA DIRECTORY NAME alter_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name
表管理
1.创建表
(a)第一种方式
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_options] [partition_options] [create_definition] 字段的定义:字段名、类型和类型修饰符; 键、索引和约束; --> 键是索引,索引未必是键;键可以表示约束 primary key、unique key、foreign key、check(条件约束) {index|key} [table_options] engine [=] engine_name ---> 注1 AUTO_INCREMENT [=] value 指定AUTO_INCREMENT的起始值 [DEFAULT] CHARACTER SET [=] charset_name 指定默认字符集 CHECKSUM [=] {0 | 1} 是否使用校验值 [DEFAULT] COLLATE [=] collation_name 排序规则 COMMENT [=] ‘string‘ 注释 DELAY_KEY_WRITE [=] {0 | 1} 是否启用键延迟写入 (索引降低了写操作) ROW_FORMAT [=] {DEFAULT(默认)|DYNAMIC(动态)|FIXED(静态)|COMPRESSED(压缩)|REDUNDANT(冗余)|COMPACT(紧致)} 表格式 TABLESPACE tablespace_name [STORAGE {DISK|MEMORY|DEFAULT}] 表空间 ---> 注2
(b)第二种方式(复制表数据)
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_options] select_statement
(c)第三种方式(复制表结构)
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name { LIKE old_tbl_name | (LIKE old_tbl_name) }
2.查看表的状态信息
show table status like ‘table_name’
3.删除表
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... [RESTRICT | CASCADE]
4.修改表
ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name [alter_specification [, alter_specification] ...]
(a)修改字段定义
插入新字段: ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name ] 删除字段 DROP [COLUMN] col_name 修改字段 修改字段名称 CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST|AFTER col_name] 修改字段类型及属性等 MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name]
(b)表改名
mysql > rename table to old_name TO new_name
(c)修改存储引擎
engine =
(d)指定排序标准的字段
ORDER BY col_name [, col_name] ...
(e)转换字符集及排序规则
CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]
注1
mysql > show engine
注2
TABLESPACE tablespace_name [STORAGE {DISK|MEMORY|DEFAULT}] 表空间
MyISAM表,每个表有三个文件,都位于数据库目录中
tb_name.frm:表结构定义
tb_name.MYD:数据文件
tb_name.MYI:索引文件
InnoDB表,有两种存储方式
1.默认:每表有一个独立文件和一个多表共享的文件
tb_name.frm:表结构的定义,位于数据库目录中
ibdata#:共享的表空间文件,默认位于数据目录(datadir指向的目录)中
图
2.独立的表空间文件:
每表有一个表结构文件tb_name.frm
一个独立的表空间文件 tb_name.ibd(数据和索引)
(a)应该修改innodb_file_per_table为ON
(b)可以通过修改配置文件永久有效在 [mysqld]段
innodb_file_per_table=ON
本文出自 “似水流年” 博客,请务必保留此出处http://sixijie123.blog.51cto.com/11880770/1882988
MySQL数据库及表的管理