Python操作数据库方法总结

方法概括

Python操作数据库可以使用第三方库,Python操作数据库方法可以概括为5个步骤,总结如下:

  1. 连接数据库

    1)python连接数据库之前,需要满足以下条件:

    • 当前系统已安装python环境;
    • 被连接的数据库已创建;
    • 当前系统已安装python 第三方库。

    2)连接数据库需要用到的参数包括:
    (“主机:host,端口:port,用户名:user,密码:password,指定数据库:db,指定字符集:charset)
    例如:

    db_connect = pymysql.connect(host='localhost', port=3306, user='root', password='111111', db='database', charset='utf8')
    

    数据库连接成功后,会得到一个db对象

  2. 生成游标对象

    通过db对象,使用db.cursor()方法得到一个游标,游标可以用来执行sql语句;
    例如:cursor=db_connect.cursor()
    或者 给cursor添加一个参数,让其返回的数据是一个字典

    cursor = db_connect.cursor(cursor=pymysql.cursors.DictCursor)
    
  3. 执行SQL语句

    准备sql语句并执行sql语句

    sql = 'select * from star'
    

    返回结果rows是受影响的数据行数

    rows = cursor.execute(sql)
    db_connect.commit()
    
  4. 关闭游标
    cursor.close()
    
  5. 关闭连接
    db_connect.close()
    
  6. 常见数据库操作总结
    • a 创建表操作
      create_table_sql = “CREATE TABLE IF NOT EXISTS Students(id INT(10) NOT NULL AUTO_INCREMENT,name VARCHAR(100) NOT NULL,age INT(5) NOT NULL,sex VARCHAR(10) NOT NULL,PRIMARY KEY ( id )) DEFAULT CHARSET=utf8;”

    • b 插入数据

      insert_sql = "INSERT INTO Students ( id,name, age,sex) VALUES ( 1, '王伟',12,'男' ),( 2,'小妹' ,11,'女' ),( 3,'海涛' ,10,'男' );"
      
    • c 查询操作

      select_sql = "select  * from Students;"
      select_sql2 = "select  * from Students where id =3;"
      

      Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。
      • fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
      • fetchall(): 接收全部的返回结果行.
      • rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。
      results = cursor.fetchall()# 获取所有记录列表

    • d 更新操作

      update_sql = "UPDATE Students SET age=11 WHERE id=3;"
      
    • e 删除操作

      delete_sql = "DELETE FROM Students WHERE id=1;"
      

python操作MySQL数据库

  1. 安装第三方库 PyMySQL

    直接使用 pip install pymysql即可

  2. 实现过程:

    mysql.py

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
     
    import pymysql
    connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='123456', db='database', charset='utf8')
    if connection:
    	print "连接成功"
    cursor = connection.cursor()
    
    cursor.execute("DROP TABLE IF EXISTS Students")  # 如果数据表已经存在使用 execute() 方法删除表。
    
    create_table_sql = "CREATE TABLE IF NOT EXISTS Students(id INT(10) NOT NULL AUTO_INCREMENT,name VARCHAR(100) NOT NULL,age INT(5) NOT NULL,sex VARCHAR(10) NOT NULL,PRIMARY KEY ( id )) DEFAULT CHARSET=utf8;"
    insert_sql = "INSERT INTO Students ( id,name, age,sex) VALUES ( 1, '王伟',12,'男' ),( 2,'小妹' ,11,'女' ),( 3,'海涛' ,10,'男' );"
    select_sql = "select  * from Students;"
    update_sql = "UPDATE Students SET age=11 WHERE id=3;"
    select_sql2 = "select  * from Students where id =3;"
    delete_sql = "DELETE FROM Students WHERE id=1;"
    drop_sql = "DROP TABLE Students;"
    
    sql = [create_table_sql,insert_sql,select_sql,update_sql,select_sql2,delete_sql,drop_sql]
    try:
    	for i in range(len(sql)):		
    	       cursor.execute(sql[i])
    	#print mysql_sql)
    			
    	connection.commit()
    except:
    	connection.rollback()  # 发生错误时回滚
    connection.close()
    

python操作sqlserver数据库

  1. 安装第三方库pymssql

    python使用第三方库pymssql来操作SQLServer数据库,在使用之前需要安装pymssql模块
    1)直接命令行使用 pip install pymssql
    2)若以上安装不成功,从python官网上下载对应python版本的pymssql,下载地址:https://pypi.org/project/pymssql/#files
    例如:windows主机已经安装了python3.7版本,则我选择对应python37的win 64位的pymssql-2.1.4-cp37-cp37m-win_amd64.whl 下载,然后安装 pip install pymssql-2.1.4-cp37-cp37m-win_amd64.whl

  2. 代码实现过程

    sqlserver.py

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    import pymssql
    
    db_connect = pymssql.connect('10.0.0.24', 'qwert','z9gjmP5tNUaVUcX1','dbaudit_sqlserver2008r2')
    if db_connect:
        print("连接成功!")
    
    cursor = db_connect.cursor()
    
    create_table_sql = "CREATE TABLE  Students(id int primary key,name VARCHAR(100) NOT NULL,age INT NOT NULL,sex VARCHAR(10) NOT NULL);"
    insert_sql = "INSERT INTO Students ( id,name, age,sex) VALUES ( 1, '王伟',12,'男' ),( 2,'小妹' ,11,'女' ),( 3,'海涛' ,10,'男' );"
    select_sql = "select  * from Students;"
    update_sql = "UPDATE Students SET age=11 WHERE id=3;"
    select_sql2 = "select  * from Students where id =3;"
    delete_sql = "DELETE FROM Students WHERE id=1;"
    drop_sql = "DROP TABLE Students;"
    
    sql = [create_table_sql,insert_sql,select_sql,update_sql,select_sql2,delete_sql,drop_sql]
    
    tryfor i in range(len(sql)):
    		cursor.execute(sql[i])
    	    # print(sql[i])
    		# print("db commit success") 
    		db_connect.commit()  
    except:
    	db_connect.rollback()  # 发生错误时回滚
    
    cursor.close()   
    db_connect.close()
    

猜你喜欢

转载自blog.csdn.net/ccccsy99/article/details/106908400