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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务