楼主: Katrina10746
538 0

[学习笔记] 【学习笔记】mysql第二天-2020.4.28 单表查询: 1.去重 distinct 单字段或多 ... [推广有奖]

  • 0关注
  • 1粉丝

大专生

50%

还不是VIP/贵宾

-

威望
0
论坛币
160 个
通用积分
30.8936
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
239 点
帖子
45
精华
0
在线时间
4 小时
注册时间
2020-3-29
最后登录
2022-4-2

楼主
Katrina10746 发表于 2020-4-28 21:08:32 来自手机 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
mysql第二天-2020.4.28

单表查询:
1.去重 distinct 单字段或多字段均可

2.条件查询:
运算优先级:算数运算符>条件运算符>逻辑运算符
逻辑运算符:not ,and,or

3.模糊查询:
like
通配符
%不定长度匹配
_一个字符

4.排序:
order by
默认 升序
asc 升序
desc 降序

注意:对两个字段以上进行排序,只有当第一个字段取值相同时,才会对第二个字段进行排序

5.限制查询结果数量:
limit 偏移量(从0开始),行数

6.分组:
group by
having  分组条件

select 后面只能跟分组字段和聚合字段,显示其他字段也可以,但如果不是和分组字段一一对应,虽然不会报错,但也没意义。

聚合函数:
count()
Max()
Min()
Avg()
Sum()

having 后可以用聚合函数,不可以用select中指定的别名,其他数据库都不行,mysql5.75版本可以用,建议不要在having后用select中指定的别名

7.多表连接

表之间的关系:
1:1
1:多
多:多

连接形式:
内连接:只有两个表中满足连接条件的数据都有才显示
inner join
左右连接:只要确定主表,左右连接都一样,满足连接条件的查询出来,同时主表中的记录也会被查出来而附表中的记录显示为空
left join
right join
全连接:满足连接条件的,以及左,右表中不满足记录的都会显示。
右反连接:右表有左表为空的显示
左反连接:左表有右表为空的显示

笛卡尔积 :
select * from a,b;
记录总数 a记录数*b记录数
若有限制条件,同inner join

-- 内连接
select * from t1 inner join t2 on t1.key1 = t2.key2;
select * from t1,t2 where t1.key1 = t2.key2; -- 内连接 没有主副关系

-- 左连接
select * from t1;
select * from t2;
select * from t1 left join t2 on t1.key1=t2.key2;

-- 右连接
select * from t1;
select * from t2;
select * from t1 right join t2 on t1.key1=t2.key2;


-- 全连接 mysql 实现方式

select * from t1 left join t2 on t1.key1 = t2.key2
union
select * from t1 right join t2 on t1.key1 = t2.key2;

-- mysql实现左反连接
select * from t1 left join t2 on t1.key1 = t2.key2
where t2.key2 is null;

-- mysql实现右反连接

select * from t1 right join t2 on t1.key1 = t2.key2
where t1.key1 is null;


维度:用来分组的字段(有序:学历,职称;无序:姓名,性别,血型)
度量:用来聚合计算的字段(数值字段)

如何选择主表:
1表作为主表可以保证维度的完整性
多表作为主表可以保证度量的准确性
没有明确表明需要保证维度完整的准确性,所以将度量值所在表作为主表
度量值通常存在于多表中,因此通常情况下可以将多表作为主表进行外连接

不同的数据分析工具支持的表连接方式:
Oracle/sql server/Tableau/Python:内连接(inner join)、左连接(left join)、右连接(right join)、全连接(full join)
MySQL:内连接(inner join)、左连接(left join)、右连接(right join)
Power BI:内连接、左连接、右连接、全连接、左反连接、右反连接


8.合并查询                           
union 合并可以去重   
union all 合并但不能去重

9.代码执行顺序以及编写顺序:
from
where
group by
having
select
order by
limit

注意:count(*)不是所有都可以这么计算,要按实际数据情况,可通过count(字段名)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Distinct MySQL 学习笔记 IST Tin

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-10 22:50