SQL 简介
SQL(Structured Query Language)是一种用于管理和处理关系型数据库的标准编程语言。它允许用户执行各种操作,包括查询、插入、更新和删除数据。SQL 是一种声明性语言,意味着用户需要告诉数据库系统他们希望获取什么数据,而不是如何获取这些数据。
SQL 的基本元素
关键字
关键字是 SQL 中预定义的保留词汇,用于指示特定的操作。例如,SELECT
用于查询数据,INSERT
用于插入数据,UPDATE
用于更新数据,DELETE
用于删除数据。了解这些关键字对于理解和编写有效的 SQL 查询至关重要。
表达式
表达式是用于计算或生成值的 SQL 构造。它可以是一个简单的值,也可以是更复杂的组合,如算术运算、函数调用等。表达式可以在 SELECT 子句、WHERE 子句等地方使用。
别名
别名用于给表或列提供临时名称,使得查询结果更易于阅读。别名通常在 SELECT 子句中使用,例如 SELECT column_name AS alias_name FROM table_name;
。
函数
SQL 提供了多种内置函数来处理数据。这些函数可以用来执行数学运算、字符串处理、日期计算等任务。例如,COUNT()
用于计算行数,SUM()
用于求和,MAX()
和 MIN()
分别用于查找最大值和最小值。
SQL 查询
SELECT 语句
SELECT 语句用于从数据库中检索数据。基本语法如下:
SELECT column1, column2, ... FROM table_name;
如果要选择所有列,则可以使用星号 *
:
SELECT * FROM table_name;
WHERE 子句
WHERE 子句用于过滤记录,只返回满足条件的记录。例如:
SELECT column1, column2 FROM table_name WHERE condition;
ORDER BY 子句
ORDER BY 子句用于对结果集进行排序。默认情况下,结果按升序排列:
SELECT column1, column2 FROM table_name ORDER BY column_name;
也可以指定降序排列:
SELECT column1, column2 FROM table_name ORDER BY column_name DESC;
LIMIT 子句
LIMIT 子句用于限制返回的记录数量。这在分页查询时非常有用:
SELECT column1, column2 FROM table_name LIMIT number;
DISTINCT 关键字
DISTINCT 关键字用于返回唯一不同的值。这在需要去除重复项时很有用:
SELECT DISTINCT column_name FROM table_name;
数据操作
插入数据
INSERT INTO 语句用于向表中插入新记录:
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
更新数据
UPDATE 语句用于修改现有记录:
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
删除数据
DELETE 语句用于删除记录:
DELETE FROM table_name WHERE condition;
联合查询
联合查询允许将多个 SELECT 语句的结果合并成一个结果集。常用的联合操作符有 UNION 和 UNION ALL。
UNION
UNION 操作符用于合并两个或多个 SELECT 语句的结果集,并自动去除重复记录:
SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2;
UNION ALL
UNION ALL 与 UNION 类似,但不会去除重复记录:
SELECT column_name(s) FROM table1 UNION ALL SELECT column_name(s) FROM table2;
子查询
子查询是指嵌套在另一个查询中的查询。它们可以出现在 SELECT、INSERT、UPDATE 或 DELETE 语句中。
在 WHERE 子句中使用子查询
子查询可以用于 WHERE 子句中,以过滤满足特定条件的数据:
SELECT column_name FROM table_name WHERE column_name operator (SELECT column_name FROM table_name WHERE condition);
返回多行的子查询
当子查询返回多行数据时,可以使用 IN 关键字来匹配多个值:
SELECT column_name FROM table_name WHERE column_name IN (SELECT column_name FROM table_name WHERE condition);
条件逻辑
CASE 语句
CASE 语句允许在 SQL 查询中实现条件逻辑。它类似于其他编程语言中的 if-else 语句:
SELECT column_name, CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ELSE result3 END FROM table_name;
总结
本章介绍了 SQL 语言的基础知识,包括关键字、表达式、函数以及如何构建基本的 SQL 查询。通过学习这些基础知识,你将能够有效地管理数据库中的数据。下一章我们将深入探讨更复杂的 SQL 查询技巧和优化策略。