一.多表查询

  1.笛卡儿积 查询

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_数据

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_查询语句_02

 

  2.连接

   语法:

           数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_建表_03

   ①inner    显示可构成连接的数据

    mysql> select employee.id,employee.name,department.name as depart_name 

        from employee inner join department 
        on employee.dep_id=department.id;

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_数据_04

   ②left    左连接:优先选择左表全部记录

 数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_数据_05

   ③right   右连接:优先选择右表全部记录

 数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_数据_06

   ④ 全连接:显示两个表的全部记录

 数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_查询语句_07

用法实例:

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_mysql_08

 

  3.子链接

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_子查询_09

 

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_子查询_10

 

   ①带 in 关键字的子查询

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_数据_11

  ② 带比较运算符的子查询

 数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_mysql_12

 

    ③带 exists 的子查询

    在使用EXISTS关键字时,内层查询语句不返回查询的记录。而是返回一个真假值。True或False
      当返回True时,外层查询语句将进行查询;当返回值为False时,外层查询语句不进行查询。

 

 数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_建表_13

 

 二.Navicat 工具使用

  1.连接

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_查询语句_14

 

   2.建数据库

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_数据_15

 

 数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_建表_16

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_查询语句_17

 

   3,建表

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_查询语句_18

 

 数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_子查询_19

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_查询语句_20

 

 数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_数据_21

 

 数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_查询语句_22

 

 数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_mysql_23

 

  4 。查看

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_建表_24

 

 数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_建表_25

 

   5。导入与导出

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_mysql_26

 

 数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_建表_27

 

 数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_mysql_28

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_数据_29

 

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_查询语句_30

 

 数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_数据_31

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_查询语句_32

 

   6.查询

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_子查询_33

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_查询语句_34

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_建表_35

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_数据_36

 三.  pymysql 模块的使用

  1.基本语法

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_查询语句_37

  2.  增 ,删 ,改  要用  conn.commit( )

 数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_查询语句_38

  3. execute()   之sql 注入

 错误现象:

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_子查询_39

bug 1:  知道用户 不知道密码

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_查询语句_40

  原因:--  是注释的意思,对后面的密码限制条件进行了注释

bug 2: 用户和密码 都不知道

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_数据_41

  原因:or 后面跟了一个永远为真的数据

解决方式;

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_建表_42

 

   4.获取插入的最后一条数据的自增ID

数据库 ---  4  多表查询  ,Navicat工具 ,  pymysql模块_mysql_43

 

  5.建库建表

import pymysql

# 建库和建表
con = pymysql.connect(host='localhost', user='root',
                      passwd='', charset='utf8',database="awesome")
cur = con.cursor()
# 开始建库
cur.execute("create database awesome character set utf8;")
# 使用库
cur.execute("use awesome;")
# 建表
cur.execute("create table blogs(id char(20) primary key,user_id char(20),name char(20));")