您好,欢迎来到画鸵萌宠网。
搜索
您的当前位置:首页Python数据库操作

Python数据库操作

来源:画鸵萌宠网
Python数据库操作

Python数据库操作

Pymysql

说明

连接参数

pymysql的 connect 需要提供4个参数,可选2个参数host, user, password, db, charset, cursorclass

地址,⽤户名,⽤户密码,数据库名,编码,游标使⽤⽅法

conn = pymysql.connect(host, user, password, db, charset, cursorclass)

使⽤上下⽂管理器对游标进⾏管理,确保数据库指针被正确关闭回收资源with conn.cursor() as cursor:

cursor.execute() # ⽤于执⾏ sql 语句

cursor.commit() # 对数据库的修改要 commit 才能提交确定修改常⽤函数说明

***使⽤cursor游标进⾏调⽤ ***

fetchone():取返回数据的⼀个,从第⼀个开始,⼀个接⼀个,先1后2fetchall():取出所有获取的数据

fetchmany():有参数size,获取指定size⼤⼩的数据,如2,则获取2个execute():执⾏sql语句的函数

commit():execute执⾏后,需要commit提交事件修改到数据库

官⽅例程

CREATE TABLE `users` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`email` varchar(255) COLLATE utf8_bin NOT NULL, `password` varchar(255) COLLATE utf8_bin NOT NULL, PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_binAUTO_INCREMENT=1 ;import pymysql.cursors

# Connect to the database

connection = pymysql.connect(host='localhost', user='user',

password='passwd', db='db',

charset='utf8mb4',

cursorclass=pymysql.cursors.DictCursor)

try:

with connection.cursor() as cursor: # Create a new record

sql = \"INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)\" cursor.execute(sql, ('webmaster@python.org', 'very-secret'))

# connection is not autocommit by default. So you must commit to save # your changes. connection.commit()

with connection.cursor() as cursor: # Read a single record

sql = \"SELECT `id`, `password` FROM `users` WHERE `email`=%s\" cursor.execute(sql, ('webmaster@python.org',))

result = cursor.fetchone() print(result)finally:

connection.close()

MongoDB

1.2.3.4.5.6.7.8.9.

概念解析

SQL术语MongoDB术语databasetablerowcolumnindex

databasecollectiondocumentfieldindex

数据库数据库表数据记录⾏数据字段索引表连接

主键, MongoDB⾃动将_id字段设置为主键

解释

table joins不⽀持primary keyprimary key

创建数据库

语法

use DATABASE_NAME:创建数据库show dbs:查看所有数据库

新创建的数据库不会⽴刻显⽰在数据库列表,需要往⾥⾯插⼊数据⼀些数据才会显⽰在MongoDB 中默认的数据库为test,如果你没有创建新的数据库,集合将存放在test数据库中删除数据库

先切换到该数据库,然后执⾏db.dropDatabase()

use DATABASE_NAMEdb.dropDatabase()

命令db.dropDatabase()

删除集合

1.先切换数据库

2.显⽰所有表格show tables或show collections3.选择相应的collections4.db.collection_name.drop()命令db.collection.drop()

> use DATABASE_NAME

switch to db DATABASE_NAME> show tablessite

> db.site.drop()true

> show tables

创建集合

命令db.createCollection(name, options)options参数可选注意:在 MongoDB 中,你不需要创建集合。当你插⼊⼀些⽂档时,MongoDB 会⾃动创建集合。删除集合

命令:db.collection.drop()

1.切换要删除集合所在的数据库2.show collections查看全部集合

3.使⽤命令db.collection.drop()删除集合

注意:如果成功删除选定集合,则 drop() ⽅法返回 true,否则返回 false。插⼊⽂档

⽂档的数据结构和JSON基本⼀样。

所有存储在集合中的数据都是BSON格式。

BSON是⼀种类json的⼀种⼆进制形式的存储格式,简称Binary JSON。命令db.COLLECTION_NAME.insert(document)或db.COllECTION_NAME.save(document)

步骤

1.使⽤JSON数据格式表⽰存储的数据,如{'name':'yuyu}`,或许如以下代码⼀样,存储于变量

> document=({title: \"练习\... descr:\"数据库\... name:\"yuge\

... url:\"www.strongyu.top\{

\"title\" : \"练习\ \"descr\" : \"数据库\ \"name\" : \"yuge\

\"url\" : \"www.strongyu.top\"}

2.存储于相应的collection中,如:db.yuyu.insert({'name': 'yuyu'})或db.yuyu.save(document})3.查看数据的命令db.col.find()--col 是 collection 的名字

更新⽂档

有两种⽅法

update()save()update()⽅法

注意1.要指明更新数据的字段名字和数据

2.默认只更新⼀条数据,即如果有多条相同的数据,需要指定参数设置save()⽅法

传⼊⽂档,根据ObjectId对原⽂档进⾏覆盖修改删除⽂档

命令db.colllection.remove({query})

根据query的条件对collection的数据进⾏删除,满⾜query的则删除删除collection全部数据,即db.collection.remove({}),即将query置空查询⽂档

命令db.collection.find()

Pymongo

个⼈练习代码段

>>> from pymongo import MongoClient>>> # 客户端连接,演⽰本地连接...

>>> client = MongoClient(\"localhost\>>>

>>> db = client.web

>>> # web是演⽰的数据库, db = client['web']...

>>> data = {\"author\": \"yuyuyu\"... , \"text\": \"Hello MOngo\... }

>>> db.yuyu.insert_one(data).inserted_idObjectId('5c5829aa0e059930be2e8bee')# 已经插⼊,并返回了插⼊数据对应的 id 值>>> import pprint

>>> pprint.pprint(db.yuyu.find_one())

>>> # find_one() 默认拿⽂档的第⼀条数据,也可以指定条件进⾏获取

>>> for data in db.yuyu.find():... pprint.pprint(data)...

{'_id': ObjectId('5c581717fbdb4fe8b28a4868'), '余伟': '喜欢写代码'}{'123': 'abc', '_id': ObjectId('5c5812fbdb4fe8b28a486a')}{'_id': ObjectId('5c5829aa0e059930be2e8bee'), 'author': 'yuyuyu', 'text': 'Hello MOngo'}

>>> # 使⽤ find() ⽅法遍历 yuyu ⽂档

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo8.com 版权所有 湘ICP备2023022238号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务