mysql在student表和score表上创建一个名为stu_score的视图。视图中保留18级的女生的学号、姓名、电话、课程号和结业成绩。
时间: 2024-02-01 07:17:07 浏览: 26
可以使用以下SQL语句来创建stu_score视图:
```sql
CREATE VIEW stu_score AS
SELECT s.sid, s.sname, s.tel, sc.cid, sc.score
FROM student s JOIN score sc
ON s.sid = sc.sid
WHERE s.sid LIKE '18%' AND s.gender = '女';
```
这个视图会将student表和score表连接起来,只保留18级女生的学号、姓名、电话、课程号和结业成绩。你可以使用以下语句来查看stu_score视图的内容:
```sql
SELECT * FROM stu_score;
```
注意,视图并不是一张实际的表,而是一个虚拟表。因此,当你查询stu_score视图的时候,实际上是在查询student表和score表的特定子集。如果你对视图进行修改,实际上是在修改底层的表。
相关问题
1. 为student表的phone列上建立一个降序普通索引phone_idx。 2. 在score表的s_no和c_no列上建立一个复合索引stu_cour_idx。 3. 在course表的c_name,t_no列上建立一个唯一性索引 cname_idx。 4. 删除teacher表的mark索引。 5. 利用alter table语句删除course表的cname_idx索引。 6. 在student表和score表上创建一个名为stu_score的视图。视图中保留18级的女生的学号、姓名、电话、课程号和结业成绩。
好的,我已经记录下了您的问题。以下是对每个问题的回答:
1. 为student表的phone列上建立一个降序普通索引phone_idx:
```
CREATE INDEX phone_idx ON student(phone DESC);
```
2. 在score表的s_no和c_no列上建立一个复合索引stu_cour_idx:
```
CREATE INDEX stu_cour_idx ON score(s_no, c_no);
```
3. 在course表的c_name,t_no列上建立一个唯一性索引cname_idx:
```
CREATE UNIQUE INDEX cname_idx ON course(c_name, t_no);
```
4. 删除teacher表的mark索引:
```
DROP INDEX mark ON teacher;
```
5. 利用alter table语句删除course表的cname_idx索引:
```
ALTER TABLE course DROP INDEX cname_idx;
```
6. 在student表和score表上创建一个名为stu_score的视图。视图中保留18级的女生的学号、姓名、电话、课程号和结业成绩:
```
CREATE VIEW stu_score AS
SELECT s.s_no, s.s_name, s.phone, sc.c_no, sc.score
FROM student s, score sc
WHERE s.s_no = sc.s_no AND s.s_no LIKE '18%' AND s.gender = '女';
```
创建一个表名为stu_score的表,包含字段学号,姓名,专业课成绩
好的,您可以使用以下的 SQL 语句来创建这个表:
```
CREATE TABLE stu_score (
id INT PRIMARY KEY AUTO_INCREMENT,
stu_id INT NOT NULL,
name VARCHAR(20) NOT NULL,
major_score FLOAT NOT NULL,
FOREIGN KEY (stu_id) REFERENCES stu(id)
);
```
其中,id 字段是自增长的主键,确保每个成绩都有唯一的标识。stu_id 是学生的学号,它是一个外键,引用了 stu 表中的 id 字段。name 对应了学生的姓名。major_score 对应了学生的专业课成绩。请根据您的实际需求,修改字段的名称和数据类型。