【数据库】SQL语句简单运用

以下是常见SQL知识点的总结,以及从自然语言翻译为SQL语句的通用方法。


SQL知识点大全

1. 数据库操作

  • 创建数据库

    复制代码
    CREATE DATABASE DatabaseName;
  • 切换数据库

    复制代码
    USE DatabaseName;
  • 删除数据库

    复制代码
    DROP DATABASE DatabaseName;

2. 表操作

  • 创建表

    复制代码
    CREATE TABLE TableName (
        Column1 DataType Constraints,
        Column2 DataType Constraints,
        ...
    );

    示例:

    复制代码
    CREATE TABLE Employees (
        EmployeeID INT PRIMARY KEY,
        Name VARCHAR(50) NOT NULL,
        Birthday DATE,
        DepartmentID INT
    );
  • 修改表结构

    • 添加列:

      复制代码
      ALTER TABLE TableName ADD ColumnName DataType;
    • 删除列:

      复制代码
      ALTER TABLE TableName DROP COLUMN ColumnName;
    • 修改列类型:

      复制代码
      ALTER TABLE TableName ALTER COLUMN ColumnName NewDataType;
  • 删除表

    复制代码
    DROP TABLE TableName;

3. 数据操作

  • 插入数据

    复制代码
    INSERT INTO TableName (Column1, Column2, ...) VALUES (Value1, Value2, ...);
  • 查询数据

    • 简单查询:

      复制代码
      SELECT Column1, Column2 FROM TableName;
    • 条件查询:

      复制代码
      SELECT * FROM TableName WHERE Condition;

      示例:

      复制代码
      SELECT * FROM Employees WHERE DepartmentID = 1;
  • 更新数据

    复制代码
    UPDATE TableName SET Column1 = Value1, Column2 = Value2 WHERE Condition;
  • 删除数据

    复制代码
    DELETE FROM TableName WHERE Condition;

4. 权限管理

  • 创建登录名和用户

    复制代码
    CREATE LOGIN LoginName WITH PASSWORD = 'Password';
    CREATE USER UserName FOR LOGIN LoginName;
  • 授权用户

    复制代码
    GRANT PermissionType ON Object TO UserName;

    示例:

    复制代码
    GRANT SELECT, UPDATE ON Salary TO jadew;
  • 回收权限

    复制代码
    REVOKE PermissionType ON Object FROM UserName;

5. 高级查询

  • 排序

    复制代码
    SELECT * FROM TableName ORDER BY Column1 ASC/DESC;
  • 聚合函数

    复制代码
    SELECT COUNT(*), SUM(ColumnName), AVG(ColumnName), MAX(ColumnName), MIN(ColumnName) FROM TableName;
  • 分组

    复制代码
    SELECT Column1, COUNT(*) FROM TableName GROUP BY Column1;
  • 连接查询

    • 内连接:

      复制代码
      SELECT * FROM Table1 INNER JOIN Table2 ON Table1.Column = Table2.Column;
    • 外连接:

      复制代码
      SELECT * FROM Table1 LEFT JOIN Table2 ON Table1.Column = Table2.Column;

6. 角色管理

  • 创建角色

    复制代码
    CREATE ROLE RoleName;
  • 分配角色

    复制代码
    EXEC sp_addrolemember 'RoleName', 'UserName';

7. 约束和索引

  • 添加主键/外键

    复制代码
    ALTER TABLE TableName ADD CONSTRAINT ConstraintName PRIMARY KEY (ColumnName);
    ALTER TABLE TableName ADD CONSTRAINT ConstraintName FOREIGN KEY (ColumnName) REFERENCES OtherTable(ColumnName);
  • 创建索引

    复制代码
    CREATE INDEX IndexName ON TableName(ColumnName);

自然语言翻译为SQL语句的技巧

  1. 识别核心动词和目标

    自然语言中的动词如"创建"、"查询"、"更新"往往对应SQL的操作:CREATESELECTUPDATE等。

    • 示例
      自然语言:"创建一个名为Departments的表,包含DepartmentID、Departmentname和Note列。"
      翻译:

      复制代码
      CREATE TABLE Departments (
          DepartmentID INT PRIMARY KEY,
          Departmentname VARCHAR(100),
          Note TEXT
      );
  2. 分解条件和逻辑

    自然语言描述的条件,如"所有销售额大于5000的记录",对应WHERE子句。

    • 示例
      自然语言:"查询所有收入大于5000的员工信息。"
      翻译:

      复制代码
      SELECT * FROM Salary WHERE Income > 5000;
  3. 分解多步骤任务

    对于描述复杂任务的自然语言,可以分解为多个SQL操作:

    • 示例
      自然语言:"先创建一个用户,然后授予其对Employees表的查询权限。"
      翻译:

      复制代码
      CREATE LOGIN new_user WITH PASSWORD = 'password123';
      CREATE USER new_user FOR LOGIN new_user;
      GRANT SELECT ON Employees TO new_user;
  4. 映射名词到数据库对象

    名词通常映射到表、列或数据库。例如:

    • "部门" => Departments
    • "员工信息" => Employees
  5. 检查语法逻辑

    将自然语言任务中的逻辑如"且/或"转化为SQL的AND/OR运算符:

    • 示例
      自然语言:"查询所有女性员工,且工作年份大于5年。"
      翻译:

      复制代码
      SELECT * FROM Employees WHERE Sex = 'F' AND Workyear > 5;
  6. 利用模板和通用结构

    对常见的SQL任务(如查询、权限管理)构建模板,根据实际需求填充。

    • 查询模板:

      复制代码
      SELECT Columns FROM TableName WHERE Conditions;
    • 权限管理模板:

      复制代码
      GRANT Permissions ON Object TO UserName;
  7. 多表逻辑处理

    自然语言涉及多个实体时,通常需要连接查询:

    • 示例
      自然语言:"查询每个部门的员工姓名和部门名称。"
      翻译:

      复制代码
      SELECT e.Name, d.Departmentname
      FROM Employees e
      INNER JOIN Departments d ON e.DepartmentID = d.DepartmentID;

通过这些方法,能够更高效地将自然语言任务转化为正确的SQL语句!

相关推荐
倔强的石头_16 小时前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测
数据库
zzzzzz3102 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
倔强的石头_4 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
云技纵横4 天前
唯一索引 INSERT 死锁实战:5 秒复现交叉插入的 S 锁循环等待
sql·mysql
冬奇Lab4 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence5 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神5 天前
三、用户与权限管理
数据库·mysql
麦聪聊数据5 天前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_5 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
DARLING Zero two♡5 天前
【MySQL数据库】数据类型与表约束
数据库·mysql