distinct sql用法_SQL学习系列:简单查询

1)基本的查询语句

1.select函数

select <列名1><列名2>,...
from <表名>
;

e69e1088a0232b4d901f5220705096c1.png
示例

2.星号(*)的用法:查询出全部列

select * -- 查询出全部列的快捷方法
from <表名>
;

5a55e71d42a6e87f913611d2229bc79f.png

3.为列设定别名 as函数

select <列名1> as ..., --对于复杂的列名,可以快读的重命名显示
from <表名>
;

bc68ee7f9da90f244167da05b02b23b9.png

4.删除重复数据 distinct函数

select distinct <列名1><列名2>,... --用于多列则都相同才重复
from <表名>
;

50a24c698fe0a79104a4af02286a748c.png

2)指定查询条件

1.where函数

select <列名1>
from <表名>
where <列名1>=...
;

3fdbbed89a0c57dde7b5ac62f8a4e0ab.png

2.理解SQL运行顺序

select <列名1> -- ②where函数查询符合条件的行
from <表名> -- ①先选取从哪张表查找数据
where <列名1>=... --③从查询的行中选取select语句制定的列
;

3.注释和SQL语句注意事项

①单行注释

-- 单行注释(中间有一个空格)

②多行注释

/*

多行注释

*/

③SQL语句注意事项:相关符号一定要使用英文输入法输入。

4)运算符

1.算数运算符

aef0572818b535223b4e881f625feb4b.png
select 学号,成绩
成绩/100 as '百分比成绩'
from score
;

1c2992fdbe58da3cbcb9c23637786df5.png

2.比较运算符

3dd67b0a4d977695907e8fefeaadcc3c.png
select 姓名,学号
from student
where 姓名='猴子'

dd6332c8ad5ebe463ccac00cd4242dbd.png
select 姓名,出生日期
from student
where 出生日期<'1994-05-18'
;

5e85a4e89af33b95029d0c98eba1af34.png

3.逻辑运算符

3b96e41a23479a196b71b4f67b0f2944.png

①查询null值

select 教师号,教师姓名
from teacher
where 教师姓名 is null
;

--查询出null值,如果查询非null则输入is not null,这里主要注意,NULL不与任何值相等(包括其本身),判断是否为空值只能使用 is NULL 或 is not NULL,而不能使用 = NULL

d6b0c910709a0fe4fbf581d640ee9ca7.png

②or的用法

select *
from student
where 性别='男' and (姓名='猴子'or 姓名='马云')
-- 使用逻辑运算符,不能简写,要写XX=XX or XX=XX,查询条件性别是男并且姓名是猴子或者马云
;

97770ce9c1e783d3c82143d137d538d0.png

③范围查询:between的用法

between 60 and 90 表示大于等于60小于等于90,带等号

④in 的用法

select *
from student
where 姓名 in ('猴子','马云');
/* where 姓名 ='猴子' or 姓名 ='马云';
两者为相同结果*/

657abd0935efde9bd100d0180ef8634f.png

5)字符串模糊查询

1.like函数

%表示任意字符串 _1个下划线表示任意一个字符

select *
from student
where 姓名 like '猴%'
; -- 查询姓猴的学生名单

--

select *
from student
where 姓名 like '%猴'
; -- 查询姓名最后一个字为猴的学生名单

--

select *
from student
where 姓名 like '%猴%'
; -- 查询姓名中带猴的学生名单

--

select *
from student
where 姓名 like '王__'
; -- 查询姓名中为王XX的学生名单

6)SQLZOO练习作业

1.1SELECT basics

69301fde311460345136c8ccfd923d59.png
正确

e368be34bbacf1c71e41258e1beb896d.png
正确

8b927f789f6909f20606f9feae33d83e.png
正确

598ee76ed5db97b575b3e94b6ad48b25.png
正确

1.2SELECT name

8f2fb21b836a8b83873163f106c5e063.png

5887bc21b8c551c1208e4f1754659c79.png

c9cff1746e5c6623ee4df5194be0fff2.png

3a27aabb83423a2d4d7ce47b7363b67d.png

df61a989d0e10d0e8bac470a9c064baf.png

5235ee4c6b9b6c0b63fef0878e62b0e0.png

d1d174824ca975ef0ba2b7e4b311f6ba.png
最开始考虑到如果有a,应该是a之间有间隔,但是仅仅是考虑到间隔一个;其实a之间的间隔应该是不限制的

c337a1f83d650a72c2ad5b8b3c05ddbe.png
正确答案:直接使用%分隔符

1ba41bd009da226a30f4af5c56696bb3.png

1f499620d9d73c55496c54745fb37982.png

0b75c418c2e9e483017c93a0363070b7.png
第10题最开始的思路就是尝试使用4个_下划线,报错了于是就先暂时跳过,后来又重新试了下,又正确了,报错的忘记截图了,之后要保存下,出错的经验也很重要

ac5751b6da6705db15d33068651fc8df.png
第10题最开始不知道怎么做,之前没学到要使用length函数,暂时先空着,在做测验中有个选项有length,然后回来试了试,就正确了

419e9319c7d8078b5026c150791e9de7.png
第一次使用select函数忘记把capital去掉了

c573771c54a078e75601f3e5973b1e34.png
这里发现 = 和 like 都可以

a806e2bb8792b66e55b836d628bf2eec.png

f53aab2c197feac6b1f554dd7907c192.png
这里忽略了英语在city前面应该有一个空格,导致出错

a3c4b1dc37ae4b4afc781a2ce7367d2a.png
这里注意使用%需要用‘’来连接

fc71e4c5e10f747f500a239082a9e408.png
length和cancat组合

97d98c59e25887aae790be518fc39906.png

2.1SELECT from world

426ce7b26a9e6568b2d1c20f8a62c683.png

5c8d67a993b2c6ec0f5196fedb399061.png

568f6f374251ea025bbca6634b5b9e4a.png

cab5cc850394080f94f1321359b8993f.png

a26900ccc2cb9212ca3eede11a075310.png

3258685e79fe10b3e9e6a30c8757acac.png
第一次错误,where后面用的=号,有时候=和like效果是一样的,但是最好用like

6b35f81c99b9c54ae5b01be8b88dc99c.png

371f2f812c4f92aa767249436d5d293e.png

ad6a37ea16d669f63b0e8d065c2ce55d.png

b37492c147f3a5ec4b88803dc05a23af.png
此题未理解到国内人均生产总值需要gdp/population

7d06e07523fdabeb53691489d0056ef3.png
最开始WHERE函数条件加多了

cde1814902f434cbf3ffdcb40ed07741.png

6976f8ba55cffa83c9247082b1e57beb.png

d7f6d3017cd45c9b572b53a0082c2f16.png
Countries in Eurasia and Turkey理解错误,目前对CASE函数用法不够熟悉,后续再完成此题

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值