Mysql增删改查(自用)

Mysql增删改查

1.通用语法

  • SQL语句可以单行或者多行书写,以分号结尾
  • MySQL不区分大小写,单数建议使用大写
  • 注释使用, 单行注释:-- 或者 # 多行注释: /* 注释内容 */

2.DDL语句

  • 数据定义语言,定义数据库对象(数据库、表、字段)

2.1 数据库操作

语句 说明
show databases; 查询所有数据库
select database(); 查询当前数据库
create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则]; 创建数据库
drop database [if exists] 数据库名; 删除数据库
use 数据库名; 切换数据库

2.2 表操作

2.2.1 表查询

  • show tables; 查询当前数据库的所有表
  • desc 表名; 查看指定表结构
  • show create table 表名; 查询建表的SQL语句

2.2.2 表创建

2.2.2.1 创建语句
  • create table 表名 (
  • 字段1 字段1类型 [comment 字符1注释] ,
  • 字段2 字段2类型 [comment 字符2注释] ,
  • 字段2 字段2类型 [comment 字符3注释] # 最后一个字段不要加逗号
  • ) [comment 表注释]
2.2.2.2 字段类型

字段类型主要分为三种:数值型、字符串型、日期时间型

1.数值型

QQ截图20230221231319

2.字符串型

QQ截图20230221231340

3.日期时间型

QQ截图20230221231355

2.2.3 表修改

语句 说明
alter talbe 表名 add 字段名 类型(长度) [commnet 注释] [约束]; 添加字段
alter table 表名 modift 字段名 类型(长度); 修改字段
alter table 表名 change 旧字段名 新字段名 类型(长度) [commnet 注释] [约束]; 修改字段名和字段类型
alter table 表名 drop; 删除字段
alter table 表名 rename to 新表名; 更换表名

2.2.4 表删除

语句 说明
drop table [if exists] 表名 删除表
truncate table 表名 删除表并重新创建表

3.DML语句

  • 对表中数据进行增、删、改操作

3.1 添加数据

语句 说明
insert into 表名 (字段1,字段2,……) values (值1,值2,……); 给指定字段添加数据
insert into 表名 values (值1,值2,……); 给全部字段添加数据
insert into 表名 (字段1,字段2,……) values (值1,值2,……), (值1,值2,……); 批量给字段添加数据

注意:

  • 插入时数据需要和字段相对应
  • 日期时间型数据需要写在引号内
  • 数值型数据应该在其范围内

3.2 修改数据

  • update 表名 set 字段1 = 值1, 字段2 = 值2,…… [where 条件]

3.3 删除数据

  • delete from 表名 [where 条件]

4.DQL语句

  • 数据查询语句,用来查询 数据库中表的记录,关键字: select

  • 基本语法: selete 字段列表

  • from 表名

  • where 条件列表

  • gruop by 分组字段列表

  • having 分组后条件

  • order by 排序字段列表

  • limit 分页参数

4.1 基本查询

4.1.1 查询多个字段
  • select 字段1,字段2,…… from 表名; 查询多个字段
  • **select * from 表名;**查询所有字段
4.1.2 字段起别名
  • select 字段1 [as 别名1], 字段2 [as 别名2], …… from 表名; 将对于字段起别名
  • select 字段1 [ 别名1], 字段2 [ 别名2], …… from 表名; 也可以不加as,直接写别名
4.1.3 去除重复记
  • select distinct 字段列表 from 表名; 当我们查询信息有重复是可以在前面加上distinct

4.2 条件查询

4.2.1 语法
  • select 字段列表 from 表名 where 条件列表
4.2.2 条件

QQ截图20230222092049

QQ截图20230222092055

注: 使用占位符进行条件查询

  • 例子: 查询三个字的名字的人 select name from 表名 where name like _ _ _;(三个下划线,紧密连接)
  • 又例:查询最后一个字为山的人 select name from 表名 where name like %山;

4.3聚合函数

QQ截图20230222092237

例子:如要统计所有人数,select count(*) from 表名;

4.4分组查询

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

注意: where 与 having 区别, where是在分区之前的的筛选条件,且不参加分组(不能多聚合函数进行判断); having是在分组之后进行筛选

4.5排序查询

  • asc: 升序(默认,若不写排序方式就是这个) desc: 降序

  • select 字段列表 from 表名 order by 字段1 排序方式1,字段2,排序方式2

例:select 字段列表 from 表名 order by age asc, id desc;

4.6分页查询

  • select 字段列表 from 表名 limit 起始索引(从什么位置开始), 查询记录数(一页数据项数);

QQ截图20230222093450

4.7执行顺序

DQL整体语句的书写顺序:

  • select 字段列表 和 聚合函数
  • from 表名
  • where 条件列表
  • group by 分组字段列表
  • having 分组后条件列表
  • order by 排序列表
  • limit 分页参数

而DQL整体执行顺序却是:

  • from 表名
  • where 条件列表
  • group by 分组字段列表
  • having 分组后条件列表
  • select 字段列表 和 聚合函数
  • order by 排序列表
  • limit 分页参数

即如下图:

QQ截图20230222094237

5.DCL语句

  • 数据控制语句,用来管理数据库用户和数据库访问权限, 开发人员基本用不到

5.1 管理用户

语句 说明
select * from mysql.user; 查询用户
create user ‘用户名’@‘主机名’ identified by ‘密码’; 创建用户
alter user ‘用户名’@‘主机名’ identified with mysql_native_password by ‘密码’; 创建用户修改用户密码
drop user ‘用户名’@‘主机名’; 删除用户

注意:

  • 在mysql使用 ‘用户名’@'主机名’来表示一个用户
  • 主机名可以使用%通配

5.2 权限控制

语句 说明
show crants for ‘用户名’@‘主机名’; 查询权限
crant 权限列表 on 数据库名.b表名 to ‘用户名’@‘主机名’; 授予权限
revoke 权限列表 on 数据库名.b表名 from ‘用户名’@‘主机名’; 撤销权限

权限:

ysql使用 ‘用户名’@'主机名’来表示一个用户

  • 主机名可以使用%通配

5.2 权限控制

语句 说明
show crants for ‘用户名’@‘主机名’; 查询权限
crant 权限列表 on 数据库名.b表名 to ‘用户名’@‘主机名’; 授予权限
revoke 权限列表 on 数据库名.b表名 from ‘用户名’@‘主机名’; 撤销权限

权限:

QQ截图20230222100334

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>