查询

全列查询

指定查询

查询字段添加自定义表达式

自定义表达式重命名

查询指定列并去重

select distinct 列名 from 表名

where条件

查询数据nullnull与’ ‘(空串)是不同的!

附:一般null不参与查询

查询列数据不为null

查询某列数据指定范围

select * from 表名 where 列名 between 起点 and 末尾; 

若未指定,其他不满足的数据也会显示,因为本身命令没要求他们不显示,其次也没要求他们不显示

查询某列数据指定范围并且指定显示

select 列名… from 表名 where 列名 between 起点 and 末尾

select 列名… from 表名 where 列名&gt;范围 and 列名<范围

select 列名… from 表名 where 列命 in(指定范围)

查找列指定数据

模糊匹配

查找一个为孙的

查找以孙开头两个字的

查找以孙开头三个字的

查找不以孙字开头的

查找两个比较大小

查找语文>数学

查找语文大于80并且name不以孙字开头的

查找总分>200的

为什么这里别名报错

可以看到select执行顺序,先找到表,其次是条件,再去表里查找,而条件是 ’总分‘ 但并没用这个条件,因为总分是在第四次才开始重命名的,所以报错了。

正确做法

结果排序

升序 ascending order  简asc  

降序 descending orderdesc

查询chinese的升序

查询chinese的降序

查询以数学降序,英语升序,语文升序方式显示

以数学为key先排 如果数学数据相同,以英语来排,如果英语数据也相同,以语文来排。

附:NULL默认最小

查询姓孙的同学或者姓曹的同学数学成绩,结果按数学成绩由高到低显示

总分排降序

为什么这里别名可以,而where不行?这也跟select执行顺序有关

因为排序最后执行的,所以第二步时其实并没用用到总分‘ ,执行排序时,排序是第五梯队,而重命名是第四梯队,所以排序时总分已经重命名了,即可使用,不会报错

查询总分降序并且只显示前三个。

limit 3 取得结果后的前三行 

limit s,n 取第s个到n个

更新

update 表名 set 修改数据 where 条件

将孙悟空的英语修改为90

update test12 set chinese=80; 谨慎使用

将数据内chinese所有数据都修改为80

将总成绩倒数前三的 3 位同学的数学成绩加上 30 分

update 表名 set 条件 order by 排序的分数 desc limit n(要修改的n行)

附:math+=30 这种在mysql是不能用的。

删除

delete from 表名 where 条件

delete from 表名 order by 总分 limit n(要删除n行)

delete from 表名  truncate 表名

都是清空表数据 delete不会重置auto_increment(自增长) truncate会重置auto_increment(自增长)

truncate不能回滚truncate只能做清空表数据操作

原文地址:https://blog.csdn.net/weixin_57535054/article/details/134632068

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_18099.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注