当前位置:网站首页>MySQL表sql语句增删查改_查询
MySQL表sql语句增删查改_查询
2022-08-11 09:49:00 【华为云】
查询(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 bySQL语句select 列1,列2....from 表名 order by 列名 排序方方式(asc/desc);
-- ASC 为升序(从小到大)-- DESC 为降序(从大到小)-- 默认为 ASC (没有说明,默认升序!)- 没有
order by子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序 NULL数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面
使用表达式排序!!!
使用别名排序!
可以对多个字段排序,排序优先级随书写顺序!
-- 查询同学各门成绩,依次按数学降序,英语升序,语文升序的方式显示SELECT name, math, english, chinese FROM exam_resultORDER 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 条件;
where条件可以使用表达式,但不能使用别名。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_resultWHERE 总分<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条结果!
边栏推荐
- 【UOJ 454】打雪仗(通信题)(分块)
- 【luogu CF1427F】Boring Card Game(贪心)(性质)
- HDRP shader gets pixel depth value and normal information
- Primavera Unifier advanced formula usage sharing
- 【luogu CF1286E】Fedya the Potter Strikes Back(字符串)(KMP)(势能分析)(线段树)
- Open Office XML 格式中的 Style 设计原理
- canvas文字绘制(大小、粗体、倾斜、对齐、基线)
- OAK-FFC Series Product Getting Started Guide
- 数据库基础
- 基于PSO在满足可靠性的基础上实现费用最优MATLAB仿真(含完整matlab代码)
猜你喜欢

假设检验:正态性检验的那些bug——为什么对同一数据,normaltest和ktest会得到完全相反的结果?

How to determine the neural network parameters, the number of neural network parameters calculation

数字钱包红海角逐,小程序生态快速引入可助力占领智慧设备入口

Simple strokes on the Internet

神经网络需要的数学知识,神经网络的数学基础

深度学习100例 —— 卷积神经网络(CNN)识别验证码

【剑指offer】左旋字符串,替换空格,还有类题!!!

TIOBE - 2022年8月编程语言排行

神经网络图怎么分析,画神经网络结构图

Lightweight network (1): MobileNet V1, V2, V3 series
随机推荐
mindspore 执行模型转换为310的mindir文件显示无LRN算子
Primavera Unifier - AEM Form Designer Essentials
收集awr
MySQL select count(*) count is very slow, is there any optimization solution?
软件定制开发——企业定制开发app软件的优势
A few days ago, Xiaohui went to Guizhou
数组、字符串、日期笔记【蓝桥杯】
关于ts的一些泛型关键字用法
TIOBE - 2022年8月编程语言排行
训练一个神经网络要多久,神经网络训练时间过长
MongoDB 对索引的创建查询修改删除 附代码
谁能解答?从mysql的binlog读取数据到kafka,但是数据类型有Insert,updata,
突破次元壁垒,让身边的玩偶手办在屏幕上动起来!
Segmentation Learning (loss and Evaluation)
打印时间的各种格式
数字钱包红海角逐,小程序生态快速引入可助力占领智慧设备入口
database transaction
错误代码: 1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current
数据库 SQL 优化大总结之:百万级数据库优化方案
新一代开源免费的轻量级 SSH 终端,非常炫酷好用!



