- 博客(79)
- 收藏
- 关注
原创 关系型数据库的完整性和一致性
3.域完整性 - 存储的数据都是有效的数据 --数据类型/数据长度/非空约束/检查约束/I-Isolation -- 隔离性 - - 并发的多个事务不知道彼此之间的中间状态。1.实体完整性 - 每一个实体都是独一无二的,没有冗余 --主键/唯一索引。D- Duration - 持久性 - 事务完成后数据要做持久化。C-Consistency -一致性-事务的前后数据状态一致。--文档数据库-MongoDB、ElasticSearch。--键值对数据库-Redis。2.参照完整性 - 外键。
2024-12-22 21:06:00
271
原创 Mysql 笔记2 emp &dept HRs
- select 'x' from dual where exists(select empno from tb_emp where empname like '张%')-- select 'x' from dual where exists(select empno from tb_emp where empname like '赵%')-- explain select empno,empname from tb_emp where empname like '张%';
2024-12-14 22:07:36
946
原创 MySql 笔记
insert into tb_student values(1003, '张三丰',1,'1982-2-2','湖北十堰');insert into tb_student values(1004, '张二丰',1,'1982-2-2','湖北十堰');insert into tb_student values(1005, '张一丰',1,'1982-2-2','湖北十堰');(1009,'杨不悔',0);(1007,'杨逍',1),(1008,'谢逊',1),-- 删除学生delete。
2024-12-07 22:13:05
430
原创 Python 笔记协程generate yield,greenlet,gevent,猴子补丁
协程:有耗时操作:网络请求,网络下载,网络上传(爬虫)IO:文件的读写,阻塞time.sleep。由于IO操作非常耗时,经常使程序处于等待状态,有了gevent我们自动切换协程,就保证了。Python还有一个比greenlet更加强大的并且能够自由切换任务的模块gevent。比如网络,文件操作时)比如访问网络,就自动切换到其它的greenlet,等到IO完成,greenlet已实现了协程,但是这个人工切换,是不是觉得太麻烦了,不要着急。总是有greenlet在运行,而不是等待IO。
2024-12-05 21:35:14
216
原创 python 笔记之线程同步和死锁
使用Thread对象的Lock和RLock可以实现简单的线程同步,这两个对象都有acquire方法和release方法。多线程的优势在于可以同时运行多个任务,但是当线程需要共享数据时,可能存在数据不同步的问题。如果多个线程共同对某个数据修改,则可能出现不可预测的结果,为了保证数据的正确性,需要对多个数据进行同步。对于那些需要每次只允许一个线程操作的数据,可以将其操作放到acquire和release方法之间。开发过程中使用线程,在线程间共享多个资源的时候。同步:一个一个的完成,一个做完另一个才能进来。
2024-12-04 22:40:02
375
原创 Python 笔记之线程threading
线程:Thread 耗时操作时使用,爬虫。#状态:新建,就绪,运行,阻塞,结束。#进程:Process 计算密集型。# 线程是可以共享全局变量的。# GIL 全局解释器锁。
2024-12-04 20:20:42
172
原创 Python 笔记之进程通信
但是如果是上百个或者上千个目标,手动去创建进程的工作量很大,此时就可以利用到Multiprocessing模块提供的Pool方法。非阻塞式:全部添加到队列中,立刻返回,并没有等待其它进程执行完毕,但是回调函数是等地啊任务完成之后才调用。那么就会创建一个新的进程来执行该请求;但是如果池中的进程数量已经达到指定的最大值,那么该请求会等待。初始化pool时,可以指定一个最大进程数,当有新的请求提交到Pool中时,如果池还没有满。直到池中有进程结束,才会创建新的进程来执行。好处:设置进程数量,达到进程的复用。
2024-12-04 20:17:36
267
1
原创 Python 笔记之进程池Pool
但是如果是上百个或者上千个目标,手动去创建进程的工作量很大,此时就可以利用到Multiprocessing模块提供的Pool方法。当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态生成多个进程。非阻塞式:全部添加到队列中,立刻返回,并没有等待其它进程执行完毕,但是回调函数是等地啊任务完成之后才调用。但是如果池中的进程数量已经达到指定的最大值,那么该请求会等待。初始化pool时,可以指定一个最大进程数,当有新的请求提交到Pool中时,如果池还没有满。
2024-11-20 21:56:57
385
原创 Python笔记之进程
并发:当有多个线程操作时,如果系统只有一个CPU,则它不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分为若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时,其它代码处于挂起状态。当一个CPU执行一个线程时,另一个CPU可以执行另外一个线程,两个线程互补抢占CPU资源,可以同时进行,这种方式我们称之为并行(parallel)单核CPU实现多任务原理:操作系统让多个任务交替进行,QQ执行2us,切到微信,在切到别的,表面看是同时执行,实际是单独执行。
2024-11-20 21:52:52
154
原创 Python 继承笔记
student 使用computer book。算是自定义的类,都可以将其当成一种类型。一个类中使用了另外一种自定义类的类型。student是一种类型。s是Student的类型。
2024-11-13 22:23:09
230
原创 Python 类私化有笔记
在开发中看到的一些私有化处理,装饰器@property,可以将私有化改成和非私有化一样的调用。#封装:1.私有化属性部分;2.定义共有的set和get方法。#__属性:就是将属性私有化,访问范围仅仅限于类中。2.也可以修改:通过set方法修改。1.隐藏属性不被外界修改。
2024-11-12 22:01:30
232
原创 Python之魔术方法笔记
触发时机:初始化对象时触发(不是实例化触发,但是和实例化在一个操作中)# 触发时机:把对象当成函数使用时候,会默认调用此函数中的内容。#__init__:初始化魔术方法。#__new__:实例化的魔术方法。#__call__:对象调用方法。#触发时机:实例化时触发。
2024-11-11 21:56:39
227
原创 python基础笔记之闭包
5.locals()内置函数进行查看,可以看到当前函数中声明的内容有哪些,是一个字典,key时变量名:value变量值。6.globals()全局变量查看,可以看到当前所有全局变量,是一个字典,key时变量名:value变量值。4.内部函数修改外部的不可变的变量时,需要在内部函数中声明:nonlocal 变量名。3.内部函数修改全局变量时,需要在内部函数声明global变量名。2.内部函数可以修改外部函数的可变变量比如:list。4.内部函数引用了外部函数的变量。1.外部函数中定义了内部函数。
2024-11-07 23:23:49
108
原创 Python 基础笔记之生成器generator
生成器:generator 1.通过列表推导式 g=(x for x in range(6)) 2.函数和yield def func(): ... yield g=func() 产生元素 1.next(generator) -->每次调用都会生成一个新的元素,如果元素产生元素完毕,再次调用就会产生异常 2.生成器自己的方法: g.__next__() g.send() 应用:协程。send(value):向每次生成器调用中传值 注意:第一次调用send(None)__next__():获取下一个元素。
2024-11-07 21:32:54
260
原创 python 打包一个带参数的EXE
点击Run选择EditConfiguration后打开Run/Debug Configurations,找到参数输入你的参数后执行即可。# 检查参数长度,并提示用户输入正确的参数格式。# 以下是你的程序主要逻辑。
2024-11-05 13:16:55
226
原创 python-numpy-笔记1
1.进入CMD输入jupyter notebook --enter--等待结束,使用Edge打开后出现jupyter的网页。启动终端jupyter notebook。
2024-10-28 22:44:26
245
原创 正则表达式笔记
w:任意文字字符=[a-zA-Z0-9_]\W:非文字字符=[^a-zA-Z0-9_]\s:空字符,如[\t\n\r\f\v]\S:非空字符[^\t\n\r\f\v]如果是单行模式,表示这个文本的结束位置。如果是多行模式,表示文本每行的结束位置。"*"匹配任意个字符包括0个和任意个。单行模式:表示匹配整个文本的开头位置。多行模式:表示匹配文本每行的开头位置。多行模式:表示匹配文本每行的开头位置。"."匹配任意字符(一个)^表示匹配文本的起始位置。"$"表示文本的结束位置。
2024-10-26 20:42:10
367
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人