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)


#还可以指定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语句

你可能感兴趣的:(Python语法学习)