MySQL 第三章3.1 数据库查询(select)

MySQL 第三章3.1 数据库查询(select)

    select语句可以从一个或多个表中选取符合某种条件的特定行和列,结果通常是生产一个临时表,下面介绍select语句,select语句是SQL的核心

select
[all | distinct | distinct row]   在多表连接时去掉重复排列
列名
from 表名
where 条件
group by {列名 | 表达式 | position}
having 条件     # 作用同where 只是条件是聚类时使用      
order by  {列名 | 表达式 | position}   

3.1.1 选择输出列

select语句中需要指定查询的列

(1) 选择指定列

select 姓名,专业名,总学分
from xs;

(2) 选择指定列并定义列别名

select 学号 as number,姓名 as name,专业名,总学分 as mark
from xs;

注意:

  • 自定义的列别名中有空格时,必须用引号将列别名括号起来
select 学号 as 'student number',姓名 as' student name',专业名,总学分 as mark
from xs;
  • 不允许在where子句中使用列别名,因为这个select未完成还没定义出列别名构成的表,where语句只能检测from子句中出现的表的信息。
select 学号 as number,姓名 as name,专业名,总学分 as mark
from xs;
where number = 0 ;   #出现错误

(3) 替换查询结果中的数据
利用case替换表达式,可以使select得到的临时表中的行内容与from原表不同(修改列名称用列别名)

case
when 条件1 then 表达式1
when 条件2 then 表达式2
...
else 表达式n
end as 列别名  #这里的列别名是相当于将from表中包含条件1,,,的列重新定义名称

例如查询xs表中计算机专业各个同学的学号、姓名和总学分,并对总学分按照如下规则进行替换:
若总学分为空值,则替换为‘尚未选课’
若总学分小于50,则替换为‘不及格’
若总学分在50~52之间,则替换为‘合格’
若总学分大于52,则替换为‘优秀’
若总学分列的标题更改为‘等级’。

select 学号,姓名,
case
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值