MySQL数据库及表的管理
库管理
1.创建数据库
mysql>helpcreatedatabase;CREATE{DATABASE|SCHEMA}[IFNOTEXISTS]db_name[create_specification]...create_specification:[DEFAULT]CHARACTERSET[=]charset_name|[DEFAULT]COLLATE[=]collation_name
2.删除数据库
mysql>helpdropdatabase;DROP{DATABASE|SCHEMA}[IFEXISTS]db_name
3.修改数据库的字符集和排序字符以及数据字典
mysql>helpalterdatabase;ALTER{DATABASE|SCHEMA}[db_name]alter_specification...ALTER{DATABASE|SCHEMA}db_nameUPGRADEDATADIRECTORYNAMEalter_specification:[DEFAULT]CHARACTERSET[=]charset_name|[DEFAULT]COLLATE[=]collation_name
表管理
1.创建表
(a)第一种方式
CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name(create_definition,...)[table_options][partition_options][create_definition]字段的定义:字段名、类型和类型修饰符;键、索引和约束;-->键是索引,索引未必是键;键可以表示约束primarykey、uniquekey、foreignkey、check(条件约束){index|key}[table_options]engine[=]engine_name--->注1AUTO_INCREMENT[=]value指定AUTO_INCREMENT的起始值[DEFAULT]CHARACTERSET[=]charset_name指定默认字符集CHECKSUM[=]{0|1}是否使用校验值[DEFAULT]COLLATE[=]collation_name排序规则COMMENT[=]'string'注释DELAY_KEY_WRITE[=]{0|1}是否启用键延迟写入(索引降低了写操作)ROW_FORMAT[=]{DEFAULT(默认)|DYNAMIC(动态)|FIXED(静态)|COMPRESSED(压缩)|REDUNDANT(冗余)|COMPACT(紧致)}表格式TABLESPACEtablespace_name[STORAGE{DISK|MEMORY|DEFAULT}]表空间--->注2
(b)第二种方式(复制表数据)
CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name[(create_definition,...)][table_options]select_statement
(c)第三种方式(复制表结构)
CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name{LIKEold_tbl_name|(LIKEold_tbl_name)}
2.查看表的状态信息
showtablestatuslike‘table_name’
3.删除表
DROP[TEMPORARY]TABLE[IFEXISTS]tbl_name[,tbl_name]...[RESTRICT|CASCADE]
4.修改表
ALTER[ONLINE|OFFLINE][IGNORE]TABLEtbl_name[alter_specification[,alter_specification]...]
(a)修改字段定义
插入新字段:ADD[COLUMN]col_namecolumn_definition[FIRST|AFTERcol_name]删除字段DROP[COLUMN]col_name修改字段修改字段名称CHANGE[COLUMN]old_col_namenew_col_namecolumn_definition[FIRST|AFTERcol_name]修改字段类型及属性等MODIFY[COLUMN]col_namecolumn_definition[FIRST|AFTERcol_name]
(b)表改名
mysql>renametabletoold_nameTOnew_name
(c)修改存储引擎
engine=
(d)指定排序标准的字段
ORDERBYcol_name[,col_name]...
(e)转换字符集及排序规则
CONVERTTOCHARACTERSETcharset_name[COLLATEcollation_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
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。