肝通宵写了三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富,建议收藏+三连好评!(二)

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 肝通宵写了三万字把SQL数据库的所有命令,函数,运算符讲得明明白白讲解,内容实在丰富,建议收藏+三连好评!

INSERT INTO 插入语句

该INSERT INTO语句用于在表中插入新记录。

INSERT语法

可以INSERT INTO 用两种方式编写语句:

1- 指定要插入的列名和值:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

2-如果要为表的所有列添加值,则无需在 SQL 查询中指定列名。但是,请确保值的顺序与表中的列顺序相同。在这里, INSERT INTO语法如下:

INSERT INTO table_name
VALUES (value1, value2, value3, ...);

我们假设还是有着样一个Customers表:

1.png

INSERT示例

以下 SQL 语句在“Customers”表中插入一条新记录:

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');

运行显示如下:

image.png


练习:

表中插入一条新记录。

INSERT INTO Customers 
(
CustomerName, 
Address, 
City, 
PostalCode,
Country
)
VALUES
(
'Hekkan Burger',
'Gateveien 15',
'Sandnes',
'4306',
'Norway'
)
;

NULL 空值

具有 NULL 值的字段是没有值的字段。如果表中的字段是可选的,则可以在不向该字段添加值的情况下插入新记录或更新记录。然后,该字段将保存为 NULL 值。

注意: NULL 值不同于零值或包含空格的字段。具有 NULL 值的字段是在创建记录期间留空的字段!

如何测试 NULL 值?

无法使用比较运算符(例如 =、< 或 <>)测试 NULL 值。我们将不得不改用IS NULL和 IS NOT NULL运算符。

IS NULL 语法

SELECT column_names
FROM table_name
WHERE column_name IS NULL;

IS NOT NULL 语法

SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;

我们还是以”Customers”表为例子:

1.png

IS NULL 运算符

列出了 "Address"字段中具有 NULL 值的所有客户:

SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NULL;

提示:始终使用 IS NULL 来查找 NULL 值。

IS NOT NULL 运算符

该IS NOT NULL运算符用于测试非空值(NOT NULL 值)。

列出了在 "Address”字段中具有值的所有客户:

SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NOT NULL;

练习:

从列为空的Customers位置选择所有记录PostalCode。

SELECT * FROM Customers
WHERE PostalCode IS NULL;

UPDATE更新语句

UPDATE语句用于修改表中的现有记录。

UPDATE 语法:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

注意: 更新表中的记录时要小心!注意 WHERE语句中的子句UPDATE。该WHERE子句指定应该更新哪些记录。如果省略该WHERE子句,表中的所有记录都将被更新!

我们还是以“Customers”表为例:

1.png

更新表

更新CustomerID = 1的用户名字和城市数据

UPDATE Customers
SET ContactName = 'Alfred Schmidt', City= 'Frankfurt'
WHERE CustomerID = 1;

更新过后将会如下:

1.png

更新多条记录

该WHERE子句确定将更新多少条记录。

将国家为"Mexico"的所有记录的 ContactName 更新为“Juan”:

UPDATE Customers
SET ContactName='Juan'
WHERE Country='Mexico';

更新后将会变成:

1.png

更新警告!

更新记录时要小心。如果省略该 WHERE子句,则所有记录都将被更新!

例如:

UPDATE Customers
SET ContactName='Juan';

则会导致如下结果:1.png

练习:

更新表City中所有记录的Customers列。

UPDATE Customers
SET City = 'Oslo';

DELETE删除语句

该DELETE语句用于删除表中的现有记录。

删除语法

DELETE FROM table_name WHERE condition;

注意: 删除表中的记录时要小心!注意 WHERE语句中的子句 DELETE。该WHERE条款指定应删除哪些记录。如果省略该WHERE子句,表中的所有记录都将被删除!

哈哈哈哈,我们还是以“Customers”表为例子如下:

1.png

删除示例

从“Customers”表中删除客户“Alfreds Futterkiste”:

DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';

于是就变成这样:

1.png

删除所有记录

可以在不删除表的情况下删除表中的所有行。这意味着表结构、属性和索引将保持不变

DELETE FROM table_name;

例如:删除“Customers”表中的所有行,但不删除该表:

DELETE FROM Customers;

练习:从Customers表中删除Country值为“挪威”的所有记录。

DELETE FROM Customers
WHERE Country = 'Norway';

TOP、LIMIT、FETCH FIRST 或 ROWNUM限制子句

SELECT TOP 子句

SELECT TOP子句用于指定要返回的记录数。SELECT TOP子句在具有数千条记录的大表上很有用。返回大量记录会影响性能。

注意: 并非所有数据库系统都支持该 SELECT TOP子句。MySQL 支持LIMIT子句选择有限数量的记录,而 Oracle 使用FETCH FIRST n ROWSONLYROWNUM

Server / MS 访问语法:

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;

MySQL 语法:

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;

Oracle 12 语法:

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST number ROWS ONLY;

比如还是“Customers”表如下

1.png

TOP、LIMIT 和 FETCH FIRST示例

从 "Customers表中选择前三个记录(用于 SQL Server/MS Access):

SELECT TOP 3 * FROM Customers;

MySQL 的等效示例:

SELECT * FROM Customers
LIMIT 3;

Oracle 的等效示例:

SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;

TOP PERCENT 示例

从"Customers“表中选择前 50% 的记录(用于 SQL Server/MS Access):

SELECT TOP 50 PERCENT * FROM Customers;

Oracle 的等效示例:

SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;

添加 WHERE 条款

从“Customers”表中选择前三个记录,其中国家是“Germany”(对于 SQL Server/MS Access):

SELECT TOP 3 * FROM Customers
WHERE Country='Germany';

MySQL 的等效示例

SELECT * FROM Customers
WHERE Country='Germany'
LIMIT 3;

Oracle 的等效示例:

SELECT * FROM Customers
WHERE Country='Germany'
FETCH FIRST 3 ROWS ONLY;
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
6月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1122 152
|
6月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
861 156
|
6月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
588 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
5月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
327 6
|
6月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
6月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
432 8
|
7月前
|
SQL 人工智能 Java
用 LangChain4j+Ollama 打造 Text-to-SQL AI Agent,数据库想问就问
本文介绍了如何利用AI技术简化SQL查询操作,让不懂技术的用户也能轻松从数据库中获取信息。通过本地部署PostgreSQL数据库和Ollama模型,结合Java代码,实现将自然语言问题自动转换为SQL查询,并将结果以易懂的方式呈现。整个流程简单直观,适合初学者动手实践,同时也展示了AI在数据查询中的潜力与局限。
891 8
|
6月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
470 158
|
6月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
6月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
471 156