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() #关闭链接

posted @ 2020-03-27 10:33  我会飞︿( ̄︶ ̄)︿  阅读(216)  评论(0)    收藏  举报