Mysql命令小记

DDL(数据定义语言)

  • 创建数据库
create database 数据库名称;
  • 查看所有数据库
show databases;
  • 使用选定的数据库
use 数据库名称;
  • 删除数据库
drop database 数据库名称;
  • 查看所有的表
show tables;
  • 查看表的结构
desc 表名
  • 查看之前创建表的语句
show create tables 表名;
  • 删除表
drop table 表名
  • 修改表
alter table 表名 modify 字段名 字段类型;
#如:alter table city modify province varchar(10);
  • 修改表字段名
alter table 表名 旧字段名 新字段名;
  • 增加表字段名
alter table 表名 add 字段名;
#后面自行添加字段属性,使用after添加字段在指定字段后面
  • 删除表字段名
alter table 表名 drop 字段名;
  • 修改表名
alter table 表名 rename (to) 新表名;
# to 可选

DML(数据操作语言)

  • 插入表数据
insert into 表名(一个或多个字段名) values(各个字段对应的数值) ;
  • 查询表数据
#查询所有的数据
select * from 表名;
#指定字段名查询,可增加where或having语句
select 一个或多个字段名(逗号隔开)from 表名;
  • 更新数据
update 表名 set 字段名=数值 where条件;
#不加where条件会更新所有数据!!!
  • 删除数据
delete from 表名 where条件;
#不加where条件会删除所有数据!!!

DCL(数据控制语言)

  • 创建用户
create user  用户名@ip地址 identified by '密码’;
  • 删除用户
drop user 用户名@ip地址;
  • 用户授权
grant update/insert/delete on 数据库名.表名 to 用户
#授予所有权限
grant all privileges on ** to 用户;
  • 撤销授权
revoke  权限 on 数据库名.表名 from 用户名;
  • 查看授权
show grants for 用户名;

DQL(数据查询语言)

select 字段名1,字段名2... from 表名 where条件;
#过滤掉重复的列值
select distinct 列名 from 表名;
#连接多个列作为新列
select concat(列名,列名,..) from 表名;
#连接多个列作为新列,使用分隔符分开
select concat_ws('@',列名,列名,..) from 表名;
#给列名起别名
select 列名 as 别名 from 表名;
#模糊查询,比如查询包含hello的列
select 列名 from 表名 where 列名 like '%hello%';#%表示匹配一个或多个字符
#在支持fulltext索引的myisam引擎中使用全文检索
select 列名 from 表名 where match(索引的列名) against(查找的值);

concat_ws

  • 排序
#降序和升序
select  列名 from 表名 order by 排序所依据的列名 desc/asc;
  • 分组查询
select 列名 from 表名 group by 列名;
select 列名 from 表名 group by 列名 having语句;
  • 内连接查询(where可以使用on代替)
    内连接
  • 左右连接查询(这里没体现出差异)
    left join
    右链接查询
  • 联合查询
select 语句 union all select语句
  • limit m,n(从第m条开始选择n条记录)

others

  • 连接数据库
mysql -u 用户名 -p 密码;
  • 查看用户与主机的对应关系?
use mysql;#使用默认安装的数据库
#从user表中选出user,host字段,里面记录了数据库用户和主机的对应关系
select user,host from user;

在这里插入图片描述

  • 修改用户与主机的对应关系
update user set host where user="用户名";
  • 刷新权限
flush privileges;
  • 修改密码
#终端下,知道原密码的情况下
mysqladmin -u 用户名 -p 原密码 password 新密码
#不知道密码的情况下
https://blog.csdn.net/whimewcm/article/details/83621358
  • 查看编码设置
    在这里插入图片描述

  • 查询sql_mode等
    在这里插入图片描述

  • 查询autocommit等

  • 指定引擎和编码

create table 表名(字段...) engine=InnoDB charset=utf8
alter table 表名 engine=Innodb;
  • 查看支持的引擎
show engines;
  • 查看支持的字符集
show character set;
  • 指定字符集编码
create database 数据库名 character set gbk;
create table 表名(字段名..) charset=gbk;  
  • 查看表状态
show table status\G;
  • transaction
使用transaction使得commit(确认修改)或rollback(撤销操作)之前的语句能够不中断的执行。结构如下:
start transaction
一系列sql语句
commit /rollback
  • 关闭自动提交(不写入硬盘,先保存在内存,直到手动commit)
set autocommit=0
  • 创建视图
create view 视图名(字段名.....) as select语句;
  • 修改视图
alter view 视图名(字段名...) as select语句;
  • 删除视图
drop view 视图名 if exists 视图名;
  • 触发器
create trigger 触发器名 before/after insert/update/delete on  表名 for each row
begin
	sql语句
end;
  • 修改分界符
delimiter //
#可以将结束符;修改为//
  • 删除触发器
drop trigger 触发器名;

sql语句优化查询

  • 开启慢查询日志(记录查询时间较长的查询语句)
show variables like "%slow%";
 Variable_name             | Value                                                         |
+---------------------------+---------------------------------------------------------------+
| log_slow_admin_statements | OFF                                                           |
| log_slow_slave_statements | OFF                                                           |
| slow_launch_time          | 2                                                             |
| slow_query_log            | OFF                                                           |
| slow_query_log_file       | xxxx											|
#slow_query_log默认关闭,使用下列语句打开
set global log_slow_queries=on;
  • 修改query_time对应的时间值
show variables like "%long%";
+----------------------------------------------------------+-----------+
| Variable_name                                            | Value     |
+----------------------------------------------------------+-----------+
| long_query_time                                          | 10.000000 |
| performance_schema_events_stages_history_long_size       | 10000     |
| performance_schema_events_statements_history_long_size   | 10000     |
| performance_schema_events_transactions_history_long_size | 10000     |
| performance_schema_events_waits_history_long_size        | 10000     |
+----------------------------------------------------------+-----------+
set long_query_time=0.5;
  • 查看语句执行的详细信息
explain 查询语句;
  • 性能分析工具profiling
show variables like "%profiling%";
#打开
set profiling=on;
#查看语句运行性能
show profiles;
+----------+------------+-----------------------------------+
| Query_ID | Duration   | Query                             |
+----------+------------+-----------------------------------+
|        1 | 0.00234400 | show variables like "%profiling%" |
|        2 | 0.00016400 | ste profiling=off                 |
+----------+------------+-----------------------------------+
#指定query_id查询,找到耗时大的status处理;
show profile for query 2;
+---------------+----------+
| Status        | Duration |
+---------------+----------+
| starting      | 0.000108 |
| freeing items | 0.000051 |
| cleaning up   | 0.000005 |
+---------------+----------+
  • 查询缓存
show variables like "%cache%";

猜你喜欢

转载自blog.csdn.net/whimewcm/article/details/83833110
今日推荐