SQL数据库基础

发布于 2024-03-02  246 次阅读



drop 命令删除数据库

drop 命令格式:
DROP DATABASE <database_name>; -- 直接删除数据库,不检查是否存在

DROP DATABASE [IF EXISTS] <database_name>; --表示如果数据库存在才执行删除操作

在你连接到 MySQL 数据库后,可能有多个可以操作的数据库,所以你需要选择你要操作的数据库。

USE database_name; ---database_name 是你要选择的数据库的名称。

MySQL 中定义数据字段的类型对你数据库的优化是非常重要的。

MySQL 支持多种类型,大致可以分为三类:数值日期/时间字符串(字符)类型。

创建 MySQL 数据表需要以下信息:

  • 表名
  • 表字段名
  • 定义每个表字段的数据类型

CREATE TABLE table_name (
colume1 datatype,
colume2 datatype,
...
);

参数说明:

  • table_name 是你要创建的表的名称。
  • column1, column2, ... 是表中的列名。
  • datatype 是每个列的数据类型。

DROP TABLE table_name ; - - 直接删除表,不检查是否存在

DROP TABLE [IF EXISTS] table_name; -- 表存在才执行删除

MySQL 表中使用 INSERT INTO 语句来插入数据。

语法
INSERT INTO table_name (column1,column2,column3, ....)
VALUES (value1, value2, value3, .......);

参数说明:

  • table_name 是你要插入数据的表的名称。
  • column1, column2, column3, ... 是表中的列名。
  • value1, value2, value3, ... 是要插入的具体数值。

注意:如果是字符型,必须要用‘ ’或者“ ”
如果你要插入所有列的数据,可以省略列名:

MySQL 数据库使用 SELECT 语句来查询数据。

语法

以下为在 MySQL 数据库中查询数据通用的 SELECT 语法:
SELECT column1, column2, ...
FROM table_name
[WHERE condition]
[ORDER BY column_name [ASC | DESC]]
[LIMIT number];

参数说明:

  • column1, column2, ... 是你想要选择的列的名称,如果使用 * 表示选择所有列。
  • table_name 是你要从中查询数据的表的名称。
  • WHERE condition 是一个可选的子句,用于指定过滤条件,只返回符合条件的行。
  • ORDER BY column_name [ASC | DESC] 是一个可选的子句,用于指定结果集的排序顺序,默认是升序(ASC)。
  • LIMIT number 是一个可选的子句,用于限制返回的行数。

实例

  • -- 选择所有列的所有行
  • SELECT * FROM users;
  • -- 选择特定列的所有行
  • SELECT username, email FROM users;
  • -- 添加 WHERE 子句,选择满足条件的行
  • SELECT * FROM users WHERE is_active = TRUE;
  • -- 添加 ORDER BY 子句,按照某列的升序排序
  • SELECT * FROM users ORDER BY birthdate;
  • -- 添加 ORDER BY 子句,按照某列的降序排序
  • SELECT * FROM users ORDER BY birthdate DESC;
  • -- 添加 LIMIT 子句,限制返回的行数
  • SELECT * FROM users LIMIT 10;
  • -- 显示数据库中所有的表
  • SHOW TABLES;
  • -- 显示表的结构
  • DESC table_name;

从 MySQL 表中使用 SELECT 语句来读取数据。

如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。

WHERE 子句用于在 MySQL 中过滤查询结果,只返回满足特定条件的行。

语法

SELECT column1, column2, ...
FROM table_name
WHERE condition;

参数说明:

  • column1, column2, ... 是你要选择的列的名称,如果使用 * 表示选择所有列。
  • table_name 是你要从中查询数据的表的名称。
  • WHERE condition 是用于指定过滤条件的子句。

我们可以使用 DELETE FROM 命令来删除 MySQL 数据表中的记录。

语法

DELETE FROM table_name
WHERE condition;

参数说明:

  • table_name 是你要删除数据的表的名称。
  • WHERE condition 是一个可选的子句,用于指定删除的行。如果省略 WHERE 子句,将删除表中的所有行。

更多说明:

  • 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
  • 你可以在 WHERE 子句中指定任何条件
  • 您可以在单个表中一次性删除记录。

如果我们需要修改或更新 MySQL 中的数据,我们可以使用 UPDATE 命令来操作。

语法

以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

参数说明:

  • table_name 是你要更新数据的表的名称。
  • column1, column2, ... 是你要更新的列的名称。
  • value1, value2, ... 是新的值,用于替换旧的值。
  • WHERE condition 是一个可选的子句,用于指定更新的行。如果省略 WHERE 子句,将更新表中的所有行。

我们知道从 MySQL 表中使用 SELECT 语句来读取数据。

如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。

MySQL ORDER BY(排序) 语句可以按照一个或多个列的值进行升序(ASC)或降序(DESC)排序。

语法

以下是 SELECT 语句使用 ORDER BY 子句将查询数据排序后再返回数据:
SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC | DESC], column2 [ASC | DESC], ...;

参数说明:

  • column1, column2, ... 是你要选择的列的名称,如果使用 * 表示选择所有列。
  • table_name 是你要从中查询数据的表的名称。
  • ORDER BY column1 [ASC | DESC], column2 [ASC | DESC], ... 是用于指定排序顺序的子句。ASC 表示升序(默认),DESC 表示降序。

注:

在SQL注入中我们常用它来判断列数

SELECT column1, column2 FROM table_name [WHERE condition] ORDER BY 1;# 不报错
SELECT column1, column2 FROM table_name [WHERE condition] ORDER BY 2;# 不报错
SELECT column1, column2 FROM table_name [WHERE condition] ORDER BY 3;# 报错

UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合,并去除重复的行。
UNION 操作符必须由两个或多个 SELECT 语句组成,每个 SELECT 语句的列数和对应位置的数据类型必须相同。

语法

MySQL UNION 操作符语法格式:
SELECT column1, column2, ...
FROM table1
WHERE condition1
UNION
SELECT column1, column2, ...
FROM table2
WHERE condition2
[ORDER BY column1, column2, ...];

参数说明:

  • column1, column2, ... 是你要选择的列的名称,如果使用 * 表示选择所有列。
  • table1, table2, ... 是你要从中查询数据的表的名称。
  • condition1, condition2, ... 是每个 SELECT 语句的过滤条件,是可选的。
  • ORDER BY 子句是一个可选的子句,用于指定合并后的结果集的排序顺序。

後悔しない
最后更新于 2024-04-26