如下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
在关系表中,属性值必须是另一个表主键的有效值或空值,这样的属性是( )
A. 外键
B. 候选键
C. 主键
答案:A
下列关于数据库特点的说法中正确的是( )
A. 数据能共享且独立性高
B. 数据能共享但数据冗余很高
C. 能保证数据完整性但降低了安全性
D. 数据独立性高但不能实现共享
答案:A
在Sql server中,以下哪一句从表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
查找 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
数据库有一个试卷表,希望找出试卷平均得分小于 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
电话号码表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. 0个或1个字符
B. 1个以上的字符(包含1)
C. 0个以上的字符(包含0)
答案:C
数据库事务的 4 个特性是:原子性、一致性、()、隔离性。
A. 只读性
B. 封装性
C. 持续性
D. 恢复性
答案:C
以下不是关系型数据库管理系统(RDBMS)的是()
A. mysql
B. postgreSql
C. oracle
D. hadoop
答案:D
统计每个月兔子的总数
有一种兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子。
例子:假设一只兔子第3个月出生,那么它第5个月开始会每个月生一只兔子。
一月的时候有一只兔子,假如兔子都不死,问第n个月的兔子总数为多少?
数据范围:输入满足:1<=n<=31
输入描述:输入一个int型整数表示第n个月
输出描述:输出对应的兔子总数
输入:3
输出:2
方法1:
public class Main1 {
//统计每个月兔子的总数
public static int find(int n){
if (n==1 || n==2){
return 1;
}
return find(n-1)+find(n-2);
}
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int count=find(n);
System.out.println(count);
}
}
方法2:
public class Main2 {
//统计每个月兔子的总数
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
while (scanner.hasNext()){
int m=scanner.nextInt();
System.out.println(num(m));
}
}
public static int num(int m){
int frist=1;
int second=1;
int num=0;
for (int i = 3; i <= m; i++) {
num=frist+second;
frist=second;
second=num;
}
return num;
}
}
字符串通配符
在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。
要求: 实现如下2个通配符:
*:匹配0个或以上的字符(能被*和?匹配的字符仅由英文字母和数字0到9组成)着重注意一下!!
?:匹配1个字符 (能被*和?匹配的字符仅由英文字母和数字0到9组成)
注意:匹配时不区分大小写。
输入: 通配符表达式; 一组字符串。
输出: 返回不区分大小写的匹配结果,匹配成功输出true,匹配失败输出false
字符串长度:1<=length<=100
进阶:时间复杂度:O(N^2) ,空间复杂度:O(N)
输入描述:先输入一个带有通配符的字符串,再输入一个需要匹配的字符串
输出描述:返回不区分大小写的匹配结果,匹配成功输出true,匹配失败输出false
输入 |
Te?t*.* |
z |
pq |
**Z |
?*Bc? |
H*?*a |
|
|
Txt12.xls |
zz |
ppqq |
0QZz |
abcd |
H#a |
|
输出 |
false |
false |
false |
true |
true |
false |
|
注意: 能被*和?匹配的字符仅由英文字母和数字0到9组成,且匹配时不区分大小写。
import java.util.Scanner;
//字符串通配符
public class Main21 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
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] >= 'A' &&
cs[i-1]<='Z')||(cs[i-1] >= 'a' && cs[i-1]<='z')||(cs[i-1] >= '0'
&& cs[i-1]<='9')){
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' && t<='z'){
s=(char)(s-'a'+'A');
}
return s==t;
}
}