现在的位置: 首页 > 综合 > 正文

计算机网络的一些题

2013年09月14日 ⁄ 综合 ⁄ 共 13022字 ⁄ 字号 评论关闭

1.网络结构

OSI参考模型中,物理层的作用是透明的传输比特流。对等实体在一次交互作用中传送的信息单位称为协议数据单元,它包括控制信息和用户数据两部分。上下层实体之间的接口称为服务访问点(SAP),网络层的服务访问点也称为网络地址,通常分为网络号和主机号。

OSI参考模型分为:物理层、数据链路层,网络层,传输层,会话层,表示层,应用层。

物理层涉及到在信道上传输的原始比特流。数据链路层的主要任务是加强物理层传输原始比特流的功能,使之对应的网络层显现为一条无错线路。发送包把输入数据封装在数据帧,按顺序传送出去并处理接受方回送的确认帧。网络层关系到子网的运行控制,其中一个关键问题是确认从源端到目的端如何选择路由。传输层的基本功能是从会话层接受数据而且把其分成较小的单元传递给网络层。会话层允许不同机器上的用户建立会话关系。

TCP/IP的五层结构图:物理层、数据链路层、网络层、运输层,应用层。

2.请你详细地解释一下IP协议的定义,在哪个层上面?主要有什么作用?TCPUDP呢?

答:IPInternet Protocol的简称,是网络层的主要协议,作用是提供不可靠、无连接的数据报传送。TCPTransmit
Control Protocol
(传输控制协议)的缩写,在运输层,TCP提供一种面向连接的,可靠的字节流服务;UDPUser Datagram Protocol(用户数据报协议)的缩写,在运输层,UDP提供不可靠的传输数据服务。

3.请问交换机和路由器各自的实现原理是什么?分别在哪个层次上面实现的?

答:交换机属于OSI第二层即数据链路层设备。它根据MAC地址寻址,通过站表选择路由,站表的建立和维护由交换机自动进行。路由器属于OSI第三层即网络层设备,它根据IP地址进行寻址,通过路由表路由协议产生。交换机最大的好处是快速,路由器最大的好处是控制能力强。

4.交换和路由的区别是什么?VLAN有什么特点?

交换是指转发和过滤帧,是交换机的工作,它在OSI参考模型的第二层。而路由是指网络线路当中非直连的链路,它是路由器的工作,在OSI参考模型的第三层。交换和路由的区别很多。首先,交换是不需要IP的,而路由需要,因为IP就是第三层的协议,第二层需要的是MAC地址;再有,第二层的技术和第三层不一样,第二层可以做VLAN、端口捆绑等,第三层可以做NATACLQOS等。

VLAN是虚拟局域网的英文缩写,它是一个纯二层的技术,它的特点有三:控制广播,安全,灵活性和可扩展性。

5.什么是SNMP协议?它有什么特点?SNMP协议需要专门的连接么?

答:SNMP(Simple Network Manager Protocol)即简单网络管理协议,它为网络管理系统提供了底层网络管理的框架。SNMP的特点是:SNMP易于实现;SNMP协议是开放的免费产品;

SNMP协议有很多详细的文档资料,网络业界对这个协议也有较深入的了解,这些都是SNMP协议进一步发展和改进的基础;SNMP协议可用于控制各种设备。

SNMP是一种无连接协议。无连接的意思是它不支持像TELNETFTP这种专门的连接。通过使用请求报文和返回响应的方式,SNMP在管理代理和管理员之间传送消息。

6.路由表是做什么用的?在Linux环境中怎么配置一条默认路由?

答:路由表是用来决定如何将包从一个子网传送到另一个子网的,换句话说就是用来决定从一个网卡接受到的包应该送到哪一个网卡上去。路由表的每一行至少由目标网络号、netmask、到这个子网应该使用的网卡这3条信息。当路由器从一个网卡接受到一个包时,它扫描路由表的每一行,用里面的netmask和包里的目标IP地址做并逻辑运算(&)找出目标网络号。如果此网络号和这一行里的网络号相同,就将这条路由保留下来作为备用路由。如果已经有备用路由了,就在这两条路由里将网络号最长的留下来,另一条丢掉。如此接着扫描下一行直到结束。如果扫描结束仍没有找到任何路由,就用默认路由。确定路由后,直接将包送到对应的网卡上去。

Linux上可以用“route add default gw<默认路由器IP>”命令配置一条默认路由。

7.在网络中有两台主机AB,通过路由器和其他交换机设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么判断故障点?怎么排除故障?

答:测试这两台机器是否连通:从一台机器ping另一台机器。如果ping不同,用traceroute命令可以确定是哪个路由器不能连通,然后再找问题是否在交换设备或HUB或网线等。

8.每个路由器在寻找路由器时需要直到哪5部分信息?

答:所有的路由器需要如下信息为报文寻找路由:目的地址报文发送的目的主机。邻站的确定 
指明谁直接连接到路由器的接口上。路由的发现  发现邻站知道哪些网络。选择路由 
通过从邻站学习到的信息,提供最优的到达目的地的路径。保持路由信息路由器保存一张路由表,它存储所知道的所有路由信息。

9.什么是BGP?

答:BGP(Border Gateway Protocol,边界网关协议)是一种在自治系统之间动态交换路由器信息的路由协议。一个自治系统的经典定义是一个管理机制控制之下的一组路由器,它使用IGP和普通度量值向其他自治系统转发报文。

10.自适应网卡只有红灯闪烁,绿灯不亮,这种情况正常?

答:自适应网卡红灯代表Link/Act(连通/工作),即连通时红灯长亮,传输数据时闪烁;绿灯代表FDX(全双工),即全双工状态时亮,半双工状态时灭。如果一个半双工的网络设备和自适应网卡相连,由于这张网卡是自适应网卡,它就会工作在半双工状态,所以绿灯不亮也属于正常情况。

11.两台笔记本电脑连起来后ping不通,你觉得可能存在哪些问题?

答:(1)首先想到的就是你的网线问题。确认网线是否正确,电脑之间连的线和电脑与HUB之间连的线分正线、反线,是不同的。但是对于使用千兆位网卡的除外,千兆位网卡有自动识别的功能,既可以是正线也可以是反线。(2)局域网设置问题。电脑互连是要设置的。看看是否安装了必要的网络协议,最重要的是,IP地址是否设置正确。互连的时候,最好一台为主,一台为副,主的设为网关。(3)网卡驱动未正确安装。(4)防火墙设置有问题。(5)是否有什么软件阻止ping包。

12.解释什么叫“透明”?什么叫“网格”?

答:透明即向高层隐蔽其具体实现。网格就是有规律的方格集,是虚拟的。网格是把整个因特网整合一台巨大的超级计算机,实现各种资源的全面共享。网格的根本特征不是它的规模,而是资源共享,消除资源孤岛。在不同地区的计算机各自分析某一项计算的一部分,综合起来计算出同一项东西。

13.我们在南京,与深圳的网络是通的,但和北京的网络不通,你以怎样的顺序查找问题所在?

答:查找路由器是否可以测试到目的地、所经过的路由器及路由延迟状态。通过这个命令看最后的一个数据包是在哪儿被丢弃或中断的。

14.香农定理是什么?

答:香农定理:香农定理描述了有限带宽、有随机热噪声信道的最大传输速率与信道带宽、信号噪声功率比之间的关系。在有随机热噪声的信道上传输数据信号时,数据传输率Rmax与信道带宽B、信噪比S/N的关系为:Rmax=B*log2(1+S/N)

香农定理由如下的公式给出:C=B*log2(1+S/N),其中C是可得到的链路速度,B是链路的带宽,S是平均信号功率,N是平均噪声功率,信噪比(S/N)通常用分贝(dB)表示,分贝数=10*lg(S/N)

15.IP地址的分类

A类、B类和C类地址的网络号字段net-id分别为123字节长,而在网络号字段的最前面有13bit的类别比特,其数值分别规定为010110A类、B类和C类地址的主机号字段分别为3个、2个和1个字节长。

IP地址的使用范围

网络类别

最大网络数

第一个可用的网络号

最后一个可用的网络号

每个网络中的最大主机数

A

126(27-2)

1

126

16777214(224-2)

B

16384(214)

128.0

191.255

65534(216-2)

C

2097152(221)

192.0.0

223.255.255

254(28-2)

一般不使用的特殊IP地址

net-id

host-id

源地址使用

目的地址使用

代表的意思

0

0

可以

不可

在本网络上的主机

0

host-id

可以

不可

在本网络上的某个主机

1

1

不可

可以

只在本网络上进行广播

net-id

1

不可

可以

net-id上的所有主机进行广播

127

任何数

可以

可以

用作本地软件环回测试之用

16.TCP/IP 建立连接的过程?(3-way shake)

答:在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

第一次握手:建立连接时,客户端发送syn(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYNack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYNACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

17. IP组播有那些好处?
答:Internet上产生的许多新的应用,特别是高带宽的多媒体应用,带来了带宽的急剧
消耗和网络拥挤问题。组播是一种允许一个或多个发送者(组播源)发送单一的数据包
到多个接收者(一次的,同时的)的网络技术。组播可以大大的节省网络带宽,因为无
论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包。所以说组播
技术的核心就是针对如何节约网络资源的前提下保证服务质量。

18.基础知识

1)    计算机网络:利用各种通信手段,把分散的计算机有机的连在一起,达到互相通信而且共享软件、硬件和数据等资源的系统。

2)    组成数据通信网络的基本要素为信源、信宿、传输系统3项。

3)    通信模型:信源(工作站)->发送器(调制解调器)
->
传输系统(公用电话网) ->接收机(调制解调器) ->信宿(服务器)

4)    10BASE-T标准规定的网络的网络拓扑结构是星形,网络速率是10Mb/S,网络所采用的网络介质是双绞线。

5)    传统的加密方法可以分成两类:替代密码和换位密码。现代密码学采用的算法主要有:秘密密钥算法和公开密钥算法。

6)    数据传输通常可以分成5个阶段:(1)建立通信链路;(2)建立数据传输链路;(3)传送通信控制信号和传输数据信息;(4)数据传输结束,双方通过控制信息确认传输结束;(5)切断数据传输链路。

7)    WWW中,使用统一资源定位器URL来唯一地标识和定位因特网中的资源,它由3部分组成:客户与服务器之间所使用的通信协议和主机域名(或IP地址)和文件路径和文件名。

8)    第一代网络以单计算机为中心的联机系统,第二代网络以远程大规模互联为主要特点。

9)    单工是只能有一个方向的通信而没有反方向的交互;半双工是通信的双方都可以发送信息。但不能双方同时发送信息。全双工是通信的双方都可以同时发送信息和接受信息。

10)计算机通信子网技术发展的顺序是线路交换-报文组交换-帧中继-ATM

11)使用同样网络操作系统的两个局域网络连接时,为使连接的网络从网络层到应用层都能一致,连接时必须使用网桥。

12)IEEE 802将数据链路层划分为两个子层,上子层是逻辑链路控制LLC,下子层是媒体接入控制MAC。 

13)涉及OSI模型层次最多的设备是网关。

14)FTP工作时使用2TCP连接来完成文件传输。

15)ICMPInternet控制报文协议,处于网络层(IP层)。

16)主要拓扑结构:总线、星形、树形,环形。

17)异步传输模式(ATM)本质上一种高速分组交换模式,用固定大小的分组单元传送信息,支持多媒体通信,包括音频、视频和数据,结合了线路交换和分组交换的优点,被用于B-ISDN

18)分组交换:以分组为单位,在网络层上进行;帧中继:以帧为单位,在数据链路层上进行;异步传输:以信元为单位,在数据链路层上进行,建立在大容量光纤介质基础上的,适用于LANWAN

19)有线传输介质:同轴电缆,双绞线和光纤。

20)转发器将信号放大并整形后再转发出去,转发器又称为中继器,转发器的作用是消除信号由于经过一长段电缆而造成的失真和哀减,使信号的波形和强度达到所要求的指标,它工作在物理层,中继器获取衰减或损失的信号并重新生成它。

21)Internet采用TCP/IP协议;Internet物理地址和IP地址转换采用ARP
(Address Resolution Protocol)
(地址解析协议;IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与之后才能区分哪些是网络位哪些是主机位。

19.试题(选择题,只是答案中之一。)

1)    如果把一个网络40.15.0.0分为两个子网,第一个子网是40.15.0.0/17,那么第二个子网将会是40.15.128.0/17。解析:让主网分成两个网段,子网掩码分别是0xff
0xff 0x80 0x00
0xff 0xff 0x00 0x00

2)    如果一个蠕虫病毒攻击了一个家用PC机的A类地址主机的话,这个地址最有可能接受很多ICMP目的无法抵达包。解析:大量发出IP请求,肯定很多不可达,返回不可达错误。

3)    在一个IP数据包到达目的地址之前,它可能成为碎片,而且不会重组。解析:网络问题,包未达到终点不可能重组,但可以分散成碎片。

4)    TCP/IP协议栈里,如果出现阻塞情况,下面哪种情况最有可能发生?丢包解析:网络阻塞问题,拥塞导致丢包。

5)    文件传输是基于哪种协议?TCP 
解析:FTP是有连接的服务,所以必须基于TCP协议。

6)    一个C类网络最多能容纳多少台主机? 254
解析:子网中IP0255,其中0255不能用,所以是254个。

7)    SMTP的全称是“Simple Mail Transfer Protocol,即简单邮件传输协议。 SMTP
协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP服务器就是遵循SMTP协议的邮件发送服务器。

8)    以太网转换控制包是基于目的IP地址。

9)    如果TCP服务器在客户端发出数据报之前已经崩溃了,TCP/IP栈可能返回一个SYN。解析:SYN包是TCP连接的第一个包,是非常小的一种数据包。SYN攻击包括大量此类的包。由于这些包看上去来自实际不存在的站点,因此无法有效地进行处理。SYN攻击就是利用TCP
连接的3次握手机制,但发起攻击端只来一两次握手,而被攻击端一直在试图完成TCP连接,因此造成资源不足。

10)Windows2000操作系统中,配置IP地址的命令是ipconfig。若用ping命令来测试本机是否安装了TCP/IP协议,则正确的命令是ping
127.0.0.1
。如果要列出本机当前建立的连接,可以使用的命令是netstat –a

 

操作系统

1.基本知识点:

1)    操作系统是控制和管理计算机软硬件资源,以尽量合理有效的方法组织多个用户共享多种资源的程序集合。

2)    操作系统的基本功能:(1)处理机管理。主要功能包括进程控制、进程调度、进程同步和进程通信。(2)存储器管理。主要功能包括内存分配、地址映射、内存保护和内存扩充。(3)设备管,也叫I/O管理。主要功能包括缓冲区管理、设备分配、设备驱动和设备的无关性处理。(4)文件管理。主要功能包括文件存储空间的管理、文件操作的一般管理、目录管理、文件的读写管理和存取控制。(5)用户界面管理。操作系统的用户界面就是操作系统与用户的接口,包括控制接口和程序接口。

3)    现代操作系统的基本特征:并发性、共享性、虚拟性、异步性和不确定性。

4)    所谓中断是指系统发生某一事件后,CPU暂停正在执行的程序去执行处理该事件的程序过程,处理中断事件的程序称为中断处理程序,产生中断信号的那个部件称为中断源。中断处理具体过程:保存现场;分析原因,转中断处理程序;恢复现场。

5)    进程是一个具有独立功能的程序关于数据集合的一次可以并发执行的运行活动,其基本特征:动态特征、并发特征、独立性、相互制约性。进程的构成:程序、数据和进程控制块。进程有三种基本的调度状态:执行状态、就绪状态和等待状态。

6)    进程的引入大大地提高了资源的利用率和系统的吞吐量,而引入线程的目的是为了减少程序并发所付出的系统开销。进程是资源分配的单位,而线程是系统调度的单位。

7)    所谓死锁是多个进程间的一种僵持状态。进程死锁的原因:资源竞争及进程推进顺序非法。死锁的4个必要条件:互斥、占有等待、不可剥夺、环路。死锁的处理:鸵鸟策略、预防策略、避免策略、检测与解除死锁。

8)    临界资源是一次只允许一个进程使用的资源。临界区是在进程中操作临界资源的程序段。

2.进程和线程的区别?
答:线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位。(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行。(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.
(4)
系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。

3.网络编程中设计并发服务器,使用多进程多线程,请问有什么区别?

解析:(1)进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品

(2)线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。

两者都可以提高程序的并发度,提高程序运行效率和响应时间。线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。

:用多进程时每个进程有自己的地址空间,线程则共享地址空间。所有其他区别都是由此而来的:(1)速度:线程产生的速度快,线程间的通信快,切换快等,因为它们在同一个地址空间内。(2)资源利用率:线程的资源利用率比较好也是因为它们在同一个地址空间内。(3)同步问题:线程使用公共变量/内存时需要使用同步机制,还是因为它们在同一个地址空间内。

4. 操作系统中常见的进程调度策略有哪几种?

答:FCFS(先来先服务),优先级,时间片轮转,多队列、多级反馈队列。

5.进程间的通信如何实现?

答:现在最常见的进程间通信的方式有:信号,信号量,消息队列,共享内存,管道。信号是使用信号处理器来进行的,信号量是使用PV操作来实现的。消息队列是比较高级的一种进程间通信方法,因为它真的可以在进程间传送消息。

6.Windows编程中互斥器(mutex)的作用和临界区(critical section)类似,请说一下二者间的主要区别。

答:两者的区别是mutex开业用于进程之间互斥,critical section是线程之间的互斥。

7.进程进入等待状态有哪几种方式?

答:CPU调度给优先级更高的Thread(线程),原先Thread
进入Waiting(等待)状态。阻塞的Thread获得资源或者信号,进入Waiting状态。在时间片轮转的情况下,如果时间片到了,也将进入等待状态。

8.试说明进程在三个基本状态之间转换的典型原因。

答:a.处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态变为执行状态。b.当前进程因发生某事件而无法执行,如访问已被占有的临界资源,就会使进程由执行状态变为阻塞状态。c.当前进程因事件片用完而被暂停执行,该进程便由执行状态变为就绪状态。

9.同步机构应遵循哪些基本准则?

答:a.空闲让进;b.忙则等待;c.有限等待;d.让权等待。

10.在单处理机环境下,进程间有哪几种通信方式?

答:a.共享存储器系统通信方式;b.消息传递系统通信方式;c.管道通信方式。

11.试比较消息队列与管道通信机制。

答:a.所谓管道,是指用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件,又称pipe文件,管道通信是属于共享存储系统的。b.消息队列通信机制属于消息传递系统通信机制,存在通信链路,有消息的格式,有若干缓冲队列,采用独特的发送原语和接受原语。

12.在请求分页系统中,常采用哪几种页面置换算法?

答:a.最佳置换算法;b.先进先出算法;c.最近最久未使用LRU置换算法;d.Clock置换算法;e.此外,还有最少使用置换算法和页面缓冲算法。

 

数据库

1.基础知识点:

1NF:第一范式。如果关系模式R的所有属性的值域中每一个值都是不可再分解的值,则称R属于第一范式模式。第一范式的模式要求属性值不可再分裂成更小部分,即属性项不能是属性组合或由组属性组成。2NF:第二范式。如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键,则称R为第二范式模式。(如果A是关系模式R的候选键的一个属性,则称AR的主属性,否则称AR的非主属性。)
3NF:
第三范式。如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键,则称R是第三范式的模式。 BCNFBC模式。如果关系模式R是第一范式,且每个属性都不传递依赖于R的候选键,那么称RBCNF的模式。4NF:第四范式。设R是一个关系模式,DR上的多值依赖集合。如果
D
中成立非平凡多值依赖X→→Y时,X必是R的超键,那么称R是第四范式的模式。

2.试题

1)    设有关系R(S,D,M),其函数依赖集F={S→D,D→M}。则关系R至多满足2NF。解析:属于依赖关系,所有至多满足第二范式。

2)    找出表ppp里面num最小的数,不能使用min函数。
 
答:select * from ppp where num<=all(select num from ppp)
或者:select top 1 num from ppp order by num

3)    找出表ppp里面最小的数,可以使用min函数。答:select * from ppp where num=select
Min(num) from ppp
)。

4)    选择表ppp2num重复的记录。答: select * from ppp2 where num in(select
num from ppp2 group by num having(count(num)>1))

5)    写出复制表、拷贝表和四表联合的SQL语句。 
答:复制表(只复制结构,源表名:A,新表名:B): select * into B from A where 1=0  
拷贝表(拷贝结构,源表名:A,新表名:B): select * into B from A 
四表联查: select * from A,B,C,D where
关联条件

6)    SQL Server中如何用SQL语句建立一张临时表? 
答: create table #Temp(字段1
类型,字段2 类型…)  
注意,临时表要在表名前面加“#”。

7)    %代表任意长度(长度可以为0)的字符串,_
代表任意单个字符。如果用户要查询的语句本身就含有%_,这时就要使用escape’<换码字符>’短语对通配符进行转义了。

8)    集函数SUM,AVG中的列必须是数值型。

综合的是选择题

9)    每一个部门的每个工种的工资最大值? select dept_id,job_cat,max(salary)from employee group by dept_id,job_cat;

10)primary
unique两种约束的情况下,Oracle数据库会隐形创建一个唯一索引。

11)select语句中包含一个where关键词,group by关键词一般在where关键词之后,order
by
关键词一般在select语句中所有关键词之后。

12)select last_name,salary from employees order by salary; select last_name,salary from employees order by 2 asc;
这两个SQL语句是相同的结果。

13)如果你想把时间显示成像“200511101444 17”这样的格式,SQL语句:
select to_char(sydate,’yyyymmdd hh24:mi:ss’)from dual;

14)select语句中用来连接字符串的符号是+

15)如果要从字符串“Hello world”中提取出“ello world”这样的结果,SQL语句:
select lower(trim(‘H’from ‘Hello world’))from dual;

3.存储过程和函数的区别是什么?

答:存储过程是用户定义的一系列SQL语句的集合,涉及特定表或其他对象的任务,用户可以调用存储过程。而函数通常是数据库已定义的方法,它接受参数并返回某种类型的值,并且不涉及特定用户表。

4.事务是什么?

答:事务是作为一个逻辑单元执行的一系列操作。一个逻辑工作单元必须有4个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能称为一个事务。

5.游标的作用是什么?如何知道游标已经到了最后?

答:游标用于定位结果集的行。通过判断全局变量@@FETCH_STATUS可以判断其是否到了最后。通常此变量不等于0表示出错或到了最后。

6.触发器分为事前触发和事后触发,这两种触发有何区别?语句级触发和行级触发有何区别?

答:事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。

7.什么叫做SQL注入式攻击?如何防范?

答:所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。防范SQL注入式攻击闯入:只要在利用表单输入的内容构造SQL命令之前,把所有输入内容过滤一番就可以了。过滤输入内容可以按多种方式进行。第一,替换单引号,即把所有单独出现的单引号改成两个单引号,防止攻击者修改SQL命令的含义。第二,删除用户输入内容中的所有连字符,防止攻击者顺利获得访问权限。第三,对于用来执行查询的数据库账户,限制其权限。第四,用存储过程来执行所有的查询。第五,检查用户输入的合法性,确信输入的内容只包含合法的数据。数据检查应当在客户端和服务器端都执行。第六,将用户登录名称、密码等数据加密保存。第七,检查提取数据的查询所返回的记录数量。

8.为了防止在查询记录的时候被其他用户更改记录,应该采用什么方法?如何用查询语句实现该方法?

: 添加一个“时间戳”类型的字段就可以了。timestamp这种数据类型会根据当前时间自动产生一个时间字符串,确保这些数在数据库中是唯一的。timestamp一般用做给表行加版本戳的机制,存储大小为8个字节。一个表只能有一个timestamp列。每次插入或更新包含timestamp列的行时,timestamp列中的值均会更新。这一属性使timestamp列不适合作为键使用,尤其是不能作为主键使用。对行的任何更新都会更改timestamp值,从而更改键值。

9.有一个数据库,只有一个表,包含着1000个记录,你能想出一种解决方案来把第五行到第七行的记录取出来么?不要使用航标和索引。

答:第一步建立数据库:

declare @i int

set @i=1

create table #T(userid int)

while (@i<=10)

begin

insert into #T

select @i

set @i=@i+1

end

select userid from

(select top 3 userid from(selec top 7 userid from #T order by userid)Ta order by userid desc

)TB order by userid

删除数据库: drop table #T

提取数据:

select top 3 userid from T where userid not in(select top 4 userid from T order by userid)order by userid

或者:select top 7 userid from T where userid >ANY(select top 4 userid from T order by userid)order by userid

或者:select top 7 userid from T where userid >ALL(select top 4 userid from T order by userid)order by userid

10.什么是聚集索引?什么是非聚集索引?什么是主键?

答:表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键。聚集索引确定表中数据的物理顺序。一个表中只能包含一个聚集索引。非聚集索引与课本中的索引类似。数据存储在一个地方,索引存储在另一个地方,索引带有指针指向数据的存储位置。索引中的项目按索引键值的顺序存储,而表中的信息按另一种顺序存储。

11.现有一张表,有两个字段:ID,NAMEID为主键。如果希望查询出所有拥有2个或更多ID
NAME,查询语句应该如何写?

答:select [Name] from [table] group by(name) having(count([ID]>=2)

12.设供应商供应零件的关系模式为SP(Sno,Pno,Qty),其中Sno表示供应商号,Pno表示零件号,Qty表示零件数量。整个数据库如下表:

Sno     Pno      Qty

168      r1        3

168      r2        4

168      r3        7

169      r2        1

169      r3        5

170      r4        8

171      r7        5

172      r2        1

172      r7        3

请问下面的SQL语句返回值是什么?

Select * from SP SPY where exists (select * from SP SPZ where Sno)

解析:在exists 中的子查询在这个例子中只返回一个值。因为从子查询中返回的行数至少有一行exits返回为true,这使得表中的所有记录都被显示了出来。

请问下面的SQL语句返回值是什么?

Select * from SP SPY where exists (select * from SP SPZ where Sno=’168’ and SPZ.Pno=SPY.Pno);

解析:返回与168号供应商所提供零件相同编号的情况。

若想得到与168号供应上所提供零件相同的全部供应商的全部产品情况?

解析:Select * from SP  where Sno in (select Sno from SP where Pno in (select Pno from SP from SP  where Sno=’168’));

或者:Select * from SP SPX where exists (select * from SP SPY where SPY.Sno=’168’ and exists (select * from SP SPZ where SPZ.Sno=SPX.Sno and SPZ.Pno=SPY.Pno));

13. 触发器怎么工作的?

答:触发器主要是通过事件进行触发而被执行的,当对某一表进行诸如UPDATE INSERT DELETE
这些操作时,数据库就会自动执行触发器所定义的SQL
语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。

14.在一个文件中有 10G
个整数,乱序排列,要求找出中位数。内存限制

【上篇】
【下篇】

抱歉!评论已关闭.