库管理


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