🎉🎉🎉点进来你就是我的人了
博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!欢迎志同道合的朋友一起加油喔🤺🤺🤺
目录
一、选择题
二、编程题
🔥统计每个月兔子的总数
🔥 字符串通配符
一、选择题
1、如下SQL语句中,____可能返回null值。
(1) select count() from t1;
(2) select max(col1) from t1;
(3) select concat(‘max=’,max(col1)) from t1;
A (1)可能,(2)和(3)不可能
B (2)可能,(1)和(3)不可能
C (3)可能,(1)和(2)不可能
D (1)不可能,(2)和(3)可能
E 都不可能
F 都可能
正确答案: D
1、count()一定可以返回数值,如果11中没有数据,返回0。
2、max返回null 可能的两种情况:1.t1中没有数据,2.col1字段,全部都是null。
3、字符串拼接的函数(数据库中,字符串不能使用+拼接)。
2、在关系表中,属性值必须是另一个表主键的有效值或空值,这样的属性是( )
A 外键
B 候选键
C 主键
正确答案: A
参考答案:
A、默认创建的外键是严格模式(必须在主表中,关联的键有该数据),其他模式其实外键值可以是空
B、可以标识数据的唯一性的最小集
二维表中的一行称为元组。候选键(码)是二维表中能唯一标识元组的最小属性集。若一个二维表有多个候选码,则选定其中一个作为主键(码)供用户使用。表 M 中的某属性集是表 N 的候选键或者主键,则称该属性集为表 M 的外键(码)。故本题答案为 A 选项。
3、下列关于数据库特点的说法中正确的是( )
A 数据能共享且独立性高
B 数据能共享但数据冗余很高
C 能保证数据完整性但降低了安全性
D 数据独立性高但不能实现共享
正确答案: A
参考答案:
数据库管理系统的特点:共享性高,冗余度小;具有高度的物理独立性和逻辑独立性;整体结构化,用数据模型描述;由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力。故本题答案为 A 选项。
4、以下哪一句从表TABLE_NAME中提取前10条记录?
A select * from TABLE_NAME where rowcount=10
B select TOP 10 * from TABLE_NAME
C select TOP of 10 * from TABLE_NAME
D select * from TABLE_NAME where rowcount<=10
正确答案: B
TOP是server中的关键字,用于求前n条数据,从头开始查
5、查找 student表中所有电话号码(列名:telephone)的第一位为8或6,第三位为0的电话号码
A SELECT telephone FROM student WHERE telephone LIKE ‘[8,6]%0*’
B SELECT telephone FROM student WHERE telephone LIKE ‘(8,6)*0%’
C SELECT telephone FROM student WHERE telephone LIKE ‘[8,6]_0%’
D SELECT telephone FROM student WHERE telephone LIKE ‘[8,6]_0*’
正确答案: C
6、数据库有一个试卷表,希望找出试卷平均得分小于 90 的所有试卷( )
A SELECT * FROM paper group by score having sum(score) < 90;
B SELECT * FROM paper group by score having avg(score) < 90;
C SELECT * FROM paper group by score having max(score) < 90;
D SELECT * FROM paper group by score having mid(score) < 90;
正确答案: B
7、电话号码表t_phonebook中含有100万条数据,其中号码字段PhoneNo上创建了唯一索引,且电话号码全部由数字组成,要统计号码头为321的电话号码的数量,下面写法执行速度最慢的是___
A select count() from t_phonebook where phoneno >= ‘321’ and phoneno < ‘321A’
B select count() from t_phonebook where phoneno like ‘321%’
C select count(*) from t_phonebook where substr(phoneno,1,3) = ‘321’
D 都一样快
正确答案: C
A 、phoneno是数字组成(使用数值数据 类型),和字符串可以比较,但是会进行类型转换(有点耗时)
B、模糊匹配:最开始xxx 的匹配,可以使用索引。
C、使用涵数,不会再使用索引:全部扫描(全部数据谝历)涵数本身的执行,也是需要耗时
8、使用 % 作为通配符时,匹配的是:
A 0个或1个字符
B 1个以上的字符(包含1)
C 0个以上的字符(包含0)
正确答案: C
9、数据库事务的 4 个特性是:原子性、一致性、()、隔离性。
A 只读性
B 封装性
C 持续性
D 恢复性
正确答案: C
10、以下不是RDBMS(关系型数据库)的是()
A mysql
B postgreSql
C oracle
D hadoop
正确答案: D
二、编程题
🔥统计每个月兔子的总数
统计每个月兔子的总数_牛客题霸_牛客网
【解题思路】:
第n个月的兔子数量由两部分组成,一部分是上个月的兔子f(n-1),另一部是满足3个月大的兔子,会生一只兔子f(n-2)。所以第n个月兔子总数: f(n) = f(n - 1) + f(n - 2)。本题是在变相考察斐波那契数列。
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int m=sc.nextInt();
System.out.println(num(m));
}
}
public static int num(int m){
int first=1;
int second=1;
int num=0;
for(int i=3;i<=m;i++){
num=first+second;
first=second;
second=num;
}
return num;
}
}
🔥 字符串通配符
字符串通配符_牛客题霸_牛客网
【解题思路】:
本题可以通过递归求解。从前向后一次匹配,遇到相同字符,都向后移动一个字符,如果通配符遇到"?“,则不需匹配,自动跳过一个字符,如果通配符遇到”*",则可以匹配任意多个字符,包括0个,此时可以有三种选择,
1,匹配0个,通配符向后移动一个字符,字符串不动。
2,匹配1个,通配符和字符串都向后移动一个字符。
3,匹配多个,通配符不动,字符串向后移动一个字符。
递归的终止条件:通配符或者字符串遇到’\0’。当他们同时结束。
//动态规划
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNextLine()){
String t=sc.nextLine();
String s=sc.nextLine();
System.out.println(match(t,s));
}
}
public static boolean match(String t,String s){
char[] ct=t.toCharArray();
char[] cs=s.toCharArray();
int lt=ct.length;
int ls=cs.length;
boolean[][] dp=new boolean[ls+1][lt+1];
dp[0][0]=true;
for(int i=0;i<=ls;i++){
for(int j=1;j<=lt;j++){
if(ct[j-1]=='*'){
if(i==0){
dp[i][j]=dp[i][j-1];
}else{
if(cs[i-1]=='.' || (cs[i-1]>='0'&&cs[i-1]<='9') ||
(cs[i-1]>='a'&&cs[i-1]<='z') ||(cs[i-1]>='A'&&cs[i-1]<='Z')){
dp[i][j]=dp[i-1][j] || dp[i][j-1];
}
}
}else{
if(i>0 && defs(ct[j-1],cs[i-1])){
dp[i][j]=dp[i-1][j-1];
}
}
}
}
return dp[ls][lt];
}
public static boolean defs(char t,char s){
if(t=='?') return true;
if(t>='a'&&t<='z'){
t=(char)(t-'a'+'A');
}
if(s>='a'&&s<='z'){
s=(char)(s-'a'+'A');
}
return s==t;
}
}