一、选择题
(1)在关系型数据库中,有两个不同的事务同时操作数据库中同一表的同一行,不会引起冲突的是(D)
A.delete和select
B.两个update
C.select和update
D.两个delete
一个操作属于一个会话
冲突:两个会话的操作,同时执行时,是否会互相影响
因此只有两个操作都是delete操作的时候不会产生影响
(2)以下哪个不是于MySQL服务器相互作用的通讯协议(B)
A.TCP/IP
B.UDP
C.共享内存
D.Socket
TCP/IP协议:用来连接MySQL,各种主要的编程语言都根据这个协议实现了连接模块
Unix Socket协议:登录MySQL服务器中使用这个协议,因为要使用这个协议连接MySQL需要一个物理文件,文件的存放位置在配置文件中有定义,这是所有协议中最高效的一个
Share Memory协议:该协议只有在windows中使用,使用这个协议需要在配置文件中在启动的时候使用-shared-memory参数,注意,使用该协议,一个host上只能有一个server,所以这个东西一般没啥用,实际上SQL Server也支持这个协议
Named Pipes协议:只有在windows才能使用,同shared memory 一样,一个host上只能有一个server,是为局域网开发的协议。内存的一部分被某个进程用来向另一个进程传递信息,因此一个进程的输出就是另一个进程的输入。第二个进程可以是本地的(位于同一主机上),也可以是远程的(位于互联网的计算机上),正因为如此,假如你的环境中没有或者禁用TCP/IP,而且是windows服务器,数据库还是能正常工作的,使用这个协议时,需要在启动的时候添加-enable-named-pipe选项
(3)设有两个事务T1,T2,其并发操作如下所示,下面评价正确的是(D)
A.该操作不能重复读
B.该操作不存在问题
C.该操作读"脏数据"
D.该操作丢失修改
T1修该后的数据被T2给覆盖掉了,属于丢失更新
不能重复读:事务t1修改,事务t2分别在t1前后读取两次,两次读取到的数据不同
“脏读”:事务t1将A修改为110,事务t2读取数据A,读到的是110,然后事务t1回滚操作,数据A重新变为100,此时t2读到的就是"脏数据"
(4)如果事务T获得了数据Q上的排他锁,则T对Q(C)
A.只能读不能写
B.只能写不能读
C.既可读又可写
D.不能读不能写
如果某个事务获得了某个数据项的排他锁,那么该事务能对该数据进行任何操作,其他事务不能对该数据进行任何操作
(5)学生关系模式S(S#,Sname,Sex,Age),S的属性分别表示学号、姓名、性别、年龄。要在表S中删除一个属性"年龄",可选用的SQL语句是( A)
A.alter table S drop Age
B.alter table S ‘Age’
C.update S Age
D.delete Age from S
修改表结构的关键字都是alter table 表名,再跟具体的修改的语句
添加表字段:alter table table_name add 字段名称 字段类型
删除表字段:alter table table_name drop 字段名称
修改表字段:alter table table_name change 旧字段名称 新字段名称 字段类型 或 alter table table_name modify 字段名称 字段类型
二、编程题
2.1 扑克牌大小
2.1.1 题目
2.1.2 题解
思路:分析题目我们能得到的信息是,大致分为以下三种情况
- 两个人手中的其中一个有对王,此时输出结果一定是对王
- 两个人手中的牌类型相同(类型相同,长度肯定也是相同的),此时只要比较两个人手中的第一张牌的大小即可
- 两个人手中的牌类型不同,根据题意,如果两个人手中牌的类型不同,只有一种情况就是其中一个人手中有炸弹
具体步骤:
step1:根据"-“,将两副牌分开
step2:根据” ",将每个手中的牌分开
step3:判断手中是否有对王的情况
step4:判断长度是否相同,如果相同,输出较大牌
step5:长度不同,输出有炸弹的牌,否则输出ERROR
代码:
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String str=scanner.nextLine();
String[] p=str.split("-");
String[] p1=p[0].split(" ");
String[] p2=p[1].split(" ");
String tmp="34567891JQKA2";
if(p[0].equals("joker JOKER")||p[1].equals("joker JOKER")){
System.out.println("joker JOKER");
}else if(p1.length==p2.length){
if(tmp.indexOf(p[0].substring(0,1))>tmp.indexOf(p[1].substring(0,1))){
System.out.println(p[0]);
}else {
System.out.println(p[1]);
}
}else if(p1.length==4 ){
System.out.println(p[0]);
}else if(p2.length==4){
System.out.println(p[1]);
}else {
System.out.println("ERROR");
}
}