MySQL中的全列查询、指定列查询、查询字段为表达式、查询结果去重、where条件表达式的详细使用(包含例题)、查询结果排序

1. 插入否则更新

由于 主键 或者 唯一键 对应的值已经存在而导致插入失败

insert into (属性1,属性2,……) values(值1,值2,……)  on duplicate key update 属性=新值,属性=新值;

在这里插入图片描述

2. 替换

主键或者唯一键没有冲突,则直接插入
主键或者唯一键发生冲突,则删除后在插入,相当于旧值替换新值
replace into 表名(属性1,属性2,……) values (值1,值2,……);
在这里插入图片描述

3. 查询 select

3.1 全列查询

select * from 表名称; 通常情况下,如果表很大,查询的列越多,意味着需要传输的数据量越大

3.2 指定列查询

select 列1,列2,…… from 表名称
举例:
创建一个学生表:

create table student(
id int unsigned primary key comment'学号',
name varchar(32) not null comment'姓名',
chinese float default 0.0 comment'语文成绩',
math float default 0.0 comment'数学成绩',
english float default 0.0 comment'英语成绩');

查询全部列:
在这里插入图片描述
查询部分列:
在这里插入图片描述

3.3 查询字段为表达式

3.3.1 表达式为指定数据

select 指定列1,指定列2…… 指定数据 from 表名;

在这里插入图片描述

3.3.2 表达式包含一个字段

select 指定列1,指定列2…… 表达式 from 表名;  //只是显示打印结果 数据库中的值没有任何变化

在这里插入图片描述

3.3.3 表达式包含多个字段

select 指定列1,……,多项表达式 from 表名;

在这里插入图片描述

3.3.4 为查询结果指定别名

select 表达式 新名称 from 表名;

在这里插入图片描述

3.4 查询结果去重

select distinct 列名 from表名;

在这里插入图片描述

3.5 where 条件

比较运算符:

运算符说明
>、 >=、 < 、<=大于、大于等于、小于、小于等于
=等于NULL=NULL的结果是NULL
<=>等于NULL<=>NULL的结果是true
!=,<>不等于
between A and B范围匹配[a0,a1] a0<=value<=a1 返回true
in(option1.option2……)如是option中任意一个返回true
is nullnull
is not null不为空
like模糊匹配 %表示任意多个字符 _表示一个字符

逻辑运算符:

运算符说明
and对个条件都必须为true ,结果才是true
or任意一个条件为true,结果才为true
not条件为true,返回false

3.5.1 英语不及格的同学及英语成绩

select name,english from student where english<60;

在这里插入图片描述

3.5.2 语文成绩在[80,90]分的同学及语文成绩

select name,chinese from student where chinese >= 80 and chinese <=90;
//对于betweena..and... 两边的区间为闭区间
select name,chinese from student where chinese between 80 and 90;

在这里插入图片描述

3.5.3 数学成绩是38或者48或者98或者99分的同学及数学成绩

select name,math from student where math=38 or math=48 or math=98  or math=99;
select name,math from student where math in(38,48,98,99);

在这里插入图片描述

3.5.4 姓王的同学

//%匹配多个任意字符
select name from student where name like '王%';

在这里插入图片描述

3.5.5 王某同学

// _ 匹配一个任意字符
select name from student where name='王_';

在这里插入图片描述

3.5.6 语文成绩好于数学成绩的同学

select name from student where chinese > math;

在这里插入图片描述

3.5.7 总分在200分以下的同学

select name,chinese+math+english 总分 from student where chinese+math+english<200;

在这里插入图片描述

3.5.8 语文成绩>80 但是不姓孙的同学

select name from student where chinese > 80 and name not like '孙%';

在这里插入图片描述

3.5.9 孙某同学 否则要求总成绩>200并且语文成绩<数学成绩 并且英语成绩>80

select name from student where name like'孙%' or (chinese+math+english >200 and chinese<math and english >80);

在这里插入图片描述

3.6 结果排序

ASC为升序
DESC为降序
默认为ASC
和order by语句搭配使用

3.6.1 同学及数学成绩,按数学成绩升序排放

select name,math from student order by math;

在这里插入图片描述

3.6.2 查询同学各门成绩,依次按数学降序、英语升序、语文升序的方式显示

select *from student order by math desc,english,chinese;

在这里插入图片描述

3.6.3 查询同学及总分,由高到低

select name,chinese+math+english 总分 from student  order by chinese+math+english desc;
//order by语句中可以使用别名
select name,chinese+math+english 总分 from student  order by 总分 desc;

在这里插入图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值