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.数值型
2.字符串型
3.日期时间型
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 条件
注: 使用占位符进行条件查询
- 例子: 查询三个字的名字的人 select name from 表名 where name like _ _ _;(三个下划线,紧密连接)
- 又例:查询最后一个字为山的人 select name from 表名 where name like %山;
4.3聚合函数
例子:如要统计所有人数,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 起始索引(从什么位置开始), 查询记录数(一页数据项数);
4.7执行顺序
DQL整体语句的书写顺序:
- select 字段列表 和 聚合函数
- from 表名
- where 条件列表
- group by 分组字段列表
- having 分组后条件列表
- order by 排序列表
- limit 分页参数
而DQL整体执行顺序却是:
- from 表名
- where 条件列表
- group by 分组字段列表
- having 分组后条件列表
- select 字段列表 和 聚合函数
- order by 排序列表
- limit 分页参数
即如下图:
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 ‘用户名’@‘主机名’; | 撤销权限 |
权限:文章来源:https://www.toymoban.com/news/detail-424475.html
ysql使用 ‘用户名’@'主机名’来表示一个用户
- 主机名可以使用%通配
5.2 权限控制
语句 | 说明 |
---|---|
show crants for ‘用户名’@‘主机名’; | 查询权限 |
crant 权限列表 on 数据库名.b表名 to ‘用户名’@‘主机名’; | 授予权限 |
revoke 权限列表 on 数据库名.b表名 from ‘用户名’@‘主机名’; | 撤销权限 |
权限:
文章来源地址https://www.toymoban.com/news/detail-424475.html
到了这里,关于Mysql增删改查(自用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!