欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > SQL入门

SQL入门

2025/6/19 10:21:30 来源:https://blog.csdn.net/qq_40773212/article/details/148743214  浏览:    关键词:SQL入门

目录

  • 简介
  • SQL 的核心组成部分(主要语句类别)
    • 1.数据查询语言
    • 2.数据操作语言
    • 3.数据定义语言
    • 4.数据控制语言
    • 5.事务控制语言 (管理数据库事务 - 一组要么全部成功要么全部失败的操作)
  • 为什么 SQL 如此重要和流行?
  • 学习 SQL 的关键概念

简介

SQL全程 Structured Query Language (结构化查询语言),一种专门用来与关系型数据库进行通信和交互的编程语言。

它允许你执行以下关键操作:

  • 查询 (Query): 从数据库中检索你需要的特定数据(这是它最著名的功能)。
  • 操作 (Manipulate): 插入新数据、更新现有数据、删除不需要的数据。
  • 定义 (Define): 创建和修改数据库本身的结构(例如创建新表、修改表结构)。
  • 控制 (Control): 管理谁可以访问数据库以及他们能做什么(设置权限)。

SQL 的核心组成部分(主要语句类别)

1.数据查询语言

SELECT: 这是 SQL 的灵魂!用于从一个或多个表中检索数据。

SELECT name, email FROM customers WHERE city = '北京';
-- 从 customers 表中选取所有城市是“北京”的客户的姓名(name)和邮箱(email)

2.数据操作语言

INSERT: 向表中插入新的行(记录)。

INSERT INTO products (name, price) VALUES ('T-Shirt', 29.99);
-- 向 products 表插入一条新记录,设置 name 为 'T-Shirt',price 为 29.99

UPDATE: 修改表中已有的行。

UPDATE employees SET salary = salary * 1.05 WHERE department = '研发部';
-- 将研发部所有员工的薪水(salary)提高 5%

DELETE: 从表中删除行。

DELETE FROM orders WHERE order_date < '2023-01-01';
-- 删除所有 2023 年 1 月 1 日之前的订单

3.数据定义语言

CREATE: 创建数据库对象(如表、视图、索引等)。

CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT,username VARCHAR(50) NOT NULL UNIQUE,password VARCHAR(100) NOT NULL,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 创建一个名为 users 的表,包含 id(主键、自增)、用户名(唯一、非空)、密码(非空)、创建时间(默认为当前时间戳)等列。

ALTER: 修改现有数据库对象的结构(如添加/删除列、修改数据类型)。

ALTER TABLE customers ADD COLUMN phone_number VARCHAR(20);
-- 向 customers 表添加一个名为 phone_number 的新列

DROP: 删除数据库对象(如表、视图等)。

DROP TABLE old_logs;
-- 删除名为 old_logs 的表(请谨慎使用!)

TRUNCATE: 快速删除表中的所有数据(保留表结构)。

TRUNCATE TABLE temp_data;
-- 清空 temp_data 表的所有数据

4.数据控制语言

GRANT: 授予用户或角色对数据库对象的特定权限(如 SELECT, INSERT, UPDATE)。

GRANT SELECT, INSERT ON orders TO sales_team;
-- 授予 sales_team 用户/角色在 orders 表上进行查询(SELECT)和插入(INSERT)的权限

REVOKE: 撤销之前授予的权限。

REVOKE DELETE ON customers FROM intern_user;
-- 撤销 intern_user 在 customers 表上的删除(DELETE)权限

5.事务控制语言 (管理数据库事务 - 一组要么全部成功要么全部失败的操作)

BEGIN TRANSACTION / START TRANSACTION: 开始一个新事务。
COMMIT: 提交事务,使所有修改永久生效。
ROLLBACK: 回滚事务,撤销事务内所做的所有修改。
SAVEPOINT: 在事务内设置保存点,以便回滚到该点。

为什么 SQL 如此重要和流行?

关系型数据库的基石: 它是访问和管理当今世界绝大部分结构化数据(存储在关系型数据库中)的主要方式。

广泛应用: 几乎任何涉及后台数据存储的软件系统都会用到 SQL:

网站(用户信息、产品、订单)
银行系统(账户、交易)
医院系统(病人记录)
库存管理系统
数据分析与商业智能
移动应用后端
高效灵活: 使用相对简洁的语句就能表达复杂的查询逻辑,高效地检索和操作大量数据。

声明式语言: 你主要描述你想要什么数据(SELECT name, email FROM… WHERE…),而不是详细指定计算机如何一步步去获取这些数据(像在过程式语言如 Python 或 Java 中那样)。数据库引擎的优化器会自动找出最高效的执行路径。

标准化的技能: 学习核心 SQL 技能后,你可以应用于许多不同的数据库系统(尽管可能需要学习一些特定方言的扩展)。

学习 SQL 的关键概念

除了语句本身,理解以下概念对有效使用 SQL 至关重要:

表: 数据存储的基本单位,由行(记录)和列(字段/属性)组成。想象成 Excel 工作表。

模式: 数据库对象的集合(表、视图、索引等)及其结构的定义。

主键: 唯一标识表中每一行的列(或列组合)。不能为空且必须唯一。

外键: 一个表中的列,其值引用另一个表的主键。用于建立表之间的关系(这正是“关系型”数据库的核心)。

索引: 类似于书籍的目录,用于加速对表中数据的查询(特别是 WHERE 和 JOIN 条件)。

连接: 通过 JOIN 操作(如 INNER JOIN, LEFT JOIN)将来自两个或多个表的相关数据组合在一起。这是关系型数据库强大功能的关键。

SELECT orders.order_id, customers.name, orders.order_date
FROM orders
INNER JOIN customers ON orders.customer_id = customers.id;
-- 将 orders 表和 customers 表连接起来,通过 customer_id 和 id 关联,查询订单ID、客户姓名和订单日期

聚合函数: 对一组值执行计算并返回单个值(如 COUNT(), SUM(), AVG(), MAX(), MIN()),常与 GROUP BY 子句一起使用。

SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;
-- 按部门(department)分组,计算每个部门的平均薪水

子查询: 嵌套在其他 SQL 查询中的查询。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词