MySQL 表的增删查改(1)


这篇文章主要描述数据库中的 增查删改,CRUD.
CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写.

一. 新增(creat)

这里我们可以先了解一下全列查询方法:

select from 要查询的表明;

首先,我们需要实现一个表,如图:
在这里插入图片描述

  1. 单行插入+全列插入
    一次插入一行,插入时必须保持每个元素都包括

示例
插入两条记录 插入元素数量必须和定义表的列的数量及顺序一致
insert into student values (100,10000,‘唐先生’ ,NULL);
insert into student values (101,10001,‘孙先生’,‘11111’);

在这里插入图片描述
在这里插入图片描述

  1. 多行数据+指定列插入
    一次插入多行元素,插入的元素数量必须和指定列的数量的顺序一致

示例:
INSERT INTO student (id, sn, name)VALUES
(102, 20001, ‘曹孟德’),
(103, 20002, ‘孙仲谋’);

在这里插入图片描述
在这里插入图片描述

二.查询(Retrieve)

首先创建一个查询的测试用表
在这里插入图片描述

1.全列查询

通常情况下,不建议使用 * 进行全列查询.

  1. 查询的列越多,同样就意味着需要传输的数据量越大.
  2. 可能会影响到索引的使用.
    select * from 表名称;

在这里插入图片描述

2.指定列查询

指定列查询,顾名思义就是不受定义的表的顺序约束限制来查询
select id,name,english (这里可以更变为任意表定义的列) from 表名;

在这里插入图片描述

3.查询字段为表达式

  1. 表达式中不包含字段
    select id,name,10,from 表名;

在这里插入图片描述

  1. 表达式包含一个字段
    select id,name,english+10 from 表名;

在这里插入图片描述

  1. 表达式包含多个字段
    select id,name,chinese+math+english from 表名;

在这里插入图片描述

4.别名

查询时,在字段表达式后方加上新的名称更正为别名
select id,name,chinese+math+english 总分 from 表名;

在这里插入图片描述

5.去重操作----destinct

这里我们可以先插入一组元素

在这里插入图片描述
如图,查找出重复的数据:

在这里插入图片描述

使用 distinct 关键字进行去重操作;

select distinct math from 表名;

在这里插入图片描述

6.排序操作----order by

排序操作分为两类

  1. ASC 为升序 (从小到大).
  2. DESC 为降序 (从大到小).
    默认为 ASC
select 列名,列名... from 表名 order by 列名 DESC/ASC;

在这里插入图片描述
依然以这个表格为例.

(1)最基本的排序展示
以语文成绩为例:

ASC 升序排列:
在这里插入图片描述
DESC 降序排列:
在这里插入图片描述
(2)使用表达式以及别名排序

表达式排序:

在这里插入图片描述
别名排序:
在这里插入图片描述
(3)对多个字段进行排序

select name,math,chinese,english from exam_result order by math DESC ,chinese,english;

在这里插入图片描述
注: 对字段排序时,会对第一列优先排序,如果第一列无序,优先排第一列,轮不到第二列的排序.

7.条件查询----Where

比较运算符:

在这里插入图片描述
逻辑运算符:
在这里插入图片描述
(1) 基本查询

查询英语不及格的人

select name,english from exam_result where english < 60;

在这里插入图片描述

查询语文成绩优于英语成绩的

select name,chinese,english from exam_result where chinese > english;

在这里插入图片描述

查询总分在200分以下的同学

select name,chinese+math+english from exam_result where chinese + math + english<200;

在这里插入图片描述
注: where 可以使用表达式,但是不可以使用别名.

(2)AND 和 OR

查询语文成绩大于80分且英语成绩大于80分的同学.

select name,chinese,english from exam_result where chinese>80 and english>80;

在这里插入图片描述

查询语文成绩大于80分或者英语成绩大于80分的同学

select name,chinese,english from exam_result where chinese >80 or english >80;

在这里插入图片描述

注. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分

(3)范围查询

  1. between…and…

查询语文成绩在 [80,90] 之间的同学

select name,chinese from chinese where between 80 and 90;

在这里插入图片描述

同样这里也可以用 and 方法来实现

select name,chinese from exam_result where chinese >=80 and chinese <= 90;

在这里插入图片描述

  1. IN 方法.

查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩

select name,math from exam_result where math in(58,59,98,99);

在这里插入图片描述

同样的这里也可以用 or 方法来实现.

select name,math from exam_result where math = 58 or math = 59 or math = 98 or math = 99;

在这里插入图片描述

  1. 模糊查询 like

%匹配任意多个字符

select name from exam_result where name like '%孙';

在这里插入图片描述

_ 严格匹配一个任意字符

select name from exam_result where name like '......';

在这里插入图片描述

  1. NULL 的查询

查询同学语文成绩是否为NULL;

select name,chinese from exam_result where chinese is not NULL;

select name,chinese from exam_result where chinese is NULL;

在这里插入图片描述

8.分页查询----limit

以 id 进行分列

select id,name,math,english,chinese from exam_result order by id limit 3 offset 0;
select id,name,math,english,chinese from exam_result order by id limit 3 offset 3;
select id,name,math,english,chinese from exam_result order by id limit 3 offset 6;

分页方法的意思是 limit (几个元素) offset (从第几个 id 算起).

在这里插入图片描述
在这里插入图片描述

三.删除(Delete)

当前表格如图:
在这里插入图片描述

  1. 删除单个学生成绩
delete from exam_result where name = '唐三藏';

在这里插入图片描述

  1. 删除整张表数据

首先准备一张要删除的表,如图.

在这里插入图片描述

删除整张表:

delete from test(表名);

在这里插入图片描述

总结: 到此为止,已经介绍了数据库的最基本的增删查改的操作,如有不足之处,欢迎指出!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值