python 操作三大主流数据库 第六课
tags:
- python3
- 慕课网
categories:
- python3
- mysql
- MongoDB
文章目录
第一节 MongoDB资源介绍数据库介绍
1. MongoDB资源介绍
1. Mongo代表大, 他是一个分布式数据库
2. 中文文档: http://docs.mongoing.com/manual-zh/index.html
3. 英文文档: https://docs.mongodb.com/manual/
4. MongoDB是一个面向文档的数据库。
2. 文档介绍
1. 什么是文档呢 举例:{"foo": 3, "greeting" :"Hello, world!"}
2. 文档区分大小写, key 不可重复, 键值对是有序的(不像python的字典是无序的)
3. 集合就是一组文档
4. 文档类似于关系库里的行
5. 集合类似于关系库里的表
6. 集合中的文档无需固定的结构(与关系型数据库的区别)
3. 集合的命名规则
1. 不能是空字符串 ( "”)
2. 不能包含\0字符 (空字符)
3. 不能使用system.的前缀(系统保留)
4. 建议不包含保留字“$”
5. 用.分割不同命名空间的子集合(如: blog.users, blog.posts )
4. MongoDB数据库
1. 多个文档组成集合,多个集合组成数据库
2. 一个实例可以承载多个数据库
3. 每个数据库都有独立的权限
4. 保留的数据库名称( admin,local,config )
第二节 MongoDB数据库安装和配置
1. 安装
1. 下载地址:https://www.mongodb.com/download-center/community?jmp=docs
2. 注意要在盘符的根目录下安装。如c:/MongoDB D:/MongoDB
2. 启动
1. windows安装目录下创建DB文件夹
2. 添加环境变量到path中D:\MongoDB\Server\3.4\bin
3. Windows下: mongod.exe --dbpath D:\MongoDB\DB
4. Mac下: mongod --config /usr/local/etc/mongod.conf
5. Linux下: sudo service mongod start
6. 再开一个cmd窗口,输入mongo.就可以操作了
3. 命令行操作数据库
1. 它支持大部分的js语法
2. 查看本地数据库:show dbs;
3. 通过use切换数据库:use admin;
4. 它不需要创建数据库:use student; (如果student数据库不存在自动创建)
5. 增删该查文档:https://docs.mongodb.com/manual/crud/
# 新增数据
use student;
stu = {
name: 'john',
age:12,
};
db.student.insert(stu);
# 查询数据
db.student.find();
db.student.insert({name: "Alex"});
db.student.find();
db.student.findOne();
# 修改数据
stu_obj = db.student.findOne(); # 先把对象查询出并保存
stu_obj.name = "qinan";
db.student.update({name : "john"}, stu_obj);#实际上用stu_obj直接替换之前内容
db.student.findOne();
# 删除数据
db.student.remove({}); # 删除所有数据
db.student.remove({name: "qinan"}); # 删除一条数据
db.student.find();
4. 练习
1. 创建一个学生信息表(至少包含:姓名,性别,成绩,年龄)
2. 写入十五条不同的数据
3. 查询所有的男生数据(只需要学生的姓名和年龄)
4. 查询成绩及格的学生信息(学生成绩大于或等于60分)
5. 查询所有18岁的男生和16岁的女生的数据
6. 按照学生的年龄进行排序
7. 将所有的学生年龄增加一岁
# 创建一个学生信息表(至少包含:姓名、性别、成绩、年龄)
use students;
# 写入十五条不同的数据
db.students.insertMany(
[
{name: "bob", age:16, gender:"male", grade:95},
{name: "ana", age:18, gender:"female", grade:45},
{name: "xi", age:15, gender:"male", grade:75},
{name: "bob1", age:16, gender:"male", grade:95},
{name: "ana1", age:18, gender:"female", grade:45},
{name: "jack", age:18, gender:"male", grade:85},
{name: "tom", age:19, gender:"male", grade:65},
{name: "lily", age:16, gender:"female", grade:59},
{name: "lucy", age:18, gender:"female", grade:68},
{name: "lilei", age:18, gender:"female", grade:68},
{name: "hanmeimei", age:16, gender:"female", grade:90},
{name: "harry", age:16, gender:"male", grade:81},
{name: "json", age:16, gender:"male", grade:75},
{name: "jim", age:16, gender:"male", grade:36},
{name: "rose", age:16, gender:"female", grade:91},
{name: "moli", age:16, gender:"female", grade:93},
{name: "linda", age:16, gender:"female", grade:96}
]
)
# 查询所有的男生数据(只需要学生的姓名和年龄)
# 查询所有的男生数据
db.students.find({gender:"male"})
# 数据中只包含性别和年龄 true和1都可以显示0不显示
db.students.find({gender:"male"},{age:true,name:1,_id:0})
# 查询成绩几个的学生信息(学生成绩大于或等于60分)
db.students.find({grade :{$gte:60}})
# 查询所有18岁的男生和16岁女生的数据
db.students.find({$or :[{gender:"female",age:16},{gender:"male",age:18}]})
#按照学生的分数进行排序
# 从小到大
db.students.find().sort({grade:1})
# 从大到小,倒序
db.students.find().sort({grade:-1})
# 将所有女生年龄增加一岁
db.students.update({gender:"female"}, {$inc:{age:1}}, {multi:true})
第四节 MongoDB图形化工具操作
1. 下载地址: https://robomongo.org/download
2. 直接安装。