SQL
SQL(Structured Query Language,结构化查询语言)是操作关系型数据库的标准语言,用来定义表结构、增删改查数据、控制事务与权限。它是声明式语言:你只描述"想要什么结果",而不用写"怎么一步步取",具体的执行路径由数据库的查询优化器决定。
按用途,SQL 语句大致分为几类:
SELECT / INSERT / UPDATE / DELETE:查询和修改数据(DML)CREATE / ALTER / DROP:定义或修改表、索引等结构(DDL)GRANT / REVOKE、COMMIT / ROLLBACK:权限控制与事务管理
使用中要注意:SQL 虽有 ANSI/ISO 标准,但 MySQL、PostgreSQL、SQLite、SQL Server 等各有"方言",函数和语法并不完全通用。关键字一般不区分大小写,字符串值是否区分大小写则取决于数据库和排序规则。此外 NULL 遵循三值逻辑,NULL = NULL 的结果不是"真"而是"未知",判断空值要用 IS NULL。格式化工具(如 sql-format)只调整缩进、换行和关键字排版,让长语句更易读,并不会改变语义。
常见问题
SQL 和 MySQL 是一回事吗?
不是。SQL 是一种标准化的查询语言(规范),MySQL 是实现了 SQL 的具体数据库软件。同类的还有 PostgreSQL、SQLite、SQL Server 等,它们都用 SQL,但各自的方言(函数、语法细节)略有不同。
NoSQL 是不是要取代 SQL?
不是对立关系。NoSQL 意为"Not Only SQL",泛指文档、键值、图等非关系型数据库,适合特定场景。很多系统会把关系型数据库和 NoSQL 混用,并非二选一。
关键字必须大写吗?格式化会改变查询结果吗?
不必须。SQL 关键字不区分大小写,大写只是提升可读性的常见约定。格式化工具只改动排版(缩进、换行、大小写),不影响语义,执行结果不会变。