写点什么

SQL 入门教程:从基础到实践

  • 2024-06-17
    江西
  • 本文字数:2138 字

    阅读完需:约 7 分钟

前言

SQL(Structured Query Language)是一种用于管理和操作关系型数据库的标准语言。无论你是测试工程师、开发人员,还是数据分析师,掌握 SQL 都能帮助你更高效地工作。本文将详细介绍 SQL 的基本概念、常用语法和实践操作,帮助初学者快速入门。


获取更多技术资料,请点击!

什么是 SQL?

SQL 是一种标准化的语言,用于访问和操作数据库。它能够执行查询、插入、更新、删除数据库中的数据,并能创建、修改和管理数据库结构。

数据库基础

在学习 SQL 之前,了解一些基本的数据库概念是很有帮助的。


数据库(Database)


数据库是一个组织化的数据集合,用于存储和管理数据。


表(Table)


表是数据库中的基本存储单位,包含若干行和列。每一行表示一条记录,每一列表示一个字段。


行(Row)和列(Column)


  • 行(Row):也称为记录,每一行包含了一组相关的数据。

  • 列(Column):也称为字段,每一列表示某种类型的数据。

SQL 基本语法

SQL 语法可以分为以下几类:


数据查询语言(DQL)


用于查询数据库中的数据,最常用的语句是 SELECT。


数据定义语言(DDL)


用于定义数据库结构,例如创建、修改和删除数据库对象(如表)。


数据操纵语言(DML)


用于插入、更新、删除数据库中的数据。


数据控制语言(DCL)


用于定义数据库的访问权限和安全级别。


基本 SQL 操作


  1. 查询数据


SELECT 语句用于从数据库中查询数据。


SELECT column1, column2, ...FROM table_name;
复制代码


示例:查询名为 employees 的表中的 first_namelast_name 列。


SELECT first_name, last_nameFROM employees;
复制代码


  1. 插入数据


INSERT INTO 语句用于向表中插入新数据。


INSERT INTO table_name (column1, column2, ...)VALUES (value1, value2, ...);
复制代码


示例:向 employees 表中插入一条新记录。


INSERT INTO employees (first_name, last_name, email)VALUES ('John', 'Doe', 'john.doe@example.com');
复制代码


  1. 更新数据


UPDATE 语句用于修改表中的数据。


UPDATE table_nameSET column1 = value1, column2 = value2, ...WHERE condition;
复制代码


示例:将 employees 表中 employee_id 为 1 的记录的 email 字段更新为 john.doe@company.com


UPDATE employeesSET email = 'john.doe@company.com'WHERE employee_id = 1;
复制代码


  1. 删除数据


DELETE 语句用于删除表中的数据。


DELETE FROM table_nameWHERE condition;
复制代码


示例:删除 employees 表中 employee_id 为 1 的记录。


DELETE FROM employeesWHERE employee_id = 1;
复制代码

高级 SQL 操作

  1. 条件查询


使用 WHERE 子句进行条件查询。


示例:查询 employees 表中 last_nameSmith 的记录。


SELECT first_name, last_nameFROM employeesWHERE last_name = 'Smith';
复制代码


  1. 排序


使用 ORDER BY 子句对结果进行排序。


示例:按 last_name 升序排序查询结果。


SELECT first_name, last_nameFROM employeesORDER BY last_name ASC;
复制代码


  1. 分组


使用 GROUP BY 子句对结果进行分组。


示例:按 department_id 分组并统计每个部门的员工数量。


SELECT department_id, COUNT(*)FROM employeesGROUP BY department_id;
复制代码


  1. 联合查询


使用 JOIN 关键字进行表之间的联合查询。


示例:查询 employees 表和 departments 表,获取每个员工及其所属部门的名称。


SELECT employees.first_name, employees.last_name, departments.department_nameFROM employeesJOIN departments ON employees.department_id = departments.department_id;
复制代码

实践操作

环境搭建


为了实际操作 SQL 语句,我们需要一个数据库环境。可以使用以下工具之一:


  1. 本地数据库:安装 MySQL、PostgreSQL 等数据库管理系统。

  2. 在线 SQL 编辑器:使用如 SQLFiddle 等在线工具。


示例数据库


我们将使用一个简单的示例数据库,其中包含 employeesdepartments 两个表。


CREATE TABLE departments (    department_id INT PRIMARY KEY,    department_name VARCHAR(50));
CREATE TABLE employees ( employee_id INT PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50), email VARCHAR(100), department_id INT, FOREIGN KEY (department_id) REFERENCES departments(department_id));
INSERT INTO departments (department_id, department_name) VALUES(1, 'HR'),(2, 'Engineering'),(3, 'Sales');
INSERT INTO employees (employee_id, first_name, last_name, email, department_id) VALUES(1, 'John', 'Doe', 'john.doe@example.com', 1),(2, 'Jane', 'Smith', 'jane.smith@example.com', 2),(3, 'Emily', 'Jones', 'emily.jones@example.com', 3);
复制代码


操作示例


  1. 查询所有员工信息:


SELECT * FROM employees;
复制代码


  1. 查询工程部门的员工信息:


SELECT first_name, last_nameFROM employeesWHERE department_id = 2;
复制代码


  1. 添加新员工:


INSERT INTO employees (employee_id, first_name, last_name, email, department_id)VALUES (4, 'Mark', 'Brown', 'mark.brown@example.com', 1);
复制代码


  1. 更新员工邮箱:


UPDATE employeesSET email = 'john.doe@newcompany.com'WHERE employee_id = 1;
复制代码


  1. 删除销售部门的员工:


DELETE FROM employeesWHERE department_id = 3;
复制代码

总结

通过本文的学习,你应该已经掌握了 SQL 的基本概念和常用操作。SQL 是一门非常实用的技能,无论是在开发、测试还是数据分析中都能发挥重要作用。

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
SQL 入门教程:从基础到实践_霍格沃兹测试开发学社_InfoQ写作社区