05 2024 档案
摘要:import pymysql from pymysql.cursors import DictCursor conn = pymysql.connect(host='localhost', user='root', password='123456', database='day1', port=3
阅读全文
摘要:Pymysql 安装:pip install pymysql 导入模块:import pymysql 创建连接对象: conn = pymysql.connect(user=root,password='',host='localhost',database='',port=3306,charset
阅读全文
摘要:1、查询所有的课程的名称以及对应的任课老师姓名 select coname as '课程名称',tname as '教师姓名' from course join teacher on course.teacher_id = teacher.tid; ![image-20240530145027886
阅读全文
摘要:20240529 约束条件:限制表中的数据,保证数据的准确,可靠的规则 not null /null unsigned zerofill unique:唯一数据 primary key: 主键,便于查询 =not null +unique 主键约束:添加的约束规则 主键字段:添加了主键约束的字段 主
阅读全文
摘要:存储引擎 对不同数据的处理机制 4种主要的存储引擎 Innodb:默认存储引擎,5.5版本之后 支持事务、行锁、外键 生成frm和idb两个文件 Myisam:5.5版本之前的默认存储引擎 速度快,安全性弱 生成frm,MYQ,MYI三个文件 memory:内存引擎 数据全部存储在内存,重启数据就丢
阅读全文
摘要:SQL规范 关键字不区分大小写 用;结尾 SQL注释 单行注释 --注释- 注释 多行注释 /*注释 */ SQL类型 数据定义语言(DDL:Data definition language) 1. 操作(DML:data manuplate language) 1. 控制(DCL:data con
阅读全文
摘要:存储数据的演变过程 基于内存保存:字典,列表 基于硬盘本地保存 文本文件 文件夹 json模块保存 基于网络保存 TCP服务端 数据库就是一个基于网络通信保存数据的应用程序 数据库类型 关系型数据库:通过关系模型组织数据,支持sql查询 MySQL, postgresql Oracle sql se
阅读全文
摘要:协程不是系统级线程,很多时候协程被称为“轻量级线程”、“微线程”、“纤程(fiber)”等。简单来说可以认为协程是线程里不同的函数,这些函数之间可以相互快速切换。 协程和用户态线程非常接近,用户态线程之间的切换不需要陷入内核,但部分操作系统中用户态线程的切换需要内核态线程的辅助。 协程是编程语言(或
阅读全文
摘要:死锁和递归锁 【一】死锁 【1】介绍 死锁是指两个或多个进程,在执行过程中,因争夺资源而造成了互相等待的一种现象。 即两个或多个进程持有各自的锁并试图获取对方持有的锁,从而导致被阻塞,不能向前执行,最终形成僵局。 在这种情况下,系统资源利用率极低,系统处于一种死循环状态。 【2】例子 要吃饭,必须具
阅读全文
摘要:GIL全局解释器锁介绍 【1】官方解释 In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecodes
阅读全文
摘要:所有子线程都会进行阻塞操作,导致最后的改变只是改了一次 from threading import Thread import time money = 100 def task(): global money # 模拟获取到车票信息 temp = money # 模拟网络延迟 time.sleep
阅读全文
摘要:Python中的主线程是程序的起始线程,即程序启动时自动创建的第一个线程,它执行程序的主体逻辑。 守护线程则是在后台运行并依赖于主线程或非守护线程的存在。 【一】主线程死亡,子线程未死亡 主线程结束运行后不会马上结束,而是等待其他非守护子线程结束之后才会结束 如果主线程死亡就代表者主进程也死亡,随之
阅读全文
摘要:【一】什么是线程 在操作系统中,每一个进程都有一块内存空间地址,你的程序就泡在这块内存地址上 不可能一个程序只有一个进程在处理所有数据和逻辑 于是就有了线程这个概念:在进程内部开设的处理程序的进程 操作系统 --> 运行一个程序叫进程 > 进程里面又开了一个进程 > 改名叫线程 进程只是用来将所有资
阅读全文
摘要:【一】管道类介绍 ''' Pipe from multiprocessing import Pipe 【1】创建管道对象 left_pipe, right_pipe = Pipe() # 默认参数 是 dumplex : 默认双通道的管道 【2】主要的方法 (1)接收数据 先将另一端关闭 > 一端取
阅读全文
摘要:为当前进程或线程添加额外的限制,限制当前时间段只能有当前进程使用,结束后才能被其他进程继续使用 主要用在多线程中 效果等同于串行(局部串行,只在数据修改部分使用) 牺牲效率,包装安全 例子:12306买票 from multiprocessing import Lock lock.acquire()
阅读全文
摘要:进程间通信(IPC inter-process communication) 如何实现进程间通信 将消息放入队列中,由另一个进程从另一个队列中取出 这种通信方式是非阻塞的,发送进程不需要等待接收进程的相应就可执行 multiprocessing有两种形式通信:队列、管道 管道 stdin stdou
阅读全文
摘要:【3.0】多进程操作 【一】multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程。 Python提供了multiprocessing。 multiprocess
阅读全文
摘要:多道技术 【1】什么是多道技术 ● 多道技术(Multiprogramming)指在计算机内同时运行多个程序 ○ 由操作系统负责控制和管理这些程序的调度。 ● 每个程序都有独立的内存空间和CPU时间片 ○ 在不同的程序间切换 ○ 以最大化地利用CPU资源 ○ 提高计算机系统的效率。 【2】多道技术主
阅读全文
摘要:粘包问题 【一】什么是粘包 须知:只有TCP有粘包现象,UDP永远不会粘包 【1】socket收发消息的原理 首先需要掌握一个socket收发消息的原理 发送端可以是一K一K地发送数据,而接收端的应用程序可以两K两K地提走数据,当然也有可能一次提走3K或6K数据,或者一次只提走几个字节的数据 也就是
阅读全文
摘要:Socket层 【一】Scoket层在哪 还是用图来说话,一目了然。 【二】什么是socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。 在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面 对用户来说,一组简单的
阅读全文
摘要:2.0】操作系统与网络通信 【零】引入 【1】什么是网络编程 网络编程是指通过编程语言在计算机之间建立通信的一种方式。 它是在互联网上进行数据传输的关键组成部分,使计算机能够相互通信、交换信息和共享资源。 网络编程涉及许多不同的技术和协议,包括TCP/IP(传输控制协议/因特网协议),HTTP(超文
阅读全文
摘要:可以是阿拉丁神灯,也可以是潘多拉魔盒。是底层代码逻辑。 type为对象的顶点,所有的对象都创建自type. object为类继承的顶点,所有类都继承自object. object是所有类的超类,type也是继承自object. 所有对象创建自type,object也是type的实例。 我们常用的代码
阅读全文
摘要:Pycharm常用快捷键,以及设置 一 常用快捷键 编辑类: Ctrl + D 复制选定的区域或行 Ctrl + Y 删除选定的行 Ctrl + Alt + L 代码格式化 Ctrl + Alt + O 优化导入(去掉用不到的包导入) Ctrl + 鼠标 简介/进入代码定义 Ctrl + / 行注释
阅读全文
摘要:【引入】 Python的Class机制内置了很多特殊的方法来帮助使用者高度定制自己的类 这些内置方法都是以双下划线开头和结尾的,会在满足某种条件时自动触发 init :初始化类时触发 del :删除类时触发 new :构造类时触发 str :str函数或者print函数触发 repr :repr或者
阅读全文
摘要:【一】继承介绍 # 面向对线三大特性:继承 封装 多态 # 继承 # 【一】什么是继承 # 继承就是一种创建新类的方式,新建的类可以继承一个或多个类的属性。 # 新的类如果有自己的属性,那就叫派生 # 【二】继承的优点 # 可以继承父类的所有属性和方法,实现代码的去重 # 【三】继承方式 # 单继承
阅读全文