1.操作数据库命令
- 查看数据库
show databases;
- 查看当前选择的数据库
select database();
- 切换数据库
use d1;
- 创建数据库语法
create database d1;
- 查看当前数据库的创建脚本
show create database d1;
- 修改数据库的编码
alter database d1 character set utf8mb4;
2.操作数据库表命令
- 查看数据库表
show tables;
- 创建数据库表
create table t1 (
id int not null primary key,
name varchar(64) default '',
age int default 0);
- 显示表信息
show create table t1;
- 添加表字段
alter table t1 add column address varchar(128) default '';
- 删除表字段
alter table t1 drop column address;
- 修改表字段属性
alter table t1 modify name varchar(32) default '';
- 修改表字段名和属性
alter table t1 change name nickname varchar(64) default '';
- 修改表的自增属性
alter table t1 modify id int auto_increment;
3.检索
4.更新
4.1插入
insert into t1 (nickname, age) values ('小明', 18);
5.索引
- 查看表的索引
show index from t1\G;
*************************** 1. row ***************************
Table: t1
Non_unique: 0
Key_name: PRIMARY
Seq_in_index: 1
Column_name: id
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
1 row in set (0.00 sec)
返回结果每列的含义:
Table: 索引所在的表名
Non_unique: 非唯一索引,PRIMARY KEY是0,因为PRIMARY KEY必须是唯一的
Key_name: 索引名字,可以通过这个名字来执行DROP INDEX
Seq_in_index: 索引中该列的位置,看联合索引比较直观
Column_name: 索引列的名称
Collation: 列以什么方式存储在索引中。A-B+树索引,NULL-其他
Cardinality: 非常关键的值,表示索引中唯一值的数目估值,Cardinality表的行数应尽可能接近1,如果非常小,那么用户需要考虑是否删除此索引
Sub_part: 是否是列的部分索引,NULL-表示是整个列
Packed: 关键字如何被压缩,NULL-表示没有被压缩
Null: 是否索引列含有NULL值
Index_type: 索引类型 BTREE
Comment: 注释
Index_comment:
1 row in set (0.00 sec)
- 索引列的部分数据
alter table t1 add key idx_nickname (nickname(32));
- 创建联合索引
alter table t1 add key idx_nickname_age (nickname, age);
- 强制使用某个索引
explain select * from t1 force index(idx_nickname) where nickname like '小%' and age >= 18;
标签:操作命令,数据库,t1,索引,MySQL,table,nickname,alter From: https://www.cnblogs.com/heliocc/p/16839991.html