SQL 简介

SQL(结构化查询语言)是一种专门用于管理和操作关系数据库的编程语言。它用于执行各种数据库操作,如查询、更新、插入和删除数据,以及管理数据库对象如表、视图和索引。SQL 是数据库管理的标准,被几乎所有的现代关系数据库系统所支持,例如 Oracle, Microsoft SQL Server, MySQL, PostgreSQL 和 SQLite。

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

用于删除数据库中的对象,

如表、索引等。例如,DROP TABLE用于删除表。

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中的一个重要概念,它涉及到对数据库中的数据进行访问控制和权限管理。如授权用户访问特定数据的能力(通过 GRANTREVOKE 语句)。

1)用户权限管理

SQL可以将数据库管理员授予或撤销用户对数据库对象(如表、视图、存储过程等)的特定权限。这些权限包括SELECT(查询)、INSERT(插入)、UPDATE(更新)、DELETE(删除)等。通过分配适当的权限,数据库管理员可以限制用户对数据库中数据的访问和操作。

2)访问控制语句

SQL提供了一系列访问控制语句,用于管理用户对数据库对象的访问权限。例如,GRANT语句用于授予用户特定的权限,REVOKE语句用于撤销用户的权限。

5、事务管理

SQL 提供了事务支持,允许多个步骤的操作被视为一个单一的工作单元,这些操作要么全部完成,要么全部不做,以确保数据的一致性和完整性。

特性描述
原子性事务中的所有操作要么全部执行成功,
要么全部失败回滚,
不会出现部分执行的情况。
一致性事务执行前后,
数据库从一个一致的状态转移到另一个一致的状态,
不会破坏数据库的完整性约束。
隔离性并发事务的执行互不干扰,
每个事务都好像在独立运行,
避免了由于并发执行可能引发的数据不一致问题。
持久性一旦事务提交成功,
其所做的改变将永久保存在数据库中,
即使发生系统故障也不会丢失。

推荐阅读
cjavapy编程之路首页