摘要:
单表查询 表的基本查询语句 单表查询的前期准备 create table emp( id int not null unique auto_increment, name varchar(20) not null, sex enum('male','female') not null defaul 阅读全文
摘要:
前言 提出问题 解决方案 如何确认表与表之间的关系: “换位思考”,必须两方都考虑周全之后才能得出结论 举例:员工表和部门表之间的关系: 先站在员工表看是否可以: 多个员工对应一个部门 翻译过来:一个部门是否能有多个员工 可以(所以暂时确认了员工反向多对一部门) 再站在部门表 阅读全文
摘要:
前言(创建表的完整语法) 补充: 总结(约束和类型的区别): 数据类型 整型 类型存储范围 验证整型字段有无符号及范围(unsigned取消范围限制) create table t1(x tinyint); insert into t1 values(128),(-129); select * f 阅读全文
摘要:
去幕布 >> 数据库 DBMS(数据库管理系统) 关系型数据库 数据与数据之间可以有关联和限制的 关系型数据库通常都是表结构,也就意味着你在用关系型数据库的时候 第一步就是确定表结构 字段有特定的类型 存名字用字符串 存密码用数字 存生日用日期 库 >>> 文件夹 表 >>> 文件 记录 阅读全文
摘要:
去幕布 >> 1、进程池和线程池 通过concurrent.futures实现进程/线程池 # 代码演示(进程/线程池)+(异步回调) from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor import time 阅读全文
摘要:
去幕布 >> GIL全局解释器锁 Python的多线程没法利用多核优势,是不是就没有用了? 研究Python的多线程是否有用,需要分情况讨论: (假设有四个任务,每个任务需要10s 处理完成) 1. 计算密集型: 单核情况下: 开线程更省资源(原因是开进程需要申请内存空间等操作,浪费时间) 阅读全文
摘要:
去幕布 >> 进程之间通信IPC机制 队列:先进先出(队列=管道+锁)full、get_nowait、empty 都不适用于多进程的情况 队列 的方法演示 from multiprocessing import Queue q = Queue(3) # 括号内可以传参数 表示的是这个队列的最大存 阅读全文
摘要:
去幕布 >> 操作系统发展史 发展史1. 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。2. 20世纪50年代后期,出现人机矛盾:手工操作的慢速度和计算机的高速度之间形成了尖锐矛盾,手工操作方式已严重损害了系统资源的利用率(使资源利用率 阅读全文
摘要:
去幕布>>> socketserver模块 如何理解socketsever使用封装好的模块,直接调用其中的方法,来完成socket模块可以实现的方法 如何使用 import socketserver class MyServer(socketserver.BaseResetHandler): d 阅读全文
摘要:
本地回环地址127.0.0.1 只能自己识别自己,其他人无法访问 TCP特点将数据量较小的并且时间间隔比较短的数据,一次性打包发给对方 一个简单的CS架构 # server端口 import socket # 导入socket模块 server = socket.socket() # 生成一个对 阅读全文