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

相关推荐
编程充电站pro1 小时前
面试陷阱:SQL 子查询 vs JOIN 的性能差异
数据库·sql
235163 小时前
【MySQL】MVCC:从核心原理到幻读解决方案
java·数据库·后端·sql·mysql·缓存
IT 小阿姨(数据库)5 小时前
PostgreSQL通过pg_basebackup物理备份搭建流复制备库(Streaming Replication Standby)
运维·服务器·数据库·sql·postgresql·centos
菲兹园长9 小时前
MySql(SQL)
数据库·sql·mysql
豆沙沙包?11 小时前
2025年--Lc172--H178 .分数排名(SQL)--Java版
数据库·sql
勇者无畏40418 小时前
MySQL 中一条 SQL 语句的执行流程
sql·mysql·缓存
养生技术人1 天前
Oracle OCP认证考试题目详解082系列第45题
运维·数据库·sql·oracle·开闭原则·ocp
BD_Marathon1 天前
【MySQL】SQL的分类
数据库·sql·mysql
Hello.Reader1 天前
Flink 作业测试依赖、MiniCluster、DataStream 与 Table/SQL 上手
大数据·sql·flink
孟意昶1 天前
Spark专题-第三部分:性能监控与实战优化(3)-数据倾斜优化
大数据·分布式·sql·spark