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语句

  • 相关阅读:
    poj 2528 Mayor's posters (线段树+离散化)
    poj 1201 Intervals (差分约束)
    hdu 4109 Instrction Arrangement (差分约束)
    poj 1195 Mobile phones (二维 树状数组)
    poj 2983 Is the Information Reliable? (差分约束)
    树状数组 讲解
    poj 2828 Buy Tickets (线段树)
    hdu 1166 敌兵布阵 (树状数组)
    Ubuntu网络配置
    Button控制窗体变量(开关控制灯的状态)
  • 原文地址:https://www.cnblogs.com/csnd/p/11807804.html
Copyright © 2011-2022 走看看