python 原生mysql
# 1、创建链接
# 2、创建游标
# 3、游标执行语句
# 4、链接提交到服务器
# 5、游标取结果,返回数组/字典
# 6、关闭游标/链接
import pymysql
####################创建数据库
try:
con = pymysql.connect(host='localhost',user='root',password='123456',charset='utf8',port=3306) #连接服务器
cursor = con.cursor() #创建游标
cursor.execute('create database newdb') #执行创库语句
con.close() #关闭链接
except:
pass
############# 数据库里一共有多少个表
db = pymysql.connect(host='localhost',user='root',password='123456',db='newdb',charset='utf8',port=3306) #连接数据库
cursor = db.cursor() #创建游标
tables = cursor.execute('show tables from newdb') #执行查表语句
db.commit() # 提交到服务器执行语句
print('共查到:' + str(tables) + '个表,表名分别是')
for i in cursor.fetchall():
print(i[0])
db.close() #关闭链接
###################创建表
try:
db = pymysql.connect(host='localhost',user='root',password='123456',db='newdb',charset='utf8',port=3306) #连接数据库
cursor = db.cursor() #创建游标
cursor.execute('create table student(id INT primary key NOT NULL AUTO_INCREMENT,name varchar(10),age varchar(3))') #执行创表语句
db.commit() # 提交到服务器执行语句
db.close() #关闭链接
except:
pass
##################### 查询表里有多少个字段
db = pymysql.connect(host='localhost',user='root',password='123456',db='newdb',charset='utf8',port=3306)
cursor = db.cursor()
columns = cursor.execute('show columns from student') #查询表里有多少个字段
db.commit() # 提交到服务器执行语句
print('共查到:' + str(columns) + '个字段,字段名分别是')
for i in cursor.fetchall():
print(i[0])
db.close()
#####################插入数据
db = pymysql.connect(host='localhost',user='root',password='123456',db='newdb',charset='utf8',port=3306) #连接数据库
cursor = db.cursor() #创建游标
cursor.execute('insert into student(name,age) values ("张三",10)') #插入单个数据
db.commit() # 提交到服务器执行语句
cursor.executemany('insert into student(name,age) values (%s,%s)',[('测试1',10),("测试2",11)]) #插入多个数据
db.commit() # 提交到服务器执行语句
db.close() #关闭链接
#################### 读取数据
db = pymysql.connect(host='localhost',user='root',password='123456',db='newdb',charset='utf8',port=3306) #连接数据库
cursor = db.cursor(cursor=pymysql.cursors.DictCursor) #创建游标,创建游标括号里加上数据,返回 字典型,否则是 数组型
cursor.execute('select * from student') #读取表里所有数据。
for i in cursor.fetchall():
print(i)
print('一共:' + str(cursor.rowcount) + '行')
cursor.execute('select * from student limit 4') #读取前4行数据
print('读取前4行数据')
for i in cursor.fetchall():
print(i)
cursor.execute('select * from student limit 4,1') #读取第 5 行数据(从5开始,读取1行,就是读取第5行数据)
print('读取第5行数据')
for i in cursor.fetchall():
print(i)
cursor.execute("select * from student where id = 2") #读取id 是2 的 行数据
print('读取id是2的整行数据:' + cursor.fetchone())
cursor.execute('select age from student where name = "张三"') #查询name是张三的age值
print('查询名字叫 张三的年龄:' + cursor.fetchall())
db.close() #关闭数据库连接
#################### 修改数据
db = pymysql.connect(host='localhost',user='root',password='123456',db='newdb',charset='utf8',port=3306) #连接数据库
cursor = db.cursor() #创建游标
cursor.execute('update student set name = "老大" where id = 5') #将 id 是 5 的 name 改成 老大
db.commit() # 提交到服务器执行语句
db.close() #关闭链接
################# 删除数据
db = pymysql.connect(host='localhost',user='root',password='123456',db='newdb',charset='utf8',port=3306) #连接数据库
cursor = db.cursor() #创建游标
cursor.execute('delete from student where id = 4') #删除第4 行
db.commit() # 提交到服务器执行语句
db.close() #关闭链接

浙公网安备 33010602011771号