MySQL速忆笔记(更新中)

举报
ArimaMisaki 发表于 2022/08/08 23:48:20 2022/08/08
【摘要】 本笔记不适合初学者观看,如果想细致了解数据库的初学者可以前往数据库杂谈全集深入了解。 数据库原理指路:数据库杂谈(一) 另外希望能看到这篇笔记的同志能点个赞,在内卷的时代分享知识不容易。 ...

本笔记不适合初学者观看,如果想细致了解数据库的初学者可以前往数据库杂谈全集深入了解。
数据库原理指路:数据库杂谈(一)

另外希望能看到这篇笔记的同志能点个赞,在内卷的时代分享知识不容易。


1 准备工作

1.1 启动与停止

net start mysql80
net stop mysql80

   
  
  • 1
  • 2

其中mysql80为window服务器名字。

1.2 客户端连接

mysql [-h 127.0.0.1] [-p 3306] -u root -p

   
  
  • 1

系统自带的命令行工具执行指令。需要注意的是使用这种方式时需要配置PATH环境变量。

2 SQL

分为DDL,DML,DQL,DCL。

2.1 数据库操作

查询所有数据库

show databases;

  
 
  • 1

查询当前数据库

select database();

  
 
  • 1

创建数据库

create databases [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];

  
 
  • 1

删除

drop database [if exists] 数据库名;

  
 
  • 1

使用数据库

use 数据库名;

  
 
  • 1

2.2 表操作

2.2.1 查询数据库中的表

查询当前数据库的所有表

show tables
 
  • 1

查询表结构

desc 表名

  
 
  • 1

查询指定表的建表语句

show create table 表名; 

  
 
  • 1

2.2.2 修改表数据

添加属性

alter table 表名 add 属性名 类型(长度) [comment 注释] [约束];

  
 
  • 1

修改数据类型

alter table 表名  modify 属性名 新数据类型(长度);

  
 
  • 1

修改字段名和字段类型

alter table 表名 change 旧属性名 类型(长度) [comment 注释] [约束]

  
 
  • 1

删除属性

alter table 表名 drop 属性名;

  
 
  • 1

修改表名

alter table 表名 rename to 新表名

  
 
  • 1

删除表

drop table [if exists] 表名

  
 
  • 1

删除指定表,并重新创建该表(用于格式化表)

truncate table 表名;

  
 
  • 1

2.2.3 添加数据

给指定属性添加数据

insert into 表名(属性名1,属性名2,...)values(1,2,...);

  
 
  • 1

给全部字段添加数据

insert into 表名 values(1,2,...);

  
 
  • 1

批量添加数据

insert into 表名(字段名,字段名,...)values(1,2,...),(1,2,...);
insert into 表名values(1,2,...),(1,2,...);

  
 
  • 1
  • 2

2.2.4 修改数据

更新数据

update 表名 set 字段名1 =1,字段名2 =2,...[where 条件];

  
 
  • 1

删除数据

delete from 表名 [where 条件]

  
 
  • 1

2.3查询

基本语法及执行顺序

select  ④
	属性列表
from    ①
	表名列表
where  ②
	条件列表
group by  ③
	分组字段列表
having  
	分组后条件列表
order by ⑤
	排序字段列表
limit ⑥
	分页参数

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

2.3.1 基本查询

设置别名

select 属性1 as 别名1 from 表名

  
 
  • 1

去除重复记录

select distinct 属性列表 from 表名

  
 
  • 1

2.3.2 条件查询

基本语法

select 属性列表 from 表名 where 条件列表

  
 
  • 1

条件列表

比较运算符 功能
> 大于
>= 大于等于
< 小于
<= 小于等于
= 等于
<>或!= 不等于
between… and 某个范围内
in(…) 在列表中选其一
like 占位符 模糊查询
is null 是空值
and 或 && 并且(多个条件同时成立)
or 或 && 或者(多个条件任意一个成立)
not 或 ! 不是

2.3.3 聚合函数

函数 说明
count 统计数量
max 最大值
min 最小值
avg 平均值
sum 求和
  • null值不参与聚合函数运算
  • where后不能有聚合函数

2.3.4 分组查询

基本语法

select 属性列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件]

  
 
  • 1

需要注意的是where和having的区别:

  • 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组,而having是分组之后对结果进行过滤
  • 判断条件不同:where不能对聚合函数进行判断,having可以

2.3.5 排序查询

基本语法

select 属性列表 from 表名 order by 属性1 排序方式1,属性2 排序方式2; 

  
 
  • 1
英文 排序
asc 升序(不指定排序方式默认升序)
desc 降序

如果不指定属性,只使用排序方式,那么默认对所有属性做排序。

2.3.6 分页查询

基本语法

select 属性列表 from 表名 limit 起始索引 查询记录数

  
 
  • 1

起始索引从0开始,即起始索引 = (查询页码-1)

分页查询是数据库的方言,不同数据库有不同的实现,MySQL中是Limit

如果查询的是第一页数据,起始索引可以省略,直接简写为limit 查询记录数

2.4 用户管理

查询用户

use mysql
select * from user;

  
 
  • 1
  • 2

创建用户

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

  
 
  • 1

修改用户密码

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

  
 
  • 1

删除用户

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

  
 
  • 1

2.5 权限控制

常见权限表

权限 说明
all,all privieges 所有权限
select 查询数据
insert 插入数据
update 修改数据
delete 删除数据
alter 修改表
drop 删除数据库/表/视图
create 创建数据库/表

查询权限

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

  
 
  • 1

授予权限

grant 权限列表 on 数据库名 表名 to '用户名'@'主机名';

  
 
  • 1

撤销权限

revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';

  
 
  • 1

多个权限之间,使用逗号分割;

授权时,数据库名和表名可以使用*进行通配,代表所有;

文章来源: blog.csdn.net,作者:ArimaMisaki,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/chengyuhaomei520/article/details/122801378

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。