SQL(1)-基本用法

SQL(Structured Query Language)是用于管理和操作关系型数据库的标准语言。以下是SQL的一些常用知识点,涵盖了基本的查询、数据操作、数据定义和数据控制等方面:

1. 基本查询

  • SELECT语句:用于从数据库中检索数据。

    1
    2
    SELECT column1, column2, ...
    FROM table_name;
  • WHERE子句:用于过滤记录。

    1
    2
    3
    SELECT column1, column2, ...
    FROM table_name
    WHERE condition;
  • AND / OR:用于组合多个条件。

    1
    2
    3
    SELECT column1, column2, ...
    FROM table_name
    WHERE condition1 AND condition2;
  • IN子句:用于指定多个可能的值。

    1
    2
    3
    SELECT column1, column2, ...
    FROM table_name
    WHERE column_name IN (value1, value2, ...);
  • BETWEEN子句:用于选取介于两个值之间的数据。

    1
    2
    3
    SELECT column1, column2, ...
    FROM table_name
    WHERE column_name BETWEEN value1 AND value2;
  • LIKE子句:用于模式匹配。

    1
    2
    3
    SELECT column1, column2, ...
    FROM table_name
    WHERE column_name LIKE pattern;

2. 排序和分组

  • ORDER BY子句:用于对结果集进行排序。

    1
    2
    3
    SELECT column1, column2, ...
    FROM table_name
    ORDER BY column1 ASC/DESC;
  • GROUP BY子句:用于将数据分组。

    1
    2
    3
    SELECT column1, column2, AGGREGATE_FUNCTION(column3)
    FROM table_name
    GROUP BY column1, column2;
  • HAVING子句:用于过滤分组后的结果。

    1
    2
    3
    4
    SELECT column1, AGGREGATE_FUNCTION(column2)
    FROM table_name
    GROUP BY column1
    HAVING AGGREGATE_FUNCTION(column2) condition;

3. 聚合函数

  • COUNT:用于计数。

    1
    2
    SELECT COUNT(column_name)
    FROM table_name;
  • SUM:用于求和。

    1
    2
    SELECT SUM(column_name)
    FROM table_name;
  • AVG:用于求平均值。

    1
    2
    SELECT AVG(column_name)
    FROM table_name;
  • MAX:用于求最大值。

    1
    2
    SELECT MAX(column_name)
    FROM table_name;
  • MIN:用于求最小值。

    1
    2
    SELECT MIN(column_name)
    FROM table_name;

4. 数据操作

  • INSERT语句:用于插入新记录。

    1
    2
    INSERT INTO table_name (column1, column2, ...)
    VALUES (value1, value2, ...);
  • UPDATE语句:用于更新现有记录。

    1
    2
    3
    UPDATE table_name
    SET column1 = value1, column2 = value2, ...
    WHERE condition;
  • DELETE语句:用于删除记录。

    1
    2
    DELETE FROM table_name
    WHERE condition;

5. 数据定义

  • CREATE TABLE语句:用于创建新表。

    1
    2
    3
    4
    5
    CREATE TABLE table_name (
    column1 datatype constraints,
    column2 datatype constraints,
    ...
    );
  • ALTER TABLE语句:用于修改表结构。

    1
    2
    ALTER TABLE table_name
    ADD column_name datatype;
  • DROP TABLE语句:用于删除表。

    1
    DROP TABLE table_name;

6. 约束

  • PRIMARY KEY:用于唯一标识表中的每条记录。

    1
    2
    3
    4
    5
    CREATE TABLE table_name (
    column1 datatype PRIMARY KEY,
    column2 datatype,
    ...
    );
  • FOREIGN KEY:用于建立表之间的关系。

    1
    2
    3
    4
    5
    CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    FOREIGN KEY (column1) REFERENCES other_table_name(column1)
    );
  • UNIQUE:用于确保列中的所有值都是唯一的。

    1
    2
    3
    4
    5
    CREATE TABLE table_name (
    column1 datatype UNIQUE,
    column2 datatype,
    ...
    );
  • NOT NULL:用于确保列中的值不能为空。

    1
    2
    3
    4
    5
    CREATE TABLE table_name (
    column1 datatype NOT NULL,
    column2 datatype,
    ...
    );

7. 子查询

  • 子查询:在一个查询中嵌套另一个查询。
    1
    2
    3
    SELECT column1, column2, ...
    FROM table_name
    WHERE column1 = (SELECT column1 FROM another_table WHERE condition);

8. 联接(JOIN)

  • INNER JOIN:返回两个表中匹配的记录。

    1
    2
    3
    4
    SELECT table1.column1, table2.column2, ...
    FROM table1
    INNER JOIN table2
    ON table1.common_column = table2.common_column;
  • LEFT JOIN:返回左表中的所有记录,以及右表中匹配的记录。

    1
    2
    3
    4
    SELECT table1.column1, table2.column2, ...
    FROM table1
    LEFT JOIN table2
    ON table1.common_column = table2.common_column;
  • RIGHT JOIN:返回右表中的所有记录,以及左表中匹配的记录。

    1
    2
    3
    4
    SELECT table1.column1, table2.column2, ...
    FROM table1
    RIGHT JOIN table2
    ON table1.common_column = table2.common_column;
  • FULL OUTER JOIN:返回两个表中的所有记录,如果没有匹配,则返回 NULL。

    1
    2
    3
    4
    SELECT table1.column1, table2.column2, ...
    FROM table1
    FULL OUTER JOIN table2
    ON table1.common_column = table2.common_column;

9. 事务控制

  • BEGIN TRANSACTION:开始一个事务。

    1
    BEGIN TRANSACTION;
  • COMMIT:提交事务。

    1
    COMMIT;
  • ROLLBACK:回滚事务。

    1
    ROLLBACK;

10. 视图

  • CREATE VIEW:创建视图。

    1
    2
    3
    4
    CREATE VIEW view_name AS
    SELECT column1, column2, ...
    FROM table_name
    WHERE condition;
  • DROP VIEW:删除视图。

    1
    DROP VIEW view_name;

11. 索引

  • CREATE INDEX:创建索引。

    1
    2
    CREATE INDEX index_name
    ON table_name (column1, column2, ...);
  • DROP INDEX:删除索引。

    1
    DROP INDEX index_name;

12. 存储过程和函数

  • 存储过程:预编译的SQL代码块,可以多次调用。

    1
    2
    3
    4
    5
    CREATE PROCEDURE procedure_name
    AS
    BEGIN
    -- SQL statements
    END;
  • 函数:返回一个值的预编译的SQL代码块。

    1
    2
    3
    4
    5
    6
    7
    CREATE FUNCTION function_name (parameters)
    RETURNS datatype
    AS
    BEGIN
    -- SQL statements
    RETURN result;
    END;
Author

s-serenity

Posted on

2021-08-07

Updated on

2024-11-07

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.