回收站
当前位置:首页 > 回收站--用pymysql进行mysql的基础操作
用pymysql进行mysql的基础操作

山城棒棒儿

2022/10/15 16:58:11

浏览:112
mySqlProj_pymysql

1. 安装pymysql

In [3]:
pip install pymysql
Requirement already satisfied: pymysql in d:\programfiles\anaconda3\lib\site-packages (1.0.2)Note: you may need to restart the kernel to use updated packages.

2. 导入pymysql

In [15]:
import pymysql

3. 创建数据库

3.1 打开连接

In [59]:
# 打开数据库连接config = {'host':'localhost','port':3306,'user':'root','password':'123456'}conn = pymysql.connect(**config)cursor=conn.cursor()

3.2 创建数据库

In [60]:
# sql创建数据库语句sql = """CREATE DATABASE IF NOT EXISTS yggl2DEFAULT CHARACTER SET gb2312DEFAULT COLLATE gb2312_chinese_ci;"""try:    # 执行sql语句    cursor.execute(sql)    # 提交到数据库执行    conn.commit()    print("创建数据库yggl2提交成功!")except:    # 如果发生错误则回滚    conn.rollback()    print("创建数据库yggl2发生错误,回滚...")
创建数据库yggl2提交成功!

3.3 创建数据表

In [68]:
conn.select_db('yggl2') #选择yggl2为当前数据库# sql创建数据表语句sql="""CREATE TABLE IF NOT EXISTS Employees(    员工编号 char(6)    NOT NULL PRIMARY KEY,    姓名     char(10)   NOT NULL,    学历     char(4)    NOT NULL,    出生日期 date       NOT NULL,    性别     char       NOT NULL,    工作年限 tinyint(2) NULL,    地址     varchar(20) NULL,    电话号码 char(12)    NULL,    员工部门号  char(3)  NULL    )ENGINE=INNODB;"""try:    # 执行sql语句    cursor.execute(sql)    # 提交到数据库执行    conn.commit()    print("创建数据表Employees提交成功!")except:    # 如果发生错误则回滚    conn.rollback()    print("创建数据表Employees发生错误,回滚...")
创建数据表Employees提交成功!

3.4 插入数据--增

In [69]:
# sql插入数据语句sql="""INSERT INTO Employees(员工编号, 姓名,学历,出生日期,性别,工作年限)         VALUES        ('001','张三','大专','1991-01-01','男',2),        ('002','李四','本科','1988-02-01','男',3),        ('003','王五','硕士','1986-12-01','男',5),        ('004','赵六','博士','1984-12-01','男',5),        ('005','钱七','中专','1995-06-06','女',1);"""try:    # 执行sql语句    cursor.execute(sql)    # 提交到数据库执行    conn.commit()    print("插入数据到数据表Employees提交成功!")except:    # 如果发生错误则回滚    conn.rollback()    print("插入数据到数据表Employees发生错误,回滚...")
插入数据到数据表Employees提交成功!

3.5 删除数据--删

In [72]:
# sql删除数据语句table = "Employees"where = "员工编号='005'"sql = "DELETE FROM "  + table + " WHERE " + where #从表Employees中删除员工编号为005的记录try:    # 执行sql语句    cursor.execute(sql)    # 提交到数据库执行    conn.commit()    print(f"删除数据表Employees中{where}数据提交成功!")except:    # 如果发生错误则回滚    conn.rollback()    print(f"删除数据表Employees中{where}数据发生错误,回滚...")
删除数据表Employees中员工编号='005'数据提交成功!

3.6 修改数据--改

In [73]:
# sql修改数据语句sql="""UPDATE Employees    SET 性别="女"        WHERE 员工编号="004";"""try:    # 执行sql语句    cursor.execute(sql)    # 提交到数据库执行    conn.commit()    print("修改数据表Employees中数据提交成功!")except:    # 如果发生错误则回滚    conn.rollback()    print("修改数据表Employees中数据发生错误,回滚...")
修改数据表Employees中数据提交成功!

3.7 获取数据--查

In [74]:
import pandas as pd
In [75]:
column_list = "员工编号,姓名,性别"table = "Employees"sql = "SELECT " + "*"  + " FROM "  + table #从表Employees中选出所有列try:    # 执行sql语句    cursor.execute(sql)    # 提交到数据库执行    conn.commit()        # 显示每列的详细信息    des = cursor.description#     print("表的描述:", des)    # 获取表头#     print("表头:", ",".join([item[0] for item in des]))    columnNames = [item[0] for item in des]#     print(columnNames)        data = cursor.fetchall()#获取所有数据#     print(data)    print("查询数据表Employees中数据提交成功!")    df_data = pd.DataFrame(data,columns=columnNames)    df_data.set_index(["员工编号"], inplace=True)    display(df_data)except:    # 如果发生错误则回滚    conn.rollback()    print("查询数据表Employees中数据发生错误,回滚...")
查询数据表Employees中数据提交成功!
姓名 学历 出生日期 性别 工作年限 地址 电话号码 员工部门号
员工编号
001 张三 大专 1991-01-01 2 None None None
002 李四 本科 1988-02-01 3 None None None
003 王五 硕士 1986-12-01 5 None None None
004 赵六 博士 1984-12-01 5 None None None
In [76]:
column_list = "员工编号,姓名,性别,出生日期,学历,工作年限"table = "Employees"where = "性别='男'"#从表Employees中选出男员工的员工编号、姓名和性别列sql = "SELECT " + column_list + " FROM "  + table  + " WHERE "+ where try:    # 执行sql语句    cursor.execute(sql)    # 提交到数据库执行    conn.commit()        # 显示每列的详细信息    des = cursor.description    columnNames = [item[0] for item in des]        data = cursor.fetchall()#获取所有数据    print("查询数据表Employees中数据提交成功!")    df_data = pd.DataFrame(data,columns=columnNames)    df_data.set_index(["员工编号"], inplace=True)    display(df_data)except:    # 如果发生错误则回滚    conn.rollback()    print("查询数据表Employees中数据发生错误,回滚...")
查询数据表Employees中数据提交成功!
姓名 性别 出生日期 学历 工作年限
员工编号
001 张三 1991-01-01 大专 2
002 李四 1988-02-01 本科 3
003 王五 1986-12-01 硕士 5

3.8 关闭连接与游标

后开先关
In [56]:
cursor.close()  #关闭游标conn.close()    #关闭连接

蝈蝈派【海南省教改项目(Hnjg2022-80)支持】 网站版权所有

Python remained the copyright of our website

吉公网安备 22020402000437号

备案号:吉ICP备2020005062号-2

关注QQ群

了解Python

实时动态