问题
单项选择题
若用如下的SQL语句创建一个表S: CREATE TABLE S(S# char(16) NOT NULL; SNAME char(8) NOT NULL, SEX char(2), AGE integer) 向表S中插入如下行时,哪一行可以被插入
A.('872476', '小芳', 女, '21')
B.('854231', '小明', NULL, NULL)
C.(NULL,'小强', '男', 65)
D.('657123', NULL, '女', 20)
答案
参考答案:B
解析: SQL用CREATE TABLE语句创建基本表,其一般格式如下: CREATE TABLE<表名>(<列名><数据类型>[列级完整性约束] [,<列名><数据类型>[列级完整性约束]...] [,<表级完整性约束>]) [其他参数]; 使用SQL语句创建基本表时通常还可以定义与该表有关的完整性约束,当用户对表进行操作时,由DBMS自动检查该操作是否违背所定义的完整性约束。另外,SQL支持空值的概念,任何列可以有空值,除非在CREATE TABLE的语句列的定义中指定了NOT NULL。由题干可以知道,插入行的前两个属性不能为NULL。四个选项中,C) 和D) 在前两个属性出现了NULL,A) 的第三个属性不是字符型,故本题选B)。