资源描述
Sql server试题
一、选择题(每题3分,共30分)
1、在关系模型中,实现"关系中不允许出现相同的元组"的约束是通过______。
A、候选键 B、主键 C、外键 D、索引
2、SQL语句中修改表结构的命令是______。
A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE
3、只有满足联接条件的记录才包含在查询结果中,这种联接为______。
A、左联接 B、右联接 C、内部联接 D、完全联接
4、从数据库中删除表的命令是______。
A、DROP TABLE B、ALTER TABLE C、DELETE TABLE D、USE
5、SQL语言是______语言。
A、层次数据库 B、网络数据库 C、关系数据库 D、非数据库
6、在SQL中,删除视图用______。
A、DROP SCHEMA命令 B、CREATE TABLE命令
C、DROP INDEX命令 D、DROP VIEW命令
7、如果对一个关系实施了一种关系运算后得到了一个新的关系,而且新的关系中属性个数少于原来关系中属性个数,这说明所实施的运算关系是:
A选择 B投影 C连接 D并
8、在下列关于关系的陈述中,错误的是
A 表中任意两列的值不能相同
B 表中任意两行的值不能相同
C 行在表中的顺序无关紧要
D 列在表中的顺序无关紧要
9、下面系统中不属于关系数据库管理系统的是
A Oracle B MS SQL Server C Eclipse D MySQL
10、在SQL语言中,条件“BETWEEN 20 AND 30”表示年龄在20到30之间,且
A 包括20岁和30岁
B 不包括20岁和30岁
C 包括20岁不包括30岁
D 不包括20岁包括30岁
二、填空题(每题3分,共30分)
1、关系数据库管理系统能实现的专门关系运算包括选择、投影和 。
2、创建数据库的SQL命令是 。
3、创建存储过程的SQL命令是 。
4、创建触发器的SQL命令是 。
5、通过SQL语句返回指定表中前N条数据的关键字是 。
6、通过SQL语句使返回的数据集中不包含重复数据的关键字是 。
7、select * from 学生 where 姓名 like ‘张%’的作用是 。
8、使查询出来的数据按年龄(age)字段降序排列的SQL语句是 。
9、SQL语句中用于分组查询的关键字是 。
10、SQL语句中把两个或两个以上Select语句产生的结果集合并为一个结果集的关键字是 。
三、综合题(共40分)
有如下三个表:
(1)Student表(学生表):其中字段Sno为学号、Sn为学生姓名、Ssex为性别、Sa为年龄、Sd为所在系
Sno
Sn
Ssex
Sa
Sd
S01
张三
男
22
计算机
S02
李四
男
23
计算机
S03
王五
女
20
外语
(2)Class表(课程表):其中字段Cno为课程号、Cn为课程名称、Ccredit为学分
Cno
Cn
Ccredit
C01
数学
3
C02
外语
4
C03
语文
2
(3)Stu_class表(学生选课表):其中字段Sno为学号、Cno为课程号、Grade为学生成绩
Sno
Cno
Grade
S01
C01
60
S01
C02
70
S01
C03
80
S02
C01
90
S02
C03
60
S03
C02
85
请写出如下SQL语句:
(1) 查询Stu_class(学生选课表)的所有信息;(5分)
(2) 查询年龄大于21岁的男生的学号和姓名;(5分)
(3) 查询出每个学生的各科成绩,使查询结果如下图所示:(10分)
Sn
Cn
Grade
张三
数学
60
张三
外语
70
张三
语文
80
李四
数学
90
李四
语文
60
王五
外语
85
(4) 查询出每个学生的总成绩与平均成绩,使查询结果如下图所示:(10分)
Sn
C_SUM
C_AVG
张三
210
70
李四
150
75
王五
85
85
(5)查询平均分大于75分的学生的姓名及平均成绩:(10分)
Struts试题
(1)在Struts应用的视图中包含哪些组件?(多选)
选项:
(A) JSP
(B) Servlet
(C) ActionServlet
(D) Action
(E) 代表业务逻辑或业务数据的JavaBean
(F) EJB
(G) 客户化标签
(2)在Struts应用的控制器中包含哪些组件?(多选)
选项:
(A) JSP
(B) Servlet
(C) ActionServlet
(D) Action
(E)代表业务逻辑或业务数据的JavaBean
(F) EJB
(G) 客户化标签
(3)在Struts应用的模型中包含哪些组件?(多选)
选项:
(A) JSP
(B) Servlet
(C) ActionServlet
(D) Action
(E)代表业务逻辑或业务数据的JavaBean
(F) EJB
(G) 客户化标签
(4)以下代码定义了一个变量,如何输出这个变量的值?(多选)
<bean:define id=\"stringBean\" value=“helloWorld“/>
选项:
(A)<bean:write name=“stringBean\"/>
(B) <bean:write name=“helloWorld\"/>
(C)<%= stringBean%>
(D)
<% String myBean=
(String)pageContext.getAttribute(“stringBean”,PageContext.PAGE_SCOPE);
%>
<%=myBean%>
(5)把静态文本放在Resource Bundle中,而不是直接在JSP文件中包含这些静态文本,有什么优点?(多选)
A)提高可维护性
B)提高可重用性
C)支持国际化
D)提高运行速度
(6)以下哪些说法是正确的?(单选)
选项:
(A)每个HTTP请求对应一个单独的ActionServlet实例
(B)对于每个请求访问HelloAction的HTTP请求,Struts框架会创建一个单独的HelloAction实例。
(C)每个子应用对应一个单独的RequestProcessor实例
(D)每个子应用对应一个单独的web.xml文件
(7)下面哪些任务是RequestProcessor完成的?(多选)
选项:
(A)把Struts配置文件信息加载到内存中
(B)把资源文件信息读入到内存中
(C)如果需要的话,创建ActionForm实例,组装数据,并进行表单验证
(D)找到匹配的Action实例,调用其execute()方法
(E)把请求转发到Action的execute()方法返回的ActionForward代表的组件。
(8)对于以下代码,HelloAction希望把请求转发给hello.jsp,在HelloAction的execute()方法中如何实现?(多选)
<action path = \"/HelloWorld\"
type = \"hello.HelloAction\"
name = \"HelloForm\"
scope = \"request\"
validate = \"true\"
input = \"/hello.jsp\"
>
<forward name=\"SayHello\" path=\"/hello.jsp\" />
</action>
选项:
(A) return (new ActionForward(mapping.getInput()));
(B) return (mapping.findForward(\"SayHello\"));
(C) return (mapping.findForward(“hello.jsp\"));
(9)对于以下这段配置ActionServlet的代码,哪些说法是正确的?(多选)
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/myconfig.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
选项:
(A)Servlet容器在启动Struts应用时,会初始化这个ActionServlet。
(B) 对于所有URL中以”.do”结尾的HTTP请求,都由ActionServlet处理。
(C) 这段代码位于struts-config.xml中。
(D)这段代码位于web.xml中。
(10) 问答题:MVC是什么含义?
有两张表 一张为新闻类别表 有2个字段: nid(pk) sort 有一张新闻内容表 有三个字段 cid(pk) nid(fk) title content 要求通过下拉列表框的方法选择新闻类别然后显示该类别的新闻 ...
Hibernate试题
(1)一般情况下,关系数据模型与对象模型之间有哪些匹配关系(多选)
A)表对应类
B)记录对应对象
C)表的字段对应类的属性
D)表之间的参考关系对应类之间的依赖关系
(2)以下关于SessionFactory的说法哪些正确?(多选)
A)对于每个数据库事务,应该创建一个SessionFactory对象
B)一个SessionFactory对象对应一个数据库存储源。
C)SessionFactory是重量级的对象,不应该随意创建。如果系统中只有一个数据库存储源,只需要创建一个。
D)SessionFactory的load()方法用于加载持久化对象
(3)Customer类中有一个Set类型的orders属性,用来存放Order订单对象,在Customer.hbm.xml文件中,用哪个元素映射orders属性?
A)<set> B)<one-to-many> C)<many-to-one> D)<property>
(4)<set>元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)
A)none
B)save
C)delete
D)save-update
(5)以下哪些属于Session的方法?
A)load()
B)save()
C)delete()
D)update()
E)open()
F)close()
(6)以下程序的打印结果是什么?(单选)
tx = session.beginTransaction();
Customer c1=(Customer)session.load(Customer.class,new Long(1));
Customer c2=(Customer)session.load(Customer.class,new Long(1));
System.out.println(c1==c2);
mit();
session.close();
A)运行出错,抛出异常
B)打印false
C)打印true
(7)以下程序代码对Customer的name属性修改了两次:
tx = session.beginTransaction();
Customer customer=(Customer)session.load(Customer.class,
new Long(1));
customer.setName(\"Jack\");
customer.setName(\"Mike\");
mit();
执行以上程序,Hibernate需要向数据库提交几条update语句?(单选)
A)0 B)1 C)2 D)3
(8)在持久化层,对象分为哪些状态?(多选)
A)临时状态
B)独立状态
C)游离状态
D)持久化状态
(9)对于以下程序,Customer对象在第几行变为持久化状态?(单选)
Customer customer=new Customer(); //line1
customer.setName(\"Tom\"); //line2
Session session1=sessionFactory.openSession(); //line3
Transaction tx1 = session1.beginTransaction(); //line4
session1.save(customer); //line4
mit(); //line5
session1.close(); //line6
A) line1 B)line2 C)line3 D)line4 E)line5 F)line6
(10)对于以下程序,Customer对象在第几行变为游离状态?(单选)
Customer customer=new Customer(); //line1
customer.setName(\"Tom\"); //line2
Session session1=sessionFactory.openSession(); //line3
Transaction tx1 = session1.beginTransaction(); //line4
session1.save(customer); //line4
mit(); //line5
session1.close(); //line6
A) line1 B)line2 C)line3 D)line4 E)line5 F)line6
(11)以下哪一种检索策略利用了外连结查询?(单选)
A)立即检索 B)延迟检索 C)迫切左外连结检索
(12)假设对Customer类的orders集合采用延迟检索策略,编译或运行以下程序,会出现什么情况(单选)
Session session=sessionFactory.openSession();
tx = session.beginTransaction();
Customer customer=(Customer)session.get(Customer.class,new Long(1));
mit();
session.close();
Iterator orderIterator=customer.getOrders().iterator();
A)编译出错 B)编译通过,并正常运行 C)编译通过,但运行时抛出异常
(13)关于HQL与SQL,以下哪些说法正确?(多选)
A)HQL与SQL没什么差别
B)HQL面向对象,而SQL操纵关系数据库
C)在HQL与SQL中,都包含select,insert,update,delete语句
D)HQL仅用于查询数据,不支持insert,update和delete语句
(14)事务隔离级别是由谁实现的?(单选)
A)Java应用程序 B)Hibernate C)数据库系统 D)JDBC驱动程序
(15)悲观锁与乐观锁,哪个具有较好的并发性能?(单选)
A)悲观锁 B)乐观锁
参考答案
一、选择题
1~5 BCCAC
6~10 DBACA
二、填空题
1、连接 2、create database 3、create procedure
4、create trigger 5、top 6、distinct
7、从学生表中查询姓名以’张’开头的所有记录
8、order by age DESC
9、group by
10、union
三、综合题
1、select * from Stu_class
2、
select Sno,Sn
from Student
where Sa>21 and Ssex='男'
3、
select Sn,Cn,Grade
from Student,Class,Stu_class
where Student.Sno = Stu_class.Sno and
Class.Cno = Stu_class.Cno
4、
select Sn,sum(Grade) as C_SUM,avg(Grade) as C_AVG
from Student,Stu_class
where Student.Sno = Stu_class.Sno
group by Sn
5、
select Sn,avg(Grade)
from Student,Stu_class
where Student.Sno = Stu_class.Sno
group by Sn
having avg(Grade) > 75
答案:
(1)A,G (2)B,C,D (3)E,F (4)A,D (5)A,B,C (6)C (7)C,D,E (8)A,B (9)A,B,D
(10)M表示Model(模型),V表示View(视图),C表示Controller(控制器)
Hibernate spring
1、好莱坞原则——不要打电话找我,我会打给你的。IoC将创建的职责从应用程序代码搬到了框架中。Spring对Setter注入和构造方法注入提供支持。(详见
2、在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。(详见
3、singleton、prototype、request、session、global session、自定义(详见Spring Framework 2.0 Reference的3.4节bean的作用域)
4、Spring是完整的一站式框架,而Struts仅是MVC框架,且着重于MVC中的C。Spring有三种方式整合Struts:使用 Spring 的 ActionSupport 类整合 Struts;使用 Spring 的 DelegatingRequestProcessor 覆盖 Struts 的 RequestProcessor;将 Struts Action 管理委托给 Spring 框架,动作委托最好。(详见使用Spring 更好地处理Struts 动作)
Spring 2.0新增一种方式:AutowiringRequestProcessor。(详见
5、控制器Bean以Controller结尾可直接映射为地址,模型ModelAndView可以不用指定键名,可根据URL自动取得视图名。(详见Spring Framework 2.0 Reference的13.11节惯例优先原则)
6、saveOrUpdate()方法可以实现update()的功能,但会多些步骤,具体如下:
如果对象在该session中已经被持久化,不进行操作;
对象的标识符属性(identifier property)在数据库中不存在或者是个暂时的值,调用save()方法保存它;
如果session中的另一个对象有相同的标识符抛出一个异常;
以上皆不符合则调用update()更新之。
Session.load/get方法均可以根据指定的实体类和id从数据库读取记录,并返回与之对应的实体对象。其区别在于:
如果未能发现符合条件的记录,get方法返回null,而load方法会抛出一个ObjectNotFoundException;
load方法可返回实体的代理类实例,而get方法永远直接返回实体类;
load方法可以充分利用内部缓存和二级缓存中的现有数据,而get方法则仅仅在内部缓存中进行数据查找,如没有发现对应数据,将越过二级缓存,直接调用SQL完成数据读取。
7、在context中定义DataSource,创建SessionFactoy,设置参数;DAO类继承HibernateDaoSupport,实现具体接口,从中获得HibernateTemplate进行具体操作。在使用中如果遇到OpenSessionInView的问题,可以添加OpenSessionInViewFilter或OpenSessionInViewInterceptor。(详见Spring Framework 2.0 Reference的12.2节Hibernate)
声明式事务需声明事务管理器,在context中设置<tx:advice>指定属性,用<aop:config>确定<aop:advisor>和<aop:pointcut>。(详见Spring Framework 2.0 Reference的9.5节声明式事务管理)
8、传播行为分为六种:
PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。
Hibernate答案:
(1)A,B,C (2)B,C (3)A (4)D (5)A,B,C,D,F (6)C (7)B (8)A,C,D (9)D (10)F (11)C (12)C (13)B,D (14)C (15)B
展开阅读全文