sql语法学习:关键点和详细解释

学习SQL语法是掌握数据库操作的基础。以下是SQL语法的一些关键点和详细解释:

1. SQL基础

SQL(Structured Query Language)是一种用于管理和操作关系型数据库的标准语言。它主要包括以下几个部分:

  • 数据定义语言(DDL):用于定义数据库结构,如创建、修改和删除数据库对象。
  • 数据操作语言(DML):用于操作数据库中的数据,如插入、更新和删除记录。
  • 数据查询语言(DQL):用于从数据库中检索数据。
  • 数据控制语言(DCL):用于管理数据库的访问权限。

2. DDL(数据定义语言)

创建数据库和表
复制代码
CREATE DATABASE database_name;

CREATE TABLE table_name (
    column1 datatype constraint,
    column2 datatype constraint,
    ...
);
  • CREATE DATABASE 用于创建数据库。
  • CREATE TABLE 用于创建表,指定列名、数据类型和约束条件。
修改表结构

ALTER TABLE table_name

ADD column_name datatype;

ALTER TABLE table_name

DROP COLUMN column_name;

ALTER TABLE table_name

MODIFY COLUMN column_name datatype;

  • ALTER TABLE 用于修改表结构,可以添加、删除或修改列。
删除表和数据库

DROP TABLE table_name;

DROP DATABASE database_name;

3. DML(数据操作语言)

插入数据

INSERT INTO table_name (column1, column2, ...)

VALUES (value1, value2, ...);

  • INSERT INTO 用于向表中插入数据。
更新数据

UPDATE table_name

SET column1 = value1, column2 = value2, ...

WHERE condition;

  • UPDATE 用于更新表中的数据。
删除数据

DELETE FROM table_name

WHERE condition;

  • DELETE 用于删除表中的数据。

4. DQL(数据查询语言)

基本查询

SELECT column1, column2, ...

FROM table_name

WHERE condition;

  • SELECT 用于从表中检索数据。
  • WHERE 用于指定查询条件。
排序和分组

SELECT column1, column2, ...

FROM table_name

ORDER BY column1 ASC|DESC;

SELECT column1, COUNT(*)

FROM table_name

GROUP BY column1;

  • ORDER BY 用于对结果进行排序。
  • GROUP BY 用于对结果进行分组。
连接查询

SELECT column1, column2, ...

FROM table1

JOIN table2 ON table1.column = table2.column;

  • JOIN 用于连接多个表进行查询。

5. DCL(数据控制语言)

授权和撤销权限

GRANT privilege ON object TO user;

REVOKE privilege ON object FROM user;

  • GRANT 用于授予用户权限。
  • REVOKE 用于撤销用户权限。

6. 常用函数

聚合函数

SELECT COUNT(column_name) FROM table_name;

SELECT SUM(column_name) FROM table_name;

SELECT AVG(column_name) FROM table_name;

SELECT MAX(column_name) FROM table_name;

SELECT MIN(column_name) FROM table_name;

  • COUNT 用于计算行数。
  • SUM 用于计算总和。
  • AVG 用于计算平均值。
  • MAX 用于计算最大值。
  • MIN 用于计算最小值。
字符串函数

SELECT CONCAT(column1, column2) FROM table_name;

SELECT LENGTH(column_name) FROM table_name;

SELECT SUBSTRING(column_name, start, length) FROM table_name;

  • CONCAT 用于连接字符串。
  • LENGTH 用于计算字符串长度。
  • SUBSTRING 用于截取字符串。

7. 事务控制

BEGIN TRANSACTION;

COMMIT;

ROLLBACK;

  • BEGIN TRANSACTION 用于开始一个事务。
  • COMMIT 用于提交事务。
  • ROLLBACK 用于回滚事务。

8. 索引

CREATE INDEX index_name

ON table_name (column_name);

DROP INDEX index_name ON table_name;

  • CREATE INDEX 用于创建索引。
  • DROP INDEX 用于删除索引。

9. 视图

CREATE VIEW view_name AS

SELECT column1, column2, ...

FROM table_name

WHERE condition;

DROP VIEW view_name;

  • CREATE VIEW 用于创建视图。
  • DROP VIEW 用于删除视图。

1. 存储过程和触发器

存储过程

CREATE PROCEDURE procedure_name

AS

BEGIN

-- SQL statements

END;

EXEC procedure_name;

  • CREATE PROCEDURE 用于创建存储过程。
  • EXEC 用于执行存储过程。
触发器

CREATE TRIGGER trigger_name

ON table_name

FOR INSERT, UPDATE, DELETE

AS

BEGIN

-- SQL statements

END;

  • CREATE TRIGGER 用于创建触发器。

总结

SQL语法涵盖了数据库操作的各个方面,从基本的增删改查到复杂的查询、事务控制和高级功能如存储过程和触发器。掌握这些语法将帮助你有效地管理和操作数据库。

相关推荐
Csvn7 小时前
📊 SQL 入门 Day 12: 窗口函数基础
后端·sql
安_8 小时前
MySQL SQL 调优完整指南
数据库·sql·mysql
我命由我1234511 小时前
SQLite 数据库参数数量超限导致的崩溃问题:SQLiteException: too many SQL variables
java·数据库·sql·java-ee·sqlite·android-studio·android runtime
Lethehong13 小时前
【金仓数据库征文】AI 直连国产数据库——KES MCP Server 自然语言查库与 SQL 调优实战
数据库·人工智能·sql·金仓数据库征文
阿里云大数据AI技术21 小时前
EMR Serverless Spark AI Function 的双维降本实践
人工智能·sql·spark
jnrjian1 天前
psql 执行多个 sql 文件
数据库·sql
long3161 天前
PostgreSQL 学习资料大全:从入门到精通
java·数据库·sql·postgresql
阳光九叶草LXGZXJ1 天前
达梦数据库-报错-11-cmd 13 validate error
linux·运维·数据库·sql·学习
染指11101 天前
72.高级RAG-sql检索器
python·sql·mysql·llama·llamaindex·高级rag
long3161 天前
PostgreSQL 学习资料 · 入门 / 练习 / 精通 / 扩展
java·数据结构·数据库·spring boot·sql·postgresql·数据库开发