1、mysql与MongoDB区别:
1.关系型数据库通过外键关联来建立表与表之间的关系
2.非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定。
非关系数据库查询一条数据,是一个数组,关系型数据库查询出来是对象。
MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL(not only sql 非关系型数据库)的数据库。它们各有各的优点,关键是看用在什么地方。所以我们所熟知的那些SQL(全称Structured Query Language)语句就不适用于MongoDB了,因为SQL语句是关系型数据库的标准语言。
作用 |
MySQL |
MongoDB |
服务器守护进程 |
mysqld |
mongod |
客户端工具 |
mysql |
mongo |
逻辑备份工具 |
mysqldump |
mongodump |
逻辑还原工具 |
mysql |
mongorestore |
数据导出工具 |
mysqldump |
mongoexport |
数据导入工具 |
source |
mongoimport |
新建用户并授权 |
grant all on *.* |
db.addUser("user","psw") |
显示库列表 |
show databases; |
show dbs |
进去库 |
use dbname; |
use dbname |
显示表列表 |
show tables; |
show collections |
查询主从状态 |
show slave status; |
rs.status |
创建库 |
create database name; |
无需单独创建,直接use进去 |
创建表 |
create table tname(id int); |
无需单独创建,直接插入数据 |
删除表 |
drop table tname; |
db.tname.drop() |
删除库 |
drop database dbname; |
首先进去该库,db.dropDatabase() |
插入记录 |
insert into tname(id) value(2); |
db.tname.insert({id:2}) |
删除记录 |
delete from tname where id=2; |
db.tname.remove({id:2}) |
修改/更新记录 |
update tname set id=3 |
db.tname.update({id:2}, |
查询所有记录 |
select * from tname; |
db.tname.find() |
查询所有列 |
select id from tname; |
db.tname.find({},{id:1}) |
条件查询 |
select * from tname where id=2; |
db.tname.find({id:2}) |
条件查询 |
select * from tname where id < 2; |
db.tname.find({id:{$lt:2}}) |
条件查询 |
select * from tname where id >=2; |
db.tname.find({id:{$gte:2}}) |
条件查询 |
select * from tname where id=2 |
db.tname.find({id:2, |
条件查询 |
select * from tname where id=2 |
db.tname.find($or:[{id:2}, |
条件查询 |
select * from tname limit 1; |
db.tname.findOne() |
模糊查询 |
select * from tname where name |
db.tname.find({name:/ste/}) |
模糊查询 |
select * from tname where name |
db.tname.find({name:/^ste/}) |
获取表记录数 |
select count(id) from tname; |
db.tname.count() |
获取有条件 |
select count(id) from tname |
db.tname.find({id:2}).count() |
查询时去掉 |
select distinct(last_name) |
db.tname.distinct('last_name') |
正排序查询 |
select *from tname order by id; |
db.tname.find().sort({id:1}) |
逆排序查询 |
select *from tname |
db.tname.find().sort({id:-1}) |
取存储路径 |
explain select * from tname |
db.tname.find({id=3}).explain() |
2、Django、Tornado、Flask各自的优势 框架
Django:Django无socket,django的目的是简便,快速开发,并遵循MVC设计,多个组件可以很方便的以“插件”形式服务于整个框架,django有许多功能强大的第三方插件。django具有很强的可扩展性。
Tornado:它是非阻塞式服务器,而且速度相当快,得力于其 非阻塞的方式和对epoll的运用,Future对象,缺点:没有session,需要自定制
Flask:是一个微型的web框架,配合SQLALchemy来使用,jinja2模板, werkzeug接口
3、单例:
class SingleSimple(): instance=None#类属性 def __new__(cls, *args, **kwargs):#限制生成对象,c创建对象 if cls.instance==None: cls.instance=object.__new__(cls)#生成新对象 return cls.instance def __init__(self,name):#必须调用,必须加参; print('正在初始化方法...') self.name=name s=SingleSimple('abc') ss=SingleSimple('dfjf') print(s.name) print(ss.name)
二、电脑配置
1、操作系统----系统软件
Windows操作系统:win7、win8、XP
Unix操作系统:FreeBSD、Sun Solaris 一般用于银行、电信、移动、核心业务等高端领域,是收费的,闭源的,很贵
Linux:Ret Hat(红帽)、Ubuntu(游戏3D)、Fedora(社区版) 服务器基本都是Linux系统,维护。
优点:稳定性、安全性、企业应用成本低、开放源代码、可移植性强
应用:网络服务器,高可用群集、云网络,智能手机、平板电脑、嵌入式设备,大规模运算、影视渲染。。。
发行版:red hat企业版、fedora社区版、centos社区版(免费,和红帽相似)
Linux构成:Linux内核和外围程序(shell、gnome。。)
三、http/ftp/tcp协议
http改为https:加密的 无状态的,可以访问不回复,基于tcp的。
udp:无状态的,不可靠,跟发短信一样
tcp:有状态的,可靠的,长连接,跟打电话一样。
ftp:文件传输协议。
pop3/smtp:简单邮件协议
四、网络七层协议 OSI
1.应用层:
域名:DNS www.baidu.com 对应一个ip地址。
ip地址:最大255。
(127.0.0.1是本地回环地址或localhost) cmd---> ipconfig查IP地址电脑能否上网:ping ip地址
A类:1.0.0.0~126.255.255.255
B类:128.0.0.0~191.255.255.255 例:129.23.23.21 网络ip:129.23.0.0 本机ip:0.0.23.21
C类:192.0.0.0~233.255.255.255 都是局域网192.168. 例:192.23.23.21 网络ip:192.23.23.0 本机ip:0.0.0.21
默认网关: 192.23.23.1 子网掩码:255.255.255.0
D类:用于组播
子网掩码:255.255.255.0 C类ip地址
默认网关:路由器
网络七层模型(OSI参考模型):
应用层:网络服务与最终用户的一个接口。 应用软件。
表示层:合并一层
会话层:合并一层
传输层:socket udp、tcp 端口号:每一个应用程序都有一个端口号,windows下有上万个端口号,病毒跟着端口号进来。
网络层:逻辑寻址,寻路径 ip 路由器
数据链路层:寻找硬件地址,MAC 交换机
物理层:物理连接 网线