IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> python学习(十二)python与mysql -> 正文阅读

[大数据]python学习(十二)python与mysql


前言

本篇主要介绍使用mysql-connector来连接使用mysql。 mysql-connector 是 MySQL 官方提供的驱动器。

一、安装

使用pip命令来安装 mysql-connector:

python -m pip install mysql-connector

测试安装是否成功:

import mysql.connector

如果没有报错,则安装成功。
注意:如果你的 MySQL 是 8.0 版本,密码插件验证方式发生了变化,早期版本为 mysql_native_password,8.0 版本为caching_sha2_password,所以需要做些改变。具体方法可参照网上教程。

二、创建数据库连接

# !/usr/bin/python3
# -*- coding: UTF-8 -*-

import mysql.connector

conn = mysql.connector.connect(
    host="localhost",
    user='root',
    password='tamigroup',
    auth_plugin='mysql_native_password'
)
print(conn)

三、创建数据库

创建一个名为runoob_db的数据库,如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import mysql.connector

conn = mysql.connector.connect(
    host="localhost",
    user='root',
    password='tamigroup',
    auth_plugin='mysql_native_password'
)
mycursor = conn.cursor()

mycursor.execute("CREATE DATABASE runoob_db")

四、创建数据表

创建一个名为sites的数据表,如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import mysql.connector

conn = mysql.connector.connect(
    host="localhost",
    user='root',
    password='tamigroup',
    auth_plugin='mysql_native_password',
    database="runoob_db"
)
mycursor = conn.cursor()

mycursor.execute("CREATE TABLE sites (name VARCHAR(255), url VARCHAR(255))")

五、主键设置

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import mysql.connector

conn = mysql.connector.connect(
    host="localhost",
    user='root',
    password='tamigroup',
    auth_plugin='mysql_native_password',
    database="runoob_db"
)
mycursor = conn.cursor()
mycursor.execute("ALTER TABLE sites ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY")

六、插入数据

1、单条插入

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import mysql.connector

conn = mysql.connector.connect(
    host="localhost",
    user='root',
    password='tamigroup',
    auth_plugin='mysql_native_password',
    database="runoob_db"
)
mycursor = conn.cursor()
sql = "INSERT INTO sites (name, url) VALUES (%s, %s)"
val = ("RUNOOB", "https://www.runoob.com")
mycursor.execute(sql, val)
 
mydb.commit()    # 数据表内容有更新,必须使用到该语句
 
print(mycursor.rowcount, "记录插入成功。")

2、批量插入

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import mysql.connector

conn = mysql.connector.connect(
    host="localhost",
    user='root',
    password='tamigroup',
    auth_plugin='mysql_native_password',
    database="runoob_db"
)
mycursor = conn.cursor()
sql = "INSERT INTO sites (name, url) VALUES (%s, %s)"
val = [
  ('Google', 'https://www.google.com'),
  ('Github', 'https://www.github.com'),
  ('Taobao', 'https://www.taobao.com'),
  ('stackoverflow', 'https://www.stackoverflow.com/')
]
mycursor.executemany(sql, val)
 
mydb.commit()    # 数据表内容有更新,必须使用到该语句
 
print(mycursor.rowcount, "记录插入成功。")

效果如下:
在这里插入图片描述

七、查询数据

1、查询所有数据

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import mysql.connector

conn = mysql.connector.connect(
    host="localhost",
    user='root',
    password='tamigroup',
    auth_plugin='mysql_native_password',
    database="runoob_db"
)
mycursor = conn.cursor()
mycursor.execute("SELECT * FROM sites")
 
myresult = mycursor.fetchall()     # fetchall() 获取所有记录
 
for x in myresult:
  print(x)

输出如下:

('RUNOOB', 'https://www.runoob.com', 1)
('Google', 'https://www.google.com', 2)
('Github', 'https://www.github.com', 3)
('Taobao', 'https://www.taobao.com', 4)
('stackoverflow', 'https://www.stackoverflow.com/', 5)

2、查询指定的字段数据

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import mysql.connector

conn = mysql.connector.connect(
    host="localhost",
    user='root',
    password='tamigroup',
    auth_plugin='mysql_native_password',
    database="runoob_db"
)
mycursor = conn.cursor()
mycursor.execute("SELECT name, url FROM sites")
 
myresult = mycursor.fetchall()
 
for x in myresult:
  print(x)

输出如下:

('RUNOOB', 'https://www.runoob.com')
('Google', 'https://www.google.com')
('Github', 'https://www.github.com')
('Taobao', 'https://www.taobao.com')
('stackoverflow', 'https://www.stackoverflow.com/')

3、查询指定条件的数据

使用where语句,如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import mysql.connector

conn = mysql.connector.connect(
    host="localhost",
    user='root',
    password='tamigroup',
    auth_plugin='mysql_native_password',
    database="runoob_db"
)
mycursor = conn.cursor()
sql = "SELECT * FROM sites WHERE name = %s"
na = ("RUNOOB", )
 
mycursor.execute(sql, na)
 
myresult = mycursor.fetchall()
 
for x in myresult:
  print(x)

输出如下:

('RUNOOB', 'https://www.runoob.com', 1)

4、查询结果排序

查询结果排序可以使用ORDER BY语句,默认的排序方式为升序,关键字为ASC;设置降序,关键字为DESC
按name字段字母的降序排序,如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import mysql.connector

conn = mysql.connector.connect(
    host="localhost",
    user='root',
    password='tamigroup',
    auth_plugin='mysql_native_password',
    database="runoob_db"
)
mycursor = conn.cursor()
sql = "SELECT * FROM sites ORDER BY name DESC"
 
mycursor.execute(sql)
 
myresult = mycursor.fetchall()
 
for x in myresult:
  print(x)

输出如下:

('Taobao', 'https://www.taobao.com', 4)
('stackoverflow', 'https://www.stackoverflow.com/', 5)
('RUNOOB', 'https://www.runoob.com', 1)
('Google', 'https://www.google.com', 2)
('Github', 'https://www.github.com', 3)

5、设置查询的数据量

可以只读取前3条记录,如下:

mycursor.execute("SELECT * FROM sites LIMIT 3")

也可以指定起始位置,如下:

mycursor.execute("SELECT * FROM sites LIMIT 3 OFFSET 1")  # 0 为 第一条,1 为第二条,以此类推

八、删除记录

import mysql.connector

conn = mysql.connector.connect(
    host="localhost",
    user='root',
    password='tamigroup',
    auth_plugin='mysql_native_password',
    database="runoob_db"
)
mycursor = conn.cursor()
sql = "DELETE FROM sites WHERE name = %s"
na = ("stackoverflow",)

mycursor.execute(sql, na)

conn.commit()

print(mycursor.rowcount, " 条记录删除")

九、更新表数据

import mysql.connector

conn = mysql.connector.connect(
    host="localhost",
    user='root',
    password='tamigroup',
    auth_plugin='mysql_native_password',
    database="runoob_db"
)
mycursor = conn.cursor()
sql = "UPDATE sites SET name = %s WHERE name = %s"
val = ("TB", "Taobao")

mycursor.execute(sql, val)

conn.commit()

print(mycursor.rowcount, " 条记录被修改")

十、删除表

import mysql.connector

conn = mysql.connector.connect(
    host="localhost",
    user='root',
    password='tamigroup',
    auth_plugin='mysql_native_password',
    database="runoob_db"
)
mycursor = conn.cursor()
sql = "DROP TABLE IF EXISTS sites"  # 删除数据表 sites

mycursor.execute(sql)
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:37:17  更:2022-03-15 22:41:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:27:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码