数据库相关语法
查看库: show databases;
创建库: create database test01;(database name)
切换库: use test01;
删除库: drop database test01;
表相关语法
查看当前库的所有表:show tables;
创建表:
CREATE TABLE tb_user (
id VARCHAR (32) NOT NULL COMMENT '主键id,使用32位uuid',
user_name VARCHAR (30) DEFAULT NULL,
sex TINYINT (1) DEFAULT 0 COMMENT '性别:0——女 1——男',
PRIMARY KEY (id)
);
查看表结构:desc tb_user;
查看建表语句:show create table tb_user;
修改表名:alter table tb_user rename t_user;
添加字段:alter table t_user add column phone varchar(20) default null;
删除字段:alter table t_user drop phone;
修改字段:alter table t_user modify sex tinyint(1) default 1;
Insert、delete、update、select
指定表插入数据。
insert into t_user (id,user_name,sex) values ('00003d25376045c3bc31d5db9f214141','zs',1);
或字段按顺序全部插入insert into t_user values ('00003d25376045c3bc31d5db9f214141','zs',1);
查询表数据:
Select 选择那些列
From 指定数据表
Where 行必须满足的条件
Group by 如何对结果进行分组
Order by 如何对结果进行排序
Distinct 在结果中去除重复行
例子:根据心别进行查询,并根据名字去重(不推荐使用Distinct去重,消耗性能)
select distinct(user_name) from t_user where sex = 1;
删除数据表记录:
删除pet表下的name=hzy这一行。
Delete from t_user where user_name=“ll”;
清空整个数据表。
Delete from t_user;
用update修改记录:
例:在t_user表中,修改user_name为 ”zs“ 的sex的值
UPDATE t_user SET sex=0 WHERE user_name='zs';
索引
查看索引
show index from user; 查看user表的索引。
创建索引
create index idx_name on user (name); 使用create在user表中创建idx_name索引
ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。
ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。
ALTER TABLE tbl_name ADD INDEX index_name (column_list): 添加普通索引,索引值可出现多次。
ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):该语句指定了索引为 FULLTEXT ,用于全文索引。
删除索引
drop index idx_name on user; 在user表中删除idx_name索引。
使用Explain进行分析sql的性能
使用
只需要在执行的sql前面加上explain即可。(explain select * from user;)
Explain相关信息详解
Id
select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序.数字越大越先被执行。相同级别由上往下执行。
Select_type
查询类别
Table
显示这一行的数据是关于哪张表的
Type
显示查询使用了何种类型(级别从上至下)
Possible_keys
显示可能应用在这张表中的索引,一个或多个。
查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询实际使用
Key
实际使用的索引。如果为NULL,则没有使用索引
覆盖索引就是查询的字段与建立的索引相同,只需要查询索引就可以得到结果。
Key_len
表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度。
Ref
显示索引的哪一列被使用了,如果可能的话,是一个常数。哪些列或常量被用于查找索引列上的值
Rows
rows列显示MySQL认为它执行查询时必须检查的行数。
Extra
包含不适合在其他列中显示但十分重要的额外信息