安装?mysql-connector:
python -m pip install mysql-connector
?
import mysql.connector
from mysql.connector import connect
my_db = connect(
# 数据库主机地址
host='localhost',
# 数据库用户名
user='root',
# 数据库密码
passwd='yourpassword',
# 固定插件
auth_plugin='mysql_native_password'
)
print(my_db)
#<mysql.connector.connection.MySQLConnection object at 0x0000014E918348E0>
?
import mysql.connector
from mysql.connector import connect
my_db = connect(
# 数据库主机地址
host='localhost',
# 数据库用户名
user='root',
# 数据库密码
passwd='yourpassword',
# 固定插件
auth_plugin='mysql_native_password'
)
# 获取游标
mycursor = my_db.cursor()
# 创建数据库
mycursor.execute('CREATE DATABASE run_db')
# 查询数据库
mycursor.execute('SHOW DATABASES')
for i in mycursor:
print(i)
# 使用数据库
mycursor.execute(" USE run_db")
# 创建数据表
mycursor.execute('CREATE TABLE sites (name VARCHAR(255),url VARCHAR(255))')
# 查询数据表
mycursor.execute('SHOW TABLES')
for n in mycursor:
print(n)
import mysql.connector
from mysql.connector import connect
my_db = connect(
# 数据库主机地址
host='localhost',
# 数据库用户名
user='root',
# 数据库密码
passwd='yourpassword',
# 固定插件
auth_plugin='mysql_native_password'
)
mycursor = my_db.cursor()
mycursor.execute('USE demo')
mycursor.execute('CREATE TABLE sites (name VARCHAR(255),url VARCHAR(255))')
# 插入数据
sql = 'INSERT INTO sites (name,url) VALUE (%s,%s)'
val = ('南栀北夏网站','jinghan.site')
mycursor.execute(sql,val)
# 在执行插入、更新或删除等修改数据库的操作后,必须调用 commit() 方法才能确保更改被保存到数据库中。
my_db.commit()
# mycursor.rowcount 返回最后一次执行 SQL 语句后受影响的行数
print(mycursor.rowcount,'记录插入成功')
?
?
import mysql.connector
from mysql.connector import connect
my_db = connect(
# 数据库主机地址
host='localhost',
# 数据库用户名
user='root',
# 数据库密码
passwd='yourpassword',
# 固定插件
auth_plugin='mysql_native_password'
)
mycursor = my_db.cursor()
mycursor.execute('USE demo')
# 插入数据
sql = 'INSERT INTO sites (name,url) VALUE (%s,%s)'
val = [
('南栀北夏网站','jinghan.site'),
('百度','baidu.com'),
('github','https://www.github.com')
]
# executemany() 方法,并传递了 SQL 插入语句和要插入的多个值的列表
mycursor.executemany(sql,val)
# 在执行插入、更新或删除等修改数据库的操作后,必须调用 commit() 方法才能确保更改被保存到数据库中。
my_db.commit()
# mycursor.rowcount 返回最后一次执行 SQL 语句后受影响的行数
print(mycursor.rowcount,'记录插入成功')
import mysql.connector
from mysql.connector import connect
my_db = connect(
# 数据库主机地址
host='localhost',
# 数据库用户名
user='root',
# 数据库密码
passwd='yourpassword',
# 固定插件
auth_plugin='mysql_native_password'
)
mycursor = my_db.cursor()
# 选择数据库
mycursor.execute('USE demo')
# 查询数据库
mycursor.execute('SELECT name,url FROM sites')
# mycursor.fetchall() 方法是执行查询操作后获取所有结果的方法
myresult = mycursor.fetchall()
for i in myresult:
print(i)
?myresult = mycursor.fetchone():读取一条数据,可以使用?fetchone()?方法
import mysql.connector
from mysql.connector import connect
my_db = connect(
# 数据库主机地址
host='localhost',
# 数据库用户名
user='root',
# 数据库密码
passwd='yourpassword',
# 固定插件
auth_plugin='mysql_native_password'
)
mycursor = my_db.cursor()
# 选择数据库
mycursor.execute('USE demo')
# 删除数据
sql = "DELETE FROM sites WHERE name = '百度'"
#;另外一种方法:
#sql = "DELETE FROM sites WHERE name = %s"
#na = ("stackoverflow", )
#mycursor.execute(sql, na)
mycursor.execute(sql)
my_db.commit()
print(mycursor._rowcount,'条记录删除')
import mysql.connector
from mysql.connector import connect
my_db = connect(
# 数据库主机地址
host='localhost',
# 数据库用户名
user='root',
# 数据库密码
passwd='yourpassword',
# 固定插件
auth_plugin='mysql_native_password'
)
mycursor = my_db.cursor()
# 选择数据库
mycursor.execute('USE demo')
# 更新表数据
sql = "UPDATE sites SET name = 'zh' WHERE name = '南栀北夏网站'"
mycursor.execute(sql)
my_db.commit()
print(mycursor.rowcount,'条记录修改')
安装最新版的 PyMySQL
pip3 install PyMySQL
import pymysql
# 打开数据库连接
db = pymysql.connect(
host='localhost',
user='root',
password='yourpassword',
# 数据库名称
database='demo'
)
# 创建一个游标对象
cusor = db.cursor()
# 创建数据库表
sql = """
CREATE TABLE EMPLOTEE(
name CHAR(20) NOT NULL,
age INT,
sex CHAR(1),
INCOME FLOAT
)
"""
cusor.execute(sql)
db.close()
import pymysql
# 打开数据库连接
db = pymysql.connect(
host='localhost',
user='root',
password='yourpassword',
# 数据库名称
database='demo'
)
# 创建一个游标对象
cusor = db.cursor()
# sql插入数据
sql = "INSERT INTO EMPLOTEE(name,age,sex,INCOME) VALUES ('tom',18,'男',2000)"
try:
# 执行sql语句
cusor.execute(sql)
# 提交到数据库执行
db.commit()
except Exception as e:
print('发生错误',e)
# 发生错误时回滚
db.rollback()
# 关闭数据库
db.close()
?
import pymysql
# 打开数据库连接
db = pymysql.connect(
host='localhost',
user='root',
password='yourpassword',
database='demo'
)
# 创建一个游标对象
cursor = db.cursor()
# SQL 查询数据
sql = "SELECT * FROM EMPLOTEE WHERE INCOME > %s" % (1000)
try:
db.commit()
cursor.execute(sql)
result = cursor.fetchall()
for row in result:
name = row[0]
age = row[1]
sex = row[2]
income = row[3]
print("name=%s, age=%s, sex=%s, income=%s" % (name, age, sex, income))
except Exception as e:
print('代码异常:', str(e))
# 关闭游标和数据库连接
cursor.close()
db.close()
import pymysql
# 打开数据库连接
db = pymysql.connect(
host='localhost',
user='root',
password='yourpassword',
database='demo'
)
# 创建一个游标对象
cursor = db.cursor()
# sql更新数据
sql = "UPDATE EMPLOTEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('男')
try:
# 执行sql
cursor.execute(sql)
db.commit()
except Exception as e:
print('代码异常',e)
db.rollback()
db.close()
import pymysql
# 打开数据库连接
db = pymysql.connect(
host='localhost',
user='root',
password='yourpassword',
database='demo'
)
# 创建一个游标对象
cursor = db.cursor()
# sql删除数据
sql = "DELETE FROM EMPLOTEE WHERE AGE < 20"
try:
cursor.execute(sql)
db.commit()
except Exception as e:
print(e)
db.rollback()
db.close()
多线程类似于同时执行多个不同程序,多线程运行有如下优点:
Python中使用线程有两种方式:函数或者用类来包装线程对象。
函数式:调用 _thread 模块中的start_new_thread()函数来产生新线程。语法如下:
_thread.start_new_thread ( function, args[, kwargs] )
?线程模块——threading
?
import threading
import time
exitFlag = 0
class myThread(threading.Thread):
def __init__(self,threadID,name,delay):
threading.Thread.__init__(self)
self.threadID = threadID
self.name = name
self.delay = delay
def run(self):
print("开始线程:" + self.name)
print_time(self.name,self.delay,5)
print('退出线程:' + self.name)
def print_time(threadName,delay,counter):
while counter:
if exitFlag:
threadName.exit()
time.sleep(delay)
print ("%s: %s" % (threadName, time.ctime(time.time())))
counter -= 1
# 创建新线程
thread1 = myThread(1,'Thread-1',1)
thread2 = myThread(2,'Thread-2',2)
# 开启新线程
thread1.start()
thread2.start()
thread1.join()
thread2.join()
print('退出主线程')
?
?
?