SQL 入门别再死记硬背了:搞懂增删改查、权限和事务,数据库才算真正入门

张开发
2026/4/21 11:13:44 15 分钟阅读

分享文章

SQL 入门别再死记硬背了:搞懂增删改查、权限和事务,数据库才算真正入门
很多人第一次接触数据库,都会有一种感觉:明明已经用过了,但又说不清它到底是什么。比如你在 MySQL 里敲过这些命令:SHOWDATABASES;USEsecurity;SHOWTABLES;SELECT*FROMusers;EXIT;你可能觉得这只是“数据库命令”。其实从你敲下这些语句开始,你已经在使用SQL了。问题是,很多初学者学 SQL 的时候,上来就背概念、背分类、背语法,结果越学越乱。今天这篇文章不准备跟你绕,我们就从最接地气的角度,把 SQL 这件事讲透:SQL 到底是什么为什么说它是“非过程化语言”SQL 为什么不只是查询DQL、DML、DDL、DCL、TCL 到底怎么区分MySQL 里最基础的操作怎么写事务为什么和转账强相关学网络安全为什么必须懂 SQL这篇内容特别适合:刚开始学 MySQL 的同学做 Web 安全、SQL 注入、靶场搭建的人想搞懂数据库最核心逻辑的初学者一、SQL 到底是什么?你其实早就用过了SQL 的全称是:Structured Query Language中文一般叫:结构化查询语言。注意,这个名字里虽然有“查询”两个字,但 SQL 绝不只是查询。它不仅能查数据,还能:插入数据修改数据删除数据创建数据库创建表修改表结构控制用户权限管理事务也就是说,只要你在数据库里做操作,绝大多数最后都要落到 SQL 上。一个很直观的理解方式假设你打开 MySQL 命令行,执行:SHOWDATABASES;这是 SQL。你切换数据库:USEtest;这也是 SQL。你查询表里的数据:SELECT*FROMusers;还是 SQL。所以别把 SQL 想得很玄,它本质上就是:你和数据库沟通的标准语言。数据库听不懂“大白话”,但它听得懂 SQL。二、为什么说 SQL 是“非过程化语言”?这个概念很多人第一次看会有点懵。其实你把它和 Java、Python 这类编程语言对比一下,就明白了。1)编程语言:你不仅要说“做什么”,还要说“怎么做”比如你想实现一个排序,在 Java 或 Python 里你得自己写:循环怎么写比较逻辑怎么写交换步骤怎么写边界条件怎么处理也就是说,你必须明确告诉程序:每一步具体怎么干2)SQL:你只需要说“我要什么结果”比如你想查users表里的所有数据,你只需要写:SELECT*FROMusers;你不需要自己告诉数据库:先读哪个数据页再走什么索引再按什么顺序扫描再怎么返回结果这些底层执行细节,数据库自己会处理。这就是所谓的:SQL 关注“做什么”,而不是“怎么做”。举个最简单的例子你想从 users 表中查出用户名是 admin 的记录SQL 写法:SELECT*FROMusersWHEREusername='admin';你只是描述需求:从哪张表查条件是什么要哪些字段至于底层怎么优化、怎么取数据、走不走索引,这部分交给数据库系统来决定。三、SQL 的发展不是一成不变的,但入门阶段抓主干就够了SQL 不是一天长成现在这样的,它经历了多年发展和标准化过程。早期的 SQL 标准有多个版本,比如:SQL-86SQL-89SQL-92SQL:1999其中在实际学习中,SQL-99(也就是 SQL:1999)是一个很重要的参考节点。因为从这个阶段开始,SQL 体系已经相对完整成熟,后面虽然也不断演进,但对入门学习来说,核心思想变化没有那么夸张。所以你现在学 SQL,不需要纠结版本史背得多细。你真正要掌握的是:核心语法操作分类实际使用习惯在 MySQL 里的落地方式四、SQL 不只是“查”,它一共可以分成五大类这是初学 SQL 最重要的一块。很多人总把 SQL 理解成查询语言,其实 SQL 是一个完整体系,通常可以分为五部分:DQL:数据查询语言DML:数据操作语言DDL:数据定义语言DCL:数据控制语言TCL:事务控制语言别被这些缩写吓到,其实一点都不难。下面我按最直白的方式给你拆开。五、DQL:数据查询语言,核心就是“查”DQL 全称是:Data Query Language中文就是:数据查询语言。它的核心用途只有一个:查数据。最典型的语句就是:SELECT最基础的查询语句SELECT*FROMusers;意思是:SELECT

更多文章