DML: Data Manipulation Language, 数据操纵语言;
DDL: Data Definition Language,数据定义语言;
另外,DCL:Data Control Language,数据控制语言,下节详细讲解.
DML,用于查询和修改数据,包括:
insert :新增记录
update:更新原有记录
delete:删除原有记录
select:查询
DDL,用于定义数据库的结构,比如创建,修改删除数据库对象,包括:
create table ... 创建表
drop table... 删除表
create index...创建索引
drop index ...删除索引
alter table..更改表结构,增加,删除列,修改列的数据类型,长度等;
1.新增列
ALTER TABLE t_mytable ADD [COLUMN] 列名称 数据类型,默认插入到最后一列;
ALTER TABLE t_mytable ADD COLUMN SEX CHAR(2) AFTER age,在指定列后新增一列;
ALTER TABLE t_mytable ADD COLUMN SEX CHAR(2) FIRST,插入到第一列;
ALTER TABLE t_mytable ADD COLUMN SEX CHAR(2),ADD COLUMN last_name VARCHAR(30),增加多列;
2.删除一列
ALTER TABLE t_mytable DROP sex;
3. 修改一列
ALTER TABLE t_mytable change sex gender int;,可以更改名称和类型
3.修改一列的数据类型
ALTER TABLE t_mytable modify gender varchar(2);
4.重新命名表的名称
RENAME TABLE t_before_name TO t_new_name;
ALTER TABLE t_mytable RENAME t_mynewtable;
5.创建索引
ALTER TABLE tbl_name ADD PRIMARY KEY (column_list)主键自动添加索引,该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。
ALTER TABLE tbl_name ADD UNIQUE index_name ON (column_list):
这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。ALTER TABLE tbl_name ADD INDEX index_name ON (column_list):添加普通索引,索引值可出现多次。
ALTER TABLE tbl_name ADD FULLTEXT index_name ON (column_list):该语句指定了索引为 FULLTEXT ,用于全文索引。注: 旧版的MySQL的全文索引只能用在MyISAM表格的char、varchar和text的字段上。不过新版的MySQL5.6.24上InnoDB引擎也加入了全文索引
6.删除索引
DROP INDEX idx_name[索引名称] ON t_mytable;
ALTER TABLE t_mytable DROP primary key,删除主键索引
7 查询索引
show index from t_mytable;
8.索引的分类
单值索引:即一个索引只包含单个列.一个表可以由多个单列索引
主键索引: 设定为主键后数据库会自动建立索引,innodb为聚簇索引
复合索引:即一个索引包含了多个列