楼主: Katrina10746
359 0

[学习笔记] 【学习笔记】mysql-第三天2020.4.29 1.连接条件: (1)等值连接(左,右, ... [推广有奖]

  • 0关注
  • 1粉丝

大专生

50%

还不是VIP/贵宾

-

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

楼主
Katrina10746 发表于 2020-4-29 22:32:01 来自手机 |只看作者 |坛友微信交流群|倒序 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
mysql-第三天2020.4.29


1.连接条件:
(1)等值连接(左,右,内连接等等)
(2)不等值连接:通过关联字段之间的比较关系连接,而非通过主外键值进行关联

ex)工资与工资等级

2.自连接
应用于:要查询的内容属于同一个表的同一个字段,可以通过自连接来实现,即通过别名,将同一张表视为多张表,关联进行查询

ex)员工的领导的姓名,员工和领导都是员工,就是应用场景之一

3.三张以上的表进行连接,直接在后面追加即可

a left join b on a.id=b.id
left join c on a.id = c.id

*查处结果后,可以抽样验证一下,数据结果的正确性

4.子查询

(1)标量子查询:返回的结果是一个数据(聚合值),单行单列
(2)行子查询:返回的结果是一行(单行多列)
(3)列子查询:返回的结果是一列(对行单列)
(进行比较的时候,一定排出空值)
查询操作符:
in/not in 在(不在)其中 ==》字段 in 数据表子查询

any 任何一个 ==》字段 any 数据表子查询(测试字段值是否大于数据表式子查询结果中的任何一个),也可以用标量子查询,大于最小值即可

all 全部,每个 ==》字段 阿里数据表子查询(测试字段值是否大于数据表或子查询结果集中的每一个值),也可以用标量子查询大于最大值即可

(4)表子查询:返回的结果是一张临时表(对行多列)

from子查询:就是from中的表是一个子查询的结果,注意事项(表引用加别名,子查询列中为聚合函数,则也要加别名)


5.函数
字符串函数
数值函数
日期函数

6.分组合并函数
group_concat()常用

-- GROUP_CANCAT([distinct] str [order by str asc/desc] [separator]) 将group by产生的同一个分组中的值连接起来,返回一个字符串结果。 不分组就是一个组

-- 可去重,可排序,可加自己想要的分隔符
select deptid,
group_concat(distinct empname order by salary desc separator \'|\') -- 字符串的聚合函数,忽略空值,所有的聚合函数都会忽略空值


7.-- 逻辑函数
-- IFNULL(expression, alt_value) 判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。
select ifnull(commp,0) from emp;

-- IF(expr1,expr2,expr3) 如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。
select if(salary>1000,salary,\'低于1000\') from emp;

-- if函数:查询每位员工的工资级别:3000及以上为高,1500-3000为中,1500及以下为低
select if(salary>3000,\'高\',if(salary>1500,\'中\',\'低\')) as 工资级别 from emp;

-- 逻辑表达式 case when ...then... else ... end
-- CASE WHEN expr1 THEN expr2 [WHEN expr3 THEN expr4...ELSE expr] END 如果expr1的值为true,则返回expr2的值,如果expr3的值为false,则返回expr4的值...

select empname,salary,
case
when salary > 3000 then \'高\'
when salary >1500 then \'中\'
else \'低\'
end
as 工资级别
from emp;
二维码

扫码加我 拉你入群

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

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

关键词:MySQL 学习笔记 sql 习笔记 Expression

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

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-9 08:17