Skip to content

CMD 指令

cmd
mysql -u root -p

SQL 指令分类

DDL:数据定义语言,用来定义数据库对象(数据库,表,字段) ​ DML:数据操作语言,用来对数据库表的数据进行增删改 ​ DQL:数据查询语言,用来对数据库表的数据进行查询 ​ DCL:数据控制语言,用来创建用户,维护权限


DDL:

查询所有数据库

sql
show databases;

查询使用数据库

sql
select database();

创建数据库

sql
create database [if not exists] [数据库名称] [default charset 字符集] [collate 排序方式] ;

[if not exists]:查看数据库是否存在,如果存在就创建数据库,不存在就不创建,防止数据库已经存在然后报错 [default charset 字符集]:常用字符集:utf8mb4 [collate 排序方式]:默认排序方式


删除数据库

sql
drop database [if exists] 数据库名称;

[if exists]:查询数据库是否存在,如果存在就删除,不存在就不删除,防止数据库不存在就报错


使用数据库

sql
use 数据库

查询表

sql
show tables;

创建表

sql
create table 表名(
		字段1 字段1类型 [comment 注释],
		...
		字段n 字段n类型 [comment 注释]
		)[comment 注释];

查询表信息

sql
desc 表名;

查询建表语句

sql
show create table 表名;

修改表名

sql
alter table 旧表名 rename to 新表名;

添加字段

sql
alter table 表名 add 字段名 类型 [comment 注释] [约束];

修改字段数据类型

sql
alter table 表名 modify 字段名 类型 [comment 注释] [约束];

修改字段名和数据类型

sql
alter table 表名 change 旧字段名 新字段名 类型 [comment 注释] [约束];

删除表

sql
drop table [if exists] 表名;

格式化表

sql
truncate table 表名称;

DML:

给指定字段添加数据

sql
insert into 表名 [(字段1,字段2,......,字段n)] values (数据1,数据2,......,数据n)[,(数据1,数据2,......,数据n),(数据1,数据2,......,数据n)];

(字段1,字段2,......,字段n):表示给指定字段添加信息,缺省默认为所有字段。

[,(数据1,数据2,......,数据n),(数据1,数据2,......,数据n)]:表示同时添加多个数据

注意:字符串和日期要用单引号括起来。


修改字段数据

sql
update 表名称 set 字段名称 = 新数据[,字段名称 = 新数据] where [筛选条件];

可以修改多个字段,用逗号隔开。 筛选条件缺省默认为整张表的数据。


删除数据

sql
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表中


创建用户

sql
create user '用户名'@'主机名' identified by '密码';

主机名通配符 % 本地主机名 localhost


修改密码

sql
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';

删除用户

sql
drop user '用户名'@'主机名';

权限

所有权限all
查询数据select
插入数据insert
修改数据update
删除数据delete
修改表alter
删除数据库/表/视图create

查询权限

sql
show grants for '用户名'@'主机名';

授予权限

sql
grant all on 数据库名.表名 to '用户名'@'主机名';

撤销权限

sql
revoke all on 数据库名.表名 from '用户名'@'主机名';

Contact me: 1943284256@qq.com