MySQL 教程

Siona

MySQL 教程

常用 SQL 语句

查询 SELECT

新增 INSERT

修改 UPDATE

删除 DELETE / 清空 TRUNCATE

删除表

sis.student 学生管理系统(SIS) —— 学生表(student)

  1. 通过 表名 删除
drop table student;
  1. 通过 数据库.表名 删除
drop table sis.student;

删除/清空表中全部数据

  1. delete 删除。优点:数据可恢复;缺点:速度慢。
delte from student;
  1. truncate 删除。优点:速度极快;缺点:数据不可恢复。

删除表中部分数据

  1. 指定条件删除

    delete from student where name = '张三';
    
  2. 指定唯一键的范围删除

    # 删除表中第 1 到 5 条的记录
    delete from student where id between 1 and 5;
    
  3. 排序后删除指定条件的数据

    # 倒序后删除表中前 5 条记录
    delte from student order by id desc limit 5;
    
    # 正序后删除表中前 5 条记录
    delte from student order by id asc limit 5;
    

MySQL 创建数据库

MySQL 删除数据库

MySQL 选择数据库

MySQL 数据类型

MySQL 创建数据表

MySQL 删除数据表

MySQL 插入数据

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

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

参数说明:

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

如果数据是字符型,必须使用单引号 ' 或者双引号 ",如: 'value1', "value1"。

如果你要 插入所有列的数据,可以省略列名:

INSERT INTO table_name
VALUES (value1, value2, value3, ...);

如果你要插入多行数据,可以在 VALUES 子句中指定多组数值:

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

MySQL 查询数据

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 _column,_column from _table [where Clause] [limit N][offset M]

# offset M : 跳过 M 条记录, 默认 M=0, 单独使用似乎不起作用
# **limit N,M** : 相当于 **limit M offset N** , 从第 N 条记录开始, 返回 M 条记录

# 实现分页
select * from _table limit (page_number-1)*lines_perpage, lines_perpage
# 或
select * from _table limit lines_perpage offset (page_number-1)*lines_perpage

WHERE 子句中,你可以使用各种条件运算符(如 =, <, >, <=, >=, !=),逻辑运算符(如 AND, OR, NOT),以及通配符(如 %)等。

以下是一些进阶的 SELECT 语句实例:

-- 使用 AND 运算符和通配符
SELECT * FROM users WHERE username LIKE 'j%' AND is_active = TRUE;

-- 使用 OR 运算符
SELECT * FROM users WHERE is_active = TRUE OR birthdate < '1990-01-01';

-- 使用 IN 子句
SELECT * FROM users WHERE birthdate IN ('1990-01-01', '1992-03-15', '1993-05-03');

MySQL WHERE 子句

操作符描述实例
=等号,检测两个值是否相等,如果相等返回true(A = B) 返回false。
<>, !=不等于,检测两个值是否相等,如果不相等返回true(A != B) 返回 true。
>大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true(A > B) 返回false。
<小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true(A < B) 返回 true。
>=大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true(A >= B) 返回false。
<=小于等于号,检测左边的值是否小于或等于右边的值, 如果左边的值小于或等于右边的值返回true(A <= B) 返回 true。

简单实例

# 1. 等于条件
SELECT * FROM users WHERE username = 'test';

# 2. 不等于条件
SELECT * FROM users WHERE username != 'runoob';

# 3. 大于条件
SELECT * FROM products WHERE price > 50.00;

# 4. 小于条件
SELECT * FROM orders WHERE order_date < '2023-01-01';

# 5. 大于等于条件
SELECT * FROM employees WHERE salary >= 50000;

# 6. 小于等于条件
SELECT * FROM students WHERE age <= 21;

# 7. 组合条件(AND、OR)
SELECT * FROM products WHERE category = 'Electronics' AND price > 100.00;

SELECT * FROM orders WHERE order_date >= '2023-01-01' OR total_amount > 1000.00;

# 8. 模糊匹配条件(LIKE)
SELECT * FROM customers WHERE first_name LIKE 'J%';

# 9. IN 条件
SELECT * FROM countries WHERE country_code IN ('US', 'CA', 'MX');

# 10. NOT 条件
SELECT * FROM products WHERE NOT category = 'Clothing';

# 11. BETWEEN 条件
SELECT * FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';

# 12. IS NULL 条件
SELECT * FROM employees WHERE department IS NULL;

# 13. IS NOT NULL 条件
SELECT * FROM customers WHERE email IS NOT NULL;

执行顺序

FROM, including JOINs
WHERE
GROUP BY
HAVING
WINDOW functions
SELECT
DISTINCT
UNION
ORDER BY
LIMIT and OFFSET

# 解释
where:数据库中常用的是where关键字,用于在初始表中筛选查询。
       它是一个约束声明,用于约束数据,在返回结果集之前起作用。

group by:对select查询出来的结果集按照某个字段或者表达式进行分组,获得一组组的集合,
					 然后从每组中取出一个指定字段或者表达式的值。

having:用于对wheregroup by查询出来的分组经行过滤,查出满足条件的分组结果。
			  它是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作。

MySQL UPDATE 更新

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

语法

以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法:

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

参数说明:

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

更多说明:

  • 可以同时更新一个或多个字段。
  • 可以在 WHERE 子句中指定任何条件。
  • 可以在一个单独表中同时更新数据。

当你需要更新数据表中指定行的数据时 WHERE 子句是非常有用的。

UPDATE替换某个字段中的某个字符

当我们需要将字段中的特定字符串批量修改为其他字符串时,可已使用以下操作:

UPDATE table_name SET field=REPLACE(field, 'old-string', 'new-string')
[WHERE Clause]

实例:

以下实例将更新 runoob_id 为 3 的runoob_title 字段值的 "C++" 替换为 "Python":

UPDATE runoob_tbl SET runoob_title = REPLACE(runoob_title, 'C++', 'Python') where
runoob_id = 3;

MySQL DELETE 删除

MySQL LIKE 子句

MySQL UNION

MySQL GROUP BY 语句

MySQL 分组

MySQL 连接的使用

MySQL NULL 值处理

MySQL 正则表达式

MySQL 事物

MySQL ALTER 命令

MySQL 索引

MySQL 临时表

MySQL 复制表

MySQL 元数据

MySQL 序列

MySQL 处理重复数据

MySQL 及 SQL 注入

MySQL 导出数据

MySQL 导入数据

MySQL 函数

MySQL 运算符

Last Updated 4/28/2024, 10:00:38 AM