MySQL补充知识及pymysql基础使用

昨日内容回顾

  • 数据查询关键字

    • where 后跟多种条件,支持逻辑运算符,支持模糊查找(使用like关键字)
    • group by 按照指定字段对数据进行分组,可以使用聚合函数筛选数据
    • having 对分组后的数据进行再次筛选
    • distinct 筛选出指定字段中不重复的数据值
    • order by 按照指定字段对数据进行排序,支持多条件筛选
    • limit 展示指定数量的数据条目
    • regexp 根据正则表达式筛选数据
  • 多表查询思路

    多表查询时,如果直接对多表的数据展示会得到表的笛卡尔积,手动指定对应关系可得到指定结果。

今日内容概要

  • 多表查询的关键字
  • SQL语句关键字补充
  • 可视化软件Navicat
  • 多表查询实操方式
  • python操作MySQL
  • pymysql常见方法

今日内容详细

多表查询的关键字

多表查询时需要实用join on关键字,常见的有:

select * from 表1 inner join 表2 on 表1.字段1=表2.字段2; # 拼接表1与表2,字段1与字段2对应

select * from 表1 left join 表2 on 表1.字段1=表2.字段2;

select * from 表1 right join 表2 on 表1.字段1=表2.字段2;

使用inner join会自动匹配两表共有的数据,舍弃其他数据,left/right join会以表1为基准匹配所有数据,表2中没有可对应的数据时,使用null填充。

SQL语句关键字补充

concat 连接多个字段,类似于字符拼接的join。

concat_ws 以同一字符连接多个字段。

add 添加新字段,after在已有字段后添加,first添加在表最开始。

change 替换字段,需要指定新字段的信息。

modify 改变现有字段的类型。

可视化软件Navicat

使用可视化软件进行MySQL数据库的操作,可以省去编写SQL代码的步骤,通过简单的鼠标操作实现编辑。

多表查询实操方式

需要使用多表查询时,使用以下方式查询:

  1. 明确多表之间的相互联系,然后筛选出需要操作的表;
  2. 根据查找的目标整理查询思路,分步操作。

python操作MySQL

python操作MySQL需要使用pymysql模块。

基本操作流程为:连接MySQL服务端→生成游标对象→发送SQL指令→接收处理结果

# 1.连接MySQL服务端
conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    password='123',
    db='db4_03',
    charset='utf8mb4'
)
# 2.产生游标对象
# cursor = conn.cursor()  # 括号内不填写额外参数 数据是元组 指定性不强  [(),()]
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  # [{},{}]
# 3.编写SQL语句
# sql = 'select * from teacher;'
sql = 'select * from score;'
# 4.发送SQL语句
affect_rows = cursor.execute(sql)  # execute也有返回值 接收的是SQL语句影响的行数
print(affect_rows)
# 5.获取SQL语句执行之后的结果
res = cursor.fetchall()
print(res)

pymysql常见方法

1.获取数据
fetchall() 获取所有的结果
fetchone() 获取结果集的第一个数据
fetchmany() 获取指定数量的结果集
注意三者都有类似于文件光标移动的特性

cursor.scroll(1,'relative')  # 基于当前位置往后移动
cursor.scroll(0,'absolute')  # 基于数据的开头往后移动

2.增删改查
autocommit = True # 针对增 删 改 自动确认(直接配置)
conn. commit() # 针对 增 删 改 需要二次确认(代码确认)

posted @ 2022-11-28 21:39  Akazukis  阅读(38)  评论(0)    收藏  举报