pthon学习--数据库的基本操作

一、python操作mysql数据库

  python3中操作mysql数据需要安装一个第三方模块,pymysql,使用pip install pymysql安装即可;

  在python2中是MySQLdb模块,在python3中没有MySQLdb模块了,所以使用pymysql。

import pymysql

# 创建连接,指定数据库的ip地址,账号、密码、端口号、要操作的数据库、字符集conn = pymysql.connect(host=‘10.211.55.6‘, port=3306, user=‘root‘, passwd=‘123456‘, db=‘test‘, charset=‘utf8‘)# 创建游标# cursor = conn.cursor()

# # 执行SQL,并返回受影响行数# cursor.execute(‘select * from MyClass‘)# print(cursor.fetchone())  # 获取一条数据,返回的为元组

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 需要指定游标的类型,字典类型,则返回结果为字典列表# 执行SQLcursor.execute("select * from MyClass;")# 获取返回结果,这个时候返回结果是一个字典res = cursor.fetchone()print(res)conn.close()

# effect_row = cursor.execute("update students set name = ‘niuhy‘ where id = 1;")# # 执行SQL,并返回受影响行数# # effect_row = cursor.execute("update students set name = ‘niuhy‘ where id = %s;", (1,))# # 执行SQL,并返回受影响行数# # effect_row = cursor.executemany("insert into students (name,age) values (%s,%s); ", [("andashu",18),("zouweiwei",20)])# # 执行select语句# # cursor.execute("select * from students;") # # 获取查询结果的第一条数据,返回的是一个元组# # row_1 = cursor.fetchone()# # 获取光标所在位置后的n行数据# # row_2 = cursor.fetchmany(3)# # 获取所在位置后的所有数据# # row_3 = cursor.fetchall()# # 提交,不然无法保存新建或者修改的数据# conn.commit()# # 获取最新自增ID# new_id = cursor.lastrowid# print(new_id)# cursor.close()  # 关闭游标# conn.close() # 关闭连接

上面的操作,获取到的返回结果都是元组,如果想获取到的结果是一个字典类型的话,可以使用下面这样的操作

import pymysql
    # 创建连接,指定数据库的ip地址,账号、密码、端口号、要操作的数据库、字符集
    conn = pymysql.connect(host=‘127.0.0.1‘, port=3306, user=‘root‘, passwd=‘123456‘, db=‘data‘,charset=‘utf8‘)
    cursor = conn.cursor() # 创建游标
    
    cursor = coon.cursor(cursor=pymysql.cursors.DictCursor)#需要指定游标的类型,字典类型
    cursor.execute("select * from user;") # 执行SQL
    #获取返回结果,这个时候返回结果是一个字典
    res = cursor.fetchone()
    print(res)

二、操作redis

redis是一个nosql类型的数据库,数据都存在内存中,有很快的读写速度,python操作redis使用redis模块,pip安装即可

import redis
    r = redis.Redis(host=‘127.0.0.1‘,port=6379,db=0)#指定连接redis的端口和ip以及哪个数据库
    r.set(‘name‘, ‘value‘)#set string类型的值
    r.setnx(‘name2‘, ‘value‘)#设置的name的值,如果name不存在的时候才会设置
    r.setex(‘name3‘, ‘value‘, 3)#设置的name的值,和超时时间,过了时间key就会自动失效
    r.mset(k1=‘v1‘,k2=‘v2‘)#批量设置值
    r.get(‘name‘)#获取值
    print(r.mget(‘k1‘,‘k2‘))#批量获取key
    r.delete(‘name‘)#删除值
    r.delete(‘k1‘,‘k2‘)#批量删除

#======下面是操作哈希类型的=======================
    r.hset(‘hname‘, ‘key‘, ‘value‘)#set 哈希类型的值
    r.hset(‘hname‘, ‘key1‘, ‘value2‘)#set 哈希类型的值
    r.hsetnx(‘hname‘,‘key2‘,‘value23‘)#给name为hname设置key和value,和上面的不同的是key不存在的时候
    #才会set
    r.hmset(‘hname‘,{‘k1‘:‘v1‘,‘k2‘:‘v2‘})#批量设置哈希类型的key和value
    r.hget(‘name‘, ‘key‘)#获取哈希类型的值
    print(r.hgetall(‘hname‘))#获取这个name里所有的key和value
    r.hdel(‘hname‘,‘key‘)#删除哈希类型的name里面指定的值
    print(r.keys())#获取所有的key

三、操作mongodb

mongodb和redis一样,也是一个nosql类型的数据库,它和redis的区别是,redis把整个数据都放在内存,而mongodb是把数据放在磁盘上的。

python操作mongodb使用pymongo模块,pip安装即可,操作如下

import pymongo

conn = pymongo.MongoClient(host=‘10.211.55.6‘, port=27017)  # 连接mongodbdb = conn.test  # 选择的数据库collection = db.account  # 选择集合,即表

# collection.save(stu2)#插入单条数据# collection.insert(stus)#插入单条和多条,如果是多条的话,传入的就是一个list# collection.update({‘age‘:20},{‘$set‘:{‘age‘:30}},multi=True)#在原来数据的基础上修改# collection.update({‘name‘:‘牛‘},{‘name‘:‘niuhy‘,‘age‘:20})#更新数据# collection.update({‘name‘:‘python‘},{‘$set‘:{‘addr‘:‘河南‘}})#在原来数据的基础上修改# collection.update({‘name‘:‘牛‘},#                   {‘$set‘:{‘addr‘:‘河南‘}},#                   multi=True)#multi参数的作用是如果有多个结果的话,是否全部修改

# collection.remove({‘age‘:30})#删除指定的数据,如果不传入参数,删除的是全部的数据# collection.remove()#删除全部数据data = collection.find({‘name‘:‘bj‘})#查询指定的数据# all_data = collection.find()#不写参数就是查询所有的数据# my_data = collection.find({‘age‘:{‘$gte‘:18}})#查询大于18岁的for d in data:#获取数据,所有查询数据都需要使用循环来获取    print(d)#每个元素都是一个字典
时间: 2024-12-27 05:26:56

pthon学习--数据库的基本操作的相关文章

Android 存储学习之SQLite数据库的基本操作

本节学习SQLite数据库,SQLite是Android内置的一个简单的轻量级的数据库.关于SQLite的简介我这里不做过多的介绍. 既然我们要学习数据库的基本操纵,那就离不开,数据库的创建,增删改查等操作. 再学习数据库的相关操作前,我先给大家介绍一个类:SQLiteOpenHelper.SQLiteOpenHelper是Android系统为方便程序的开发引入的一个对数据库管理的工具类.可用于关于数据库的创建和版本更新.一般的用法是创建SQLiteOpenHelper的子类,并实现它的OnCr

孤荷凌寒自学python第六十六天学习mongoDB的基本操作并进行简单封装5

孤荷凌寒自学python第六十六天学习mongoDB的基本操作并进行简单封装5并学习权限设置 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十二天. 今天继续学习mongoDB的简单操作,并继续对一些可能反复经常使用的操作进行简单的封装.同时通过搜索了解了如何对本地Mongo数据库进行权限设置(没有实践本地数据库的用户权限设置.) 按个人规划,今天是初步了解学习MongoDb数据库的最后一个学习日,后续将在真正使用此数据库时,再对其进行深入研究. 一.今天完成了两个可

对数据库的基本操作步骤

对数据库的基本操作步骤 + 面试题 MyBatis 最初的设计是基于 XML 配置文件的,但随着 Java 的发展(Java 1.5 开始引入注解)和 MyBatis 自身的迭代升级,终于在 MyBatis 3 之后就开始支持基于注解的开发了. 下面我们使用 Spring Boot + MyBatis 注解的方式,来实现对数据库的基本操作,具体实现步骤如下. MyBatis 注解版 1)创建数据表 drop table if exists `t\_user`; create table `t\_

TP框架对数据库的基本操作

数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是对数据的增删改的操作,一步步的讲述一下框架对数据库的操作 想要操作数据库,第一步必然是要:链接数据库 一.链接数据库 (1)找到模块文件夹中的Conf文件夹,然后进行编写config.php文件 我这里是这样的文件路径 (2)打开这个config.php文件,然后找到父类配置文件convention.php文件,将关于"数据库"的部分复制粘贴到config.php配置文件中 1 2 3 4 5 6 7 8 9 /

HSQLDB源码学习——数据库安装启动及JDBC连接

HSQLDB 是一个轻量级的纯Java开发的开放源代码的关系数据库系统.因为HSQLDB的轻量(占用空间小),使用简单,支持内存运行方式等特点,HSQLDB被广泛用于开发环境和某些中小型系统中. 在http://sourceforge.net/projects/hsqldb/files/下载了HSQLDB 1.8.0版本.把下载的zip文件解压缩至任意目录例如c:\hsqldb1.8便完成安装. hsqldb有四种运行模式: 一.内存(Memory-Only)模式:所有数据都在内存里操作.应用程

Linux下MYSQL数据库的基本操作

建立数据库: mysql> create database test; //建立一个名为"test"的数据库 建立数据库表: mysql> create table test -> (name char(16) not null, -> passwd char(16) ->); //建立一个名为"test"的表,里面有两个字段,一个字段名为"name",类型为char,大小为16,非空:另一个字段名为"pa

PHP对于数据库的基本操作——更新数据

PHP对于数据库的基本操作--更新数据 主要的语句:$update = mysql_query("update user set password='abc' where username='123'"); 这句话的意思是,更新user表,设置passWord字段的值为abc,筛选条件为username为123的数据.就是修改user表里面username为123字段里面的password,将password的值为abc. 前面的随笔里面忘了说  where 这个了,这个我理解为筛选,

学习java窗口基本操作时无聊写的

学习java窗口基本操作时无聊写的 就当记录 代码如下: package day08; import java.awt.BorderLayout;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout; import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;

新手学习数据库(一)用Powerdesigner设计数据库

说明: 一.学会用开发语言进行数据库编程,其关键是在于学会sql语言,开发语言只不过给程序员提供了一个操作数据库的接口罢了. 二. 本人也是初学者,采用的数据库设计软件是powerdesigner.利用该软件用户可以设计E-R图,然后软件会自动根据E-R图生成创建数据库表,即表间约束的sql语句. 三.由于powerdesigner安装软件大于220M,无法上传,所以请使用者自己百度下载. 四.学习数据库的数据.本人用的是微软的sql2000.sql语句的参考书籍是<SQL Server 200