程序地带

多表连接查询与高级查询上(第三天)


在这里插入图片描述


select * from emp; select * from dept; –A{a,b,c} B{d,e,f,g} –A*B = {ad,ae,af,ag,bd,be,bf,bg,cd,ce,cf,cg} select ename,job,sal,dname from emp,deptno


–等值连接(只能查询出符合条件的数据,例如员工表与部门表中能对应的列deptno) select e.ename,e.job,e.sal,d.dname,e.deptno from emp e,dept d where e.deptno = d.deptno and e.sal > 3000


/* 内连接(Inner Join) 语法: select column_name(s) from table_name1 inner join table_name2 on table_name1.column_name=table_name2.columu_name 注意:on后面只写表的关联条件 */


select e.ename,e.job,e.sal,d.dname,e.deptno from emp e inner join dept d on e.deptno = d.deptno where e.sal > 3000


练习: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 /* 外连接(outer join) 1.左外连接 left outer join : 将左表中符合条件的数据与不符合条件的数据全查询出来 2.右外连接 right outer join : 将右表中符合条件的数据与不符合条件的数据全查询出来 3.全外连接 full outer join(mysql中是不支持的,Oracle中支持) 不常用 查询出两表符合条件的数据 注意:outer可以省略 */


在这里插入图片描述 在这里插入图片描述 /* 自连接: 将一张表当成两张表来看,这两张表是一模一样的(多表连接) 注意:要想使用自连接,表中的数据一定要有一定的规律 / 在这里插入图片描述 / **函数:**也可以称为方法,它是一个功能,可以重用 函数:1.自定义函数 2.系统函数(重要) ifnull(comm,0) IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。 1.字符串函数 char_length(s) 返回字符串s的字符数 */ select char_length(“hhhhhh”) from dual –执行结果:6


员工表信息查询:—ename为列 (第一个为要查询的,第二个为查询之后的) emp表名 在这里插入图片描述 –concat(s1,s2…sn) 字符串 s1,s2 等多个字符串合并为一个字符串 select concat("sql ","runoob ","gooole ",“facebook”) as concatenatedstring; –执行结果: sql runoob gooole facebook


–upper(s) 将字符串转换为大写


–lowers(s) 将字符串s的所有字母变成小写字母


–trim(s) 去掉字符串s开始和结尾处的空格


–upper(s) 将字符串转换为大写


–lowers(s) 将字符串s的所有字母变成小写字母


–trim(s) 去掉字符串s开始和结尾处的空格 –substr(s,start,length) 从字符串s的start位置截取长度为length的子字符串


–2.日期函数 –返回系统当前的日期 select curdate() from dual; --执行结果:2021-01-15


–curtime() 返回当前时间 select curtime(); --执行结果:17:12:02


–now() 返回当前日期和时间 select now() --执行结果:2021-01-15 17:13:48


–last_day(d) 返回给给定日期的那一月份的最后一天 select last_day(“2017-06-20”); --执行结果:2017-06-30


在这里插入图片描述


3.分组函数


分组函数 a) 分组函数是对表中一组记录进行操作,每组只返回一个结果,即首先要对表记录进行分组,然后再进行操作汇总,每组返回一个结果,分组时可能是整个表分为一组,也可能根据条件分成多组。 b) 分组函数常用到以下五个函数: i. MIN ii. MAX iii. SUM iv. AVG v. COUNT

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 进行B分组


如果多值的列与分组函数混用,select后边有几个多值的列,group by后边要将多值的列都需要写上,例如下: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 分组函数 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 分组函数中空值处理: 在这里插入图片描述 在这里插入图片描述 创建数据组 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 排除组结果 在这里插入图片描述 在这里插入图片描述 select语句执行过程 在这里插入图片描述


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gcyqweasd/article/details/112689351

随机推荐

给hive表和表字段添加或者修改注释

–给表添加注释ALTERTABLE表名SETTBLPROPERTIES(‘comment’=‘注释’)–给表字段添加或者修改注释altertable表名CHANGECOLUMN字段名要修改的字...

万千少女的希望 阅读(135)

apfs扩容_linux GPT分区及扩容

[root@iZ8vba689kou8r8sq4yw44Z~]#parted/dev/vdbGNUParted3.2Using/dev/vdbWelcometoGNUParted!Type&#...

weixin_39637059 阅读(238)

cups linux 升级_CUPS 2.3 发布,通用Unix打印系统

CUPS2.3发布,通用Unix打印系统自从CUPS2.2发布以来,已经过去了将近三年的时间,已经延迟了一年多的CUPS2.3的现在发布可以使用了。由于许可证...

weixin_39946996 阅读(133)