在给定的 SQL 语句中,定义了一个名为 `Student` 的基本表,其结构如下:
- `Sno CHAR(4) PRIMARY KEY`: 学号,字符类型,长度为 4,作为主键,不能为 NULL 且必须唯一。
- `Sname CHAR(8) NOT NULL`: 姓名,字符类型,长度为 8,不能为空。
- `Sex VARCHAR(10)`: 性别,可变长度字符类型,最长 10 个字符,可以为 NULL。
- `Sborth DATE`: 出生日期,日期类型,可以为 NULL。
我们逐一分析每个选项:
A: `'5021','刘祥',男,1990-12-30 12:00:00`
- `Sno` 为 `'5021'`,符合主键要求。
- `Sname` 为 `'刘祥'`,符合非空要求。
- `Sex` 为 `男`,可以为 NULL,因此没有问题。
- `Sborth` 为 `1990-12-30 12:00:00`,虽然时间部分会被忽略,但符合 DATE 类型。
- 该选项符合所有约束条件,可以插入。
B: `NULL,'刘祥',NULL,’1990-12-30 12:00:00’`
- `Sno` 为 `NULL`,违反了主键不能为 NULL 的约束。
- 该选项不符合主键约束,不能插入。
C: `'5021 ',NULL,男,’1990-12-30 12:00:00’`
- `Sname` 为 `NULL`,违反了非空约束。
- 该选项不符合非空约束,不能插入。
D: `'5021','刘祥',NULL,’1990-12-30 12:00:00’`
- `Sno` 为 `'5021'`,符合主键要求。
- `Sname` 为 `'刘祥'`,符合非空要求。
- `Sex` 为 `NULL`,符合可以为 NULL 的约束。
- `Sborth` 为 `1990-12-30 12:00:00`,符合 DATE 类型。
- 该选项符合所有约束条件,可以插入。
综上所述,选项 A 和 D 都可以插入到表中。