SQL 基础知识

SQL(结构化查询语言)是一种用于管理和操作关系数据库的标准编程语言。以下是一些 SQL 的基础知识:

基本概念

  1. 数据库(Database) :

    存储和管理数据的容器。一个数据库可以包含多个表。

  2. 表(Table) :

    数据以行和列的形式存储在表中。表的结构包括列(字段),每列有特定的数据类型。

  3. 行(Row) :

    表中的每条记录。

  4. 列(Column) :

    表中的字段,每个字段存储特定类型的数据。

数据类型

常见的数据类型包括:

  • 整数类型 :INT, BIGINT, SMALLINT, TINYINT
  • 浮点数类型 :FLOAT, DOUBLE, DECIMAL
  • 字符类型 :CHAR, VARCHAR
  • 文本类型 :TEXT, BLOB
  • 日期和时间类型 :DATE, TIME, DATETIME, TIMESTAMP

SQL 操作

数据定义语言(DDL)

用于定义和管理数据库结构的命令。

  • 创建数据库:

    sql 复制代码
    CREATE DATABASE database_name;
  • 创建表:

    sql 复制代码
    CREATE TABLE table_name (
        column1 datatype,
        column2 datatype,
        ...
    );
  • 删除数据库:

    sql 复制代码
    DROP DATABASE database_name;
  • 删除表:

    sql 复制代码
    DROP TABLE table_name;
  • 修改表:

    sql 复制代码
    ALTER TABLE table_name
    ADD column_name datatype;
数据操作语言(DML)

用于数据的查询、插入、更新和删除。

  • 插入数据:

    sql 复制代码
    INSERT INTO table_name (column1, column2, ...)
    VALUES (value1, value2, ...);
  • 查询数据:

    sql 复制代码
    SELECT column1, column2, ...
    FROM table_name
    WHERE condition;
  • 更新数据:

    sql 复制代码
    UPDATE table_name
    SET column1 = value1, column2 = value2, ...
    WHERE condition;
  • 删除数据:

    sql 复制代码
    DELETE FROM table_name
    WHERE condition;
数据控制语言(DCL)

用于控制对数据库的访问权限。

  • 授予权限:

    sql 复制代码
    GRANT ALL PRIVILEGES ON database_name.*
    TO 'username'@'host'
    IDENTIFIED BY 'password';
  • 撤销权限:

    sql 复制代码
    REVOKE ALL PRIVILEGES ON database_name.*
    FROM 'username'@'host';
事务控制语言(TCL)

用于管理事务,确保数据库操作的原子性、一致性、隔离性和持久性(ACID)。

  • 开始事务:

    sql 复制代码
    START TRANSACTION;
  • 提交事务:

    sql 复制代码
    COMMIT;
  • 回滚事务:

    sql 复制代码
    ROLLBACK;

查询示例

  • 简单查询:

    sql 复制代码
    SELECT * FROM employees;
  • 带条件的查询:

    sql 复制代码
    SELECT * FROM employees
    WHERE department = 'Sales';
  • 排序查询:

    sql 复制代码
    SELECT * FROM employees
    ORDER BY salary DESC;
  • 聚合函数:

    sql 复制代码
    SELECT COUNT(*), AVG(salary)
    FROM employees
    WHERE department = 'Sales';
  • 连接查询:

    sql 复制代码
    SELECT employees.name, departments.name
    FROM employees
    INNER JOIN departments
    ON employees.department_id = departments.id;
相关推荐
IT大白鼠2 分钟前
渗透测试实战从靶场搭建到渗透流程——第 8 篇 · 服务型靶标(上):MySQL 双版本写文件链
数据库·mysql·渗透测试
piaoyiren26 分钟前
Python FTP 服务端项目详细功能文档
网络·数据库·python
少年的范儿28 分钟前
Windows 安装 MySQL 8.4 教程(ZIP 解压版):配置 my.ini、初始化数据库与启动服务
数据库·windows·mysql
l1t38 分钟前
DeepSeek总结的AI 智能体应该用哪种语言搜索其记忆:SQL 还是 SPARQL?
数据库·人工智能·sql
麦壳饼1 小时前
SonnetDB:PID 调参实战:阶跃响应分析与参数解读
数据库·sonnetdb
猿究院--Cu-Sn合金1 小时前
Spring Boot + DeepSeek 求职 Agent 实践:工具注册、多轮调用与简历 JD 对比
数据库·人工智能·spring boot·后端·deepseek
IvorySQL1 小时前
PostgreSQL 日报|Anonymizer 3.3 修复高危漏洞(10 月 29 日)
数据库·postgresql
geovindu2 小时前
SQL Data Sampling and Approximation Techniques using postgreSQL 18
大数据·数据库·数据仓库·sql·postgresql·数据库开发·数据库架构
zyseo82 小时前
谷歌SEO 关键词研究完整方法论:从种子词到优先级矩阵
数据库·人工智能·矩阵
PaperData2 小时前
2000-2025年上市公司绿色金融改革创新试验区政策试点DID
数据库