题目
定义“开关状态”列的类型为char(2),并为该列指定默认值“关”的子句是:开关状态 char(2) default '关' for 开关状态A. 正确B. 错误
定义“开关状态”列的类型为char(2),并为该列指定默认值“关”的子句是:
开关状态 char(2) default '关' for 开关状态
A. 正确
B. 错误
题目解答
答案
题目考察 SQL 列定义语法。根据要求,“开关状态”列应定义为:
```sql
`开关状态` char(2) DEFAULT '关'
```
题目中给出的子句“开关状态 char(2) default '关' for 开关状态”存在以下问题:
1. 列名“开关状态”未使用反引号 `` ` `` 包裹(若为中文或含空格)。
2. 多余的 `for 开关状态` 不符合语法规范。
因此,该子句不符合 SQL 标准,是错误的。
答案:错误。
解析
本题考查 SQL 中列定义的语法知识。解题思路是依据 SQL 标准的列定义语法规则,来判断所给的列定义子句是否正确。
在 SQL 里,当定义一个列时,若列名是中文或者包含空格等特殊字符,需要用反引号 ` 把列名包裹起来,以避免语法错误。同时,定义列的默认值时,使用 DEFAULT 关键字,其标准语法格式为 列名 数据类型 DEFAULT 默认值,并不存在 for 列名 这样的语法结构。
对于题目中给出的子句“开关状态 char(2) default '关' for 开关状态”:
- 列名“开关状态”是中文,按照 SQL 语法规范,应该使用反引号
`包裹,即写成`开关状态`,而题目中未进行包裹,这不符合语法要求。 - 子句里出现了多余的
for 开关状态,在标准的 SQL 列定义语法中并没有这样的结构,所以这也是不符合语法规范的。
综上,该子句不符合 SQL 标准,是错误的。