Python连接MySQL数据库

一、连接数据库

案例:

import pymysql #导入pymysql

try:
    #连接数据库
    con = pymysql.connect(host='localhost',user='root',password='manager',database='student',port=3306)
    print('数据库连接成功!') #连接成功,输出
except pymysql.Error as e:  #捕获异常
    print('数据库连接失败:'+str(e)) #连接失败,打印并打印出异常

二、建表

建表sql语句

1.声明一个游标:

cur = con.cursor() 

2.创建表之前先检查表是否存在,如果存在则删除

cur.execute("DROP TABLE IF EXISTS stutable")

3.编辑建表sql语句

sql = 'CREATE TABLE stutable(sname varchar(30) not null,sno int primary key auto_increment,grade int(10),major varchar(30))'

案例:

import pymysql #导入pymysql

try:
    #连接数据库
    con = pymysql.connect(host='localhost',user='root',password='manager',database='student',port=3306)
    cur = con.cursor() #创建一个游标
    cur.execute("DROP TABLE IF EXISTS stutable") #建表之前查看是否存在,如果存在则删除
    sql = 'CREATE TABLE stutable(sname varchar(30) not null,sno int primary key auto_increment,grade int(10),major varchar(30))'#编辑sql语句
    cur.execute(sql) 
    print('表创建成功!') #连接成功,输出
except pymysql.Error as e:  #捕获异常
    print('表创建失败:'+str(e)) #连接失败,打印并打印出异常

三、向表中插入一条数据

插入数据sql语句

sql = "insert into stutable(sno,sname,grade,major) values(20,'小王',2020,'金融')"

案例:

import pymysql #导入pymysql

try:
    #连接数据库
    con = pymysql.connect(host='localhost',user='root',password='manager',database='student',port=3306)
    cur = con.cursor() #创建一个游标
    sql = "insert into stutable(sno,sname,grade,major) values(20,'小王',2020,'金融')" #数据库插入数据语句
    cur.execute(sql)
    con.commit() #数据提交
    print('数据插入成功!') #连接成功,输出
except pymysql.Error as e:  #捕获异常
    print('数据插入失败:'+str(e)) #连接失败,打印并打印出异常

四、查询数据库

查询sql语句

1.编辑sql语句

sql = "select * from stutable" #数据库插入数据语句

2.使用fetchall()方法接收全部的返回结果行

results = cur.fetchall()

3.fetchone() :

返回单个的元组,也就是一条记录(row),如果没有结果 则返回 None

fetchall() :

返回多个元组,即返回多个记录(rows),如果没有结果 则返回 ()

案例:

import pymysql #导入pymysql
try:
    #连接数据库
    con = pymysql.connect(host='localhost',user='root',password='manager',database='student',port=3306)
    cur = con.cursor() #创建一个游标
    sql = "select * from stutable" #数据库插入数据语句
    cur.execute(sql)
    results = cur.fetchall() #接收返回值,fetchall() :返回多个元组,即返回多个记录(rows),如果没有结果 则返回 ()
    for row in results:
        xingming = row[0]
        xuehao = row[1]

        nianji = row[2]
        zhuanye = row[3]
        print('姓名:%s,学号:%d,年级:%d,专业:%s'%(xingming,xuehao,nianji,zhuanye))
except pymysql.Error as e:  #捕获异常
    print('数据查询失败:'+str(e)) #连接失败,打印并打印出异常

con.close() #数据库关闭

五、更新表中语句

更新一条数据sql语句

sql = "update stutable set sname = %s where sname = %s"  # 数据库更新数据语句
value = ('王五','张三')

案例:

import pymysql #导入pymysql

try:
    #连接数据库
    con = pymysql.connect(host='localhost',user='root',password='manager',database='student',port=3306)
    print('数据库连接成功')
    cur = con.cursor() #创建一个游标
   # sql = "update stutable set sname = '张三' where sname = '小王'"#数据库更新数据语句
    sql = "update stutable set sname = %s where sname = %s"  # 数据库更新数据语句
    value = ('王五','张三')
    cur.execute(sql,value)
    con.commit()
    print("数据更新成功!")
except pymysql.Error as e:  #捕获异常
    print('数据更新失败:'+str(e)) #连接失败,打印并打印出异常
    con.rollback()
con.close() #数据库关闭

六、删除数据

删除一条数据sql语句

sql = "update stutable set sname = '张三' where sname = '小王'"
或
sql = "delete from stutable where sname=%s"
value = ('王五') #编辑更新信息

案例:

import pymysql #导入pymysql

try:
    #连接数据库
    con = pymysql.connect(host='localhost',user='root',password='manager',database='student',port=3306)
    print('数据库连接成功')
    cur = con.cursor() #创建一个游标
   # sql = "update stutable set sname = '张三' where sname = '小王'"#数据库更新数据语句
    sql = "delete from stutable where sname=%s"  # 数据库删除数据语句
    value = ('王五')
    cur.execute(sql,value)
    con.commit()
    print("数据删除成功!")
except pymysql.Error as e:  #捕获异常
    print('数据删除失败:'+str(e)) #连接失败,打印并打印出异常
    con.rollback()
con.close() #数据库关闭

七、删除一张表

删除表的sql语句

sql = "drop table if exists table"

案例:

import pymysql #导入pymysql

try:
    #连接数据库
    con = pymysql.connect(host='localhost',user='root',password='manager',database='student',port=3306)
    print('数据库连接成功')
    cur = con.cursor() #创建一个游标
    sql = "drop table if exists stutable"  # 数据库删除数据语句
    cur.execute(sql)
    print("表删除成功!")
except pymysql.Error as e:  #捕获异常
    print('表删除失败:'+str(e)) #连接失败,打印并打印出异常
    con.rollback()
con.close() #数据库关闭

你可能感兴趣的:(数据库,mysql,python)