mysql中的DML、DQL、DCL常用命令

DML语句

1.添加数据(INSERT)

1.给指定字段添加数据:INSERT INTO 表名(字段1,字段2,…) VALUES(值1,值2,…);

2.给全部字段添加数据:INSERT INTO 表名 VALUES(值1,值2,…);

3.批量添加数据:

为指定字段添加:INSERT INTO 表名(字段名1,字段名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…);

为表中全部字段添加:INSERT INTO 表名 VALUES(值1,值2…),(值1,值2…),(值1,值2…);

注意:1.插入数据时,指定字段顺序要与值的顺序一一对应;2.字符串和日期型数据应包含在引号中;3.插入的数据大小应该在字段的规定范围内。

2.修改数据(UPDATA)

修改数据语法:UPDATE 表名 SET 字段名1 = 值1,字段名2 = 值2,…[WHERE 条件]

若不加where语句,则修改整张表的字段名

3.删除数据(DELETE)

删除数据语法:DELETE FROM 表名 [WHERE 条件]

注意1.DELETE的条件可以有也可以没有,若没有条件则会删除整张表的所有数据;2.DELETE语句不能删除某一个字段的值(可以用UPDATE将该字段的值置为NULL)

DQL语句

1.基础查询

(1).查询多个字段

1.查询指定多个字段:SELECT 字段1,字段2,… FROM 表名

2.查询整张表:SELECT * FROM 表名;

(2).设置别名

语法:SELECT 字段1 [AS 别名1], 字段2 [AS 别名2]… FROM 表名;

(3).去除重复记录

语法:SELECT DISTINCT 字段列表 FROM 表名;

2.条件查询

(1).基本语法

语法:SELECT 字段列表 FROM 表名 WHERE 条件列表;

(2.)条件

在这里插入图片描述
在这里插入图片描述

对于比较运算符后三中查询的举例说明

1.IN(…),可以用于查询如:查询年龄等于18或20或40的员工信息

语句:SELECT * FROM emp WHERE age in(18,20,40);

2.LIKE 占位符,用于模糊匹配,比如查询姓名为两个字的员工信息

语句:SELECT * FROM emp WHERE name LIKE ‘__’;

又如查询身份证号末尾是X的员工信息

语句:SELECT * FROM emp WHERE idcard LIKE ‘%X’;

3.聚合函数

(1).什么是聚合函数

概念:将一列数据作为一个整体,进行纵向计算,作用于某一列(字段)

(2).常见聚合函数
在这里插入图片描述

(3).语法

语法:SELECT 聚合函数(字段列表) FROM 表名;

  • 统计员工数量:SELECT COUNT(*) FROM emp;
  • 统计有身份证号的员工数量:SELECT COUNT(idcard) FROM emp;
  • 统计员工最大年龄:SELECT MAX(age) FROM emp;
  • 统计西安地区员工的年龄之和:SELECT SUM(age) FROM emp WHERE workaddress = ‘西安’;

注意:NULL值不参与所有聚合函数的计算

4.分组查询

(1).语法

**语法:**SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];

WHERE与HAVING的区别:

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

(2).示例

基础查询

  • 根据性别分组,统计男性员工与女性员工数量

    SELECT gender, COUNT(*) FROM emp GROUP BY gender;

  • 根据性别分组,统计男员工与女员工的平均年龄

​ SELECT gender, AVG(age) FROM emp GROUP BY gender;

分组查询

  • 查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址

​ SELECT workaddress, COUNT(*) address_count FROM emp WHERE age < 45 GROUP BY workaddress HAVING address_count >= 3;

5.排序查询

(1).语法

语法:SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1, 字段2 排序方式2;

(2).排序方式

  • ASC:升序(默认值)
  • DESC:降序

注意:如果是多字段排序,只有当第一个字段值相同时,才会根据第二个字段进行排序

6.分页查询

(1).语法

语法:SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数;

注意

  • 起始索引从0开始,起始索引 = (查询页码 - 1) * 每页显示记录数
  • 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL是LIMIT
  • 如果查询的是第一页数据,起始索引可以省略,直接简写为LIMIT 10

(2).例子

  • 查询第1页员工数据,每页展示10条数据

​ SELECT * FROM emp LIMIT 0, 10;

  • 查询第2页员工数据,每页展示10条数据**(起始索引 = (页码 - 1) * 页展示记录数)**

    SELECT * FROM emp LIMIT 10, 10;

DCL语句

1.管理用户

(1).查询用户

USE mysql;
SELECT * FROM user;

(2).创建用户

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

(3).修改用户密码

ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

(4).删除用户

DROP USER '用户名'@'主机名';

2.权限控制

在这里插入图片描述
1.查询权限

SHOW GRANTS FOR '用户名'@'主机名';

2.授予权限

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

3.撤销权限

REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

注意

  • 多个权限之间使用逗号分隔
    p6siO1b-1712566653895)]

1.查询权限

SHOW GRANTS FOR '用户名'@'主机名';

2.授予权限

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

3.撤销权限

REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

注意

  • 多个权限之间使用逗号分隔
  • 授权时,数据库名和表名以使用 * 进行通配,代表所有
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YUKIPEDIA~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值