MySQL数据库的增删改查(初阶)

目录

插入数据(Insert)

单行插入

批量插入

查询数据(Select)

基本查询

别名

去重:DISTINCT

条件查询

[排序:ORDER BY](#排序:ORDER BY)

分页查询:LIMIT

更新数据(Update)

删除数据(Delete)


插入数据(Insert)

单行插入

sql 复制代码
INSERT INTO students (name, age, grade) VALUES ('Alice', 25, 'A');

批量插入

sql 复制代码
INSERT INTO students (name, age, grade)
VALUES
    ('Bob', 30, 'B'),
    ('Charlie', 22, 'C'),
    ('David', 28, 'A');

查询数据(Select)

基本查询

基本查询使用SELECT语句,你可以检索表中的数据。

sql 复制代码
SELECT * FROM students;

上面的*代表的是查询所有列,如果要查询指定列如下:

比如我要查询一个stuId,stuName

sql 复制代码
SELECT stuId,stuName FROM students;

别名

为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称:

sql 复制代码
SELECT id, name, chinese + math + english 总分 FROM exam_result;

去重:DISTINCT

使用DISTINCT关键字对某列数据进行去重:

sql 复制代码
-- 98 分重复了
SELECT math FROM exam_result;
+--------+
| math |
+--------+
|     98 |
|     78 |
|     98 |
|     84 |
|     85 |
|     73 |
|     65 |
+--------+

去重后面的结果:

sql 复制代码
-- 去重结果
SELECT DISTINCT math FROM exam_result;
+--------+
| math |
+--------+
|     98 |
|     78 |
|     84 |
|     85 |
|     73 |
|     65 |
+--------+

条件查询

条件查询使用WHERE子句来筛选数据。

sql 复制代码
SELECT * FROM students WHERE grade = 'A';

排序:ORDER BY

  1. 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序

  2. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面

sql 复制代码
-- 查询同学姓名和 qq_mail,按 qq_mail 排序显示
SELECT name, qq_mail FROM student ORDER BY qq_mail;
SELECT name, qq_mail FROM student  ORDER BY qq_mail DESC;

使用表达式及别名排序:

sql 复制代码
-- 查询同学及总分,由高到低
SELECT name, chinese + english + math FROM exam_result 
 ORDER BY chinese + english + math DESC;
SELECT name, chinese + english + math total FROM exam_result 
 ORDER BY total DESC;

还可以对多个字段进行排序,排序优先级随书写顺序

sql 复制代码
-- 查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示
SELECT name, math, english, chinese FROM exam_result 
 ORDER BY math DESC, english, chinese;

分页查询:LIMIT

按 id 进行分页,每页 3 条记录,分别显示 第 1、2、3 页

sql 复制代码
-- 第 1 页
SELECT id, name, math, english, chinese FROM exam_result ORDER BY id LIMIT 3
OFFSET 0;
-- 第 2 页
SELECT id, name, math, english, chinese FROM exam_result ORDER BY id LIMIT 3
OFFSET 3;
-- 第 3 页,如果结果不足 3 个,不会有影响
SELECT id, name, math, english, chinese FROM exam_result ORDER BY id LIMIT 3
OFFSET 6;

如果是只限制返回前三条数据,我们可以这样:

sql 复制代码
SELECT * FROM students ORDER BY age DESC LIMIT 3;

更新数据(Update)

使用UPDATE语句可以更新表中的数据。

sql 复制代码
UPDATE students SET age = 26 WHERE name = 'Alice';

删除数据(Delete)

使用DELETE语句可以从表中删除数据。

java 复制代码
DELETE FROM students WHERE name = 'Bob';

删除一整张表:

sql 复制代码
-- 删除整张表数据
-- 准备测试表
DROP TABLE IF EXISTS for_delete;
CREATE TABLE for_delete (
 id INT,
 name VARCHAR(20)
);
-- 插入测试数据
INSERT INTO for_delete (name) VALUES ('A'), ('B'), ('C');
-- 删除整表数据
DELETE FROM for_delete;
相关推荐
SomeB1oody2 分钟前
【Rust自学】5.3. struct的方法(Method)
开发语言·后端·rust
dazhong20121 小时前
PLSQL 客户端连接 Oracle 数据库配置
数据库·oracle
啦啦右一2 小时前
Spring Boot | (一)Spring开发环境构建
spring boot·后端·spring
森屿Serien2 小时前
Spring Boot常用注解
java·spring boot·后端
苹果醋33 小时前
React源码02 - 基础知识 React API 一览
java·运维·spring boot·mysql·nginx
了一li3 小时前
Qt中的QProcess与Boost.Interprocess:实现多进程编程
服务器·数据库·qt
盛派网络小助手3 小时前
微信 SDK 更新 Sample,NCF 文档和模板更新,更多更新日志,欢迎解锁
开发语言·人工智能·后端·架构·c#
码农君莫笑4 小时前
信管通低代码信息管理系统应用平台
linux·数据库·windows·低代码·c#·.net·visual studio
∝请叫*我简单先生4 小时前
java如何使用poi-tl在word模板里渲染多张图片
java·后端·poi-tl
别致的影分身4 小时前
使用C语言连接MySQL
数据库·mysql