文章目录
1.如下SQL语句中,(D)可能返回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 都可能
思路:count(*)一定可以返回数值,如果是表中没有数据就返回0;max返回null可能的情况有两种:其一是表中没有数据,还有就是字段的值全部都是null;concat是字符串拼接的函数,因为数据库中字符串拼接不能使用+,如果拼接的其中一个字符串是null,结果就是null
2. 在Sql server中,以下哪一句从表TABLE_NAME中提取前10条记录(B)
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
思路:top是SQL server中的关键字,用于求前n条数据;语法:select top n 查询的字段 from…
3.电话号码表t_phonebook中含有100万条数据,其中号码字段PhoneNo上创建了唯一索引,且电话号码全部由数字组成,要统计号码头为321的电话号码的数量,下面写法执行速度最慢的是(C)
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 都一样快
思路:phoneno是数字组成,使用的是数值数据类型,和字符串可以比较,但是会进行类型转化,可以使用索引;模糊匹配,最开始是321的匹配,可以使用索引;使用函数就不会再使用索引,就会全表扫描,函数本身的执行也是需要耗时的