您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

basic_sql__syntax

数据库表

一个数据库通常包含一个或多个表,每个表有一个名字标识(例如:"Websites"),表包含带有数据的记录(行)。

在本教程中,我们在 MySQL 的 RUNOOB 数据库中创建了 Websites 表,用于存储网站记录。

我们可以通过以下命令查看 "Websites" 表的数据:


mysql> use RUNOOB;
Database changed

mysql> set names utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM Websites;
+----+--------------+---------------------------+-------+---------+
+----+--------------+---------------------------+-------+---------+
<table>
<tr>
<th>1</th>
<th>Google</th>
<th>https://www.google.cm/</th>
<th>1</th>
<th>USA</th>
</tr>
<tr>
<td>3</td>
<td>菜鸟教程</td>
<td>http://www.runoob.com/</td>
<td>4689</td>
<td>CN</td>
</tr>
<tr>
<td>4</td>
<td>微博</td>
<td>http://weibo.com/</td>
<td>20</td>
<td>CN</td>
</tr>
<tr>
<td>5</td>
<td>Facebook</td>
<td>https://www.facebook.com/</td>
<td>3</td>
<td>USA</td>
</tr>
</table>

+----+--------------+---------------------------+-------+---------+
5 rows in set (0.01 sec)

解析

  • use RUNOOB; 命令用于选择数据库。

  • set names utf8; 命令用于设置使用的字符集。

    SELECT * FROM Websites; 读取数据表的信息。

    上面的表包含五条记录(每一条对应一个网站信息)和5个列(id、name、url、alexa 和country)。

    SQL 语句

    您需要在数据库上执行的大部分工作都由 SQL 语句完成。

    下面的 SQL 语句从 "Websites" 表中选取所有记录:

    实例

    SELECT * FROM Websites;

    在本教程中,我们将为您讲解各种不同的 SQL 语句。

    请记住...

    SQL 对大小写不敏感:SELECT 与 select 是相同的。

    SQL 语句后面的分号?

    某些数据库系统要求在每条 SQL 语句的末端使用分号。

    分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的 SQL 语句。

    在本教程中,我们将在每条 SQL 语句的末端使用分号。

    一些最重要的 SQL 命令

    
    SELECT - 从数据库中提取数据
    UPDATE - 更新数据库中的数据
    DELETE - 从数据库中删除数据
    INSERT INTO - 向数据库中插入新数据
    CREATE DATABASE - 创建新数据库
    ALTER DATABASE - 修改数据库
    CREATE TABLE - 创建新表
    ALTER TABLE - 变更(改变)数据库表
    DROP TABLE - 删除表
    CREATE INDEX - 创建索引(搜索键)
    DROP INDEX - 删除索引
    

    以下是一些常用的 SQL 语句和语法:

    SELECT:用于从数据库中查询数据。

    
    SELECT column_name(s)
    FROM table_name
    WHERE condition
    ORDER BY column_name [ASC|DESC]
    

  • column_name(s): 要查询的列。

  • table_name: 要查询的表。

  • condition: 查询条件(可选)。

  • ORDER BY: 排序方式,ASC 表示升序,DESC 表示降序(可选)。

    INSERT INTO:用于向数据库表中插入新数据。

    
    INSERT INTO table_name (column1, column2, ...)
    VALUES (value1, value2, ...)
    

  • table_name: 要插入数据的表。

  • column1, column2, ...: 要插入数据的列。

  • value1, value2, ...: 对应列的值。

    UPDATE:用于更新数据库表中的现有数据。

    
    UPDATE table_name
    SET column1 = value1, column2 = value2, ...
    WHERE condition
    

  • table_name: 要更新数据的表。

  • column1 = value1, column2 = value2, ...: 要更新的列及其新值。

  • condition: 更新条件。

    DELETE:用于从数据库表中删除数据。

    
    DELETE FROM table_name
    WHERE condition
    

  • table_name: 要删除数据的表。

  • condition: 删除条件。

    CREATE TABLE:用于创建新的数据库表。

    
    CREATE TABLE table_name (
        column1 data_type constraint,
        column2 data_type constraint,
        ...
    )
    

  • table_name: 要创建的表名。

  • column1, column2, ...: 表的列。

  • data_type: 列的数据类型(如 INT、VARCHAR 等)。

  • constraint: 列的约束(如 PRIMARY KEY、NOT NULL 等)。

    ALTER TABLE:用于修改现有数据库表的结构。

    
    ALTER TABLE table_name
    ADD column_name data_type
    

  • table_name: 要修改的表。

  • column_name: 要添加的列。

  • data_type: 列的数据类型。

    或:

    
    ALTER TABLE table_name
    DROP COLUMN column_name
    

  • column_name: 要删除的列。

  • DROP TABLE:用于删除数据库表。

    
    DROP TABLE table_name
    

  • table_name: 要删除的表。

    CREATE INDEX:用于创建索引,以加快查询速度。

    
    CREATE INDEX index_name
    ON table_name (column_name)
    

  • index_name: 索引的名称。

  • column_name: 要索引的列。

    DROP INDEX:用于删除索引。

    
    DROP INDEX index_name
    ON table_name
    

  • index_name: 要删除的索引名称。

  • table_name: 索引所在的表。

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

    
    SELECT column_name(s)
    FROM table_name
    ORDER BY column_name [ASC|DESC]
    

  • column_name: 用于排序的列。

  • ASC: 升序(默认)。

  • DESC: 降序。

    GROUP BY:用于将结果集按一列或多列进行分组。

    
    SELECT column_name(s), aggregate_function(column_name)
    FROM table_name
    WHERE condition
    GROUP BY column_name(s)
    
    aggregate_function: 聚合函数(如 COUNT、SUM、AVG 等)。
    

    HAVING:用于对分组后的结果集进行筛选。

    
    SELECT column_name(s), aggregate_function(column_name)
    FROM table_name
    GROUP BY column_name(s)
    HAVING condition
    

  • condition: 筛选条件。

    JOIN:用于将两个或多个表的记录结合起来。

    
    SELECT column_name(s)
    FROM table_name1
    JOIN table_name2
    ON table_name1.column_name = table_name2.column_name
    
    JOIN: 可以是 INNER JOIN、LEFT JOIN、RIGHT JOIN 或 FULL JOIN。
    

    DISTINCT:用于返回唯一不同的值。

    
    SELECT DISTINCT column_name(s)
    FROM table_name
    

  • column_name(s): 要查询的列。

    来源:https://www.runoob.com/sql/sql-syntax.html