CMD 指令
mysql -u root -pSQL 指令分类
DDL:数据定义语言,用来定义数据库对象(数据库,表,字段) DML:数据操作语言,用来对数据库表的数据进行增删改 DQL:数据查询语言,用来对数据库表的数据进行查询 DCL:数据控制语言,用来创建用户,维护权限
DDL:
查询所有数据库
show databases;查询使用数据库
select database();创建数据库
create database [if not exists] [数据库名称] [default charset 字符集] [collate 排序方式] ;[if not exists]:查看数据库是否存在,如果存在就创建数据库,不存在就不创建,防止数据库已经存在然后报错 [default charset 字符集]:常用字符集:utf8mb4 [collate 排序方式]:默认排序方式
删除数据库
drop database [if exists] 数据库名称;[if exists]:查询数据库是否存在,如果存在就删除,不存在就不删除,防止数据库不存在就报错
使用数据库
use 数据库查询表
show tables;创建表
create table 表名(
字段1 字段1类型 [comment 注释],
...
字段n 字段n类型 [comment 注释]
)[comment 注释];查询表信息
desc 表名;查询建表语句
show create table 表名;修改表名
alter table 旧表名 rename to 新表名;添加字段
alter table 表名 add 字段名 类型 [comment 注释] [约束];修改字段数据类型
alter table 表名 modify 字段名 类型 [comment 注释] [约束];修改字段名和数据类型
alter table 表名 change 旧字段名 新字段名 类型 [comment 注释] [约束];删除表
drop table [if exists] 表名;格式化表
truncate table 表名称;DML:
给指定字段添加数据
insert into 表名 [(字段1,字段2,......,字段n)] values (数据1,数据2,......,数据n)[,(数据1,数据2,......,数据n),(数据1,数据2,......,数据n)];(字段1,字段2,......,字段n):表示给指定字段添加信息,缺省默认为所有字段。
[,(数据1,数据2,......,数据n),(数据1,数据2,......,数据n)]:表示同时添加多个数据
注意:字符串和日期要用单引号括起来。
修改字段数据
update 表名称 set 字段名称 = 新数据[,字段名称 = 新数据] where [筛选条件];可以修改多个字段,用逗号隔开。 筛选条件缺省默认为整张表的数据。
删除数据
delete from 表名 where [筛选条件];DQL:
查询指令较多且复杂,通过模块化来讲解。
基本格式
select [distinct] 字段区 from 表名称 [分组区] [排序区] [分页区] [where 判断条件];
distinct:去重查询
字段区:
普通字段
字段1 [[as] 别名1],字段2 [[as] 别名2],字段3 [[as] 别名3]... 字段名称可以用通配符*表示
聚合函数
将字段的一列数据作为一个整体,进行纵向计算 格式:聚合函数(字段名) 计数:count 平均数:avg 最大/小:max/min 求和:sum
分组区
分组查询:通过一个字段将表划分成不同的组,然后进行查询
group by 分组字段 [having 判断依据]
having:判断依据:他的优先级要后于where
排序区
order by 排序依据的字段 排序规则 [,排序依据的字段 排序规则];
如果有多个排序依据,则遵循优先规则
排序规则:
升序:缺省默认 asc 降序:desc
分页区
limit x,y;
x : 从第几行开始 y : 每页显示的数目
小细节 x = y*(页数-1)
判断条件:
基础的运算符 区域筛选:between 小值 and 大值 精准匹配:in (值) 模糊匹配:like(' _ 或者 %') 支持逻辑运算符
DCL:
用户一般存放在mysql数据库中的 user表中
创建用户
create user '用户名'@'主机名' identified by '密码';主机名通配符 % 本地主机名 localhost
修改密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';删除用户
drop user '用户名'@'主机名';权限
| 所有权限 | all |
|---|---|
| 查询数据 | select |
| 插入数据 | insert |
| 修改数据 | update |
| 删除数据 | delete |
| 修改表 | alter |
| 删除数据库/表/视图 | create |
查询权限
show grants for '用户名'@'主机名';授予权限
grant all on 数据库名.表名 to '用户名'@'主机名';撤销权限
revoke all on 数据库名.表名 from '用户名'@'主机名';