# Exam PingCAP Certified SQL Developer (Sample) TiDB v6.x

201.1: ~15%
201.2: ~30%
201.3: ~30%
201.4: ~20%
201.5: ~5%

### TiDB 的 MVCC 依赖以下哪个(些)技术？(多选) [201.1]
+ 选项
  + A. 快照
  + B. Raft 算法
  + C. 在 TiKV 的 Key/Value Pair 的 Key 上加入版本号
  + D. Past image

### JOIN Revisit [201.2]
+ SELECT ... FROM ... JOIN ... ON <join_condition> WHERE <condition>
+ SELECT ... FROM ... JOIN ... ON <join_condition> AND <condition>  

### 在什么情况下，以 BIGINT 数据类型 为 Primary Key 的表，会具有 `_tidb_rowid` 字段? [201.3]
+ 选项: 
  + A. 这种情况不可能发生
  + B. TiDB 中的每个表都有 `_tidb_rowid` 字段
  + C. Priamry key 被声明为 NonClustered
  + D. 无正确答案

### 在任何情况下都应该尽量使用 Prepared Statement。[201.4-Java]
+ 选项:
  + A. True
  + B. False

### 以下所有语句均成功执行, 最后的 SELECT 语句能否返回被 INSERT 语句插入的行? [201.3]
```
BEGIN;
INSERT INTO test.u1 VALUES (100);
BEGIN;
ROLLBACK;
SELECT * FROM test.u1;
```

### 您正在为一个银行系统设计表结构，您将选择哪种数值数据类型来存储用户账户余额？[201.2]
+ 选项
  + A. BIGINT
  + B. DECIMAL
  + C. FLOAT
  + D. DOUBLE

### LIKE 和 RLIKE 都能利用到 TiKV 表达式下推。[201.2]
+ 选项
  + A. True
  + B. False

### 以下查询是无法成功执行的, 这个描述是否正确? [201.2] 
```
tidb> DESC universe.planets;
+-----------------------+---------------+------+------+---------+-------+
| Field                 | Type          | Null | Key  | Default | Extra |
+-----------------------+---------------+------+------+---------+-------+
| id                    | bigint(20)    | NO   | PRI  | NULL    |       |
| name                  | char(20)      | NO   | MUL  |         |       |
+-----------------------+---------------+------+------+---------+-------+

tidb> DESC universe.moons;
+-----------+---------------+------+------+---------+-------+
| Field     | Type          | Null | Key  | Default | Extra |
+-----------+---------------+------+------+---------+-------+
| id        | bigint(20)    | NO   | PRI  | NULL    |       |
| name      | char(20)      | NO   | MUL  | NULL    |       |
+-----------+---------------+------+------+---------+-------+
```
```
SELECT name from universe.planets p join universe.moons m WHERE p.id = m.planet_id;
```
+ 选项
  + A. True
  + B. False

### 查询 `SELECT now() WHERE null = null` 它返回的结果是? [201.2]
+ 选项
  + A. 错误
  + B. 警告，并且返回空结果
  + C. 系统当前 TIMESTAMP
  + D. 返回空结果
  + E. 系统当前 DATETIME

### 以下哪个 CREATE TABLE 属性能够缓解 Primary Key 在 TiKV Region 上的写入热点问题？ [201.3]
+ 选项
  + A. LAST_INSERT_ID
  + B. AUTO_RANDOM
  + C. AUTO_INCREMENT
  + D. AUTO_SHARD

### 表 STUDENTS 没有更新。以下 SQL 语句能确保反复执行后输出结果集顺序不变的是? (选择所有答案) [201.2]
+ 选项
  + A. `SELECT name, _tidb_rowid FROM students WHERE score < 60;`
  + B. `SELECT name, _tidb_rowid FROM students WHERE score < 60 ORDER BY name;`
  + C. `SELECT name, _tidb_rowid FROM students WHERE score < 60 ORDER BY _tidb_rowid;`
  + D. `SELECT name, _tidb_rowid FROM students WHERE score < 60 LIMIT 3;`
  + E. `SELECT name, _tidb_rowid FROM students WHERE score < 60 ORDER BY name, _tidb_rowid;`

### 以下哪种方式可用来声明最长 9 位数的整数? [201.2]
+ 选项
  + A. SMALLINT
  + B. INT
  + C. INT(9)
  + D. BIGINT(9)
  + E. 无正确答案

### 查询 `SELECT 1.1E0 + 2.2E0 = 3.3E0` 的输出是? [201.2]
+ 选项
  + A. 可能是 0
  + B. 一定是 1
  + C. 会警告
  + D. 会报错

### 当 Collation 是 utf8mb4_general_ci 时, 以下哪个答案是升序排列 A,B,C,a,b,c,1,2,3,+ 的正确结果? [201.2]
+ 选项
  + A. 1 2 3 + A a B b C c
  + B. a A b B c C 1 2 3 + 
  + C. 1 2 3 A a b B c C +
  + D. + 1 2 3 a A B b C c

### SQL 语句 `SELECT NULL = NULL, ' ' = '   '` 的返回是？（注意观察空格）[201.2]
+ 选项
  + A. 0, 0
  + B. 1, 1
  + C. 1, 0
  + D. NULL, 1

### TiDB 支持以下哪些事务隔离级别? (选择所有正确答案) [201.3]
+ 选项
  + A. Read Committed
  + B. Repeatable Read
  + C. Phantom Read
  + D. Serializable
