目录
序言
(一)Create操作
1、单行数据 + 全列插入
2、多行数据 + 指定列插入
3、插入否则更新
4、直接替换
(二)Retrieve操作
1、SELECT 列
1️⃣全列查询
2️⃣指定列查询
3️⃣查询字段为表达式
4️⃣为查询结果指定别名
5️⃣结果去重
2、WHERE 条件
3、结果排序
4、筛选分页结果
(三)Update操作
(四)Delete操作
1、删除数据
2、截断表
(五)插入查询结果
(六)聚合函数
(七)group by子句的使用
总结
CRUD 是指对于数据存储系统的常见操作,包括 Create(创建)、Retrieve(读取)、Update(更新)和Delete(删除)。它是一种通用的数据操作模式,广泛应用于数据库和其他数据管理系统中。
下面对每个操作进行简要说明:
Create(创建):用于向数据存储系统中创建新的记录或实体。这可以是插入一条新的数据记录、创建一个新的文件、或在数据库中添加一条新的记录等。
Retrieve(读取):用于从数据存储系统中读取已有的记录或实体。这可以是根据特定条件查询数据库中的数据、读取文件的内容、或获取特定对象的属性值等。
Update(更新):用于修改数据存储系统中已有的记录或实体。这可以是更新数据库中的信息、修改文件的内容、或更改对象的属性值等。
Delete(删除):用于从数据存储系统中移除现有的记录或实体。这可以是从数据库中删除数据、删除文件、或销毁对象等。
这些操作可以进一步扩展和组合,以满足更复杂的需求。通过上述操作,可以实现对表的数据进行增加、删除、修改和查询操作。
MySQL 中的 CREATE 操作用于创建新的数据库、表、视图、索引或存储过程等对象。下面对 MySQL 中 CREATE 操作的几个常见用法进行详解:
语法:
INSERT [INTO] table_name
[(column [, column] ...)]
VALUES (value_list) [, (value_list)] ...
value_list: value, [, value] ...
案例:
CREATE TABLE students (
-> id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
-> sn INT NOT NULL UNIQUE COMMENT '学号',
-> name VARCHAR(20) NOT NULL,
-> qq VARCHAR(20) unique key
-> );
【说明】
直接进行代码展示。具体如下:
由于 主键 或者 唯一键 对应的值已经存在而导致插入失败:
遇到上述这样的情况我们可以选择性的进行同步更新操作 语法:
INSERT ... ON DUPLICATE KEY UPDATE
column = value [, column = value] ...
代码样例:
它的作用很简单,具体如下:
代码展示:
Retrieve操作用于从数据库中检索数据。在MySQL中,常用的Retrieve操作是使用 select 语句进行查询。
语法:
SELECT
[DISTINCT] {* | {column [, column] ...}
[FROM table_name]
[WHERE ...]
[ORDER BY column [ASC | DESC], ...]
LIMIT ...
案例:
要对 MySQL 中的表进行全列查询,可以使用 SELECT *
语句。这将返回表中的所有列和所有行的数据。
【说明】
通常情况下不建议使用 * 进行全列查询:
因此,基于全列查询的缺点,最好明确指定需要的列来减少数据传输和查询时间。
*
替换为所需列的名称,如 SELECT 列1, 列2, ... FROM 表名;
在 MySQL 中,您可以使用表达式来查询字段。表达式可以是数学运算、字符串操作、逻辑运算或函数调用等。
在 MySQL 中,您可以使用 as(可写可不写)关键字为查询结果指定别名。
语法:
SELECT column [AS] alias_name [...] FROM table_name;
在 MySQL 中,使用 WHERE
关键字可以添加条件来过滤查询结果。WHERE
子句允许您指定一个或多个条件,只返回满足这些条件的行。
比较运算符:
逻辑运算符:
【案例】
其次,除了上述用 and 之外,还可以使用【between and】表达式:
除了上述方式之外,还可以使用 IN 条件:
除此之外,_ 匹配严格的一个任意字符:
在 MySQL 中,您可以使用 ORDER BY
子句对查询结果进行排序。ORDER BY
子句允许您指定一个或多个列作为排序的依据。
语法:
-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC
SELECT ... FROM table_name [WHERE ...]
ORDER BY column [ASC|DESC], [...];
【案例】
在 MySQL 中,您可以使用 LIMIT
和 OFFSET
关键字来实现对分页结果的筛选。
LIMIT
用于限制查询结果的返回行数;OFFSET
则用于指定从哪一行开始返回结果。语法:
-- 起始下标为 0
-- 从 s 开始,筛选 n 条结果
- SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;
-- 从 0 开始,筛选 n 条结果
- SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
- SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;
建议:
按 id 进行分页,每页 3 条记录,分别显示 第 1、2、3 页
在 MySQL 中,您可以使用 UPDATE
语句来修改数据库表中的数据。UPDATE
语句用于对表中的一行或多行进行更新操作。
语法:
UPDATE table_name SET column = expr [, column = expr ...]
[WHERE ...] [ORDER BY ...] [LIMIT ...]
案例:
语法:
DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
案例:
紧接着,我们在插入数据:
在 MySQL 中,您可以使用 TRUNCATE TABLE
语句来截断(清空)数据库表中的数据。该操作会从表中删除所有的行,并释放相关的存储空间。
语法:
TRUNCATE [TABLE] table_name
注意:这个操作慎用
准备测试数据:
在 MySQL 中,您可以使用 INSERT INTO ... SELECT
语句将查询结果插入到表中。这样可以方便地将一个表的查询结果作为数据,插入到另一个表中。
语法:
INSERT INTO table_name [(column [, column ...])] SELECT ...
案例:删除表中的的重复复记录,重复的数据只能有一份
思路:
聚合函数是用于对数据进行计算和统计的函数,它们可以根据一组值返回一个单一的结果。在 MySQL 中,常见的聚合函数包括以下几个:
案例:
GROUP BY 子句是用于对结果集进行分组的一种 SQL 语句。通过 GROUP BY 子句,您可以将查询结果按照指定的列进行分组,并对每个分组应用聚合函数进行计算。
以下是 GROUP BY 子句的使用示例:
SELECT column1, aggregate_function(column2)
FROM table_name
GROUP BY column1;
column1
是需要分组的列名,aggregate_function(column2)
是要应用的聚合函数,table_name
是表名。例如,假设有一个名为 "orders" 的表,包含列 "customer_id"、"product_id" 和 "quantity",我们想要按照 "product_id" 对订单进行分组,并计算每个产品的总销量:
SELECT product_id, SUM(quantity)
FROM orders
GROUP BY product_id;
SELECT product_id, SUM(quantity) FROM orders GROUP BY product_id
语句,按照 "product_id" 列对 "orders" 表进行分组,并对每个分组中的 "quantity" 列应用 SUM 聚合函数,计算每个产品的总销量。除了单个列之外,GROUP BY 子句还可以指定多个列进行分组,例如:
SELECT column1, column2, aggregate_function(column3)
FROM table_name
GROUP BY column1, column2;
以上便是关于 mysql 中常见的数据查询操作。接下来,简单的总结一下本文内容!!!
MySQL 数据的基本查询可以通过使用 SELECT 语句和其他相关子句来实现。
SELECT * FROM table_name;
这将返回指定表中的所有列。
SELECT column1, column2, ... FROM table_name;
您可以指定要查询的列名,以逗号分隔,从而只返回这些列的数据。
SELECT * FROM table_name WHERE condition;
使用 WHERE 子句可以添加条件,过滤满足条件的行。例如,WHERE age > 18
将会返回年龄大于 18 岁的行。
SELECT aggregate_function(column) FROM table_name;
常见的聚合函数包括 COUNT、SUM、AVG、MAX 和 MIN。您可以对列应用聚合函数,返回计算结果。
SELECT * FROM table_name ORDER BY column ASC|DESC;
使用 ORDER BY 子句可以按照指定列进行升序(ASC)或降序(DESC)排序。
SELECT DISTINCT column FROM table_name;
使用 DISTINCT 关键字可以去除查询结果中的重复行,只返回唯一的值。
SELECT column1, aggregate_function(column2) FROM table_name GROUP BY column1;
使用 GROUP BY 子句可以对结果进行分组,并对每个分组应用聚合函数。
到此,关于本篇数据查询的讲解便到此结束了。感谢大家的观看与支持!!!