MySQL管理表和索引
创建数据库:
CREATE DATABASE|SCHEMA [IF NOT EXISTS] db_name [CHARACTER SET=] [COLLATE=]
删除数据库:
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
创建表:
1、直接定义一张空表;
2、从其它表中查询出数据,并以之创建新表;
3、以其它表为模板创建一个空表;
1.
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition,...)
[table_options]
[partition_options]
2.
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)]
[table_options]
[partition_options]
select_statement
通过select查询语句创建表时,创建的表可能和被查询表的格式定义不太一样
3.
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
{ LIKE old_tbl_name | (LIKE old_tbl_name) }
创建表时定义其中的字段类型时为数值时 加 unisined表示无符号数值类型(只有正数)。
例如create table 表名 ( id int unisgned ) ; id列的值只能为正数
例如create table 表名 ( id int unisgned ) ; id列的值只能为正数
修改表定义:
ALTER TABLE
添加、删除、修改字段
添加、删除、修改索引
改表名
修改表属性
删除表:
DROP [TEMPORARY] TABLE [IF EXISTS]
tbl_name [, tbl_name] ...
[RESTRICT | CASCADE]
InnoDB支持外键
键也称作约束,可用作索引,属于特殊索引,BTree
索引由数据表中的一列或多列组合而成,创建索引的目的是为了优化数据库的查询速度。其中用户创建的索引指向数据库中具体数据的位置。当用户通过索引查询数据库中的数据时
不需要遍历所有数据库中的数据,提高了查询效率,索引是一种将数据库中的单列或多列的值排序的结构
用户通过索引查询数据,系统可以不必遍历数据表中的所有记录,而是查询索引列,一般的过程的数据查询是通过遍历全部数据,并寻找数据库中的匹配记录而实现的
SHOW {INDEX | INDEXES | KEYS} FROM tb_name:显示指定表上的索引
DESC table_name 显示表结构
索引创建:
CREATE INDEX index_name ON tb_name (col,...);
col_name [(length)] [ASC | DESC]
create index 索引名 on 表名 (字段名(长度) aes|desc)
创建索引时 字段名(长度) 中"(长度)"表示只索引最左边的几个字符
创建索引时 字段名(长度) 中"(长度)"表示只索引最左边的几个字符
删除索引:
DROP INDEX index_name ON tbl_name