1、数据查询
SQL(结构化查询语言)是一种广泛使用的数据库查询和管理语言,用于处理关系数据库。通过SQL,用户可以执行各种数据操作,包括查询、更新、插入和删除数据。SQL 的主要功能是查询数据库中的数据,这通常通过 SELECT 语句完成,可以非常精确地指定要检索的数据。
1) 基本查询
SQL的核心功能之一是能够查询数据库中的数据。最基本的查询语句是SELECT,它用于从一个或多个表中检索数据。示例如下:
SELECT * FROM users;
2)选择特定列
如果只需要表中的特定列,可以指定列名:
SELECT first_name, last_name FROM users;
3)条件筛选
使用WHERE子句可以根据特定条件来过滤记录:
SELECT * FROM users WHERE age > 18;
4)数据排序
通过ORDER BY子句,可以指定查询结果的排序方式:
SELECT * FROM users ORDER BY last_name ASC;
5)聚合数据
SQL还提供了多种聚合函数,如COUNT
, SUM
, AVG
, MAX
, 和 MIN
,用于执行计算和汇总数据:
SELECT COUNT(*) FROM users WHERE age > 18;
6)联接表
SQL允许通过JOIN语句联接多个表,以便在一个查询中结合和分析多个表中的数据:
SELECT users.first_name, orders.order_date
FROM users
JOIN orders ON users.user_id = orders.user_id;
7)分组数据
使用GROUP BY
可以对结果集进行分组,常与聚合函数一起使用:
SELECT department, COUNT(*) AS num_employees
FROM employees
GROUP BY department;
2、数据操作
包括插入(INSERT
)、更新(UPDATE
)、删除(DELETE
)数据。这些操作允许用户修改数据库中的数据。
1)插入数据(INSERT)
使用INSERT
语句将新数据插入到数据库表中。可以指定要插入的表以及要插入的值。例如:
INSERT INTO table (column1, column2) VALUES (value1, value2);
2)更新数据(UPDATE)
使用UPDATE
语句更新数据库表中的现有数据。可以指定要更新的表、要更改的列以及更新的条件。例如:
UPDATE table SET column1 = value1, column2 = value2 WHERE condition;
3)删除数据(DELETE)
使用DELETE语句从数据库表中删除数据。可以指定要删除的表以及删除的条件。例如:
DELETE FROM table WHERE condition;
3、数据定义
SQL 允许用户定义数据库的结构,包括创建(CREATE
)、修改(ALTER
)和删除(DROP
)数据库表和其他相关结构。
命令 | 功能 |
CREATE | 用于创建数据库中的对象, 如表、索引、视图等。例如, CREATE TABLE用于创建表。 |
ALTER | 用于修改数据库对象的结构, 如添加、修改或删除列。 例如,ALTER TABLE用于修改表结构。 |
DROP | 用于删除数据库中的对象, 如表、索引等。例如, |
TRUNCATE | 用于快速删除表中的所有数据,但保留表结构。 它比DELETE命令更快,因为它不记录每行的删除操作。 |
COMMENT | 用于给数据库对象添加注释或描述。 |
RENAME | 用于重命名数据库对象,如表、列等。 |
CREATE INDEX | 用于在表上创建索引,以加速查询操作。 |
GRANT和REVOKE | 用于授权和撤销权限的关键字, 它们用于管理数据库用户 对数据库对象的访问权限。 |
使用示例:
-- 创建名为"students"的表,包含学生的姓名、年龄和性别信息
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
gender VARCHAR(10)
);
-- 向表中添加一列,表示学生的性别
ALTER TABLE students
ADD COLUMN gender VARCHAR(10);
-- 清空表中的所有数据,保留表结构
TRUNCATE TABLE students;
-- 为表添加注释
COMMENT ON TABLE students IS 'This table stores information about students.';
-- 将表重命名为"student_info"
ALTER TABLE students
RENAME TO student_info;
-- 在"student_info"表的"name"列上创建索引
CREATE INDEX idx_name ON student_info (name);
-- 授权用户"john"对"student_info"表的SELECT权限,并撤销INSERT权限
GRANT SELECT ON student_info TO john;
REVOKE INSERT ON student_info FROM john;
4、数据控制
数据控制是SQL中的一个重要概念,它涉及到对数据库中的数据进行访问控制和权限管理。如授权用户访问特定数据的能力(通过 GRANT
和 REVOKE
语句)。
1)用户权限管理
SQL可以将数据库管理员授予或撤销用户对数据库对象(如表、视图、存储过程等)的特定权限。这些权限包括SELECT
(查询)、INSERT
(插入)、UPDATE
(更新)、DELETE
(删除)等。通过分配适当的权限,数据库管理员可以限制用户对数据库中数据的访问和操作。
2)访问控制语句
SQL提供了一系列访问控制语句,用于管理用户对数据库对象的访问权限。例如,GRANT
语句用于授予用户特定的权限,REVOKE
语句用于撤销用户的权限。
5、事务管理
SQL 提供了事务支持,允许多个步骤的操作被视为一个单一的工作单元,这些操作要么全部完成,要么全部不做,以确保数据的一致性和完整性。
特性 | 描述 |
---|---|
原子性 | 事务中的所有操作要么全部执行成功, 要么全部失败回滚, 不会出现部分执行的情况。 |
一致性 | 事务执行前后, 数据库从一个一致的状态转移到另一个一致的状态, 不会破坏数据库的完整性约束。 |
隔离性 | 并发事务的执行互不干扰, 每个事务都好像在独立运行, 避免了由于并发执行可能引发的数据不一致问题。 |
持久性 | 一旦事务提交成功, 其所做的改变将永久保存在数据库中, 即使发生系统故障也不会丢失。 |