一文吃透 SQL 语法
SQL(结构化查询语言)是一种用于管理关系型数据库的编程语言。它允许用户通过查询、更新、插入和删除数据来操作数据库。为了更好地理解 SQL,我们将从基本语法、数据定义、数据操控和数据查询几个方面进行阐述。
一、基本语法
SQL 语法的格式一般由关键词、标识符和句子组成。关键词是 SQL 语言的保留字,例如 SELECT
、INSERT
、UPDATE
和 DELETE
等。标识符则是用户自定义的名称,包括数据库名、表名和列名等。句子是由这些关键词和标识符按照一定规则组合而成的。
二、数据定义语言(DDL)
DDL 主要用于定义和管理数据库结构,包括创建、修改和删除数据库和表。
-
创建数据库
sql CREATE DATABASE example_db;
-
创建表
sql CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL, email VARCHAR(100) NOT NULL UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
-
修改表
sql ALTER TABLE users ADD COLUMN last_login TIMESTAMP;
-
删除表
sql DROP TABLE users;
三、数据操控语言(DML)
DML 主要用于操作数据库中的数据,包括插入、更新和删除数据。
-
插入数据
sql INSERT INTO users (username, email) VALUES ('alice', 'alice@example.com');
-
更新数据
sql UPDATE users SET last_login = NOW() WHERE username = 'alice';
-
删除数据
sql DELETE FROM users WHERE username = 'alice';
四、数据查询语言(DQL)
DQL 主要用于从数据库中查询数据,最常见的就是 SELECT
语句。
-
查询所有数据
sql SELECT * FROM users;
-
查询特定列
sql SELECT username, email FROM users;
-
条件查询
sql SELECT * FROM users WHERE email LIKE '%@example.com';
-
排序查询
sql SELECT * FROM users ORDER BY created_at DESC;
-
限制查询结果
sql SELECT * FROM users LIMIT 10 OFFSET 5;
五、聚合函数与分组
聚合函数可以对数据进行统计分析,如 COUNT
、SUM
、AVG
、MAX
和 MIN
。
-
统计用户总数
sql SELECT COUNT(*) FROM users;
-
分组查询
sql SELECT email, COUNT(*) AS count FROM users GROUP BY email HAVING count > 1;
六、连接查询
多个表之间的连接查询非常常见,主要有内连接、外连接和交叉连接。
- 内连接
sql SELECT users.username, orders.amount FROM users INNER JOIN orders ON users.id = orders.user_id;
七、子查询
子查询是嵌套在其他 SQL 查询中的查询,可以在 SELECT
、FROM
、WHERE
等语句中使用。
SELECT username FROM users WHERE id IN (SELECT user_id FROM orders WHERE amount > 100);
八、总结
SQL 是一门功能强大的语言,适用于各种数据操作。掌握 SQL 的基本语法和常用命令,可以为数据库的管理和数据分析提供强有力的支持。通过上面的示例,我们可以看到,SQL 的灵活性和强大功能使其成为数据管理和分析的核心工具。在实际应用中,结合具体情境灵活使用 SQL,可以更高效地处理数据,提升工作效率。