MySQL~数据表中的增删查改(CRUD)基础版

目录

新增数据(Create)

单行数据 + 全列插入

多行数据 + 指定列插入 

查询数据(Retrieve)

全列查询

指定列查询 

查询字段为表达式 

别名 

去重 distinct

排序 order by

条件查询 where 

运算符

基本查询

AND与OR

 范围查询

分页查询 LIMIT

修改(Update) 

删除 Delete 

内容总结


新增数据(Create)

首先建立一个学生表,包含:学号、姓名、性别、出生日期、成绩

-- 建立学生表
create table student(
    id int,
    sname varchar(10),
    sex varchar(1),
    birthday datetime,
    grade int comment '成绩'
);

单行数据 + 全列插入

注意:全列插入时 数量必须和定义表的列的数量及顺序一致

例如:

-- 单行数据 + 全列插入
insert into student values('20201', '张三', '男', '2002-11-17', 95);
insert into student values('20202', '李四', '女', '2002-11-05', 92);

通过下述命令窗口可以看出已成功插入,后面利用select语句可以对其进行查询

多行数据 + 指定列插入 

--多行数据 + 指定列插入
insert into student(id, sname, grade) values
('20203', '王五', 92),
('20204', '孟六', 85);

成功插入数据 

查询数据(Retrieve)

为了使查询更加可观,再对数据表中以全列插入 + 多行数据的方式再增加一部分数据

--多行数据 + 全列插入
insert into student values
('20205', '赵七', '男', '2022-10-15', 91),
('20206', '孟八', '男', '2022-10-16', 84),
('20205', '李七', '女', '2022-10-15', 93),
('20206', '李八', '女', '2022-10-15', 89);

全列查询

-- 全列查询
select * from student;

 

指定列查询 

指定列的顺序查询,不需要按照定义表的顺序来,可以自定义查询的顺序

-- 指定列的顺序查询,不需要按照定义表的顺序来
select sname, id, grade from student;

 

查询字段为表达式 

①表达式不包含字段

-- 表达式不包含字段
select id,sname,10 from student;

 

②表达式包含一个字段 

-- 表达式包含一个字段
select id, sname, grade+10 from student;

 

别名 

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

别名的作用:更简洁、更规则、涉及多表查询时,更加清晰

-- 别名
select id, sname, grade+10 总分 from student;

 

去重 distinct

使用distinct可以对指定列进行去重查询,也可以对多列进行去重查询

-- 去重
select distinct id from student;

 

排序 order by

关键字:ORDER BY

· ASC为升序(从小到大)

` DESC为降序(从大到小)

` 默认为ASC

 · null数据排序,视为比所有数据都小,升序出现在最上面,降序出现在最下面.

-- 按照成绩排序查询
select id, sname, sex, grade from student order by grade;

条件查询 where 

运算符

比较运算符

>,>=,<,<=:大于,大于等于,小于,小于等于;

=:等于,NULL不安全,例如NULL = NULL的结果是NULL;

<=>:等于,NULL安全,例如<NULL = NULL>的结果是TRUE(1);

!=, <>:不等于;

BETWEEN a0 AND a1:范围匹配,[a0,a1],如果a0 <= value <= a1,返回TRUE(1);

IN(option,.....):如果是option中的一个,返回TRUE(1);

IS NULL:是NULL;

IS NOT NULL:不是NULL;

LIKE:模糊匹配.%表示任意多个(包括0个)任意字符;_表示任意一个字符;

逻辑运算符

AND:多个条件必须都为TRUE(1),结果才为TRUE(1);

OR:任意一个条件为TRUE(1),结果就为TRUE(1);

NOT:条件为TRUE(1),结果为FALSE(0).

注意:

1、where条件可以使用表达式,但不能使用别名;

2、and的优先级高于or,在同时使用时,需要使用()包裹优先执行的部分.

基本查询

查询成绩大于90分的同学

-- 查询成绩大于90分的同学
select sname, grade from student where grade > 90; 

AND与OR

查询学号大于20202且成绩大于90分的同学

-- 查询学号大于20202且成绩大于90分的同学
select id, sname, grade from student where id > '20202' and grade > 90; 

查询学号大于20202或成绩大于90分的同学 

-- 查询学号大于20202或成绩大于90分的同学
select id, sname, grade from student where id > '20202' or grade > 90;

 范围查询

1、BETWEEN ... AND ...

查询成绩在89 —— 100之间的同学及成绩

-- 查询成绩在89 —— 100之间的同学及成绩
select sname, grade from student where grade between 89 and 100; 

2、IN 

查询成绩是89 或92 或91 或95的学生及成绩

-- 查询成绩是89 或92 或91 或95的学生及成绩
select sname, grade from student where grade in (89, 91, 92, 95);

3、模糊查询(LIKE)

 匹配任意多个字符 '%' 

-- 匹配任意多个字符
select id, sname from student where id like '2%';

匹配严格的任意一个字符 '_' 

-- 匹配严格的任意一个字符
select sname from student where sname like '李_';

分页查询 LIMIT

从0开始,筛选3条记录,按照学生成绩升序排序

-- 分页查询
select id, sname, sex, grade from student order by grade limit 3 offset 0;

 从3开始,筛选3条记录,按照学生成绩升序排序

-- 分页查询
select id, sname, sex, grade from student order by grade limit 3 offset 3;

 

修改(Update) 

 · 将张三的成绩变为100分

-- 将张三的成绩变为100分
update student set grade = 100 where sname = '张三';

  

· 将成绩为倒数三名的学生的成绩加上十分

-- 将成绩为倒数三名的学生的成绩加上十分
update student set grade = grade + 10 order by grade limit 3;

 · 将所有同学的成绩更新为原来的二倍

-- 将所有同学的成绩更新为原来的二倍
update student set grade = grade * 2 ;

 

删除 Delete 

· 删除张三的数据

-- 删除张三的数据
delete from student where sname = '张三';

 

· 删除整张表的数据 

-- 删除整张表的数据
delete from student;

 

内容总结

· 新增

-- 单行插入
insert into 表(字段1, ..., 字段N) values (value1, ..., valueN);

-- 多行插入
insert into 表(字段1, ..., 字段N) values
(value1, ...),
(value2, ...),
(value3, ...);

· 查询 

-- 全列查询
select * from 表

-- 指定列查询
select 字段1, 字段2, ... from 表;

-- 查询表达式字段
select 字段1 + 100, 字段2 + 字段3 from 表;

-- 别名
select 字段1 别名1, 字段2 别名2 from 表;

-- 去重 DISTINCT
select distinct 字段 from 表;

-- 排序 ORDER BY
select * from 表 order by 排序字段;

-- 条件查询 WHERE
-- (1)比较运算符 (2)BETWEEN ... AND ... (3)IN (4)IS NULL 
--  (5)LIKE (6)AND (7)OR (8)NOT
select * from 表 where 条件;

· 修改 

-- 修改
update 表 set 字段1 = value1, 字段2 = value2... where 条件;

· 删除 

-- 删除
delete from 表 where 条件;

本篇博客所有代码均已上传至gitee中,点击链接获取:增删查改代码 

 

 

 

 

 

 

 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Li_yizYa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值