欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

多表连接查询与高级查询

程序员文章站 2022-03-10 17:57:14
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.deptnofrom emp e,dept dwher...

多表连接查询与高级查询

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.分组函数

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

多表连接查询与高级查询
多表连接查询与高级查询
多表连接查询与高级查询
进行B分组

如果多值的列与分组函数混用,select后边有几个多值的列,group by后边要将多值的列都需要写上,例如下:
多表连接查询与高级查询
多表连接查询与高级查询
多表连接查询与高级查询
多表连接查询与高级查询
多表连接查询与高级查询
分组函数
多表连接查询与高级查询
多表连接查询与高级查询
多表连接查询与高级查询
多表连接查询与高级查询
多表连接查询与高级查询
分组函数中空值处理:
多表连接查询与高级查询
多表连接查询与高级查询
创建数据组
多表连接查询与高级查询
多表连接查询与高级查询
多表连接查询与高级查询
多表连接查询与高级查询
排除组结果
多表连接查询与高级查询
多表连接查询与高级查询
select语句执行过程
多表连接查询与高级查询

本文地址:https://blog.csdn.net/gcyqweasd/article/details/112689351

相关标签: 数据库 mysql