7 高级表查询
系列七 高级的查询功能 分组查询group by 聚合函数avg 分组筛选having 结果排序order by 限制数量limit 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596#第三十一课时--分组查询GROUP BY--按照用户所属省分进行分组SELECT * FROM cms_user GROUP BY proId;--按照字段位置进行分组SELECT * FROM cms_user GROUP BY 7;--按照多个字段进行分组SELECT F FROM cms_user GROUP BY sex,proId;--先写条件,后对满足条件的记录进行分组SELECT * FROM cms_user WHERE id > 5 GROUP BY sex...
5 修改表数据
系列五 对表中数据的操作 插入记录 更新和删除记录 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#第二十四课时插入记录--插入记录的操作--不指定具体字段名的插入INSERT [INTO]tbl_name VALUES|VALUE(...);--列出制定字段INSERT [INTO] tbl_name(字段名称,...) VALUES|VALUE(...);--同时插入多条记录INSERT [INTO] tbl_name [(字段名称,...)] VALUES|VALUE(...)()(...)...;--通过SET形式插入记录INSERT [INTO] tbl_name 字段名称=值--将查询结果插入到表中INSERT [INTO]tbl_name[(字段名称,...)]SELECT 字段名称 tbl_name[WHERE 条件]--插入所有的数据的一条记录INSERT [INTO]user1 VALUES|VALUE(1,...
8 连接表查询
系列八 条件语句在各个部分的应用 更新,插入,删除记录的中的数据 条件更新、条件删除 连接查询 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970#第三十六课时--条件更新UPDATE cms_user SET age = age - 3 WHERE username LIKE '____';--更新前三条记录,让已有年龄+10UPDATE cms_user SET age = age +10 LIMIT 3;--按照id降序排列UPDATE cms_user SET age = age +10 ORDER BY id DESC LIMIT 3;--条件删除DELETE FROM cms_user WHERE sex = 'man' ORDER BY age DESC LIMIT 3;#第三十七课时--连接查询--将两个或两个...
9 外键与查询
系列九 外键的相关操作 外键操作 外键的创建、删除 联合查询 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129#第三十九课时--外键操作--作用:保证数据的一致性和完整性--外键是表的一个特殊字段。被参照的表是主表,外键所在的字段的表为字表,是指外键的原则需要记住--就是依赖于数据库中已存在的表的主键。外间的作用时间里该表与其附表的关联关系,--附表中对记录做操作时,子表中与之对应的信息也应该有相应的改变。--可以实现一对一或一对多的关系--父表和子表必须使用相同的存储引擎...
6 查询表数据
系列六 表达式与查询 查询表达式 带条件的查询 范围查询 模糊查询 逻辑运算符查询 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192--SELECT 之后表示要查询的字段--FROM 之后表示要查询的数据库和表的名称--WHERE 之后表示要查询的记录的描述比较运算符<>=NULL、范围查询的两个关键字BETWEEN/IN、模糊查询LIKE、多条件查询AND /OR#第二十六课时--查询表达式完整形式SELECT select_expr [,selext_expr...][FROM table_refereces[WHERE 条件][GROUP BY {col_name|position}[ASC|DESC],...分组][HAVING 条件 ...
2.1 进程的基本概念
2.1 进程的基本概念 关系概述 程序不能独立运行。只能作为进程执行。程序是静态的,进程是动态的。 程序有两种执行方式:程序的顺序执行和程序的并发执行。并发执行通过多进程实现。 1 程序的顺序执行程序顺序执行时的特征 顺序性。严格按照程序规定的特征执行 封闭性。程序运行时独占全机资源。程序一旦开始,其结果不受外界影响。 可再现性。只要程序运行的环境和初始条件相同,结果相同 2 前驱图定义 前趋图(Precedence Graph)是一个有向无环图,记为 DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。图中的每个结点可用于描述一个程序段或进程,乃至一条语句;结点间的有向边则用于表示两个结点之间存在的偏序(Partial Order,亦称偏序关系)或前趋关系(Precedence Relation)“→”。 3 程序的并发执行定义 程序并发执行的前驱图表示 程序并发执行时的特征 间断性。执行-暂停-执行,间断性活动。 失去封闭性。多个程序共享系统中的各个资源。 不可再现性。其计算结果与并发执行的进程有关。相互影响。 4 进程的定义...
2.2 进程控制
2.2 进程控制 上一节主要从状态的角度介绍了静态的状态有哪些。这一节介绍状态之间如何切换,引起切换的原因,和切换的步骤。7中状态主要包括创建、终止、就绪、阻塞、执行、静态阻塞、静态就绪。状态转换主要包括:创建、终止(释放)、阻塞、唤醒、调度、挂起、激活。 1 进程的创建进程创建示意图 进程图是用于描述一个进程的家族关系的有向树。为了标识进程之间的家族关系,在 PCB 中都设置了家族关系表项,以标明自己的父进程及所有的子进程。 引起进程创建的事件 用户登录 作业调度 提供服务 应用请求 进程创建过程 申请空白的PCB。获得操作系统唯一的表示信息。 为进程分配资源。程序和数据以及用户栈分配必要的内存空间。 初始化进程控制块。包括标识信息、处理机状态信息、处理机控制信息。 将新进程插入就绪队列。 2 进程的终止引起进程终止的事件 正常结束。一个用于表示进程已经运行完成的指示,产生一个中断,去通知 OS 进程已运行完毕。 异常结束。在进程运行期间,由于出现某些错误和故障而迫使进程终止:越界、非法访问。 外界干预。指进程应外界的请求而终止运行。 进程终止过程 根据被终止进程的...
2.3 进程同步
2.3 进程同步1 进程同步的基本概念 进程同步指的是同步和互斥两种行为。 两种制约关系 针对两种制约关系,合作制约关系和互斥制约关系,需要通过同步机制实现。 直接制约关系(合作)。由于多个进程相互合作产生,使得进程有一定的先后执行关系。 间接制约关系(互斥)。由于多个进程资源共享产生,多个进程在同一时刻只有一个进程能进入临界区。 显然,同步是一种更为复杂的互斥,而互斥是一种特殊的同步。也就是说互斥是两个任务之间不可以同时运行,他们会相互排斥,必须等待一个线程运行完毕,另一个才能运行,而同步也是不能同时运行,但他是必须要安照某种次序来运行相应的线程(也是一种互斥)!因此互斥具有唯一性和排它性,但互斥并不限制任务的运行顺序,即任务是无序的,而同步的任务之间则有顺序关系。 临界资源和临界区 共享的互斥资源称为临界资源。 对临界资源进行访问的那段代码称为临界区。 为了互斥访问临界资源,每个进程在进入临界区之前,需要先进行检查。 12345repeat entry section critical section;//临界区 exit sectio...
2.4 进程通信
2.4 进程通信 参考文献 https://blog.csdn.net/qq_40989769/article/details/110481553 linux实现多线程多进程的方法有很多。可以在linux系统编程部分好好了解。在这里只引入Linux实现几种进程通信的方式。 0 进程通信的定义进程通信和进程同步的区别 主要的区别在于:进程同步控制多个进程按一定顺序执行;进程通信,实现进程间信息交换。目标是不一样的。 进程通信是一种手段,而进程同步是一种目的。也可以说,为了能够达到进程同步的目的,需要让进程进行通信,传输一些进程同步所需要的信息。 信号量机制既能作为一种同步工具,也能做为一种通信工具。信号量机制作为同步工具是卓有成效的,但作为通信工具,则不够理想,主要表现在下述两方面: 效率低,生产者每次只能向缓冲池投放一个产品(消息),消费者每次只能从缓冲区中取得一个消息; 通信对用户不透明。 进程通信的实现划分 基础进程通信机制。只能传递状态和整数值(控制信息)。特点:传送信息量小,效率低,每次通信传递的信息量固定,若传递较多信...
2.5 进程与线程
1 进程与线程进程 进程是资源分配的基本单位。进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。 下图显示了 4 个程序创建了 4 个进程,这 4 个进程可以并发地执行。 线程 线程是独立调度的基本单位。一个进程中可以有多个线程,它们共享进程资源。 线程栈是在进程的堆中分配栈空间,每个线程拥有独立的栈空间,为了避免线程之间的栈空间踩踏,线程栈之间还会有以小块guardsize用来隔离保护各自的栈空间,一旦另一个线程踏入到这个隔离区,就会引发段错误。 QQ 和浏览器是两个进程,浏览器进程里面有很多线程,例如 HTTP 请求线程、事件响应线程、渲染线程等等,线程的并发执行使得在浏览器中点击一个新链接从而发起 HTTP 请求时,浏览器还可以响应用户的其它事件。 区别 调度。线程是独立调度的基本单位,进程是资源分配的基本单位。在同一进程中,线程的切换不会引起进程切换,从一个进程中的线程切换到另一个进程中的线程时,会引起进程切换。 并发性。线程使得操作系统具有更好的并发性,从...














