MySQL表sql语句增删查改_查询

举报
bug郭 发表于 2022/08/11 09:45:37 2022/08/11
【摘要】 查询(Retrieve)我们插入表中的数据如何查看呢?查看表中全部数据SQL语句select * from 表名;-- 通常情况下不建议使用 * 进行全列查询-- 1. 查询的列越多,意味着需要传输的数据量越大;-- 2. 可能会影响到索引的使用。(索引待后面的博客讲解)用*通配符,代表全部列!!!查看指定列SQL语句select 列名1,列名2... from 表名;当我们只对该表中的某...

查询(Retrieve)

我们插入表中的数据如何查看呢?

  • 查看表中全部数据
    SQL语句
    select * from 表名;
-- 通常情况下不建议使用 * 进行全列查询
-- 1. 查询的列越多,意味着需要传输的数据量越大;
-- 2. 可能会影响到索引的使用。(索引待后面的博客讲解)

在这里插入图片描述*通配符,代表全部列!!!

  • 查看指定列
    SQL语句
    select 列名1,列名2... from 表名;
    当我们只对该表中的某些列查询时!
    在这里插入图片描述
  • 查询字段为表达式
    如果我们今天对书籍进行大促销,想对书籍进行一天的价格下调,我们如何查看表呢?
    SQL语句
    select 表达式 from 表名;

在这里插入图片描述
可以看到,我们通过表达式 price-60就查看到降价60的数据了!
此操作并不会影响服务器中数据库中的内容!!数据并没有改变!!!

我们还可以有多个表达式!!!
在这里插入图片描述

  • 别名
    我们可以看到当我们使用表达式时,该列的列名也就是该表达式,如果我们想起一个别名呢?又该如何操作呢?
    SQL语句
    select (表达式/列名) as 别名 from 表名;
    在这里插入图片描述as也可以省略!!!
    在这里插入图片描述

  • 去重distinct
    当我们一个表中含有重复的数据时,但我们只想查看一个,如何去重呢?
    使用distinct关键字对某列数据进行去重:
    SQL语句
    select distinct 列名 from 表名;
    在这里插入图片描述
    注意:这里的distinct在查询列的列名前!!!

  • 排序 order by
    SQL语句
    select 列1,列2....from 表名 order by 列名 排序方方式(asc/desc);

-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC (没有说明,默认升序!)
  1. 没有 order by 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序
  2. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面

使用表达式排序!!!
在这里插入图片描述
使用别名排序!
在这里插入图片描述
可以对多个字段排序,排序优先级随书写顺序!

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

在这里插入图片描述

  • 条件查询 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,结果才为true
or 任意一个条件为true,结果就为true
not 条件为true ,结果为false

SQL语句
select * from 表名 where 条件;

  1. where条件可以使用表达式,但不能使用别名。
  2. and的优先级高于or,在同时使用时,需要使用小括号( )包裹优先执行
    举例:
    当我们要根据某些特殊的条件进行查询时!!!
    比如我们要查询数学优秀的人数!!!
  • 基本查询:
-- 查询英语不及格的同学及英语成绩 ( < 60 )
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 总分<200;

英语高于60分
在这里插入图片描述语文成绩高于数学成绩
在这里插入图片描述总分低于200分!!
在这里插入图片描述
注意:
在条件查询中,条件不能为别名,否者查询错误!!!

  • and 与 or:
- 查询语文成绩大于80分,且英语成绩大于80分的同学
SELECT * FROM exam_result WHERE chinese > 80 and english > 80;
-- 查询语文成绩大于80分,或英语成绩大于80分的同学
SELECT * FROM exam_result WHERE chinese > 80 or english > 80;
-- 观察AND 和 OR 的优先级:
SELECT * FROM exam_result WHERE chinese > 80 or math>70 and english > 70;
SELECT * FROM exam_result WHERE (chinese > 80 or math>70) and english > 70;

语文成绩大于80且数学成绩大于80
在这里插入图片描述语文成绩大于80或英语成绩大于80
在这里插入图片描述and和or的优先级!
在这里插入图片描述

  • 范围查询:
    between and
-- 查询语文成绩在 [80, 90] 分的同学及语文成绩
SELECT name, chinese FROM exam_result WHERE chinese BETWEEN 80 AND 90;
-- 使用 AND 也可以实现
SELECT name, chinese FROM exam_result WHERE chinese >= 80 AND chinese
<= 90;

查询语文成绩在 [80, 90] 分的同学及语文成绩
在这里插入图片描述
在这里插入图片描述
in(option)

-- 查询数学成绩是 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;

查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
在这里插入图片描述
在这里插入图片描述

  • 模糊查询 like
-- % 匹配任意多个(包括 0 个)字符
SELECT name FROM exam_result WHERE name LIKE '孙%';-- 匹配到孙悟空、孙权
-- _ 匹配严格的一个任意字符
SELECT name FROM exam_result WHERE name LIKE '孙_';--匹配到孙权!

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

  • NULL的查询 is (not) NULL
--查询书籍分类为空的书籍
select * from book where class is NULL;
--插叙书籍分类不为空的书籍
select * from book where class is not NULL;

在这里插入图片描述

  • 分页查询 limit
    语法:
-- 起始下标为 0
--0 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
-- 从 s 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;
-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;

查询前3条:
在这里插入图片描述
从第3条开始查询4条结果!
在这里插入图片描述offset偏移量为3的位置,查询4条结果!
在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。