MySQL:DML数据操作语言(添加,删除,修改),DDL数据查询语言(条件查询,分组查询,排序查询,分页查询)

目录

1.DML(数据操作语言)

DML英文全称是Data Manipulation Lanquage(数据操作语言),用来对数据库中表的数据记录进行增删改操作。

1.添加数据

1.给指定字段添加数据

sql 复制代码
INSERT INTO 表名(字段名1,字段名2,...) VALUES (值1,值2,...);

2.给全部字段添加数据

sql 复制代码
INSERT INTO 表名 VALUES(值1,值2,...);

3.批量添加数据

sql 复制代码
INSERT INTO 表名(字段名1,字段名2,...) VALUES (值1,值2,...),(值1,值2,...),(值1,值2,...);
sql 复制代码
INSERT INTO 表名 VALUES (值1,值2,...),(值1,值2,...),(值1,值2,...);

注意:

①插入数据时,指定的字段顺序需要与值的顺序是一一对应的

字符串和日期型数据应该包含在引号中

③插入的数据大小,应该在字段的规定范围内.

2.修改数据

sql 复制代码
UPDATE 表名 SET 字段名1=值1,字段名2=值2,....[WHERE 条件];

注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据

3.删除数据

sql 复制代码
DELETE FROM 表名[WHERE 条件];

注意:

  • DELETE语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据
  • DELETE语句不能删除某一个字段的值(可以使用UPDATE)。

2.DQL(数据查询语言)

DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。

1.DQL-语法

2.基本查询

1.查询多个字段:

sql 复制代码
SELECT 字段1,字段2,字段3 ... FROM 表名;
SELECT * FROM 表名;

2.设置别名:

sql 复制代码
SELECT 字段1 [AS 别名1],字段2 [AS 别名2]...FROM 表名;

关键字:AS

3.去除重复记录:

sql 复制代码
SELECT DISTINCT 字段列表 FROM 表名;

关键字:DISTINCT

3.条件查询(WHERE)

1.语法:

sql 复制代码
SELECT 字段列表 FROM 表名 WHERE 条件列表;

2.条件:


3.案例:

  1. 查询年龄小于22的员工
sql 复制代码
select *
from employee
where age < 22;
  1. 查询有身份证号的员工
sql 复制代码
select *
from employee
where idcard is not null;
  1. 查询年龄不等于88岁的员工
sql 复制代码
select *
from employee
where age <> 88;
  1. 查询年龄在15岁到25岁之间的员工信息
sql 复制代码
select *
from employee
where age between 15 and 25;
  1. 查询性别为女 且 年龄小于25岁的员工信息
sql 复制代码
select *
from employee
where gender = '女'
  and age < 25;
  1. 查询年龄等于21,45,88的员工信息
sql 复制代码
select *
from employee
where age in (21, 45, 88);
  1. 查询姓名为两个字的员工信息
sql 复制代码
select *
from employee
where name like '__';
  1. 查询身份证号最后一位是X的员工信息
sql 复制代码
select *
from employee
where idcard like '%X';

4.聚合函数

1.介绍

将一列数据作为一个整体,进行纵向计算

2.常见聚合函数

3.语法

sql 复制代码
SELECT 聚合函数(字段列表) FROM 表名;

4.案例

  1. 统计员工数量
sql 复制代码
select count(*)
from employee;
  1. 统计员工的平均年龄
sql 复制代码
select avg(age)
from employee;
  1. 统计员工的最大年龄
sql 复制代码
select max(age)
from employee;
  1. 统计员工的最小年龄
sql 复制代码
select min(age)
from employee;
  1. 统计北京地区的员工年龄之和
sql 复制代码
select sum(employee.age)
from employee
where work_address = '北京';

5.分组查询(GROUP BY)

1.语法

sql 复制代码
SELECT 字段列表 FROM表名[WHERE 条件] GROUP BY 分组字段名[HAVING 分组后过滤条件];

2.where与having区别

①执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。

②判断条件不同: where不能对聚合函数进行判断,而having可以。

注意:

  • 执行顺序: where >聚合函数>having
  • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义

3.案例

  1. 根据性别分组,统计男性员工和女性员工的数量
sql 复制代码
select employee.gender, count(*)
from employee
group by gender;
  1. 根据性别分组,统计男性员工 和 女性员工的平均年龄
sql 复制代码
select employee.gender, avg(age)
from employee
group by gender;
  1. 查询年龄小于45的员工,根据工作地址分组,获取员工数量小于等于3的工作地址
sql 复制代码
select employee.work_address, count(*)
from employee
where age < 45
group by work_address
having count(*) <= 3;

6.排序查询(ORDER BY)

1.语法

sql 复制代码
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;

2.排序方式

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

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

3.案例

  1. 根据年龄对公司的员工进行升序排序
sql 复制代码
select *
from employee
order by age asc;
  1. 根据入职时间,对员工进行降序排序
sql 复制代码
select *
from employee
order by entrydate desc;
  1. 根据年龄对公司的员工进行升序排序,年龄相同,再按照入职时间进行降序排序
sql 复制代码
select *
from employee
order by age asc, entrydate desc;

7.分页查询(LIMIT)

1.语法

sql 复制代码
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;

注意:

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

2.案例

  1. 查询第1页员工数据,每页展示10条记录
sql 复制代码
select * from employee limit 0,10;
  1. 查询第2页员工数据,每页展示10条记录
sql 复制代码
select * from employee limit 10,10;
相关推荐
IT古董9 分钟前
【WMS学习笔记系列】01-需求分析
大数据·数据库
zlinear数据采集卡14 分钟前
数据采集卡从入门到精通(9):分辨率与精度——16位卡不等于1/65536的精度
开发语言·数据库·fpga开发·开源·c#
Mico1841 分钟前
麒麟v10-MySQL InnoDB Cluster 完整部署与全场景验证(从入门到精通)
数据库·mysql
杨云龙UP1 小时前
生产环境MySQL多实例XtraBackup全量备份与rsync异地自动传输实践
linux·运维·数据库·mysql·xtrabackup·主从复制·备份恢复
熊文豪1 小时前
SQLServer数据迁移之后,那张报表还能不能秒出
数据库·sqlserver·电科金仓
JosieBook1 小时前
【数据库】把数据优势转化为决策优势:TimechoAI时序大模型使用解析
数据库
会编程的吕洞宾2 小时前
MySQL 慢查询从5秒到50毫秒:索引失效六大场景定位与实战调优
数据库·mysql
浅念-2 小时前
MySQL 索引底层完整详解|磁盘Page|B+树推导|聚簇非聚簇索引|索引SQL操作
大数据·数据库·b树·sql·mysql·面试·职场和发展
小马过河R2 小时前
数据仓库入门:是什么、怎么做、和数据库有什么区别?
大数据·数据库·数据仓库·架构·驾驭工程·fde