6、数据的 CRUD

本文详细介绍了 SQL 中的基本数据操作,包括如何添加数据、删除数据、更新数据和查询数据。提供了每个操作的基本语法和示例,涵盖了 WHERE 和 LIKE 子句的用法,以及 ORDER BY 和 GROUP BY 子句在数据排序和分组统计中的应用。
摘要由CSDN通过智能技术生成

简单的数据增删改查如下所示:

1、添加数据

MySQL 表中使用 INSERT INTO SQL语句来插入新数据:

基本语法:

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );

示例:

# 插入一条数据,指定id和name
insert into tb(id, name) valuse(1, ‘mike’);

# 一次插入多条数据
insert into tb(id, name) valuse(1, ‘mike’), (2, ‘robot’), (3, ‘jim’)
2、删除数据

MySQL 表中使用 DELETE FROM SQL语句来删除表中的数据:

基本语法:

DELETE FROM table_name [WHERE Clause]
  • 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
  • 你可以在 WHERE 子句中指定任何条件
  • 您可以在单个表中一次性删除记录。

当你想删除数据表中指定的记录时 WHERE 子句是非常有用的。

示例:

delete from tb;    				# 清空表,但留下ID
truncate table tb    			# 清空指定表,不留任何记录
delete from tb where id=2    	# 删除指定表中id为2的数据
3、更新数据

MySQL 表中使用 SQL UPDATE语句来更新表中已有数据:

基本语法:

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
  • 你可以同时更新一个或多个字段。
  • 你可以在 WHERE 子句中指定任何条件。
  • 你可以在一个单独表中同时更新数据。

当你需要更新数据表中指定行的数据时 WHERE 子句是非常有用的。

示例:

update db.tb set name='zyk';    			# 改指定表中的所有name
update db.tb set name='zyk' where id=2;    	 # 改指定表中id为2的name
4、查询数据

MySQL 表中使用 SQL SELECT语句来查询表中已有数据:

基本语法:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
  • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
  • SELECT 命令可以读取一条或者多条记录。
  • 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
  • 你可以使用 WHERE 语句来包含任何条件。
  • 你可以使用 LIMIT 属性来设定返回的记录数。
  • 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

示例

selecet id from db.table;  			# 查指定表中的所有id
select id, name from db.table;  	# 查指定表中的所有id和name
select * from db.tb;    			# 查指定表中的所有数据

(1)WHERE 子句

SQL SELECT 语句使用 WHERE 子句从数据表中读取数据的通用语法:

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....

  • 查询语句中你可以使用一个或者多个表,表之间使用逗号,分割,并使用WHERE语句来设定查询条件。
  • 你可以在 WHERE 子句中指定任何条件。
  • 你可以使用 AND 或者 OR 指定一个或多个条件。
  • WHERE 子句也可以运用于 SQLDELETE 或者 UPDATE 命令。
  • WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。

以下为操作符列表,可用于 WHERE 子句中。

操作符描述实例
=等号,检测两个值是否相等,如果相等返回true(A = B) 返回false。
<>, !=不等于,检测两个值是否相等,如果不相等返回true(A != B) 返回 true。
>大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true(A > B) 返回false。
<小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true(A < B) 返回 true。
>=大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true(A >= B) 返回false。
<=小于等于号,检测左边的值是否小于于或等于右边的值, 如果左边的值小于或等于右边的值返回true(A <= B) 返回 true。

(2)LIKE 子句

SQL SELECT 语句使用 LIKE 子句从数据表中读取数据的通用语法:

SELECT field1, field2,...fieldN 
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'

  • 你可以在 WHERE 子句中指定任何条件。
  • 你可以在 WHERE 子句中使用LIKE子句。
  • 你可以使用LIKE子句代替等号 =
  • LIKE 通常与 % 一同使用,类似于一个元字符的搜索。
  • 你可以使用 AND 或者 OR 指定一个或多个条件。
  • 你可以在 DELETEUPDATE 命令中使用 WHERE...LIKE 子句来指定条件。

示例:

SELECT * from users  WHERE username LIKE '%王%';

(3)UNION 查询

MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。

基本语法:

SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]

  • expression1, expression2, … expression_n: 要检索的列。
  • tables: 要检索的数据表。
  • WHERE conditions: 可选, 检索条件。
  • DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
  • ALL: 可选,返回所有结果集,包含重复数据。

示例:

# 从 Websites 和 apps 表中查询 country 字段去重后的值
SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;

# 从 Websites 和 apps 表中查询 country 字段的值,包含重复项
SELECT country FROM Websites
UNION ALL
SELECT country FROM apps
ORDER BY country;

# 带有 where 条件的 union all 查询
SELECT country, name FROM Websites
WHERE country='CN'
UNION ALL
SELECT country, app_name FROM apps
WHERE country='CN'
ORDER BY country;

(4)排序

SQL SELECT 语句使用 ORDER BY 子句将查询数据排序后再返回数据:

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]

  • 你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。
  • 你可以设定多个字段来排序。
  • 你可以使用 ASC(升序)DESC(降序) 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
  • 你可以添加 WHERE...LIKE 子句来设置条件。

示例:

# 查询所有字段,按 created_date 升序排序
SELECT * from users ORDER BY created_date ASC;

# 查询所有字段,按 created_date 降序排序
SELECT * from users ORDER BY created_date DESC;

(5)分组

GROUP BY 语句根据一个或多个列对结果集进行分组。在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。

基本语法:

SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

示例:

# 查询 users 表中 name 字段的所有值,并 name 分组,统计每个 name 出现的次数
SELECT name, COUNT(*) FROM users GROUP BY name;
使用 WITH ROLLUP

WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。例如我们将以上的数据表按名字进行分组,再统计每个人登录的次数:

# 按 name 进行分组,在统计每个人的登录次数
SELECT name, SUM(singin) as singin_count FROM  users GROUP BY name WITH ROLLUP;
链表的CRUD操作是指对链表进行增加、删除、修改和查询的操作。 1. 增加操作:要将一个新节点添加到链表中,有两种常见的方法: - 第一种方法是直接将新节点添加到链表的尾部。可以通过遍历链表找到最后一个节点,然后将其next指针指向新节点。这样就完成了节点的添加。 - 第二种方法是在指定位置插入新节点。需要先找到要插入位置的前一个节点,然后将新节点的next指针指向前一个节点的next节点,再将前一个节点的next指针指向新节点。这样就完成了节点的插入。 2. 删除操作:要删除链表中的某个节点,同样有两种常见的方法: - 第一种方法是删除指定位置的节点。需要先找到要删除位置的前一个节点,然后将前一个节点的next指针指向要删除节点的next节点。这样就完成了节点的删除。 - 第二种方法是删除指定值的节点。需要遍历链表,找到要删除的节点,然后将前一个节点的next指针指向要删除节点的next节点。这样就完成了节点的删除。 3. 修改操作:要修改链表中的某个节点的值,需要找到要修改的节点,然后将其data域修改为新的值即可。 4. 查询操作:要查询链表中的某个节点,需要遍历链表,逐个比较节点的值,直到找到目标节点或者遍历到链表末尾。 综上所述,链表的CRUD操作包括增加、删除、修改和查询,可以根据具体需求选择适合的方法进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值