MySQL 教程
Siona
MySQL 教程
常用 SQL 语句
查询 SELECT
新增 INSERT
修改 UPDATE
删除 DELETE / 清空 TRUNCATE
删除表
sis.student
学生管理系统(SIS) —— 学生表(student)
- 通过
表名
删除
drop table student;
- 通过
数据库.表名
删除
drop table sis.student;
删除/清空表中全部数据
delete
删除。优点:数据可恢复;缺点:速度慢。
delte from student;
truncate
删除。优点:速度极快;缺点:数据不可恢复。
删除表中部分数据
指定条件删除
delete from student where name = '张三';
指定唯一键的范围删除
# 删除表中第 1 到 5 条的记录 delete from student where id between 1 and 5;
排序后删除指定条件的数据
# 倒序后删除表中前 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:用于对where和group 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;