• SQL 基础入门教程


    目录

    什么是 SQL?

    SQL 的基本操作

    数据库的创建和删除

    表的创建和删除

    数据的插入

    数据的查询

    数据的更新

    数据的删除

    SQL 的高级操作

    表的连接

    聚合函数

    分组和排序

    子查询

    视图

    索引

    SQL 的数据完整性和约束

    总结


    SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系数据库的标准编程语言。无论是查询数据、更新记录,还是创建数据库和表结构,SQL 都提供了强大的功能。本文旨在为初学者提供一份全面的 SQL 基础入门教程,帮助你快速上手并掌握 SQL 的基本操作。

    什么是 SQL?

    SQL 是一种用于访问和操作数据库的标准语言。它最早由 IBM 在 1970 年代开发,并在 1986 年被美国国家标准学会(ANSI)和国际标准化组织(ISO)采纳为标准。SQL 的主要功能包括:

    • 数据查询
    • 数据插入
    • 数据更新
    • 数据删除
    • 数据库和表的创建和修改
    • 数据库权限管理

    SQL 的基本操作

    数据库的创建和删除

    在开始操作数据库之前,我们需要先创建一个数据库。以下是创建和删除数据库的基本语法:

    1. -- 创建数据库
    2. CREATE DATABASE 数据库名称;
    3. -- 删除数据库
    4. DROP DATABASE 数据库名称;

    例如,创建一个名为 TestDB 的数据库:

    CREATE DATABASE TestDB;
    

    删除 TestDB 数据库:

    DROP DATABASE TestDB;
    

    表的创建和删除

    数据库创建好之后,我们需要在数据库中创建表。表是数据库的基本存储结构,由行和列组成。以下是创建和删除表的基本语法:

    1. -- 创建表
    2. CREATE TABLE 表名称 (
    3. 列名称1 数据类型 约束条件,
    4. 列名称2 数据类型 约束条件,
    5. ...
    6. );
    7. -- 删除表
    8. DROP TABLE 表名称;

    例如,创建一个名为 Employees 的表:

    1. CREATE TABLE Employees (
    2. EmployeeID INT PRIMARY KEY,
    3. FirstName VARCHAR(50),
    4. LastName VARCHAR(50),
    5. BirthDate DATE,
    6. Salary DECIMAL(10, 2)
    7. );

    删除 Employees 表:

    DROP TABLE Employees;
    

    数据的插入

    创建表后,我们可以向表中插入数据。以下是插入数据的基本语法:

    INSERT INTO 表名称 (列名称1, 列名称2, ...) VALUES (值1, 值2, ...);
    

    例如,向 Employees 表中插入一条记录:

    1. INSERT INTO Employees (EmployeeID, FirstName, LastName, BirthDate, Salary)
    2. VALUES (1, 'John', 'Doe', '1980-01-01', 50000.00);

    数据的查询

    查询数据是 SQL 中最常用的操作之一。以下是基本的查询语法:

    SELECT 列名称1, 列名称2, ... FROM 表名称 WHERE 条件;
    

    例如,查询 Employees 表中的所有记录:

    SELECT * FROM Employees;
    

    查询 Employees 表中 Salary 大于 30000 的记录:

    SELECT * FROM Employees WHERE Salary > 30000;
    

    数据的更新

    有时我们需要修改表中的数据。以下是更新数据的基本语法:

    UPDATE 表名称 SET 列名称1 = 新值1, 列名称2 = 新值2, ... WHERE 条件;
    

    例如,更新 Employees 表中 EmployeeID 为 1 的记录,将 Salary 修改为 55000:

    UPDATE Employees SET Salary = 55000 WHERE EmployeeID = 1;
    

    数据的删除

    删除表中的数据也是常见操作之一。以下是删除数据的基本语法:

    DELETE FROM 表名称 WHERE 条件;
    

    例如,删除 Employees 表中 EmployeeID 为 1 的记录:

    DELETE FROM Employees WHERE EmployeeID = 1;
    

    SQL 的高级操作

    表的连接

    在实际应用中,我们经常需要从多个表中查询数据。表的连接(JOIN)操作可以实现这一点。以下是基本的连接语法:

    SELECT 列名称1, 列名称2, ... FROM1 JOIN 表2 ON1.列名称 =2.列名称;
    

    例如,有两个表 Departments 和 Employees,我们可以通过部门 ID(DepartmentID)将这两个表连接起来:

    1. CREATE TABLE Departments (
    2. DepartmentID INT PRIMARY KEY,
    3. DepartmentName VARCHAR(50)
    4. );
    5. INSERT INTO Departments (DepartmentID, DepartmentName) VALUES (1, 'HR'), (2, 'Engineering');
    6. SELECT Employees.FirstName, Employees.LastName, Departments.DepartmentName
    7. FROM Employees
    8. JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

    聚合函数

    SQL 提供了一些聚合函数,用于对数据进行汇总和统计。常见的聚合函数包括:

    • COUNT:计算行数
    • SUM:求和
    • AVG:平均值
    • MAX:最大值
    • MIN:最小值

    例如,计算 Employees 表中的员工总数:

    SELECT COUNT(*) FROM Employees;
    

    计算 Employees 表中所有员工的平均工资:

    SELECT AVG(Salary) FROM Employees;
    

    分组和排序

    分组(GROUP BY)和排序(ORDER BY)操作是 SQL 中的两个重要功能。分组用于将数据按某一列进行分组,并对每组数据进行聚合计算;排序用于对查询结果按照某一列进行升序或降序排列。

    例如,按照部门分组,计算每个部门的平均工资:

    1. SELECT DepartmentID, AVG(Salary) AS AvgSalary
    2. FROM Employees
    3. GROUP BY DepartmentID;

    按照工资降序排列查询结果:

    1. SELECT * FROM Employees
    2. ORDER BY Salary DESC;

    子查询

    子查询是嵌套在其他 SQL 语句中的查询,可以用来进行复杂的数据筛选和计算。子查询可以出现在 SELECTINSERTUPDATE 和 DELETE 语句中。

    例如,查询工资最高的员工:

    1. SELECT * FROM Employees
    2. WHERE Salary = (SELECT MAX(Salary) FROM Employees);

    视图

    视图(View)是基于 SQL 查询结果的虚拟表,可以简化复杂查询并提高数据安全性。以下是创建和删除视图的基本语法:

    1. -- 创建视图
    2. CREATE VIEW 视图名称 AS
    3. SELECT 查询内容;
    4. -- 删除视图
    5. DROP VIEW 视图名称;

    例如,创建一个仅包含员工姓名和工资的视图:

    1. CREATE VIEW EmployeeSalaries AS
    2. SELECT FirstName, LastName, Salary FROM Employees;

    查询 EmployeeSalaries 视图:

    SELECT * FROM EmployeeSalaries;
    

    索引

    索引(Index)用于提高数据库查询性能。以下是创建和删除索引的基本语法:

    1. -- 创建索引
    2. CREATE INDEX 索引名称 ON 表名称 (列名称);
    3. -- 删除索引
    4. DROP INDEX 索引名称;

    例如,创建一个基于 LastName 列的索引:

    CREATE INDEX idx_lastname ON Employees (LastName);
    

    SQL 的数据完整性和约束

    在设计数据库时,确保数据的完整性和一致性非常重要。SQL 提供了多种约束条件来保证数据的正确性和有效性,常见的约束条件包括:

    • PRIMARY KEY:主键,唯一标识表中的每一行记录
    • FOREIGN KEY:外键,用于建立表之间的关系
    • UNIQUE:唯一约束,确保列中的值唯一
    • NOT NULL:非空约束,确保列中的值不能为空
    • CHECK:检查约束,确保列中的值符合指定条件

    例如,创建一个 Orders 表,包含上述约束:

    1. CREATE TABLE Orders (
    2. OrderID INT PRIMARY KEY,
    3. EmployeeID INT,
    4. OrderDate DATE NOT NULL,
    5. Amount DECIMAL(10, 2) CHECK (Amount > 0),
    6. FOREIGN KEY (EmployeeID) REFERENCES Employees(EmployeeID)
    7. );

    总结

    通过本文的学习,相信你已经掌握了 SQL 的基本操作和一些高级功能。SQL 是一个功能强大且灵活的工具,可以帮助你高效地管理和操作数据库。在实际应用中,理解和熟练使用 SQL 将大大提高你的工作效率。

    为了进一步提升你的 SQL 技能,建议你多动手实践,多尝试不同的查询和操作。同时,可以参考更多的 SQL 教程和文档,不断深入学习和探索 SQL 的高级功能。希望本文能为你的 SQL 学习之旅提供一个良好的起点。

  • 相关阅读:
    处理uniapp打包后有广告的问题
    leetcode - 04 树专题 114~106~96~863~剑指Offer 27~257~108~617~ 剑指 Offer 07 重建二叉树~99
    【jumpserver升级】docker pulling image报错dial tcp 104.18.124.25:443: i/o timeout
    KMP算法 → 计算next数组
    vue中的ref
    一款 IDEA 插件帮你优雅转化 DTO、VO、BO、PO、DO
    没有上司的舞会
    vue的组件化编程的详细讲解加代码演示
    SSH配置免密登录
    openGaussDatakit让运维如丝般顺滑!
  • 原文地址:https://blog.csdn.net/benshu_001/article/details/139665150