2020年度计算机基础知识面试题库.docx

上传人:无*** 文档编号:64491016 上传时间:2022-11-29 格式:DOCX 页数:89 大小:84.74KB
返回 下载 相关 举报
2020年度计算机基础知识面试题库.docx_第1页
第1页 / 共89页
2020年度计算机基础知识面试题库.docx_第2页
第2页 / 共89页
点击查看更多>>
资源描述

《2020年度计算机基础知识面试题库.docx》由会员分享,可在线阅读,更多相关《2020年度计算机基础知识面试题库.docx(89页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、计算机基础知识面试题库对于项目1 .明确你的项目到底是做什么的,有哪些功能2 .明确你的项目的整体架构,在面试的时候能够清楚地画给面试官看而且清 楚地指出从哪里调用到哪里、使用什么方式调用3 .明确你的模块在整个项目中所处的位置及作用4 .明确你的模块用到了哪些技术,更好一些的能够再了解一下整个项目用到 了哪些技术操作系统1 .操作系统的四大特性:a)并发性b)共享性c)虚拟性d)不确定性2 .请叙述一下并发和并行两个概念的区别?a)并行是指两个或多个事件在同一时刻发生, 并发是指两个或多个事件在同一时间间隔内 发生。3 .什么是进程?什么是线程?a)“进程是一个可并发执行的,具有独立功能的

2、程序关于某个数据集合的一次执行过程,也 是操作系统进行资源分配和调度的独立单 位”。进程是资源分配的基本单位。b)线程也称为轻级进程(LWP),是程序执行 流的最小单位,它是进程的个实体,是 系统独立调度和分派处理机的基本单位。线 程是操作系统调度的最小单位。4 .进程和线程的区别?从调度、并发性、拥有 资源和系统开销四个方面来比较:a)调度。在引入线程的操作系统中,把线程作 为调度和分派CPU的基本单位,把进程作为 资源分配的基本单位,显著提高了并发程 度。由于系统调度的基本单位是线程,因此每个进程至少创立一个线程,否则无法被调b)并发性。多线程能够提高服务的质,在 个线程阻塞时,还有其它线

3、程提供服务。c)拥有资源。进程是拥有资源的独立单位,线 程自己不拥有系统资源,而是共享进程的资 源(包括代码段、数据段即系统资源等)。d)系统开销。进程切换的开销远远大于线程切 换的开销,进程的切换需要保存很多现场, 但线程只需要保存和设置少的寄存器内 容,不涉及存储器管理方面的操作。5 .进程的特征:a)动态性:进程是动态产生和动态消亡的,有其生存周期。b)并发性:个进程能够与其它进程一起向前 推进。c)独立性:个进程是个相对完整的调度单 位。d)异步性:每个进程都已相对独立、不可预知 的速度向前推进。e)结构性:为了控制和管理进程,系统为每个 进程设立一个进程控制块(PCB)。6,进程有几

4、种状态?a)就绪状态b)运行状态:单CPU环境下,系统处于运行状 态的进程最多只有一个。c)阻塞状态7 .进程的组成:a)程序:b)数据集合:进程独有c)进程控制块(PCB):它和进程对应, PCB是操作系统能感知进程存在的唯一标 识,操作系统正是经过管理PCB来管理进程 的。系统创立进程时,为每个进程分配 PCB ,进程执行完成后,系统释放PCB ,进 程也随之消亡。8 .进程的切换:a)进程上下文包含用户级上下文、系统级上下 文、寄存器上下文b)进程上下文切换是核心态的切换,不发生在 用户态。c)用户态到核心态之间的转变是CPU模式的改 变。模式切换不同于进程切换,并不引起进 程状态的改变

5、。9 .为什么会提出线程这个概念?进程的缺点是什么?a)进程切换开销大b)进程通信代价大c)进程之间并发性粒度粗,并发度不髙d)不适合并行计算和分布式并行计算的要求e)不适合客户服务器计算的要求f)操作系统中引入进程的目的是为了使多个程 序并发执行,改进资源的利用率以提髙系统 的吞吐。10 .线程的分类: a)用户级线程一ULT ,优点是线程切换不需要系统状态的转换,每个进程能够使用专门的调度算法来调度线程,不需要依赖操作系统底层的内核。缺点是父进程阻塞会导致线程 全都阻塞,不能真正的并行。Java的线程就 是种用户级的线程。b)内核级线程一KLT ,优点是同一个进程内多 个线程能够并行执行,

6、缺点是线程状态转换 时内核态的任务,一般很慢。c)混合式线程一上两种的结合,有良好的效 果。11 .进程控制块的作用?它是如何描述进程动 态性质的?a)PCB是系统感知进程存在的唯一标志,是进 程动态特性的集中反映,和进程对应, 操作系统经过管理PCB来管理进程。b)进程控制块包含进程描述信息,控制信息, 和资源管理信息三类。这些信息的变化反映进程的动态性质。12 .操作系统内核都包括哪些内容?a) 一是支撑功能,包括中断处理,时钟管理和 原语操作等,二是资源管理功能,包括进程 管理,存储器管理和设备管理等。13 .处理机调度的三个分类?a)高级调度一作业调度b)中级调度交换调度(内存和硬盘之

7、间的交 换)c)低级调度进程调度(操作系统的核心)d)高级调度发生在创立新进程时,它决定一个 进程能否被创立,或者是创立后能否被设置 成就绪状态,以参与竞争处理器资源;中级 调度反映到进程状态上就是挂起和解除挂起,它根据系统的当前符合情况决定停留在主存中的进程数;低级调度则是决定哪个 就绪进程或线程占有CPU运行。14 .批作业调度算法a)先来先服务b)最短作业优先c)响应比高者优先d)优先级算法15 .进程调度的方式:a)非剥夺方式(非抢占式方式):优点是简单、易 实现,系统开销小。缺点是不太灵活,难以 满足紧迫任务必须立即执行的要求。实时系 统不宜采用这种调度方式。b)可剥夺方式(抢占式方

8、式):优先权更高的进程 优先执行。16 .进程调度的算法: a)先来先服务算法b)最短优先算法c)优先级算法:优先级高的先执行。能够采用 剥夺或非剥夺,剥夺方式更能反映优先的特点,可是会造成无穷阻塞和饥饿现象。d)轮转算法:基本思想是系统把所有就绪进程按先来先服务的原则排成一个队列,且规定一个较小的时间单元,称为时间或时间片,按时间片把CPU轮流分配给进入就绪队 列的第一个进程使用,当进程的时间片使用 完后,产生一个时钟中断,剥夺该进程的执 行,将它送到就绪队列的队尾,等待下次调 度。轮转算法专门为分时系统设计。e)多级队列调度算法:根据不同的进程,分配到不同的队列中,实行不同的调度算法。 般

9、按照优先级分成多个队列,高优先级的任 务先做。f)多级反馈队列调度算法:按优先级分配队 列,可是优先级越高分配的时间片越小,如 果没做完,自动移动到下级队列继续做。g)实时调度算法17 .操作系统多任务的抢占机制是怎么实现 的?18 .哪种权限许可用户进入个文件系统的目 录? Read , Execute , Write , Access Controll19 . Linux32位系统,应用程序最多能分配的 内存大小?20 . sleep 和 wait 的区别?21 . Win32下线程的基本模式?22 .进程之间的关系?a)竞争关系:由于进程之间不知道彼此的存 在,而使用了同一份资源,就会造

10、成竞争。 资源竞争会出现饥饿和死锁。b)协作关系23 .什么是临界资源?什么是临界区?a)临界资源:把一次只允许个进程使用的资 源成为临界资源。(独占性,如打印机,卡片 输出机等)b)临界区:把每个进程中访问临界资源的那段 代码从概念上分离出来,将其称为临界区。即临界区是指对临界资源实时操作的程序的 代码段。c)相关临界区:并发进程中涉及相同临界资源 的临界区。相关临界区必须互斥执行。24 .什么是进程互斥?a)进程互斥是解决进程间竞争关系(间接制约关 系)的手段。指任何时刻不允许两个以上的共 享该资源的并发进程同时进入临界区,这种 现象称为互斥。b)相关临界区的管理原则:互斥、空闲让进、 有

11、限等待。25 .进程同步的概念?进程同步指两个或多个 进程为了合作完成同一个任务,在执行速度 或某些确定的时序点上必须相互协调,即 个进程的执行依赖于另一个进程的消息,当 一个进程到达了某一个确定点而没有得到合 作伙伴发来的已完成消息时必须等待,知道 该消息到达被唤醒后,才能继续向前推进。26 .进程同步和互斥的关系?a)进程的互斥实际上是进程同步的一种特殊情 况,即主次使用互斥共享资源,也是对进程 使用资源次序上的种协调。进程的互斥和 同步统称为进程同步。b)进程的互斥是进程间共享资源的使用权,这 种竞争没有固定的必然联系,哪个进程竞争 到资源的使用权,该资源就归哪个进程使 用,直到它不再需

12、要使用时归还资源;而 进程同步中,所涉及的共享赞源的并发进程 间有一种必然的联系,当进程必须同步时, 即使无进程在使用共享资源,尚未得到同步 消息的进程也不能去使用该资源。27 .信号机制(PV操作): a)信号机制的实现原理是两个或多个进程能够利用彼此间收发的简单信号来实现正确的并发执行,个进程在收到个指令信号前,会被迫在个确定的或者需要的地方停下来,从而保持同步或互斥。b)用信号机制解决进程的同步和互斥问题有如下三个步骤:i,分析进程之间的制约关系ii .设置信号iii .实施P、V操作28,同步的实现机制:a)临界区:经过多线程的串行化来访问公共资 源或者一段代码,速度快,适合控制数据访

13、 问。b)互斥:采用互斥对象机制,只有拥有互斥 对象的线程有访问公共资源的权限,因为 互斥对象只有一个,因此能够保证公共资源 不会同时被多个线程访问。C)信号:允许多个线程同时访问同一资源, 可是需要限制同一时刻访问此资源的最大线 程数目。信号对象对线程的同步方式与前 面几种方法不同,信号允许多个线程同时使 用共享资源,这与操作系统PV操作相似。d)事件(信号):经过通知操作的方式保持多线程 同步,还能够方便的实现多线程的优先级比 较的操作。29.经典的同步问题:a)生产者消费者问题b)读者写者问题(读者优先:信号十读进程 计数器rc ;弱写者优先:信号量+读进程计数 器rc+排队信号 rea

14、d ;强写者优先:信号+读进程计数器rc+排队信号read+写优 先信号 write_first)c)哲学家就餐问题:是在多个线程之间共享多 个资源时会不会导致死锁或饥饿的典型模 型。解决方案:i.每个哲学家取得手边的两个叉子才能吃面, 即仅当一个哲学家左右两边的叉子都可用 时,允许她拿叉子,否则个叉子也不 取。ii.偶数号哲学家先取手边的叉子,奇数号哲学 家先取右手边的叉子。d)嗜睡理发师问题30 .进程通信的方式:a)共享存储:消息缓冲b)消息传递:信箱C)管道通信31 .产生死锁的原因?a)进程竞争资源引起的死锁b)进程推进顺序不当产生死锁32 .产生死锁的条件a)互斥条件:同时只能有一

15、个进程持有资源b)请求和保持条件:个进程请求资源得不到 满足时,不释放占有的资源c)不剥夺条件:任何个进程不能抢夺其它进 程占有的资源d)循环等待条件:存在个循环等待链,链中 每个进程已获得资源,并分别等待前一个进 程持有的资源。33 .处理死锁的方法:a)死锁预防:破坏产生死锁条件的任何一个或 多个,如静态资源分配策略(2)和按序分配资 源策略(4)。b)死锁避免:采用银行家算法,每次分配都查 看能否找到种资源分配方法,使得已有的 进程能够顺利完成任务,如果有,则分配, 否则不分配。c)死锁检测和解除:用软件来检查有进程和资 源构成的有向图是否存在个或多个回路。34 .分页存储管理、段式存储

16、管理和段页式存 储管理的基本思想:a)(分页)利用分页存储管理,允许把一个作业 存放到若干个不相邻的内存区域中,减少大 碎片。b)(分段)段式存储管理支持用户的分段观点, 以段为单位进行存储空间的分配。分段存储 管理的引入,主要为了方便编程、信息共享 和信息保护(有利于程序的运行)。c)(段页式)段页式存储管理的基本原理是先将 整个主存划分成大小相等的存储块(页框),把 用户程序分段,接着为每一段进行分页。35 .分页和分段的区别?a)分页是信息的物理单位,与源程序的逻辑结 构无关,用户不可见,分页的目的主要是为 了减少碎片,提高主存的利用率。分段是信 息的逻辑单位,由源程序的逻辑结构来决 定

17、,目的是更好地满足用户的需求。b)页的大小固定且由系统确定,而段的长度不固定,由用户程序决定。C)分页的作业地址空间是维的(线性地址空 间),分段的作业地址空间是二维的(段名和段 内地址)。36 .缓存的局部性原理:根据研究,在较短的 时间内,程序的执行会局限于某一个部分, 则能够根据当前程序运行的位置,推测可能 执行的程序,预先加载,来达到缓存的目 的。(虚拟内存的实现)37 . RAID 技术:a) RAID 1 :两个磁盘互相备份,安全性最好, 但磁盘利用率50% ,最低。b)RAID2 I采用汉明码做出错校验,按位交叉 存取,用于大数据的读写,但冗余信息开销 大,已被淘汰。c) RAI

18、D 3 :位交织奇偶校验,使用一个磁盘做 奇偶校验,数据分段存储在其余磁盘中,一 且有损坏,能够利用奇偶校验来重建数据, 但校验盘损坏则没救,磁盘利用率n-1od)RAID4 :块交织奇偶校验,按块存取,能够 单独对某个盘进行操作,一次操作只涉及数 据盘和校验盘,不适合随机分散的小数据e)RAID 5 :块交织分布式奇偶校验,同样以数 据校验位来保证数据的安全,不同于校验盘,它将数据段的校验位交互存放于各个硬 盘,则任何个硬盘损坏,都能够根据其它 硬盘上的校验位来重建损坏的数据,磁盘利 用率n-1.38 . SPOOLing 系统?a)在内存和硬盘中间建立鍰冲区,在内存写入硬盘的过程中,先写入

19、绶冲,等到CPU空闲时,从媛冲区写入硬盘。39 .同步和异步有什么不同?各自的优势?40 .什么是线程?线程的基本状态?41 . synchronized 和 Lock 的异同?42 .什么是序列化?什么是持久化?什么是串行化? transient的用法?哪些字段需要标记transient ?43 . synchronized关键字的用法?44 .什么是守护线程?举个守护线程的例子?计算机网络1.0SI模型及其各层次的作用? TCP/IP模型各层次及协议?2 .数据链路层和MAC层(介质访问控制层)?3 .计算机网络协议、接口和服务的概念?4.数据链路层:流控制、可靠传输和滑动机制。5 .数据

20、链路层设备:网桥和局域网交换机6 .网络层的功能:异构网络互联、路由与转发、拥塞控制7 .路由算法:距离向路由算法、链路状态路由算法、层次路由8 . IPv4内容:分组、NAT、子网划分和子网掩9 .ARP协议、DHCP协议与ICMP协议10 .网络层设备:路由器的组成和功能,路由 表和路由转发11 .流控制和拥塞控制的区别?12 .传输层的功能?传输层的寻址与端口?套 接字?13 . TCP协议和UDP协议? Java实现? UDP 首部?14 . TCP段、TCP连接管理、TCP可靠传输、TCP流控制和拥塞控制15 . TCP的拥塞控制:慢开始、拥塞避免、快 重传、快恢复。16 .应用层:

21、P2P模型?应用层协议:DNS、 FTP、EMAIL. MIME、STMP、POP3. HTTPo 17 . CGI?域名解析过程?MySQL数据库1.INSERT 嵌套 SELECT2. MySQL数据类型,int类型长度超出了也不 会对数据产生影响,和SQL MODE有关。3. 个表中最多只能有一个自増长列。4. DDL、DML、DCL、DQL 语句?a) DDL (数据定义语言):create、drop、 alterb) DML (数据操纵语言):insert, delete、 update、selectc) DCL (数据控制语言):grant、revoke5. MySQL的其它数据库

22、:a) information_schema数据库存储了数据库对 象信息,比如用户表信息、列信息、权限信 息、字符集信息、分区信息等。b) cluster存储了系统的集群信息c) mysql存储了系统的用户权限信息d)test是系统自动创立的测试数据库,任何用 户都能够使用。6. 内连接查询即为多表査询,仅选出两张表中 互相匹配的记录,外连接则会选出其它不匹 配的记录。子查询经常使用in、notin、二、仁、exists、not exists等。表连接很多情 况下用于优化子査询。合并记录用union(含 distinct)或 union all。7. MySQL数字类型及字节数、日期类型及字节

23、 数、字符串类型及字节数。8. MySQL能够使用REGEXP或RLIKE来使用 正则匹配。NULL不能用于等”,但 能够使用=比较NULL。比较时不区分大小写,数字作为浮点数比较。短路与和非 NULL结果都为NULL ,只有1或NULL为19. MySQL常见函数:a)字符串 CONCAT、|NSERT. LEFT、 RIGHT. REPLACE. SUBSTRING.LPAD. RPAD. TRIM. REPEAT 等。b)数值函数 ABS. CEIL. FLOOR. MOD.RAND. ROUND. TRUNCATE 等。x%y 任 意为NULL结果都为NULLo产生0100随 机数为

24、select ceil(100*rand(), ceil(100*rand()oc)日期和时间函数CURDATE、CURTIME.NOW. UNIX_TIMESTAMP.FROM,UNIXTIME. DATE_FORMAT.DATEDIFF. DATE.ADD 等,格式为,%Y-%m-%d %H-%i-%sod)流程函数IF、IFNULL、CASE WHEN THENELSE END、CASE (exp) WHEN THENELSE ENDo e)其它函数 DATABASE、VERSION.USER、INET_ATON、INET_NTOA、PASSWORD. MD5O10. MySQL存储类型

25、:MylSAM. InnoDB.BDB. MEMORY. CSV 等,只有 InnoDB 和BDB支持事务,其它都不支持。MySQL默 认存储引擎为!nnoDBo11. InnoDB和MylSAM的区别?事务.外 键.访问速度.占用空间.存储方式(MylSAM :静态表、动态表和压缩表。InnoDB :共享表空间、多表空间)等方面。12. MEMORY表使用HASH索引,数据大 小由max_heap_table_size变来决定,默 认 16MB。13. 如何选择合适的存储引擎?a)以读操作和插入操作为主,少更新和删 除,对事务完整性、并发性要求不髙则使用 MylSAM 引擎。b) InnoD

26、B则适合于并发要求髙的场合,事务完 整性要求较髙,除了能够有效降低删除和更 新导致的锁定,还能够确保事务的完整提交 和回滚,适合财务管理系统。c) MEMORY一般见于更新不太频繁的小表,能够快速得到结果。d) MERGE组合了 MylSAM B ,突破了单个 MylSAM表的限制,并能够分布在多个磁盘 上有效改进MERGE表的访问效率。14. 选择合适的数据类型?a) CHAR 和 VARCHAR - MylSAM :建议固定 长度的数据列CHAR。1nnoDB :建议使用 VARCHAR 类型。b)TEXT和BLOB 尽选择满足需求的最小 的存储类型、大删除后为提髙性能应定期 使用OPTI

27、MIZE TABLE功能进行标的碎片整 理。同时能够使用合成的索引(Synthetic)来 提髙大文本字段的查询性能,此种索引主要 利用散列值,只能用于精确匹配的査询”。 不必要时尽量避免检索BLOB和TEXTo单独将BLOB和TEXT分成一张表。c)定点 DECIMAL 和浮点 FLOATDOUBLE - 定点更精确,字符串存储,而浮点数不精 确,而且比较容易出错。d)日期类型选择:尽选择满足需求的最小存 储的日期类型,需要记录年份久远,则 DATETIMEo如果需要不同时区使用,则使 用 TIMESTAMPo15. 选择合适的字符集:a)满足应用支持语言的需求、考虑和已有数据 的兼容性、汉

28、字居多能够考虑GBK 2字节, 而UTF8 3字节,而英文则应该UTF8 1字 节,其它2字节。b)如果需要比较,排序等字符运算,则最好选择定长字符集。尽避免字符集转换。16. 字符集用来MySQL存储字符串的方式, 校对规则用来定义比较字符串的方式。a)查看方式:show character set; showcollation like%;b)校对规则_ci大小写不敏感、_cs大小写敏感、_bin基于编码值的比较。17. MylSAM 和 (nnoDB 默认都是 BTREE 索 引,当前不支持函数索引,但支持前缀索 引。另外,还支持全文索引。默认情况下 MEMORY使用HASH索引,也支持

29、BTREE 索引。18. 索引操作:a)创立索弓I CREATE unique|fulltext|specialINDEX index.name USING index.type ON tbl_name (index_col_name)b)修改増加索引ALTER TABLE table.nameADD unique|fulltext|special INDEXindex_name USING index_typeindex_col_nameindex_col_name = col_name(length)ASC|DESCc)能够经过explain select语句查看是否使用了 索引。key:

30、xxx为使用索引。d)删除索引-DROP INDEX index_name ON tbl_name19. MylSAM索引前缀长度1000字节, InnoDB前缀索引长度最长767字节。20. 设计索引的原则:a)索引列应选择SELECT WHERE语句后的列和表连接ON子句后的列。b)尽使用唯一索引,分布越分散效果越好, 如性别就不适合索引,分布太密集。c)尽使用短索引,查询更快,I更少。d)利用最左前缀。e)不要过度索引,会降低使用效率。f) InnoDB会根据主键、唯一索引或内部列的排 序来存储,因此尽自己指定主键,选择常 见列作为主键。另外,InnoDB表的普通索引 都会保存主键的键值

31、,因此主键要尽可能选 择较短的数据类型,能够有效减少索引的磁 盘占用,提高索引缓存效果。21 . HASH索引只能使用在=或=等式比较 时。优化器不能使用HASH索引来加速 ORDER BY 操作。BTREE索引能够用在,=,=,BETWEEN ,!=, LIKE Hpattem(pattern不能以通配符开头)。简而言之,范围查询适用于BTREE ,不适用HASH索弓I。22 . MySQL使用索引,在检索的时候不需要查 找所有数据,能快速定位需要的数据。大多 数索引存储在BTREE中,只有空间列类型 的索引使用RTREE , MEMORY表支持 HASH索引。23 .为什么需要使用视图?a

32、)使用视图的用户不需要考虑对应表结构,关联条件和筛选条件。b)使用视图能够控制用户访问到行列级别。c)视图结构确定了,能够屏蔽表结构变化对用户的影响。24 .视图操作:a)创立视图. CREATE OR REPLACE ALGORITHM = UNDEFINED | MERGE | TEMPTABLE VIEW view_namecolumnjist AS select_statement WITH CASCADED I LOCAL CHECK OPTIONb)修改视图ALTER ALGORITHM = UNDEFINED | MERGE | TEMPTABLE VIEW view_name

33、(columnjist) AS select_statement WITH CASCADED | LOCAL CHECK OPTIONc)删除视图-DROP VIEW IF EXISTS view_name , view_name RESTRICT | CASCADEd)查看视图- SHOW TABLESe)查看视图信息-SHOW TABLE STATUS FROM db.name LIKE patternf)査询视图定义SHOW CREATE VIEW view_name25 . MySQL不允许在创立视图时使用子査询, 能够使用查询视图语句来实现。些视图不 可更新:a)包含聚合函数(SUM

34、、MIN、MAX、COUNT 等)、DISTINCT. GROUP BY. HAVING. UNION 或者 UNION ALLob)常视图c) SELECT包含子查询d)JOINe)FROM 了一个不能更新的视图f) WHERE子句的子査询引用了 FROM子句的 表26 . WITH CASCADED|LOCAL CHECK OPTION决定了是否允许更新数据使记录不 再满足视图的条件,LOCAL表示只要满足本 视图的条件就能够更新,CASCADED必须满足所有针对该视图的所有视图条件才能够 更新。27 .什么是存储过程?它有什么好处?它和函 数有什么区别?28 .存储过程操作:a)创立存储

35、过程CREATE PROCEDURE sp_name (proc_parameter) characteristic routine_bodyb)创立函数- CREATE FUNCTION sp_name(func_parameter) RETURNS typecharacteristic routine_body proc_parameter = IN | OUT | INOUT param_name typefunc_parameter = proc_parametertype = MySQL任意数据类型characteristic = LANGUAGE.SQL | NOTDETERMIN

36、ISTIC | CONTAINS.SQL |NOSQL I READS SQL DATA | MODIFIESSQL DATA I SQL SECURITY DEFINER |INVOKER I COMMENT stringroutine_body =合法 SQL 语句 c)修改函数或存储过程 ALTERPROCEDURE I FUNCTION sp_namecharacteristic.characteristic = CONTAINS_SQL | NOSQLI READS SQL DATA | MODIFIES SQL DATA I SQL SECURITY DEFINER | INVOK

37、ER I COMMENT stringd)调用存储过程 CALL sp_name(parameter)e)删除存储过程或函数- DROP PROCEDURE I FUNCTION IF EXISTS sp_name29 .首先调用DELEMITER$将结束符从;改成 $ ,使得过程和函数中的;不会被解释成语句 结束而提示错误。然后从DELEMITER ;将结 束符改回来。30 .存储过程变的使用:a) DECLEAR last_month_start DATE;b)变赋值:SET var_name = expr; SELECT col_name INTO var_name FROM tbl_n

38、ame.31.存储过程能够使用流程控制语句:a) IF THEN ELSEIF THEN ELSE END IF.b)也能够使用 CASE WHEN THEN WHENTHEN ELSE END CASEoc)循环使用:i. LOOP 语句:beginabel: LOOP statementjist END LOOP endjabeloii. LEAVE语句:能够使用LEAVE跳出循环(LEAVE begin_label)或 BEGIN ENDOiii. ITERATE 语句:同 CONTINUE(ITERATEbeginjabel)iv. REPEAT 语句:beginjabel: REPE

39、AT statementjist UNTIL search_condition END REPEAT beginabel.v. WHILE 语句:beginjabel: WHILE search_condition DO statementjist END WHILE endjabel;32 .事件调度器:类似于时间触发器,定时执 行任务。a)创立语法:CREATE EVENT myevent ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOURDOUPDATEmyschema.mytable S I mycol = mycol +1;b)事件调

40、度器默认关闭。c)禁用或删除事件调度器:ALTER TABLE event_name DISABLE ; DROP EVENT event_name;33 .事件调度器的优势:a)避免数据库相关的定时任务部署在操作系统 层,减少操作系统管理员产生误操作的风 险,并方便迁移,迁移过程包括该数据库。b)适用于定期收集统计信息、定期清理历史数 据、定期数据检査。c)复杂的处理适合程序实现。34 .触发器是与表有关的数据库对象,会在满足一定条件定义时触发,并执行触发器定义 的语句集合。a)创立触发器CREATE TRIGGERtrigger_name trigger_time trigger_even

41、t ONtbl_name FOR EACH ROW trigger_stmtob)同一张表相同时间相同事件的触发器,只能 够定义个。c)触发器时间可分为BEFORE和AFTER 事 件可分为 INSERT UPDATE DELETE 等。d)能够使用 INSERT INTO . ON DEPLICATEKEY UPDATE XXX来测试触发器执行顺序,如果已存在,则先insert在update after update 如果不存在,则 insert afterinsertoe)删除触发器 DROP trigger ins_film;f)查看触发器show triggers ;informati

42、on_schema.triggers 表35 .什么时候使用触发器?a)不能够直接调用直接返回客户端数据的存储 过程。b)也不能使用开始或结束事务的语句(start transaction commit rollback 语句)。c)不要将过多的逻辑写在触发器中,影响 CURD效率。36 . MySQL 支持 MylSAM 和 MEMORY 锁 表,对BDB进行锁页,对InnoDB锁行。默 认自动锁表和锁行,但有些时候用户会明确 锁表或者进行事务的控制,以确保事务的完 整性,这样就需要使用事务控制和锁定语句 来完成。37 . LOCK TABLES能够锁定用于当前线程的 表,UNLOCK TA

43、BLES会释放当前线程获 得的任何锁定。a)锁定语句- LOCK TABLES tbLname AS alias READ LOCAL | LOW_PROORITY WRITE.b)释放语句UNLOCK TABLES38 . MySQL的事务控制:a) SET AUTOCOMMIT 设置是否自动提交, 0表示不自动提交b)START TRANSACTION/BEGIN -开始项 新事务c) COMMIT -提交事务d) ROLLBACK 回滚事务39,如果锁表期间如果执行start transaction命 令,会有隐含unlock table执行。1ock方式 锁表,不能使用rollback

44、进行回滚。40 .所有的DDL语句不能回滚,而且部分DDL语句会造成隐式提交。能够定义savepoint name来实现不同阶段的回滚,rollback to savepoint nameo41 . MySQL的分布式事务:a)只支持InnoDB引擎。b)分布式事务还有问题: i.如果分布式事务prepare时数据库重新启动,重启以后还能够进行提交或回滚,但此时不会写binlog ,会造成主从数据库不一致。ii.如果客户端连接异常终止,那么数据库会回 滚还未完成的分支事务,如果此时分支事务 已经执行了 prepare状态,其它分支可能已 经成功提交,那么事务会不完整。iii,处于prepare

45、状态的事务不记录binlog ,如 果数据库服务宕机,则会丢失数据。42 .防止SQL注入的几种措施:a)使用PrepareStatement绑定变量,将输入的单引号转义输入,避免了 SQL注入。b)使用应用程序提供的转换函数。c)自定义函数进行校验。(正则)43 . MySQL SQL Mode : REAL_AS_FLOAT.PPES_AS_CONCAT. ANSI.QUOTES,GNORE.SPACE, ANSIoSTRICT_TRANS_TABLES 严格模式。44 .严格模式不允许插入超过定义长度的数据。45 . SQL Mode常见功能:a)校验日期数据的合法性,(ANSI模式对非

46、法日期会警告,而TRADITIONAL模式则直接 提示日期非法,拒绝插入)b) MOD(X, )时,TRADITIONAL 模式会抛出警 吿。c) NO_BACKSLASH_ESCAPES 会将变成普 通字符。d)提供PIPES_AS_CONCAT ,使得”能够连 接字符串。46 .常见 SQL Mode :a) ANSI 更符合标准SQLb)STRICT_TRANS_TABLES 严格模式,能够用在事务表和非事务表,不允许非法日期,不允许超出长度,不正确的值会报错c) TRADITIONAL 严格模式,能够应用在事 务表和事务表,出现错误马上回滚。47. MySQL分区:根据一定的规则,数据库把 个表分解成多个更小的更容易管理的部 分。逻辑上一个表或者个索引,实际上会 有多个分区,每个分区都是独立的对象,能 够独立处理,也能够作为表的一部分处理。48. MySQL分区的优点:a)和单个磁盘或者文件

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁