Python高级

非关系型数据库(NO-SQL:Not Only SQL)

非关系型数据库的诞生:随着IT的发展,变革,数据量越来越大,数据之间的关系越来越零散,松散,没有太大的关系,利用关系型数据库已不能更好的满足我们的需求,使用起来非常复杂,浪费大量的空间。为了解决这种问题就出现了一些能处理松散的,数据与数据之间没有太大关系的数据库,即NoSQL非关系型数据库,如MongoDB等

非关系型数据库适合存放结构松散,相互之间关系不明确的数据

常用产品:

MongoDB (文档)

Redis (键值对)

HBase (一列列的数据)

缓存优化 能不用关系型数据库就不用,非要用就减少数据库的使用,将数据写入Redis

NoSQL数据库的四大分类

1.键值型

2.列存储型

3.文档型,比如MongoDB等

4.图形

Base64编码

Base64编码是一种“防君子不防小人”的编码方式。广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位可能有“=”,生成的编码都是ascii字符。 优点:速度快,ascii字符,肉眼不可理解 缺点:编码比较长,非常容易被破解,仅适用于加密非关键信息的场合

import base64

str1 = 'nihao,中国!'

r = base64.b64encode(str1.encode())

print(r)

r = base64.b64decode(r)

print(r.decode())

for...else while..else

for i in range(5):

​ print(i)

​ if i == 3:

​ break # 跳出for循环

else: # 当for循环全部执行完毕才会执行else,没全部执行,如执行了break就不会执行else

​ print(i)

print("end....")

while循环也是如此,但如果while执行了continue,else也会被执行

MongoDB

show dbs 显示所有数据库

db 当前数据库

use mydb 创建mydb数据库

db.student.insert({"sno":1001, "name":"张三"}) 插入数据

db.dropDatabase() 删除当前数据库

db.student.drop() 删除集合 删除后如果数据库中没有其他集合,该数据库将会看不到

db.student.find() 查看文档

db.student.update({"sno":1001},{$set:{"name":"张三丰"}}) 将学号为1001的学

生的姓名更改为张三丰

db.student.remove({"name": "王五"}) 将student表中所有名字叫王五的信息删掉

如果数据库中没有一个集合是不会显示的,所以show dbs就看不到

MongoDB的文档不需要设置相同的字段

集合没有固定的结构,可以插入不同格式和类型的数据

对象为什么能当做字典来使用,只要实现对象中的getitem就可以当做字典来使用

MongoDB在Python中使用

import pymongo

conn = pymongo.MongoClient()

# 创建数据库

db = conn["mydb"]

# 创建集合

stus = db["student"]

s = {"sno": 1001, "name": "张三", "sex": "男"}

# 向student集合中插入一个文档

stus.insert_one(s)

s = {"sno": 1001, "name": "李四", "sex": "男"}

# 向student集合中插入一个文档

stus.insert_one(s)

r = stus.find({"name":"张三"})

print(r0)

stus.update_one({"name": "张三"}, {"$set": {"name":"张三丰"}})

# 删

r = stus.delete_many({"name": {"$regex": "^张"}})

# 删除的个数

print(r.deleted_count)

# stus.insert_one(s)

# stus.remove()

#查看所有数据库

#print(conn.list_database_names())

算法(Algorithm)

解决某个问题的方法,比如冒泡排序,哈希算法,二分查找算法等

评估算法优劣:时间复杂度,空间复杂度

程序本质就是对数据进行处理,想要对数据进行处理,总要有位置放,放就放在存储器,存储器就是内存的容器。存储器分为两种,内存和外存,内存访问速度极快,容量很小,但数据容易流失,外存容量很大,可以持久存放数据,想要把数据存放在外存上需要通过文件,而放在内存上是零散的

算法的空间复杂度计算的是算法执行过程中需要消耗的存储空间,而原始数据所占的空间并不进行考虑

同一个算法的时间空间复杂度跟其的规模有关,即时间复杂度和空间复杂度是问题规模n的函数,n越大时间耗费越长

时间复杂度的衡量一般是基于基本操作(单个操作)的次数

#时间复杂度o(n)

#空间复杂度o(1)

def index(seq, val):

​ i = 0

​ while i < len(seq):

​ if seq[i] == val: return i

​ else:

​ return -1

算法的描述方式:

1.自然语言,比如中文,日文等;

2.伪代码;即随意,能看懂意思就行

3.编程语言;最终期望来实现

重点:

常用算法:

排序算法(至少4中:冒泡,选择,插入,快排),查找算法(二分查找算法),哈希算法(时间是最快的,但耗费大量的存储空间),

记住常用算法的实现

记住常用算法的时间和空间复杂度

数据结构(Data Structure)

数据的一种组织形式,表示方式

集合:

线性结构:顺序表、链表、栈、队列、串(字符串)

树形结构:二叉树、树、森林

图状结构:像渔网一样,数据之间有千丝万缕的联系

算法和数据结构是每个程序猿必须要不断修炼的内功!

转载于:https://www.cnblogs.com/yanruizhe/p/11426150.html

MongoDB数据库--扩展Base64,算法相关推荐

  1. mongodb数据库扩展名_MongoDB权威指南

    MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.它的特点是高性能.易部署.易使用,存储数据非常方便. MongoDB是一个介于关系 ...

  2. mongodb数据库扩展名_MongoDB文件型数据库

    初始MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库 ...

  3. mongodb数据库扩展名_MongoDB学习笔记:MongoDB 数据库的命名、设计规范

    第一部分,我们先说命名规范. 文档 设计约束 UTF-8 字符 不能包含 \0 字符(空字符),这个字符标识建的结尾 . 和 $ 有特殊含义,需要避免 区分大小写 键不能重复 键/值对有序 实践约束 ...

  4. mongodb数据库扩展名_MongoDB 数据库引用

    MongoDB 数据库引用 在上一章节MongoDB关系中我们提到了MongoDB的引用来规范数据结构文档. MongoDB 引用有两种: 手动引用(Manual References) DBRefs ...

  5. mongodb数据库扩展名_MongoDB如何存储数据

    想要深入了解MongoDB如何存储数据之前,有一个概念必须清楚,那就是Memeory-Mapped Files. Memeory-Mapped Files 下图展示了数据库是如何跟底层系统打交道的. ...

  6. kali php 装mongodb,Linux系统如何安装mongodb数据库Mongo扩展

    许多Linux用户喜欢使用mongodb数据库,这款好用方便的数据库.不过一些用户想要安装mongodb扩展时,却不知道怎么安装了,因此,现在小编就教大家安装mongodb扩展的方法,有需要的用户快来 ...

  7. Mongodb数据库初识

    Mongodb数据库初识 一.什么是数据库 1.标准定义 2.数据库的概念 3.数据库的简单理解 4.使用数据库的原因 ①普通文件系统存储大量数据的问题 ②数据库的高效性 二.数据库的分类 1.关系型 ...

  8. 【数据库】MongoDB数据库详解

    目录 一,数据库管理系统 1, 什么是数据库 2,什么是数据库管理系统 二, NoSQL 是什么 1,NoSQL 简介 2,NoSQL数据库 3,NoSQL 与 RDBMS 对比 三,MongoDB简 ...

  9. Mongodb数据库介绍

    Mongodb数据库介绍 一种非关系型数据库mongodb,mongodb数据库主要用于海量存储,常被用在数据采集项目中. mongodb官方文档 https://docs.mongodb.com/ ...

最新文章

  1. 【其他】GIT常用原生命令
  2. Tomcat项目部署
  3. (3两个例子)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  4. linux程序崩溃时调用链,Linux 获取并分析程序崩溃时的调用堆栈
  5. python学习-函数(定义、可变参、小练习(列表最小值函数))
  6. 奥林匹克数学竞赛教练员汇编,最牛奥数资料全集!
  7. C++11新特性以及std::thread多线程编程
  8. 用Indy创建收发电子邮件的例子
  9. EasyUI---layout布局、树形组件、选项卡tabs
  10. 谷歌在线办公法器-Google Docs
  11. 软件项目管理案例教程期末考试知识点复习(一)软件项目管理概述
  12. 项目引用android-support-v7-appcompat,如何使用android-support-v7-appcompat
  13. apache-commons之BeanUtils、ConvertUtils、PropertyUtils、CollectionUtils的基本使用
  14. Windows组策略禁止广告弹窗
  15. 【干货】ubuntu18.04+win7双系统+双硬盘安装总结
  16. Echarts经典颜色搭配
  17. CSU——1043克里莫
  18. 广东工业大学2020级年ACM第一次月赛
  19. LOG_PATH_IS_UNDEFINED 解决
  20. easyExcel设置单个单元格(颜色)样式

热门文章

  1. Mysql数据库基础(一)基本概述、构建服务、基本管理、数据类型
  2. 百度地图示例左侧的代码编辑器Ace Editor
  3. UDP、广播、多播与IGMP(七)
  4. Spring Boot 微信点餐开源系统
  5. 知乎高赞:985计算机视觉毕业后找不到工作怎么办?怒刷leetcode,还是另寻他路?
  6. 谈谈阿里所谓的“要性”
  7. Java常量池的大概理解
  8. eclipse再次导入已经逻辑删除的工程,IDE提示已存在,无法导入的解决办法
  9. Mysql实战:主从同步
  10. css动画-animation各个属性详解(通俗易懂)