15.)基于“学生-选课-课程”数据库中的 3 个关系: S(S#,SNAME,SEX,DEPARTMENT),主码是 S#3 C(C#,CNAME,TEACHER),主码是 C# SC(S#,C#,GRADE),主码是(S#,C#)。 若要查找姓名中第一个字为“王”的学生的学号和姓名,则下面列出的 SOI语句中,哪个(些)是正确的?( A、SELECT S#, SNAME FROM S WHERE SNAME=’王%' B、SELECT S#, SNAME FROM S WHERE SNAME LIKE '王%’ AC SELECT S#,SNAME FROM S WHERE SNAME LIKE’ 王_’ D、全部
时间: 2024-04-04 07:30:31 浏览: 333
正确的 SOI 语句是 A 和 B。SOI语句 A 使用了等于操作符,只会匹配姓为“王”的学生。而SOI语句 B 使用了LIKE操作符和通配符%,可以匹配姓名中以“王”开头的所有学生。SOI语句 C 使用了LIKE操作符和通配符_,只会匹配姓名中第二个字为“王”的学生,不符合要求。因此,正确选项是 A 和 B。
相关问题
在“学生—选课—课程”数据库中有如下的 3 个关系。 S(S#,SNAME,SEX,DEPARTMENT),主键是 S# C(C#,CNAME,TEACHER),主键是 C# SC(S#,C#,GRADE),主键是(S#,C#) 下列关于保持数据库完整性的叙述中,哪一个是不正确的?( )
关于保持数据库完整性的叙述中不正确的是:
- 在SC表中,S#和C#的组合必须是唯一的,这可以通过将它们作为主键来实现,以保证每个学生只能选择一次同一门课程。
因为一门课程可以有多个学生选修,因此SC表中的S#和C#并不一定是唯一的,可以有多个不同的学生选择同一门课程并获得不同的成绩。因此,SC表的主键应该是一个复合主键,包括S#和C#两个字段。
按t_student(学生表)、t_course(课程表)、t_scores(选课成绩表)、t_class(班级表)。学生信息表( t_student) 字段名 名称 数据类型 空 备注 SNo 学号 Char(20) N 主键 Sname 姓名 varchar(50) N Sex 性别 Char(2) Y class_name 班级名 Char(2) Y 2.课程表 课程表( t_course) 字段名 名称 数据类型 空 备注 CNo 课程编号 Char(10) N 主键 Cname 课程名称 varchar(50) N Credit 学分 Int Y 3.选课表 选课成绩表(scores) 字段名 名称 数据类型 空 备注 SNo 学号 Char(20) N 主键 CNo 课程号 Char(10) N 主键 grade 成绩 Int Y 4.班级表 班级表(t_class) 字段名 名称 数据类型 空 备注 class_name 部门编号 Char(2) N 主键 department 部门名称 varChar(50) N teacher 教师 varChar(20) classroom 教室 varChar(30)说明在你创建的数据库下创建四个表格: t_student(学生表)、t_course(课程表)、t_scores(选课成绩表)、t_class(班级表)。要求: (1)表名和列名必须用英文名称即附件中提供的表名和字段名。不满足此要求每个表扣2分。 (2)每个表要设置主键。没设置主键每个表扣1分。 (3)给学生表中的sex字段定义一个check约束(取值只能是‘男’ 或 ‘女’)。定义学生表的class_name字段与班级表的class_name字段为外键关系。没按要求定义约束每个扣1分。
好的,你的问题是如何在 MySQL 中创建这四个表格并满足要求?
以下是创建这四个表格的 SQL 语句,已满足要求:
1. 学生表 t_student:
```sql
CREATE TABLE t_student (
SNo CHAR(20) NOT NULL PRIMARY KEY,
Sname VARCHAR(50) NOT NULL,
Sex CHAR(2) DEFAULT NULL CHECK(Sex IN ('男', '女')),
class_name CHAR(2) DEFAULT NULL,
CONSTRAINT fk_class_name FOREIGN KEY (class_name) REFERENCES t_class (class_name)
);
```
2. 课程表 t_course:
```sql
CREATE TABLE t_course (
CNo CHAR(10) NOT NULL PRIMARY KEY,
Cname VARCHAR(50) NOT NULL,
Credit INT DEFAULT NULL
);
```
3. 选课成绩表 t_scores:
```sql
CREATE TABLE t_scores (
SNo CHAR(20) NOT NULL,
CNo CHAR(10) NOT NULL,
grade INT DEFAULT NULL,
PRIMARY KEY (SNo, CNo),
CONSTRAINT fk_SNo FOREIGN KEY (SNo) REFERENCES t_student (SNo),
CONSTRAINT fk_CNo FOREIGN KEY (CNo) REFERENCES t_course (CNo)
);
```
4. 班级表 t_class:
```sql
CREATE TABLE t_class (
class_name CHAR(2) NOT NULL PRIMARY KEY,
department VARCHAR(50) NOT NULL,
teacher VARCHAR(20) DEFAULT NULL,
classroom VARCHAR(30) DEFAULT NULL
);
```
以上是创建这四个表格的 SQL 语句,并满足了要求。
阅读全文