前言
数据库在在我们生活中还是很常见的,超市里货物信息,餐馆里的菜单信息还有账单流水等,很多都是存储在相应的数据库中,当你想要查询价格,商品对应的信息时,可以通过使用数据库来完成。数据库的优点大致的了解一下:1.整体数据结构化。2.数据的共享性高、冗余度低且易扩充3.数据独立性高4.数据由数据库管理系统统一管理和控制在学习本篇之前,大家可以好好看看数据库的基本操作,然后结合本章实际上手试试。
正文
操作数据库还是比较简单的,看下面的步骤,后续的代码会做具体的解析。
导包 import pymysql 数据库连接设置 conn=pysql.connect(host,user,passwd,port,db,charset) 生成游标 cur=conn.cursor(cursor-pymysql.cursors.DictCursor) 编写sql语句 sql='select * feom student' 执行sql语句 cur.excute(sql) 获取数据 data=cur.fetchall() 关闭游标 cur.close() 关闭连接 conn.close()
导包
导包是必须的操作,我门本章所用的是pymysql包,还有其他的包,不限于使用哪种包。可以自行扩展。
数据库连接设置
我用的是Mysql+Navicat,其他不同的数据库根据实际情况变更一下即可。
# 数据库连接,主机host、端口port、用户名user、密码passwd、数据库表database con = pymysql.connect(host='localhost', port=3306, user='root', passwd='QINGAN', database='QINGDATA')#如果汉字显示不出来就加入charset=‘utf-8'
变量名随意设置,host这里我写的是localhost本机的,如果你有服务器,且服务器装了数据库,那就写服务器地址,如101.101.1.1(瞎写的,举例),port是装数据库的时候自己设置的,如果你写的3307或者8888,那你连接数据库的时候,port就得写对应的端口号,user在无任何变动的情况下默认root,database是你要连接的数据库了。
生成游标
# 生成游标 cur = con.cursor()
关于游标:游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。通俗一点就是没有游标你就拿不到你想要的值,做不了你想做的操作。
写入SQL语句
# 写入sql语句 sql = 'select * from t_beauty'
此处可以是任何的SQL语句。写入多条数据操作,对应的执行数据库所用的函数方法有所不同
sql = "insert into t_beauty(id,sex,home,call_num) VALUES(%s,%s,%s,%s);" list_name = [('清安','男','湖南长沙',1464231456),('灵眸','女','陕西西安',1895223456), ('清雪','男','福建厦门',1689929295)]
执行多条写入数据,只有执行了才能写入数据。
es = cur.executemany(sql,list_name)
执行SQL语句
# 游标执行一条sql语句 res = cur.execute(sql)
这里需要用游标点上对应的函数方法execute来执行你想要的sql语句。上述写了一个多条数据写入,这里是单条数据写入,用的方法不一样,但是用法大同小异。
获取数据
1、查看数据库里面有多少条数据
# 打印数据库有多少条数据 print(res)
2、获取一条数据
# 获取查询结果,获取一条数据 data_1=cur.fetchone()
3、获取全部数据
# 获取查询结果,获取全部数据,如果已经使用fetchone取了第一条的数据,游标会自动向下取值 data_1 = cur.fetchall()
4、移动游标
# 在已经获取到一条数据的时候,还想获取其他数据中的一条 cur.scroll(-1,mode='relative')# 将游标往前移动一个位置再进行取值 cur.scroll(3,mode='absolute')# 绝对路径取值,索引取值,取0的时候取全部值
5、下标获取值
当取0的时候为全部值
# 获取查询结果,获取第一条数据,可以更改数字来获取值 data_1=cur.fetchmany(1)
提交值
# 手动给数据库提交数据库语句,也可以自动提交autocommit=True,在连接设置处加入即可 con.commit()
关闭游标
cur.close()
关闭数据库
con.close()
下面来看看完整的代码吧!
# 数据库连接,主机host、端口port、用户名user、密码passwd、数据库表database con = pymysql.connect(host='localhost', port=3306, user='root', passwd='QINGAN', database='QINGDATA')#如果汉字显示不出来就加入charset=‘utf-8' # 生成游标 cur = con.cursor() # 注入sql语句 sql = 'select * from t_beauty' # 游标执行一条sql语句 res = cur.execute(sql) # 获取查询结果,获取一条数据 data_1=cur.fetchone() print(data_1) con.commit() # 关闭游标 cur.close() # 关闭数据库连接 con.close()
这样一个简单的数据库操作就好了,当你不想每次使用就要写的话,那就封装一个吧。