千家信息网

MySQL数据库及表的管理

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,库管理1.创建数据库mysql> help create database;CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_
千家信息网最后更新 2026年10月31日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 NAMEalter_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






0