zoukankan      html  css  js  c++  java
  • Python数据库操作

    目录

    连接数据库

    改 


    我们使用Mysql数据库,因为它是开源的,免费的。

    python中使用mysql-connector模块来连接mysql的,默认是没有该模块的,需要我们自己安装:pip  install  mysql-connector

    连接数据库

    使用 connect 方法连接数据库,参数是我们主机ip、数据库的用户名和密码

    >>import mysql.connector
    >>conn=mysql.connector.connect( host='localhost', user='root', passwd='root')  
    >>print(conn)
    <mysql.connector.connection.MySQLConnection object at 0x000001D87739AF98>
    
    #还可以指定port 、db 、charset 等参数
    mydb=mysql.connector.connect( host='localhost', user='root', passwd='root',port=3306,db="test",charset="utf8")  #选定test数据库,因为默认就是3306端口,所以port参数可不写

    #创建名叫python的数据库
    import mysql.connector
    conn=mysql.connector.connect( host='localhost', user='root', passwd='root')
    mydb=conn.cursor()          #获取到操作数据库的句柄
    mydb.execute("CREATE DATABASE python")  #创建一个名字为 python 的数据库
    
    #在python数据库下创建名为test的数据表
    import mysql.connector
    conn=mysql.connector.connect( host='localhost', user='root', passwd='root',db="python") #选定python数据库
    mydb=conn.cursor()                 #获得操作数据库的句柄
    mydb.execute("CREATE TABLE test(id INT(4),name VARCHAR(255))")  #创建test数据表
    
    #在python数据库下的test数据表中增加一条数据
    import mysql.connector
    conn=mysql.connector.connect( host='localhost', user='root', passwd='root',db='python')
    mydb=conn.cursor()                 #获得操作数据库的句柄
    mydb.execute("INSERT INTO test value(1,'hello')")    #增加一条记录
    conn.commit()                      #数据表内容有更新,必须用到该语句
    
    #批量插入
    import mysql.connector
    conn=mysql.connector.connect( host='localhost', user='root', passwd='root',db="python") #选定python数据库
    mydb=conn.cursor()                 #获得操作数据库的句柄
    sql="INSERT INTO test (id,name) VALUES (%s,%s)" #sql语句
    val=[(1,'aaa'),(2,'bbb'),(3,'ccc'),(4,'ddd')]
    mydb.executemany(sql,val)         #执行多条语句
    conn.commit()                    #数据表内容有更新,必须使用到该语句
    print("更有%s行发生改变!"%mydb.rowcount)  #mydb.rowcount返回发生改变的行数

    #删除python数据库下的test数据表中的id=1的数据
    import mysql.connector
    conn=mysql.connector.connect( host='localhost', user='root', passwd='root',db='python')
    mydb=conn.cursor()                 #获得操作数据库的句柄
    mydb.execute('DELETE FROM test WHERE id=1')    #删除python数据库下的test数据表中id=1的数据
    
    #删除python数据库下的test数据表
    import mysql.connector
    conn=mysql.connector.connect( host='localhost', user='root', passwd='root',db='python')
    mydb=conn.cursor()                 #获得操作数据库的句柄
    mydb.execute('DROP TABLE test')    #删除python数据库下的test数据表
    
    
    #删除python数据库
    import mysql.connector
    conn=mysql.connector.connect( host='localhost', user='root', passwd='root')
    mydb=conn.cursor()                 #获得操作数据库的句柄
    mydb.execute('DROP DATABASE python')    #删除python数据库
    
    
    

    改 

    #修改python数据库下test数据表中id=1的数据,将其name修改
    import mysql.connector
    conn=mysql.connector.connect( host='localhost', user='root', passwd='root',db='python')
    mydb=conn.cursor()                 #获得操作数据库的句柄
    mydb.execute("UPDATE test set name='world' where id=1")    #增加一条记录
    conn.commit()                        #数据表内容有更新,必须用到该语句    
    
    
    #修改python数据库下test数据表的名字为test2
    import mysql.connector
    conn=mysql.connector.connect( host='localhost', user='root', passwd='root',db='python')
    mydb=conn.cursor()                 #获得操作数据库的句柄
    mydb.execute("ALTER table test rename to test2")    #将test数据表改名为test2
    

    #查询所有数据库
    import mysql.connector
    conn=mysql.connector.connect( host='localhost', user='root', passwd='root')
    mydb=conn.cursor()                 #获得操作数据库的句柄
    mydb.execute("show databases;")    #显示所有数据库
    for row in mydb:
        print(row)
    
    #查询python数据库下的所有数据表
    import mysql.connector
    conn=mysql.connector.connect( host='localhost', user='root', passwd='root',db='python')
    mydb=conn.cursor()                 #获得操作数据库的句柄
    mydb.execute("show tables;")       #显示 python 数据库下的所有的表,返回一个元组型数据
    for row in mydb:
        print(row)
    
    
    #查询python数据库下的test数据表中的数据
    import mysql.connector
    conn=mysql.connector.connect( host='localhost', user='root', passwd='root',db="python",charset="utf8")  #选择test数据库
    mydb=conn.cursor()                 #获得操作数据库的句柄
    mydb.execute("select*from test")  #执行查询语句,相当于查询 python.test 表中的数据
    result=mydb.fetchall()             #获取所有返回的结果,返回的是列表型数据
    
    #查询python数据库下的test数据表中的数据前3条数据
    #查询python数据库下的test数据表中的数据
    import mysql.connector
    conn=mysql.connector.connect( host='localhost', user='root', passwd='root',db="python",charset="utf8")  #选择test数据库
    mydb=conn.cursor()                 #获得操作数据库的句柄
    mydb.execute("select*from test")  #执行查询语句,相当于查询 python.test 表中的数据
    result=mydb.fetchmany(3)             #返回前3条结果

    相关文章:SQL语句

  • 相关阅读:
    Linked List Cycle leetcode java (链表检测环)
    Remove Duplicates from Sorted List II leetcode java
    Remove Duplicates from Sorted List leetcode java
    Merge Two Sorted Lists leetcode java
    Swap Nodes in Pairs leetcode java
    Median of Two Sorted Array leetcode java
    阿里云最便宜的四种域名注册
    nohup和&后台运行,进程查看及终止
    ipv6转ipv4 NAT64与DNS64基本原理概述
    ros使用pppoe拨号获取ipv6,并且下发IPV6的dns到客户机win7
  • 原文地址:https://www.cnblogs.com/csnd/p/11807804.html
Copyright © 2011-2022 走看看