MySQL 常用命令
MySQL 常用命令
魔力刘易斯DDL 数据定义语言
数据库操作
查询
-- 显示所有数据库
show databases;
-- 查看当前数据库
select database();
创建
create database [if not exists] 数据库名 [default charset 字符集] [collate 排列规则];
删除
drop database [if exists] 数据库名;
使用
use 数据库名;
表操作
查询
-- 显示所有表
show tables;
-- 查看表结构
desc 表名;
-- 查询建表语句
show create table 表名;
创建
create table 表名(
字段名1 数据类型1 [comment '字段注释'],
字段名2 数据类型2 [comment '字段注释'],
...
) [comment '表注释'];
修改
-- 添加字段
alter table 表名 add 字段名 数据类型(长度) [comment '字段注释'] [约束];
-- 修改数据类型
alter table 表名 modify 字段名 新数据类型(长度);
-- 修改字段名和数据类型
alter table 表名 change 旧字段名 新字段名 新数据类型(长度) [comment '字段注释'] [约束];
-- 删除字段
alter table 表名 drop 字段名;
-- 修改表名
alter table 旧表名 rename to 新表名;
删除
-- 删除表
drop table [if exists] 表名;
-- 清空表(删除后重新创建)
truncate table 表名;
DML 数据操作语言
插入
-- 插入数据
insert into 表名(字段1, 字段2, ...) values(值1, 值2, ...);
-- 给所有字段赋值
insert into 表名 values(值1, 值2, ...);
-- 批量插入
insert into 表名(字段1, 字段2, ...) values(值1, 值2, ...), (值1, 值2, ...), ...;
insert into 表名 values(值1, 值2, ...), (值1, 值2, ...), ...;
修改
update 表名 set 字段1=值1, 字段2=值2, ... [where 条件];
删除
delete from 表名 [where 条件];
DQL 数据查询语言
select
字段列表
from
表名列表
where
条件列表
group by
分组字段列表
having
分组条件列表
order by
排序字段列表
limit
分页参数;
基本查询
-- 查询多个字段
select 字段1, 字段2, ... from 表名;
-- 查询所有字段
select * from 表名;
-- 设置别名
select 字段1 as 别名1, 字段2 as 别名2, ... from 表名;
-- 去重
select distinct 字段1, 字段2, ... from 表名;
条件查询
select 字段1, 字段2, ... from 表名 where 条件列表;
比较运算符 | 功能 |
---|---|
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
= | 等于 |
<> 或 != | 不等于 |
between 值 1 and 值 2 | 在值 1 和值 2 之间 |
in (值 1, 值 2, …) | 在值 1, 值 2, …中 |
like 模式 | 模糊查询 |
is null | 为空 |
逻辑运算符 | 功能 |
---|---|
and | 与 |
or 或 || | 或 |
not 或 ! | 非 |
聚合函数
聚合函数:对一组数据进行计算并返回单个值的函数。
函数名 | 说明 |
---|---|
count | 计算个数 |
max | 计算最大值 |
min | 计算最小值 |
avg | 计算平均值 |
sum | 计算总和 |
select 聚合函数(字段列表) from 表名;
分组查询
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
排序查询
select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2, ...;
排序方式:asc 升序(默认)desc 降序。
多字段排序,先按第一个字段排序,当第一个字段相同时,再按第二个字段排序。
分页查询
select 字段列表 from 表名 limit 开始行数, 每页行数;
开始行数从 0 开始,起始行数 = (页码 - 1)* 每页行数。
查询第一页时,起始行数可以省略,直接写每页行数。
DCL 数据控制语言
管理用户
-- 查询用户
use mysql; -- 切换到 mysql 数据库
select * from user;
-- 创建用户
create user '用户名'@'主机' identified by '密码';
-- 修改密码
alter user '用户名'@'主机' identified by '新密码';
-- 删除用户
drop user '用户名'@'主机';
权限控制
权限类型:
权限类型 | 说明 |
---|---|
all,all privileges | 所有权限 |
select | 查询权限 |
insert | 插入权限 |
update | 更新权限 |
delete | 删除权限 |
alter | 修改表结构权限 |
drop | 删除表权限 |
create | 创建权限 |
-- 查询权限
show grants for '用户名'@'主机';
-- 授权
grant 权限列表 on 数据库名.表名 to '用户名'@'主机';
-- 撤销权限
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机';