SQL 语句及其分类

SQL(Structured Query Language)即结构化查询语言,用于管理关系型数据库。

以下是对 SQL 语句分类的介绍及代码演示 :

一、数据查询语言(DQL)

主要用于从数据库中检索数据。

  1. SELECT语句:
    • 用于从一个或多个表中检索特定的列或所有列的数据。
    • 语法:SELECT column1, column2,... FROM table_name;SELECT * FROM table_name;
    • 代码演示:
      • 查询所有列:SELECT * FROM employees;(假设employees是表名)。
      • 查询特定列:SELECT name, age FROM employees;
    • 可以结合WHERE子句进行条件筛选,例如:SELECT * FROM employees WHERE age > 30;
    • 还可以使用ORDER BY进行排序,如:SELECT * FROM employees ORDER BY salary DESC;(按薪资降序排列)。

二、数据操作语言(DML)

用于操作数据库中的数据。

  1. INSERT语句:
    • 向表中插入新的数据行。
    • 语法:INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,...);
    • 代码演示:
      • INSERT INTO employees (name, age, department) VALUES ('John', 35, 'Sales');
  2. UPDATE语句:
    • 更新表中已有的数据行。
    • 语法:UPDATE table_name SET column1 = value1, column2 = value2,... WHERE condition;
    • 代码演示:
      • UPDATE employees SET salary = salary + 1000 WHERE department = 'Engineering';(给工程部门的员工涨薪 1000)。
  3. DELETE语句:
    • 删除表中的数据行。
    • 语法:DELETE FROM table_name WHERE condition;
    • 代码演示:
      • DELETE FROM employees WHERE age < 25;(删除年龄小于 25 岁的员工数据)。

三、数据定义语言(DDL)

用于定义数据库的结构。

  1. CREATE语句:
    • 创建数据库对象,如表、索引、视图等。
    • 语法:
      • 创建表:CREATE TABLE table_name (column1 datatype1, column2 datatype2,...);
      • 创建索引:CREATE INDEX index_name ON table_name (column_name);
    • 代码演示:
      • 创建表:CREATE TABLE customers (id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100));
      • 创建索引:CREATE INDEX idx_customers_name ON customers (name);
  2. ALTER语句:
    • 修改数据库对象的结构。
    • 语法:
      • 修改表结构:ALTER TABLE table_name ADD column_name datatype;ALTER TABLE table_name MODIFY column_name datatype;等。
    • 代码演示:
      • 添加列:ALTER TABLE customers ADD phone VARCHAR(20);
      • 修改列数据类型:ALTER TABLE customers MODIFY email VARCHAR(150);
  3. DROP语句:
    • 删除数据库对象。
    • 语法:DROP TABLE table_name;DROP INDEX index_name;等。
    • 代码演示:
      • 删除表:DROP TABLE customers;
      • 删除索引:DROP INDEX idx_customers_name;

四、数据控制语言(DCL)

用于控制数据库的访问权限和事务处理。

  1. GRANT语句:
    • 授予用户对数据库对象的特定权限。
    • 语法:GRANT privilege1, privilege2,... ON object_name TO user_name;
    • 代码演示:
      • GRANT SELECT, INSERT ON customers TO user1;(授予用户user1customers表的查询和插入权限)。
  2. REVOKE语句:
    • 撤销用户对数据库对象的特定权限。
    • 语法:REVOKE privilege1, privilege2,... ON object_name FROM user_name;
    • 代码演示:
      • REVOKE INSERT ON customers FROM user1;(撤销用户user1customers表的插入权限)。
  3. COMMITROLLBACK语句:
    • COMMIT用于提交事务,使对数据库的更改永久生效。
    • ROLLBACK用于回滚事务,撤销对数据库的更改。
    • 代码演示:
      • 开始事务:BEGIN TRANSACTION;
      • 执行一些数据库操作。
      • COMMIT;ROLLBACK;根据需要决定是提交还是回滚事务。

五、事务控制语言(TCL)

用于管理事务。

  1. BEGIN TRANSACTION语句:
    • 开始一个新事务。
    • 代码演示:BEGIN TRANSACTION;
  2. SAVEPOINT语句:
    • 在事务中创建一个保存点。
    • 语法:SAVEPOINT savepoint_name;
    • 代码演示:SAVEPOINT sp1;
  3. ROLLBACK TO语句:
    • 回滚到指定的保存点。
    • 语法:ROLLBACK TO savepoint_name;
    • 代码演示:ROLLBACK TO sp1;

SQL 语句是与关系型数据库交互的重要工具,不同类型的 SQL 语句分别用于不同的数据库操作任务。通过合理运用这些语句,可以实现对数据库的高效管理和数据处理。在实际使用中,需要根据具体的业务需求和数据库结构选择合适的 SQL 语句,并注意数据的安全性和一致性。

相关推荐
不良人龍木木4 分钟前
sqlalchemy FastAPI 前端实现数据库增删改查
前端·数据库·fastapi
落霞与孤鹭齐飞。。6 分钟前
民间故事推广系统小程序的设计
java·spring boot·mysql·毕业设计·课程设计
企业管理8MSaaS8 分钟前
如何在团队中有效利用工时管理软件?
数据库
Code成立42 分钟前
HTML5中IndexedDB前端本地数据库
前端·数据库·html5·indexeddb
码农研究僧1 小时前
详细分析linux中的MySql跳过密码验证以及Bug(图文)
linux·mysql·bug·密码验证
goTsHgo1 小时前
clickhouse适用的业务场景
数据库·clickhouse
老华带你飞1 小时前
美术|基于java+vue的美术外包管理信息系统(源码+数据库+文档)
java·数据库·vue.js
懂一点的陈老师1 小时前
redis分布式锁死锁场景
数据库·分布式·死锁
计算机学姐2 小时前
基于SpringBoot+Vue的瑜伽体验课预约管理系统
java·vue.js·spring boot·后端·mysql·intellij-idea·mybatis
MARSERERER2 小时前
JDBC客户端连接Starrocks 2.5
数据库