摘要: 一:视图 1:定义:视图本质上是一张虚拟的表,它的数据来自select语句。 2:创建视图的语句: create view 视图名字 as select *from 表名; 3:作用: 原表安全,隐藏部分数据,开放指定的数据;因为视图可以将查询结果保存,所以可以用视图来减少书写sql的次数。 4:特 阅读全文
posted @ 2018-09-18 19:40 &nbsp 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 一:mysql用户管理 mysql是一个tcp的服务器,用于操作服务器上的文件数据,接收用户端发送的指令,而接收指令时就 需要考虑安全问题。 在mysql自带的数据库中有4个表是用于用户管理的,分别是user,db,tables_priv,columns_priv,其 优先级分别是从高到低。 1:创 阅读全文
posted @ 2018-09-17 19:28 &nbsp 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 一:单表查询完整的查询语句 格式: select [distinct] {*|字段名|聚合函数|表达式} from 表名 [where 条件 group by 字段名 having 条件 order by 字段名 limit 显示的条数] 以上是书写顺序,必须按照这个顺序来书写sql语句。其中[]表 阅读全文
posted @ 2018-09-14 19:23 &nbsp 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 一:约束 1:约束是什么:指的是除了数据类型以外额外添加的约束。 2:为什么要使用约束:为了保证数据的合法性,完整性。 3:分类: ①:not null 非空约束:数据不能为空 例:create table t1(id int,name char(10) not null); insert into 阅读全文
posted @ 2018-09-13 19:33 &nbsp 阅读(1858) 评论(0) 推荐(0) 编辑
摘要: 一:数据库存储和引擎 引擎:指的是一个功能的核心部分,而数据库的核心就是存储数据,所以涉及到存储数据的代码, 称之为存储引擎。 根据不同的需求,需求场景的不同,也有着不同的引擎分类: 如:innodb,csv,blackhole,memory …… 其中innodb是默认的引擎,因为它是永久存储,并 阅读全文
posted @ 2018-09-12 19:22 &nbsp 阅读(663) 评论(0) 推荐(0) 编辑
摘要: 一:数据库 1:认识数据库: 什么是数据库:数据库就是存放数据的仓库。也就是核心就是将数据永久保存下来,之前的文件处理 就可以实现将数据永久存储。但是如果以文件的形式就会带来很多问题,如管理不方便,文件操作效率问题, 而且一个程序不太可能仅运行在同一台电脑上。所以需要提高计算机的性能。 提高计算机性 阅读全文
posted @ 2018-09-11 19:45 &nbsp 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 一:引子:基于多线程实现套接字服务端并发。如图1: 但是如图1这种基于多线程实现套接字服务端并发实现后,如果开启的客户端过多,那么服务端就会不停地开启线程, 占用内存空间,所以不能这样无限的去开启线程 / 进程,所以需要采取一种措施,把并发的线程数 / 进程数控制在一定数量 之内,从而阻止无限的去开 阅读全文
posted @ 2018-09-10 19:52 &nbsp 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 一:GIL全局解释器锁: 1:什么是GIL全局解释器锁 GIL本质就是一把互斥锁,相当于执行权限,每个进程内都会存在一把GIL,同一进程内的多个线程 必须抢到GIL之后才能使用Cpython解释器来执行自己的代码,即同一进程下的多个线程无法实现并行 但是可以实现并发。 在Cpython解释器下,如果 阅读全文
posted @ 2018-09-07 20:26 &nbsp 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 进程部分 一:进程间通信IPC机制:由于进程之间的内存空间是相互隔离的,所以为了进程间的通信需要一个共享的内存空间, 但是共享带来的问题是数据在写的时候就不安全了,所以需要一种机制既有能共享的内存 空间,又能解决锁的问题。 有两种解决方案:一种叫管道,另一种叫队列。其中队列就是管道加锁实现的。这两种 阅读全文
posted @ 2018-09-06 20:12 &nbsp 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 一:开启进程的两种方式: 方式一(图1):通过multiprocessing模块,导入类Process来开启进程,通过类Process实例化得到对象,在Windows系统 上,开启子进程的操作必须放到 if __name__ == '__main__'的子代码中,然后调用对象下的start方法,开启 阅读全文
posted @ 2018-09-05 20:16 &nbsp 阅读(180) 评论(0) 推荐(0) 编辑