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语句执行过程

多表连接查询与高级查询上(第三天)相关推荐

  1. java高级查询_SQL高级查询(转载)

    transact---sql高级查询(下) 5:使用having关键字来筛选结果 6:使用compute和compute by子句 7:使用嵌套查询 8:分布式查询 E:使用having关键字来筛选结 ...

  2. mysql 最值复杂查询_MySQL高级查询

    我们使用SQL查询不能只使用很简单.最基础的SELECT语句查询.如果想从多个表查询比较复杂的信息,就会使用高级查询实现.常见的高级查询包括多表连接查询.内连接查询.外连接查询与组合查询等,今天我们先 ...

  3. mysql多类型查询_MYSQL中的多类型查询及高级查询操作

    离散查询 select * from car where price=30 or price=40 or price=50 or price=60; select * from car where p ...

  4. mysql 层次化查询_SQL高级查询(层次化查询,递归)

    SQL 高级查询 层次化查询 层次化结构可以理解为树状数据结构,由节点构成.比如常见的组织结构由一个总经理,多个副总经理,多个部门部长组成.再比如在生产制造中一件产品会有多个子零件组成.举个简单的例子 ...

  5. mysql lambda查询_MySQL高级查询和编程基础

    学习概述 随着数据库管理信息系统的日益复杂和庞大,软件应用系统对数据库设计.数据存储.数据查询和数据维护等提出了更高的要求.本书主要介绍数据库设计的方法和技术.子查询技术.MySQL编程基础知识和存储 ...

  6. solr基本查询和高级查询

    查询参数 常用: q - 查询字符串,必须的. fl - 指定返回那些字段内容,用逗号或空格分隔多个. start - 返回第一条记录在完整找到结果中的偏移位置,0开始,一般分页用. rows - 指 ...

  7. Python ORM之SQLAlchemy 数据库连接引擎实现Mysql、PostgreSQL、Oracle连接以及高级查询的相关实例

    1 环境 SQLAlchemy 2.0.7 PyMySQL 1.0.2 Python 3.8.16 2 背景 SQLAlchemy 工具 实现多种数据库连接支持 MetaData.automap_ba ...

  8. MySQL数据库----多表查询,表连接

    一.查询概述: 查询:指的是针对表中已经存在的数据,可以按照特定组合,条件,或者次序等等来进行一系列的检索查看操作------>select语句. 二.查询的基本操作: 1.查询语句的基本结构: ...

  9. mysql用if判断关联的表_mysql表连接,子查询以及if判断

    创建表: CREATE TABLE emp ( ename varchar(10) DEFAULT NULL, hiredate date DEFAULT NULL, sal decimal(10,2 ...

  10. 16、子查询改写为表连接

    子查询如递归函数一样,有时侯能达到事半功倍的效果,但是其执行效率较低.与表连接相比,子查询比较灵活,方便,形式多样,适合作为查询的筛选条件,而表连接更适合查看多表的数据. 一般情况下,子查询会产生笛卡 ...

最新文章

  1. 山西农业大学c语言答案,第一章C语言及程序设计概述-东北农业大学教务处.doc...
  2. 刻意练习:LeetCode实战 -- Task26.判断子序列
  3. python学习一(python与pip工具下载与安装)
  4. python hsv inrange 范围_仅20行代码,用python给证件照换底色
  5. C++字符串转化为数字的库函数
  6. android if else语句,Android一起执行IF和ELSE语句
  7. java 保存的代码怎么写_java实现写入并保存txt文件的示例代码
  8. java arraylist
  9. 1.24 Java周末总结 ①乘法数据的溢出 ②测试random随机数几率是否相等 ③判断字符串是否为纯数字...
  10. C 编译器、链接器、加载器详解
  11. 【狂神MySQL笔记】常用命令行语句(1)
  12. Can not find the tag library descriptor for http://java.sun.com/jsp/jst1/core
  13. 小米手机第三方卡刷软件_小米4第三方recovery刷入教程 小米4卡刷必备程序
  14. 固定表头和固定列表格解决方案
  15. vmware fusion安装kvm虚拟机
  16. MAC VMware Fusion 克隆虚拟机
  17. 一个Java 程序的主方法_java application程序中,每一个类中,必有一个主方法main()方法。...
  18. linux登录pg数据库命令,PostgreSQL数据库pg_dump命令行不输入密码的方法
  19. matlab 之 图中/坐标的线型、颜色、线宽
  20. 使用低代码平台 - 危险的赌注

热门文章

  1. uni-app实战之社区交友APP(12)文章和话题API开发
  2. 【NLP】电影评论情感分析(基础篇)
  3. 绘制IRB1200机器人工作空间
  4. 遥感图像超分辨重建综述
  5. drupal 7 ajax,【漏洞分析】CVE-2018-7600 Drupal 7.x 版本代码执行
  6. c# 使用谷歌身份验证GoogleAuthenticator的示例
  7. 如何成为一个精力充沛的程序员——掌控
  8. 2021-05-18 C#.NET面试题 一张长方形的桌面上放n个一样大小的圆形硬币。这些硬币中可能有一些不完全在桌面内,也可能有一些彼此重叠;当再多放一个硬币而它的圆心在桌面内时,新放的硬币便必定与
  9. 64位win7旗舰版java_win7 64位旗舰版下载_lenovo windows7 64位旗舰版笔记本专用系统_软件侠下载站...
  10. android 获取短信中心号码,无法发短信,短信中心号码设置 解决办法!!!