08 2019 档案
摘要:视图 视图就是通过得到一张虚拟表,然后保存下来,下次直接使用即可 视图应用:当反复用到两张表的连接操作时,可以保存下来,下次使用 如何使用: create view teacher2course as select * from teacher inner join course on teache
阅读全文
摘要:一、多表操作练习 题材: /* 数据导入: Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL Source Server Version : 50624 Source Host : l
阅读全文
摘要:单表查询: create table emp( id int not null unique auto_increment, name varchar(20) not null, sex enum('male','female') not null default 'male', #大部分是男的 a
阅读全文
摘要:将所有数据都放在一张表内产生的弊端 1.表的组织结构不清晰 2.浪费存储空间 3.可扩展性极差(修改某个部门信息 ) 多对一: 如何查找表与表之间的关系 以站在员工表为例: 多个员工能否属于一个部门 可以 以站在部门表为例: 多个部门能否有同一个员工 不可以 只有站在两边分析,才能下结论: 员工表单
阅读全文
摘要:字段类型: 整型 浮点型 字符类型 日期类型 枚举与集合类型约束条件 primary key unique not null default 存储引擎 不同的数据应该有不同的处理机制 mysql存储引擎 Innodb:默认的存储引擎 查询速度较myisam慢 但是更安全 myisam:mysql老版
阅读全文
摘要:一、数据库概念 1.随意的存到了一个文件中 数据格式也是千差万别的 2.软件开发目录规范 规定了数据存放的位置 ps:数据都是保存在本地的 3.将保存数据的部分 存到一个公共的地方 所有的用户涉及到数据相关 都必须来这个公共地方查二、数据库之mysql 本质就是一款基于网络通信的应用软件 任何基于网
阅读全文
摘要:一、协程 进程:启动多个进程 进程之间是由操作系统负责线程:启动多个线程 真正被cpu执行的最小单位实际是线程 开启一个线程 创建一个线程 需要寄存器 堆栈协程:本质上是一个线程,能在多个任务之间切换来节省一些IO时间 协程中任务之间的切换也消耗时间,但是开销远远小于进程线程之间的切换都是实现并发的
阅读全文
摘要:一、管道 管道:进程与进程之间能相互通信通信原理:是基于管道双向通信 from multiprocessing import Pipe, Process conn1, conn2 = Pipe() conn1.send("123456") print(conn2.recv()) from multi
阅读全文
摘要:一、线程池 from concurrent.futures import ThreadPoolExecutor import time def func(n): time.sleep(2) print(n) return n * n def call_back(m): print("结果是:%s"
阅读全文
摘要:一、线程定义及作用 线程:进程线程其实都是虚拟单位,都是用来帮助我们形象的描述某种事物 进程:资源单位(进程开辟一块内存空间,里面可以有多个线程) 线程:执行单位(进程的任务都是线程去执行) 将内存比如成工厂 那么进程就相当于是工厂里面的车间 而你的线程就相当于是车间里面的流水线 ps:每个进程都自
阅读全文
摘要:一、信号量 信号量:一套资源 同一时间 只能被n个人访问 某一段代码 同一时间 只能被n个进程执行,控制访问人数 Semaphore用上锁的原理实现的,内置了一个计数器,在同一时间 只能有指定数量的进程执行被控制住代码 import random from multiprocessing impor
阅读全文
摘要:一、创建进程 创建进程就是在内存中重新开辟一块内存空间将允许产生的代码丢进去一个进程对应在内存就是一块独立的内存空间,和其他之间没有任何关系,变量也是独立的进程与进程之间数据是隔离的 无法直接交互但是可以通过某些技术实现间接交互""" 如果调用函数,势必会同步等待时间结束完,才会执行其他代码,这里就
阅读全文
摘要:一、发送文件 客户端: import socket import json import os import struct client = socket.socket() client.connect(('127.0.0.1', 8080)) while True: # 获取电影列表 循环展示 M
阅读全文
摘要:一、socket通信 1.客户端 import socket client = socket.socket() # 拿电话 client.connect(('127.0.0.1', 8080)) # 拨号 写的是对方的ip和port client.send(b'hello world!') # 对别
阅读全文
摘要:一、软件开发的架构 我们了解的涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:qq,微信、网盘,优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度、知乎、博客园等使用浏览器就可以直接使用的应用 这些应用的本质其实都是两个程序之间的通讯,而这两个分类又对应两个软件开发的构架
阅读全文
摘要:一、isinstance和issubclass isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() isinstance(obj, Foo) issubclass(sub, super)检查sub类是否
阅读全文