单选题
1.以下哪种方式只能用于等价连接 (A)
A HASH JOIN
B NESTED LOOPS
C SORT MERGE JOIN
解析:
A 哈希连接
通常只能用于等价连接
它通过在一张表上构建哈希表,然后扫描另一张表并利用哈希值进行匹配,一般是等值条件
B 嵌套循环连接
等价连接和非等价连接均可以. 它通过内外两层循环来匹配两张表的数据, 外层循环读取一张表的每一行,内层循环遍历另一张表进行匹配,连接条件可以是各种比较条件, 包括 等号(此时是等价连接)
C 排列合并连接
2. 下面哪个语句会报错 (A)
A . ALTER SEQUENCE seq1 START WITH 1;
B. ALTER SEQUENCE seq1 NOMINVALUE;
C. ALTER SEQUENCE seq1 NOCACHE;
D. ALTER SEQUENCE seq1 MAXVALUE 90;
解释:
A 在大多数数据库中, 序列(SEQUNECE) 一旦创建, 其起始值不能通过ALTER SEQUENCE修改
B 是设置序列无最小值
C 设置序列不缓存值
D 设置序列的最大值为90
3.表T中,C1列的差异值有100万,C2列的差异值有100. 当查询下面的sql时, 关于索引的说法正确的是 SELECT COUNT(*) FROM T WHERE C1=1 AND C2=2; (B)
A . 索引(C2,C1) 比索引(C1,C2) 效率高
B. 索引(C1,C2) 比索引(C2,C1) 效率高
C. 索引(C1,C2) 和索引(C2,C1) 效率一样高
解析:
4. 下面哪个类型不是oracle支持的内部数据类型
A. FLOAT
B. INTEGER
C. CHAR
D. DATETIME
解析:
A. FLOAT oracle支持的浮点数据类型,用于存储带小数的数值
B. INTEGER oracle 支持的整数数据类型
C. CHAR oracle支持的固定长度字符数据类型
D. DATETIME 在MySQL 和 SQL Server 中是标准数据类型,存储日期和时间,
在MYSQL中的格式为YYYY-MM-DD HH:MM:SS;
ORACLE中存储日期和时间常用的是DATE和TIMESTAMP类型
5.如果只需要存储日期(比如交易日), 以下哪个类型占用的存储空间最小(B)
A. VARCHAR2
B. DATE
C. NUMBER
D. TIMESTAMP
解析:
A. VARCHAR2
-
特点:VARCHAR2 是一种可变长度的字符类型,用于存储字符串。
-
存储空间:VARCHAR2 的存储空间取决于实际存储的字符串长度。如果存储日期(如“2025-03-05”),至少需要占用 10 个字符的空间(每个字符通常占用 1 字节),加上长度信息,实际占用空间可能更大。
B. DATE
-
特点:DATE 是专门用于存储日期和时间的类型,包含年、月、日、时、分、秒。
-
存储空间:在大多数数据库系统中,DATE 类型通常占用 7 字节 的固定空间(具体实现可能因数据库而异,但通常为固定大小)。
C. NUMBER
-
特点:NUMBER 是一种数值类型,用于存储数字。
-
存储空间:NUMBER 的存储空间取决于其精度和范围。如果用 NUMBER 来存储日期(如通过序列化日期为数字),可能需要占用较大的空间(例如,存储年月日为一个数字,如 20250305,可能需要占用 4 字节或更多)。
-
适用性:NUMBER 不适合直接存储日期,因为它无法直接表示日期的结构(如年、月、日)。
D. TIMESTAMP
-
特点:TIMESTAMP 是一种更精确的日期时间类型,包含年、月、日、时、分、秒,以及小数秒(纳秒)。
-
存储空间:TIMESTAMP 通常占用 11 字节 或更多(具体取决于数据库实现),因为它需要存储更精确的时间信息。
-
适用性:虽然可以存储日期,但占用空间比 DATE 类型大,且对于只需要存储日期(如交易日)的场景,精度过高是不必要的。
6. 某会话对T表进行了一个INSERT操作, 但是还没有提交,下面说法正确的是 (D)
A. 其他会话对T表的INSERT操作将会被阻塞,直到该会话提交或回滚
B. 其他会话对T表的SELECT 操作将会被阻塞, 直到该会话提交或回滚
C. 该会话可以查询T表, 但只有提交后才能查到这些新插入的记录