SQL英语术语手册,汇集SQL核心概念与现代数据库技术要点,覆盖SQL:基础术语、DDL、DML、DQL、函数、存储过程、事务、设计、高可用、优化、安全、跨库差异等12大技术领域的核心术语,可作为全栈工程师、DBA、数据分析师及SQL教学的参考指南。
一、SQL基础术语
| 英文术语 | 中文释义 | 技术细节 |
|---|
| SQL | | |
| Database | | |
| Table | | |
| Row/Record | | |
| Column/Field | | |
| Schema | | |
| Data Type | | |
| Primary Key | | |
| Foreign Key | | |
| Index | | |
| Constraint | | |
| View | | |
| Materialized View | | |
| Cursor | | |
| ACID Properties | | |
| NULL | | |
| DBMS/RDBMS | | 如MySQL, Oracle, SQL Server |
| Query | | |
| Statement | | |
| Transaction | | |
| Tuple | | |
| Attribute | | |
| Catalog | | |
| Domain | | |
| Data Dictionary | | |
| Instance | | |
| Connection | | |
| Cursor Sensitivity | | 感知底层数据变化(SENSITIVE/INSENSITIVE) |
| Savepoint | | |
| Relational Algebra | | |
| Cardinality | | |
| Selectivity | | |
| Predicate | | |
| Projection | | |
| Cartesian Product | | |
| Degree | | |
二、数据定义语言(DDL)
| 命令 | 功能 | 语法示例 |
|---|
| CREATE DATABASE | | CREATE DATABASE SalesDB CHARSET=utf8mb4; |
| CREATE TABLE | | CREATE TABLE Users (ID INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(50) NOT NULL); |
| CREATE INDEX | | CREATE INDEX idx_email ON Users(Email) USING HASH; |
| CREATE VIEW | | CREATE VIEW vw_active AS SELECT id,name FROM Users WHERE active=1; |
| ALTER TABLE | | ALTER TABLE Users ADD COLUMN birthdate DATE AFTER name; |
| DROP TABLE | | DROP TABLE IF EXISTS TempData; |
| DROP DATABASE | | DROP DATABASE ArchiveDB CASCADE; |
| TRUNCATE TABLE | | |
| RENAME TABLE | | MySQL:RENAME TABLE old TO new; |
| COMMENT | | PostgreSQL:COMMENT ON COLUMN Users.name IS '用户全名'; |
| CHECK Constraint | | CREATE TABLE Orders (Amount DECIMAL CHECK (Amount > 0)); |
| DEFAULT | | CREATE TABLE Logs (ctime DATETIME DEFAULT CURRENT_TIMESTAMP); |
| AUTO_INCREMENT | | |
| IDENTITY | | |
| SEQUENCE | | Oracle:CREATE SEQUENCE user_seq START WITH 1000 INCREMENT BY 2; |
| CREATE TYPE | | PostgreSQL:CREATE TYPE currency AS (amount DECIMAL, unit VARCHAR(3)); |
| ALTER INDEX | | SQL Server:ALTER INDEX idx_name ON Users REORGANIZE; |
| PARTITION BY | | MySQL:CREATE TABLE Logs (...) PARTITION BY RANGE(YEAR(log_date))(...); |
| TABLESPACE | | |
| CREATE SYNONYM | | Oracle:CREATE SYNONYM emp FOR hr.employees; |
| STORAGE PARAMETER | | PostgreSQL:CREATE TABLE bigtable (...) WITH (fillfactor=70); |
| VIRTUAL COLUMN | | Oracle:CREATE TABLE Orders (total DECIMAL GENERATED ALWAYS AS (qty*price)); |
| GLOBAL TEMPORARY TABLE | | |
| EXTERNAL TABLE | | |
三、数据操作语言(DML)
| 命令 | 功能 | 语法示例 |
|---|
| INSERT INTO | | INSERT INTO Users VALUES (DEFAULT, 'Alice', CURDATE()); |
| UPDATE | | UPDATE Products SET price=price*0.9 WHERE stock>100; |
| DELETE | | DELETE FROM Logs WHERE create_time < '2023-01-01'; |
| MERGE | | Oracle:
MERGE INTO target t USING source s ON (t.id=s.id)
WHEN MATCHED THEN UPDATE SET t.val=s.val
WHEN NOT MATCHED THEN INSERT VALUES (s.id,s.val); |
| UPSERT | | PostgreSQL:INSERT INTO Users(id,name) VALUES (1,'Bob') ON CONFLICT (id) DO UPDATE SET name=EXCLUDED.name; |
| OUTPUT Clause | | SQL Server:DELETE FROM Users OUTPUT deleted.id WHERE id=1; |
| BULK INSERT | | SQL Server:BULK INSERT Employees FROM 'data.csv' WITH (FIELDTERMINATOR=','); |
| INSERT IGNORE | | MySQL:INSERT IGNORE INTO UniqueIDs VALUES (1001); |
| RETURNING | | PostgreSQL:UPDATE Tasks SET status='done' RETURNING task_id; |
| COPY FROM | | PostgreSQL:COPY users FROM '/data/users.csv' WITH CSV HEADER; |
| LOAD DATA INFILE | | MySQL:LOAD DATA LOCAL INFILE 'data.txt' INTO TABLE logs; |
| SELECT INTO | | SQL Server:SELECT * INTO NewTable FROM OldTable WHERE condition; |
| INSERT EXEC | | SQL Server:INSERT INTO Results EXEC spGetReport; |
| FOR UPDATE | | SELECT * FROM Accounts WHERE id=100 FOR UPDATE; |
| WAIT | | Oracle:SELECT * FROM Inventory WHERE qty>0 FOR UPDATE WAIT 5; |
| SKIP LOCKED | | Oracle:SELECT * FROM Jobs FOR UPDATE SKIP LOCKED; |
| OUTER APPLY | | SQL Server:SELECT u.name, o.total FROM Users u OUTER APPLY dbo.GetOrders(u.id) o; |
| CONNECT BY | | |
四、数据查询语言(DQL)
1. 核心子句
| 关键字 | 用途 | 示例 |
|---|
| SELECT | | SELECT name, COUNT(*) FROM ... |
| FROM | | FROM Employees e JOIN Departments d |
| WHERE | | WHERE salary > 5000 AND dept_id IN (10,20) |
| GROUP BY | | GROUP BY department HAVING SUM(sales)>100000 |
| HAVING | | HAVING AVG(score) >= 80 |
| ORDER BY | | ORDER BY hire_date DESC, last_name ASC |
| LIMIT/OFFSET | | |
| FETCH FIRST | | SQL:2011:FETCH FIRST 10 ROWS ONLY |
| DISTINCT | | SELECT DISTINCT country FROM Customers |
| TOP | | SQL Server:SELECT TOP 10 PERCENT * FROM ... |
| TABLESAMPLE | | SELECT * FROM Sales TABLESAMPLE BERNOULLI (5) |
| WITH TIES | | SQL Server:SELECT TOP 5 WITH TIES * ORDER BY price |
| PIVOT | | SQL Server:SELECT * FROM (SELECT ...) src PIVOT (SUM(amount) FOR quarter IN ([Q1],[Q2])) pvt |
| UNPIVOT | | SQL Server:UNPIVOT (sales FOR quarter IN (Q1,Q2,Q3)) unpvt |
| FOR JSON | | SQL Server:SELECT * FROM Products FOR JSON PATH |
2. 连接操作
| 连接类型 | 效果 | 语法 |
|---|
| INNER JOIN | | FROM A INNER JOIN B ON A.id=B.ref_id |
| LEFT JOIN | | FROM Users LEFT JOIN Orders ON Users.id=Orders.user_id |
| RIGHT JOIN | | FROM Orders RIGHT JOIN Products ON Orders.pid=Products.id |
| FULL OUTER JOIN | | Oracle:SELECT * FROM A FULL JOIN B ON A.id=B.id |
| CROSS JOIN | | FROM Colors CROSS JOIN Sizes |
| SELF JOIN | | SELECT e1.name, e2.name FROM Employees e1 JOIN Employees e2 ON e1.manager=e2.id |
| NATURAL JOIN | | |
| LATERAL JOIN | | PostgreSQL:SELECT u.name, o.total FROM Users u, LATERAL (SELECT ... WHERE user_id=u.id) o |
| NON-EQUI JOIN | | FROM A JOIN B ON A.value BETWEEN B.start AND B.end |
| SEMI JOIN | | |
| ANTI JOIN | | |
| AS OF TIMESTAMP | | Oracle:SELECT * FROM Orders AS OF TIMESTAMP SYSTIMESTAMP - INTERVAL '30' MINUTE |
| MATCH_RECOGNIZE | | Oracle:SELECT * FROM Logs MATCH_RECOGNIZE (...) PATTERN (A B+) |
| WITH ORDINALITY | | PostgreSQL:SELECT * FROM unnest(array['a','b']) WITH ORDINALITY |
| Temporal Table | | SQL Server:FROM Orders FOR SYSTEM_TIME AS OF '2023-01-01' |
3. 高级查询
| 操作符/函数 | 功能 | 示例 |
|---|
| UNION | | SELECT city FROM Customers UNION SELECT city FROM Suppliers |
| UNION ALL | | SELECT ... UNION ALL SELECT ... |
| EXCEPT/MINUS | | SELECT id FROM A EXCEPT SELECT id FROM B |
| INTERSECT | | SELECT id FROM FullTime INTERSECT SELECT id FROM Active |
| EXISTS | | SELECT name FROM Customers c WHERE EXISTS (SELECT 1 FROM Orders o WHERE o.cust_id=c.id) |
| CASE WHEN | | SELECT name, CASE WHEN age<18 THEN 'Child' ELSE 'Adult' END |
| CTE (WITH) | | WITH RegionalSales AS (SELECT region, SUM(sales) total FROM ...) |
| Recursive CTE | | WITH RECURSIVE OrgTree AS (SELECT id,name FROM root UNION ALL ...) |
| Window Functions | | SUM(revenue) OVER (PARTITION BY dept ORDER BY date) |
| LEAD/LAG | | LEAD(price,1) OVER (ORDER BY date) |
| FIRST_VALUE | | FIRST_VALUE(name) OVER (PARTITION BY dept ORDER BY salary DESC) |
| RANK/DENSE_RANK | | RANK() OVER (PARTITION BY class ORDER BY score DESC) |
| NTILE | | NTILE(4) OVER (ORDER BY salary) AS quartile |
| ROW_NUMBER | | ROW_NUMBER() OVER (PARTITION BY dept ORDER BY id) |
| PERCENT_RANK | | PERCENT_RANK() OVER (ORDER BY sales) |
| CUME_DIST | | CUME_DIST() OVER (ORDER BY price) |
| AGGREGATE FILTER | | PostgreSQL:SUM(sales) FILTER (WHERE region='West') |
| GROUPING SETS | | GROUP BY GROUPING SETS ((a,b), (a), ()) |
| ROLLUP | | GROUP BY ROLLUP (year, quarter) |
| CUBE | | GROUP BY CUBE (country, product) |
| PIVOT/UNPIVOT | | Oracle:SELECT * FROM (SELECT ...) PIVOT (SUM(sales) FOR region IN ('East','West')) |
| MODEL | | Oracle:SELECT ... MODEL DIMENSION BY (...) MEASURES (...) RULES (...) |
| FLASHBACK QUERY | | Oracle:SELECT * FROM table AS OF TIMESTAMP ... |
| XMLTABLE | | SELECT * FROM XMLTABLE('//book' PASSING xml_doc COLUMNS title VARCHAR(100) PATH 'title') |
| JSON_TABLE | | SELECT * FROM JSON_TABLE(json_doc, '$.items[*]' COLUMNS (id PATH '$.id', name PATH '$.name')) |
| FULLTEXT SEARCH | | MySQL:WHERE MATCH(title,content) AGAINST ('database' IN NATURAL LANGUAGE MODE) |
| SOUNDEX | | SQL Server:WHERE SOUNDEX(name)=SOUNDEX('Smith') |
| SIMILAR TO | | PostgreSQL:WHERE name SIMILAR TO 'J(oh)?n' |
| REGEXP_SUBSTR | | Oracle:REGEXP_SUBSTR(phone, '\d{3}-\d{4}') |
| GEOMETRY | | PostGIS:WHERE ST_Distance(point1, point2) < 1000 |
| CONTAINS | | SQL Server:WHERE geometry_col.STContains(@point)=1 |
| GEOGRAPHY | | SQL Server:geography::Point(47.6, -122.3, 4326) |
| TOP N per Group | | SELECT * FROM (SELECT *, ROW_NUMBER() OVER (PARTITION BY dept ORDER BY salary DESC) rn FROM emp) WHERE rn<=3 |
| Hierarchical Query | | Oracle:SELECT LEVEL, name FROM emp START WITH mgr_id IS NULL CONNECT BY PRIOR id=mgr_id |
| GENERATE_SERIES | | PostgreSQL:SELECT * FROM generate_series(1,10) |
| MATCH_RECOGNIZE | | |
| TABLESAMPLE | | SELECT * FROM large_table TABLESAMPLE SYSTEM(1) |
| WITH ORDINALITY | | PostgreSQL:SELECT * FROM json_array_elements('[1,2]') WITH ORDINALITY |
| INTERPOLATION | | Oracle:PERIOD FOR ... WITH INTERPOLATE |
| UNNEST | | PostgreSQL:SELECT * FROM unnest(ARRAY[1,2]) |
| LATERAL Subquery | | SELECT u.name, p.product FROM Users u, LATERAL (SELECT product FROM Purchases WHERE user_id=u.id LIMIT 3) p |
| ILIKE | | PostgreSQL:WHERE name ILIKE 'john%' |
五、函数与操作符
1. 聚合函数
| 函数 | 功能 | 示例 |
|---|
| COUNT() | | COUNT(*) |
| SUM() | | SUM(quantity * price) |
| AVG() | | AVG(DISTINCT score) |
| MIN() | | MIN(create_time) |
| MAX() | | MAX(temperature) |
| GROUP_CONCAT() | | MySQL:GROUP_CONCAT(name ORDER BY id SEPARATOR ',') |
| STRING_AGG() | | SQL Server:STRING_AGG(name, ',') WITHIN GROUP (ORDER BY id) |
| ARRAY_AGG() | | PostgreSQL:ARRAY_AGG(email) |
| JSON_ARRAYAGG() | | MySQL:JSON_ARRAYAGG(JSON_OBJECT('id',id,'name',name)) |
| JSON_OBJECTAGG() | | MySQL:JSON_OBJECTAGG(dept_name: COUNT(*)) |
| CORR() | | CORR(x, y) |
| STDDEV() | | STDDEV_POP(salary) |
| VAR() | | VAR_SAMP(price) |
| BIT_AND() | | MySQL:BIT_AND(permissions) |
| APPROX_COUNT_DISTINCT() | | SQL Server:APPROX_COUNT_DISTINCT(user_id) |
2. 标量函数
| 类型 | 函数 | 功能 |
|---|
| 字符串 | CONCAT() | 连接:CONCAT(first, ' ', last) |
| SUBSTRING() | |
| LEFT()/RIGHT() | |
| UPPER()/LOWER() | |
| TRIM() | 去除空格:TRIM(LEADING '0' FROM phone) |
| LENGTH()/CHAR_LENGTH() | |
| REPLACE() | 替换:REPLACE(title, 'Old', 'New') |
| REVERSE() | |
| LPAD()/RPAD() | 填充:LPAD(account, 10, '0') |
| INSTR() | |
| FORMAT() | 格式化:FORMAT(12345.678, 'C') |
| SOUNDEX() | |
| 数值 | ROUND() | |
| TRUNCATE() | |
| ABS() | |
| CEIL()/FLOOR() | |
| MOD() | |
| POWER()/SQRT() | |
| EXP()/LOG() | |
| RAND() | |
| PI() | |
| GREATEST()/LEAST() | |
| 日期 | NOW()/CURRENT_TIMESTAMP | |
| CURDATE()/CURTIME() | |
| DATE_ADD()/DATE_SUB() | 日期加减:DATE_ADD(hire_date, INTERVAL 1 YEAR) |
| DATEDIFF() | 日期差:DATEDIFF(day, start, end) |
| DATEPART()/EXTRACT() | 提取部分:EXTRACT(YEAR FROM birthdate) |
| DATE_FORMAT()/TO_CHAR() | |
| STR_TO_DATE() | |
| LAST_DAY() | |
| TIMESTAMPDIFF() | |
| 条件 | COALESCE() | 首非空值:COALESCE(middle_name, '') |
| NULLIF() | |
| IFNULL()/ISNULL() | |
| IF() | 简单逻辑:IF(qty>100, 'High', 'Low') |
| DECODE() | |
| JSON | JSON_EXTRACT() | 提取值:JSON_EXTRACT(doc, '$.address.city') |
| JSON_SET() | 设置值:JSON_SET(doc, '$.email', 'new@mail.com') |
| JSON_VALID() | |
| JSON_ARRAY() | |
| JSON_OBJECT() | |
| 分析 | FIRST_VALUE() | |
| PERCENT_RANK() | |
| 转换 | CAST() | 类型转换:CAST(price AS DECIMAL(10,2)) |
| CONVERT() | |
| TO_DATE()/TO_NUMBER() | |
六、存储过程与触发器
| 术语 | 功能 | 语法示例 |
|---|
| Stored Procedure | | CREATE PROCEDURE TransferFunds(IN from_acc INT, IN to_acc INT, IN amt DECIMAL)
BEGIN START TRANSACTION; UPDATE Accounts SET bal=bal-amt WHERE id=from_acc; UPDATE Accounts SET bal=bal+amt WHERE id=to_acc; COMMIT;
END |
| Function | | PostgreSQL:
CREATE FUNCTION area(r float) RETURNS float AS $$ BEGIN RETURN 3.14*r*r; END; $$ LANGUAGE plpgsql; |
| Trigger | | CREATE TRIGGER update_balance
AFTER INSERT ON Transactions
FOR EACH ROW
BEGIN UPDATE Accounts SET bal=bal+NEW.amount WHERE id=NEW.acc_id;
END |
| Parameter | | IN/OUT/INOUT |
| CALL | | MySQL:CALL CalculateBonus(@total); |
| DECLARE | | DECLARE total_sales DECIMAL(10,2) DEFAULT 0.0; |
| Cursor | | DECLARE cur CURSOR FOR SELECT ...; OPEN cur; FETCH cur INTO ...; CLOSE cur; |
| Condition Handler | | DECLARE CONTINUE HANDLER FOR SQLEXCEPTION ... |
| RETURN | | RETURN total_bonus; |
| LOOP/WHILE | | WHILE counter < 100 DO ... END WHILE; |
| IF-THEN-ELSE | | IF credit > 5000 THEN ... ELSE ... END IF; |
| BEFORE Trigger | | |
| AFTER Trigger | | |
| INSTEAD OF Trigger | | |
| ROW vs STATEMENT | | |
| SIGNAL/RESIGNAL | | SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='Error'; |
| RAISE | | PostgreSQL:RAISE EXCEPTION 'Invalid value: %', user_input; |
| DYNAMIC SQL | | SQL Server:EXEC sp_executesql @sql; |
七、事务与锁
| 术语 | 功能 | 命令示例 |
|---|
| BEGIN TRANSACTION | | START TRANSACTION; |
| COMMIT | | COMMIT; |
| ROLLBACK | | ROLLBACK TO SAVEPOINT sp1; |
| SAVEPOINT | | SAVEPOINT checkpoint; |
| Isolation Level | | SET TRANSACTION ISOLATION LEVEL READ COMMITTED; |
| READ UNCOMMITTED | | |
| READ COMMITTED | | |
| REPEATABLE READ | | |
| SERIALIZABLE | | |
| Shared Lock (S) | | |
| Exclusive Lock (X) | | |
| Intent Lock | | |
| Key-Range Lock | | |
| Deadlock | | |
| Lock Timeout | | SQL Server:SET LOCK_TIMEOUT 3000;(毫秒) |
| Deadlock Priority | | SET DEADLOCK_PRIORITY HIGH; |
| Lock Escalation | | |
| Row Versioning | | |
| Snapshot Isolation | | |
| Two-Phase Locking | | |
八、数据库设计与架构
| 术语 | 描述 | 设计原则 |
|---|
| ER Diagram | | |
| Normalization | | |
| Denormalization | | |
| Entity | | |
| Relationship | | |
| Attribute | | |
| Composite Key | | |
| Surrogate Key | | |
| Natural Key | | |
| Referential Integrity | | |
| Clustered Index | | |
| Non-clustered Index | | |
| Covering Index | | |
| Full-Text Index | | |
| Functional Dependency | | |
| Star Schema | | |
| Snowflake Schema | | |
| Fact Table | | |
| Dimension Table | | |
| Slowly Changing Dimension | | |
| Surrogate Key Pipeline | | |
| Hierarchical Data Model | | |
| Materialized Path | | |
| In-Memory OLTP | | |
九、高可用与扩展
| 技术 | 作用 | 架构示例 |
|---|
| Replication | | |
| Master-Slave | | |
| Multi-Master | | |
| Log Shipping | | |
| Failover | | |
| Sharding | | |
| Partitioning | | |
| Hot Standby | | |
| CDC | | |
| Table Partitioning | | |
| Query Router | | |
| In-Memory Database | | |
| Connection Pooling | | |
| Read Replica | | |
| Write-Ahead Log (WAL) | | |
| Logical Replication | | |
| GoldenGate | | |
| Delayed Replication | | |
十、执行计划与优化
| 术语 | 功能 | 操作命令 |
|---|
| EXPLAIN | | MySQL:EXPLAIN FORMAT=JSON SELECT ... |
| Execution Plan | | |
| Query Optimizer | | |
| Cost-Based Optimizer | | |
| Full Table Scan | | |
| Index Scan | | |
| Index Seek | | |
| Key Lookup | | |
| Filter/Predicate Pushdown | | |
| Nested Loop Join | | |
| Hash Join | | |
| Merge Join | | |
| Statistics | | |
| Query Hint | | SQL Server:OPTION (HASH JOIN) |
| Covering Index | | |
| Parallel Query | | |
| In-Memory OLAP | | |
| Materialized View | | |
十一、安全与权限
| 命令 | 功能 | 示例 |
|---|
| GRANT | | GRANT SELECT, UPDATE ON Customers TO sales_role; |
| REVOKE | | REVOKE DELETE ON Logs FROM auditor; |
| CREATE USER | | CREATE USER analyst IDENTIFIED BY 'S3cur3P@ss'; |
| ALTER USER | | ALTER USER scott PASSWORD EXPIRE; |
| CREATE ROLE | | CREATE ROLE finance; |
| SET ROLE | | |
| ROW LEVEL SECURITY | | |
| COLUMN ENCRYPTION | | SQL Server Always Encrypted |
| DATA MASKING | | CREATE MASKING POLICY email_mask AS (val string) RETURN CASE WHEN ... |
| AUDIT | | Oracle:AUDIT INSERT ANY TABLE BY ACCESS; |
| TDE | | |
| FIREWALL | | |
| SQL INJECTION | | |
| RBAC | | |
| OWASP TOP 10 | | |
| VIRTUAL PRIVATE DB | | |
| FEDERATED AUTH | | |
| PASSWORD POLICY | | |
十二、跨数据库差异速查
| 功能 | MySQL | SQL Server | PostgreSQL | Oracle |
|---|
| 字符串连接 | CONCAT() | + | || | CONCAT() |
| 当前时间 | NOW() | GETDATE() | CURRENT_TIMESTAMP | SYSDATE |
| 分页查询 | LIMIT 10 OFFSET 20 | OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY | | FETCH FIRST 10 ROWS ONLY |
| 正则表达式 | REGEXP '^A' | LIKE '[A-Z]%' | ~ '^A' | REGEXP_LIKE(name, '^A') |
| 随机行 | ORDER BY RAND() LIMIT 1 | SELECT TOP 1 * FROM Table ORDER BY NEWID() | ORDER BY RANDOM() LIMIT 1 | SELECT * FROM (SELECT * FROM Table ORDER BY DBMS_RANDOM.VALUE) WHERE ROWNUM=1 |
| 序列生成 | AUTO_INCREMENT | IDENTITY | CREATE SEQUENCE | SEQUENCE.NEXTVAL |
| 日期差 | DATEDIFF(day, d1, d2) | DATEDIFF(DAY, d1, d2) | d2 - d1 | d2 - d1 |
| 正则提取 | REGEXP_SUBSTR() | SUBSTRING() WITH PATINDEX | SUBSTRING() FROM 'pattern' | REGEXP_SUBSTR() |
| JSON解析 | JSON_EXTRACT() | JSON_VALUE() | json_column->>'key' | JSON_TABLE() |
| 递归查询 | WITH RECURSIVE | WITH ... UNION ALL | WITH RECURSIVE | CONNECT BY |
| 时区处理 | CONVERT_TZ() | AT TIME ZONE | AT TIME ZONE | FROM_TZ() |
| 分区表 | PARTITION BY RANGE | PARTITION FUNCTION | | PARTITION BY RANGE |
| 列转行 | UNION ALL | UNPIVOT | UNNEST() | UNPIVOT |
| 错误处理 | DECLARE HANDLER | TRY/CATCH | EXCEPTION | EXCEPTION |
| 窗口函数 | | | | |
| 表空间 | | | | |
| XML处理 | EXTRACTVALUE() | .nodes() | xpath() | XMLTABLE() |
| Spatial索引 | | | | |
(表格可左右滚动)
说明:
- 技术完整性:包含SQL92/SQL:2011标准及主流数据库扩展
- 跨平台对比:覆盖MySQL、SQL Server、PostgreSQL、Oracle四大RDBMS差异
建议配合具体数据库官方文档使用,并定期关注SQL标准演进。
阅读原文:原文链接
该文章在 2025/9/1 12:07:27 编辑过