使用Python操作数据库
安装数据库:yum install mariadb-server mariadb -y。其中mariadb-server表示服务端,mariadb表示客户端,默认连接本机的3306端口。检查数据库是否安装好了:rpm -qa|grep mariadb。其中rpm -qa命令是将所有已经安装的软件包列出来,grep命令是将mariadb相关的包过滤出来。启动mariadb服务:systemctl s
一、linux系统中数据库的使用
安装数据库:yum install mariadb-server mariadb -y。其中mariadb-server表示服务端,mariadb表示客户端,默认连接本机的3306端口。
检查数据库是否安装好了:rpm -qa|grep mariadb。其中rpm -qa命令是将所有已经安装的软件包列出来,grep命令是将mariadb相关的包过滤出来。
启动mariadb服务:systemctl start mariadb。
检查mariadb服务是否启动:ps -ef|grep mariadb。其中ps -ef命令为显示进程的详细信息,grep命令将mariadb进程过滤出来。
设置开机自启mariadb服务:systemctl enable mariadb。
通过systemctl管理mariadb服务:systemctl start/stop/restart mariadb。
连接数据库:mysql
指定用户登录数据库:mysql -u sumeng -p,指定sumeng用户登录数据库
mysql语句:
建库:create database sc;
建表:
create table StuInfo(
id int primary key auto_increment,
name varchar(128),
age int8,
address varchar(256)
)default charset utf8;
向表中插入数据:insert into StuInfo(name,age,address) values("sc",8,"长沙");
查看有哪些数据库:show databases;
使用指定的sc数据库:use sc;
查看当前数据库里面有哪些表:show tables;
查看指定表StuInfo的表结构:desc StuInfo;
查询表中的所有内容:select * from StuInfo (\G);后面接\G表示每行竖向表示
按条件查询表中的内容,where后面接条件:select * from StuInfo where address="长沙";——查询address为长沙的全部信息
删除表中指定条件的内容:delete from StuInfo where address="重庆";——删除address为重庆的信息
按条件修改表中的内容:update StuInfo set age=10 where name="sc";——将name为sc的age更改为10
授权给任何主机登录上来的指定sc用户所有库所有表的所有权限(授权并创建sc用户,密码为sc123789):grant all privileges on *.* to 'sc'@'%' identified by 'sc123789';
刷新权限:flush privileges;
二、使用Python连接数据库
Python中使用pymysql连接数据库,在Python中安装pymysql库:pip install pymysql
import pymysql
# 创建数据库连接--客户端
db = pymysql.connect(host='192.168.15.146', #要连接的主机地址
user='sc', #登录数据库的用户
password='sc123789', #密码
databases='sc' #要连接的数据库
)
# 创建游标对象
cursor = db.cursor()
# 使用execute()方法执行sql语句
cursor.execute("SELECT * FROM StuInfo")
# 使用fetchone()方法获取单条数据.
data1 = cursor.fetchone()
# 使用fetchall()获取全部数据
data2 = cursor.fetchall()
print(f"{data1}")
print(f"{data2}")
# 关闭数据库连接
db.close()
三、linux系统中redis的使用
redis是一种key-value存储系统,属于非关系型数据库。redis主要用于做数据缓存,一些大型网站的应用和数据库之间的一层就是redis。
redis持久化策略:RDB快照的持久化方式(默认);AOF日志--将修改的每条指令增量记录到文件中,先写入操作系统缓存,每隔一段时间同步到磁盘。
安装:yum install redis -y。
修改配置文件/etc/redis.conf中的绑定(绑定本机的所有ip):bind 0.0.0.0。
启动/重启/关闭redis服务:systemctl start/restart/stop redis。
redis服务默认连接本机的6379端口。
redis常用语句:
进入redis:redis-cli
数据库的切换(一共有16个库,0-15):select index
存储:set key value
查询:get key
查看符合条件的所有key:keys pattern
存列表,将一个或多个值插入列表头部:lpush key value
查看列表中的值:lrange key start stop
哈希表字段的赋值:hset key field value
哈希表字段的获取:hget key field
四、Python操控redis
安装操作redis的库:pip install redis
例题:从键盘接受要查询的学生id,通过输入的学生id,找到相应的学生id信息 。先在Redis里面查找,Redis找不到再去mysql,找到之后返回信息,并且写入Redis以便下次查询。
import pymysql
import redis
stu_id = input("请输入你想查询的学生id:")
# 连接redis
# db指定数据库,默认为0号库
# 从redis数据库中取出的数据默认为字节类型,加上decode_responses=True会将取出的数据默认为字符串类型
r = redis.Redis(host='192.168.15.146', port=6379, db=2, decode_responses=True)
# 连接数据库
db = pymysql.connect(host='192.168.15.146',
user='sc',
password='sc123789',
database='sc')
# redis中存一个hash集合数据
# 查找是否存在所要查找的key,不存在返回None
if r.hkeys(stu_id):
print("通过redis查找")
print(f"学生姓名为:{r.hget(stu_id, 'name')}")
print(f"学生年龄为:{r.hget(stu_id, 'age')}")
print(f"学生地址为:{r.hget(stu_id, 'address')}")
else:
print("通过mysql查询")
cursor = db.cursor()
cursor.execute(f"select * from StuInfo where id={stu_id}")
data = cursor.fetchone()
if data:
print(f"学生姓名为:{data[1]}")
print(f"学生年龄为:{data[2]}")
print(f"学生地址为:{data[3]}")
# 将从mysql中查找到的数据存入redis
r.hset(stu_id, 'name', data[1])
r.hset(stu_id, 'age', data[2])
r.hset(stu_id, 'address', data[3])
更多推荐
所有评论(0)