20天没系统整理了,之前是为面试为而学习,前段时间想换个方式,以提升技术实力来学习,可是效率过低。其实我丢了不少东西,巅峰过去了,想要快速捡回来也不容易。时间一天一天过去,是让我感到惟一开心的事了,不想当学生,没意思。也有种被现实击败的感受,确实不知道怎么办了,反正我尽可能想吧,别堕落就行。
linux
一、内链接与外链接区别?web
答:(1)内链接:返回两个表中链接条件相同即对应的列值相同的行面试
(2)外链接:分为左外链接、右外链接、全外链接。以某一个表为基表,去匹配另外一个基表,若是列值匹配则返回,若是列值不匹配,保留第一个基表的所在行,并将另外一个基表所在的列值设为空。sql
(3)内链接是保证两个表中全部的行都要知足链接条件,而在外链接中,某些不知足条件的列也会显示出来,也就是说,只限制其中一个表的行,而不限制另外一个表的行。数据库
二、触发器的做用?浏览器
答:(1)定义:触发器是一种特殊的存储过程,被定义在对特定表或视图中发出insert/update/delete触发事件时知足触发条件而自动执行的语句。缓存
(2)做用:强化约束,维护数据的完整性和一致性,跟踪数据库内的操做从而不容许未经许可的更新和变化。安全
## 数据库的完整性是为了保证由受权用户对数据库所作的修改不会影响数据一致性的损失。服务器
(3)类型:Insteaf-of触发器、After触发器。表明DML语句以前、以后的意思。cookie
三、什么是存储过程?用什么来调用?
答:(1)定义:一组预编译好了的SQL语句,执行效率高,容许模块化的设计。
(2)SQL Server中使用exec来调用,Mysql中使用call来调用
四、内存溢出和内存泄露的区别?
答:(1)内存溢出 out of memory:是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;好比申请了一个integer,
但给它存了long才能存下的数,那就是内存溢出。
(2)内存泄露 memory leak:是指程序在申请内存后,没法释放已申请的内存空间,一次内存泄露危害能够忽略,
但内存泄露堆积后果很严重,不管多少内存,早晚会被占光。
五、Time_wait等待超时了会怎样?等待2MSL的意义?
答:会出现大量socket处于TIMEWAIT状态。若是客户端的并发量持续很高,此时部分客户端就会显示链接不上。
意义:(1)使最后一个ACK报文段能达到被动关闭的一方(2)使网络中的分组所有消失,避免干扰下一次链接
六、针对写的sql语句怎么优化?(注意是写)
答:(1)select使用明确的字段用来代替*号
(2)对表使用别名
(3)合理添加索引
(4)用内链接代替使用子查询
(5)少使用游标和临时表
七、主键索引和惟一索引区别?(主键索引貌似就是主键约束)
答:(1)一个表的主键索引只能有一个,而惟一索引能够建多个。
(2)主键不可为null,惟一索引能够有一列为null。
(3)主键约束会自动建立汇集索引,惟一约束会自动建立一个非汇集索引
八、什么是事务?什么是锁?
答:(1)一个事务被定义为做为一个单元执行的符合所谓ACID属性的一系列的操做。
事务是单个的工做单元,在事务中能够包含多条操做语句;若是对事务执行提交,该事物中进行的全部操做均会提交,若是事务遇到错误而被取消或回滚,则事务的全部操做均会被清除,数据恢复到事务执行前的状态。
(2)锁是用来防止其余用户修改当前还没完成事务中的资源的一种机制。锁的类型有:排他锁、共享锁、更新锁、意向锁等。
九、什么叫视图,与表有什么区别吗?游标又是什么?
答:视图的定义:将预约义的查询存储成数据库中的对象称为视图。
视图与表的区别:(1)视图是虚表,它不存放数据,只存放查询的定义,而表存放实际的数据
(2)能够经过视图修改数据,可是有限制条件(where语句),而表能够直接修改。
(3)能够在视图上创建索引,可是有限制条件,而表能够直接创建索引。
游标的定义:为了方便对结果集(定义select语句所返回的数据行集合)中单独的数据行进行访问。游标包括游标结果集和游标位置两部分。
十、数据库对象有哪些,NULL意味着什么?
答:表格、视图、用户自定义函数、存储过程、触发器。NULL表明着unknown未知,而不是所谓的(空字符串)。
十一、你能够用什么来确保表格里的字段只接受特定范围里的值?那么完整性又有哪些?
答:check约束,以及触发器(正如触发器的做用所体现的)。完整性:实体完整性、域完整性、自定义完整性、参照完整性。
十二、什么是相关子查询?如何使用这些查询?
答:相关子查询指的是查询中再查询,一般是以一个查询做为条件来供另外一个查询使用,查询里包含的子查询会真正请求外部查询的值。嵌入IN、exists语句使用
1三、为何使用索引能提升查询性能0?使用索引查询必定能提升查询的性能吗?
答:提升查询性能的缘由:对原始记录的排序状况,至关于一个多级目录的树形结构。
不必定。缘由:(1)全表扫描可能比使用索引查询速度快。
(2)对于那些定义为text, p_w_picpath和bit数据类型的列使用索引无用。这是由于,这些列的数据量要么至关大,要么取值不多。
(3)当修改性能远远大于检索性能时,由于彼此矛盾,使用索引无用。
(4)对于那些只有不多数据值的列,使用索引无用。
1四、事务的分类有哪些?数据库的总体结构可分为?
答:事务类型:显示事务、自动提交事务、隐式事务、批处理范围事务。
数据库的结构:网状、层次型、关系型
1五、关系数据库有几种实体之间的关系?存储过程的种类有哪些?
答:1对1,1对多,多对多。
1)、系统存储过程:以sp_开头,用来进行系统的各项设定.取得信息.相关管理工做, 2)、扩展存储过程以XP_开头,用来调用操做系统提供的功能 3)、用户自定义的存储过程,这是咱们所指的存储过程
1六、有一我的事系统数据库,人员在入职的时候,往人员表中插入数据,现要求人员入职的同时,讲该人员登记到考勤表和薪资表,能够不能够实现,用什么技术实现!
答:能够,使用触发器,在人员数据插入到人员表的后,使用触发器技术更新到考勤表和薪资表便可。
1七、什么是E-R模型?E-R模型的主要组成有哪些?
答:实体联系图(E-R图)是用来描述现实世界中概念模型的一种著名方法。E-R模型主要实体集、属性和联系的方法组成。
1八、SQL Server 的字符型系统数据类型主要包括
答:char、varchar、text、nchar等
1九、cookie和session的区别?(这个会更详细点)
答:(1)session对象的状态信息保存在web服务器的缓存中,cookie对象的状态信息保存在客户端的硬盘中
(2)session与会话相关,在会话的整个生存期中存在,不会被主动丢弃,而cookie与用户相关,在必定时间内持久化存储,能够跨浏览器共享数据
(3)session不会被序列化,不会发生服务器与客户端的数据传输,cookie会被序列化,会发生服务器与客户端的数据传输,例如某些网站使用cookie实现记住个人功能。
(4)session具备很高的安全性,而cookie存在安全性和状态过时等问题,***能够利用进行cookie欺骗
20、什么是数据库的安全性?如何保证数据库的安全性。(这个很差答)
答:数据库的安全性是指保护数据库以防止不合法的使用所形成的数据泄露、更改或破坏。
(1)对用户的合理受权管理
(2)数据库加密、日志审计
(3)硬件防火墙、以及***检测系统IDS/IPS
2一、 常见的几种约束有哪些?分别表明什么意思?如何使用?
答:主键约束,外键约束,检查约束,惟一约束,默认约束
约束:在Create table或alter table时加约束,保证数据的完整性和一致性
(1)主键:PRIMARY KEY (主键字段) 保证了实体完整性,一个表只有一个主键,但一个主键可有包 含多个字段,主键字段不能为空
(2)惟一:UNIQUE (约束字段) 保证了实体完整性,一个表只有多个惟一约束,一个惟一约束可有包含多个字段
(3)外键:FOREIGN KEY (外键字段) REFERENCES 主键表(主键字段) 保证了引用完整性,一个表能够有多个外键
(4)检查:CHECK(检查表达式) 保证了域完整性, 一个表中能够有多个检查性约束
(5)默认值:DEFAULT (默认值的表达式或NULL),保证了域完整性,一个表能够有多个默认值约束,可是一个字段只有一个默认值
2二、什么是存储过程,他有何优势?
答:存储在服务器上的一组预编译好的SQL代码,它是封装性重复性任务的方法。
存储过程的优势:
(1)提升性能:应用没必要从新编译此过程
(2)减轻网络拥塞:客户端直接调用便可,不须要执行大量SQL语句
(3)一致性较好:结果只受传参影响
(4)改善安全机制:能够给用户受权来执行存储过程。
2三、请列出4个Mail Server的相关组件,以及其功能是什么?
答:(1)MUA:邮件用户代理,它是客户端的应用程序,为用户转发邮件到邮件服务器的(即MTA)。
(2)MTA:邮件传输代理,例如sendmail和postfix,使用SMTP协议,在发送邮件服务器与接收邮件服务器之间转发邮件,
(3)MDA:Delivery 邮件投递代理,就是将接收邮件服务器的邮件,放置到本机帐户下的邮件信箱( Mailbox )中
(4)MRA:Retrieve 邮件检索代理,使用POP3或者IMAP协议,从邮件信箱中取出来返回给用户显示的。
2四、请说出邮件服务器的工做原理?(很差说,步骤太冗长,能画图最好)
答:基于C/S模式,SMTP的25端口,POP3协议的110端口。
(1)用户A编辑完一封邮件后,用户代理MUA使用SMTP协议将该邮件发送给管理本地域的邮件服务器mail.a.org,该邮件服务器通过域名解析,先查MX记录找到mail.b.org,再根据A记录找到关于mail.b.org的IP地址
(2)而后该MTA使用本身本地的SMTP协议进行邮件转发到目的邮件服务器,目的邮件服务器发现是发往被域的,因而交给MDA投递代理到对应用户的油筒中,而后P0P3服务器使用POP3协议读取该邮筒的邮件,使用MRA邮件检索协议交给目的用户B。
2五、小明访问互联网的网关是192.168.1.1,访问局域网段192.168.2.0的网关是192.168.1.254,怎么操做才能让他既能访问Internet又能访问公司内网?
答:route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.254 >>/etc/rc.local
route add default gw 192.168.1.1 >>/etc/rc.local
2六、谈谈你对syslog.conf的认识?若是loglevel=err,在日志文件error_log中发现什么样的错误日志?
答:认识:(1)linux使用syslogd做为日志监控进程,配置文件是/etc/rsyslog.conf,其中格式定义规则为设备.优先级 处理方案
(2)设备定义了日志消息的范围,好比local0-local7,kern(内核信息)、lpr(打印服务),mark(生成时间戳),*表明处了mark之外的全部功能。
(3)优先级定义消息的紧急程度,如emerg(不可用)、alert(警告须要当即被修改)、crit、warning、info、notice(重要信息)、err
(4)格式中的处理方案能够表明日志文件的路径或者终端设备好比/dev/console等
错误日志:若是Loglevel=err,错误日志文件中会出现alert警告,以及crit紧急状况。
2七、介绍下计算机网络中的ICMP协议?有哪几种报文(此题争议较大,书上说它说IP协议,而闫辉老师说它是传输层协议)
答:事实上,我之前也以为是网络层协议,后来我想闫辉老师这么权威,应该没错是传输层协议。另外一方面,它做为网关向源主机报错的协议,由于网络层不可靠,因此须要ICMP协议,虽然知道可能传输错误,可是解决不了实质问题。ICMP报文是被封装在IP数据包里的,他拥有类型、代码(即类型值)以及数据部分。
类型:(1)终点不可达(2)时间超过(3)参数问题(4)源点抑制(5)重定向(6)Echo request和Echuo reply
2八、请简要描述IPv4的数据报格式?并谈谈你对IPv6的认识(哎呀,这么倒背如流的东西竟然卡克了,再敏感的头脑不复习都不行!)
答:IP报头在不加填充选项的时候是20字节,报文格式有版本号,包头长度,优先级(即服务类型),整个数据报长度,协议字段,源IP地址,目的IP地址,以及一些分片标志、TTL和报头校验和。
IPv6:首部固定128位,极大地解决了地址稀缺的问题,不存在ARP协议,由于没有广播,集成了移动性、全球可达性和灵活性,可以实现无状态自动配置,用户一连上就能访问Internet,简单的包头减少处理开销引发的延迟,也没有校验和,对于一些动态路由协议,也进行了开发,好比RIPng、OSPFv三、DHCPv6
2九、drop,delete与truncate的区别?
答:(1)drop直接删除表结构;truncate清空表中数据,再次插入时自增加,id又从1开始;delete删除表中数据,能够加where字句
指定删除部分行;
(2)truncate与不带where的delete等价,可是truncate只能删除表,而delete既能删除视图又能删除表;
(3)从执行效率来讲,drop>truncate>delete;
(4)当表被TRUNCATE后,这个表和索引所占用的空间会恢复到初始大小,而DELETE操做不会减小表或索引所占用的空间。drop语句将表所占用的空间全释放掉。
30、SQL语句优化。(跟上一期还有点不同)
答:(1)应尽可能避免在 where 子句中使用非等于(!=或<>)操做符,不然将引擎放弃使用索引而进行全表扫描。
(2)应尽可能避免在 where 子句中对字段进行 null 值判断,不然将致使引擎放弃使用索引而进行全表扫描,如:
select id from t where num is null 能够在num上设置默认值0,确保表中num列没有null值,而后这样查询:select id from t where num=0
(3)不少时候用 exists 代替 in 是一个好的选择
(4)用Where子句替换HAVING 子句 由于HAVING 只会在检索出全部记录以后才对结果集进行过滤