Python学习第二十五课——Mysql (多表查询)
多表查询:
内连接查询:
首先:创建两个表一个为tableA,一个为tableB,并且插入数据(代码省略)

同时查询两个表的记录:
select * from tableA,tableB;

根据tableA中id 等于 tableB 中refer_id 进行内连接查询:
select * from tableA,tableB where tableA.id=tableB.refer_id;

也可以用一下方法进行内连接查询:
select * from tableB inner join tableA on tableB.refer_id=tableA.id; --inner join -- on --用法 select tableA.id,tableA.name,tableB.name from tableB inner join tableA on tableB.refer_id=tableA.id;


具体例子(员工和部门):
首先:创建两个表一个为employee,一个为department,并且插入数据(代码省略)

要求:根据员工表中的部门id 和 部门表中的部门id 对应查询出 员工所在部门;
select employee.name,department.dept_name from department
inner join employee
on department.dept_id=employee.dept_id; -- 内连接查询,此时from A inner join B 中 顺序无所谓

外连接:
select employee.name,department.dept_name from department
left join employee
on department.dept_id=employee.dept_id; -- from 那个表 就以那个表为主 就是 显示那个表 select employee.name,department.dept_name from employee
left join department
on department.dept_id=employee.dept_id; -- from 那个表 就以那个表为主 就是 显示那个表

练习1:显示技术部的人和部门
select employee.name,department.dept_name from employee
inner join department
on department.dept_id=employee.dept_id
and department.dept_id=201;

练习2:显示拥有大于25岁员工的部门(如有多个只显示一个即可)
select department.dept_name from department
inner join employee
on department.dept_id=employee.dept_id
and employee.age>25; select DISTINCT department.dept_name from department
inner join employee
on department.dept_id=employee.dept_id
and employee.age>25; -- DISTINCT 去重

Python学习第二十五课——Mysql (多表查询)的更多相关文章
- Python学习第二十四课——Mysql 外键约束
外键:主要是关联两个表的 举个栗子:在建表中创建外键 -- 添加外键例子 CREATE TABLE teacher( id TINYINT PRIMARY KEY auto_increment, na ...
- Python学习第二十二课——Mysql 表记录的一些基本操作 (增删改)
记录基本操作: 增:(insert into) 基本语法: insert into 表名(字段) values(对应字段的值): 例子1: insert into employee(id,name,a ...
- Python学习第二十八课——Django(templates)
templates 讲后台得到的数据渲染到页面上:话不多说,先看具体代码. urls: from django.conf.urls import url from django.contrib imp ...
- Python学习第二十八课——Django(urls)
Django框架中的urls配置: 首先通过pycharm创建一个Django项目: 例如要写blog的功能:则在digango_lesson中的urls代码如下: """ ...
- Python学习第二十六课——PyMySql(python 链接数据库)
Python 链接数据库: 需要先安装pymysql 包 可以设置中安装,也可以pip install pymysql 安装 加载驱动: import pymysql # 需要先安装pymysql 包 ...
- JAVA学习第二十五课(多线程(四))- 单例设计模式涉及的多线程问题
一.多线程下的单例设计模式 利用双重推断的形式解决懒汉式的安全问题和效率问题 //饿汉式 /*class Single { private static final Single t = new Si ...
- python学习第二十五天函数位置参数和关键词参数
函数位置参数顾名思义就是按位置排序,按位置对应参数,位置一一对应,函数的关键词参数是不按照顺序来的,可以指定的参数传值.但是注意的是,位置参数必须在关键词参数之前. 1,函数位置参数 def good ...
- Python学习第十五课——类的基本思想(实例化对象,类对象)
类的基本思想 类:把一类事物的相同的特征和动作整合到一起就是类类是一个抽象的概念 对象:就是基于类而创建的一个具体的事物(具体存在的)也是特征和动作整合到一块 对象写法 # 对象写法 def scho ...
- 风炫安全WEB安全学习第二十五节课 利用XSS键盘记录
风炫安全WEB安全学习第二十五节课 利用XSS键盘记录 XSS键盘记录 同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源.所以xyz.com下的js脚本采用a ...
随机推荐
- python 中if和elif的区别
如果程序中判断事件很多,全部用if的话,会遍历整个程序,用elif 程序运行时,只要if或后续某一个elif之一满足逻辑值为True,则程序执行完对应输出语句后自动结束该轮if-elif(即不会再去冗 ...
- HTML学习(14)表单
HTML 表单用于收集不同类型的用户输入. HTML 表单 表单是一个包含表单元素的区域. 表单元素是允许用户在表单中输入内容,比如:文本域(textarea).下拉列表.单选框(radio-butt ...
- python 中模块的版本号
查看所使用的模块的版本号,以numpy为例 import numpy numpy.__version__ 查看help(numpy)时,信息太多,不想看了,如何退出,按q,即可.
- JavaScript arguments对象浅析
arguments对象 概念 用法 属性 arguments对象 概念 arguments 是一个类数组对象.代表传给一个function的参数列表. 用法 function a() { consol ...
- 主席树 模板题 luogu([POI2014]KUR-Couriers)
求区间内是否有个数大于二分之一的数,有的话输出这个数,没有的话输出0. 在询问的时候,如果左边有sum大于这个limit,就可以继续求,如果右边有sum大于limit 也递归, 如果都不行,返回 0 ...
- 数据库程序接口——JDBC——功能第四篇——事务之Spring事务
综述 事务的实现方式有三种,JTA,Spring事务,Web Container方式.本篇讲述Spring事务. Spring事务分为两个部分核心对象,Spring事务的实现方式. Spring事务实 ...
- Git - 03. git 工作空间
1. 概述 git 存放代码的地方 2. 创建 命令 # 1. 从无到有 > git init # 2. 从远程拉去现有的仓库 > git clone <url> 3. 文件生 ...
- Linux centos7 shell 介绍、 命令历史、命令补全和别名、通配符、输入输出重定向
一.shell介绍 shell脚本是日常Linux系统管理工作中必不可少的,不会shell,就不是一个合格管理员. shell是系统跟计算机硬件交互使用的中间介质,一个系统工具.实际上在shell和计 ...
- Python(二) isinstance
原文链接: http://www.baike.com/wiki/isinstance&prd=jinshan https://www.liaoxuefeng.com/wiki/00143160 ...
- Java面向对象编程 -6
数组的基本概念 数组的本质:一组相关变量的集合. 但是需要注意的一点是:在java里面讲数组定义为了引用数据类型,所以数组的使用一定要牵扯到内存分配,那么首先一定要想到使用关键字new来处理 数组的定 ...