1. 在学生表上创建姓名列的前4个字符的降序索引sno_4_in 2. 在学生表上创建班级列的索引 3. 对课程表进行修改,增加学分列上的升序索引credit_in 4. 创建一个表t1,包含f1,f2,f3列,数据类型分别为int,char,varchar,在创建表时创建f1列的索引。 5. 删除我们4题的索引 6. 用自己的语言描述分区的功能。 7. 创建一张RANGE分区表,包含3个字段,表名及字段名自定义,第一个字段为整数类型,第二个字段为日期类型。以第一个字段为分区依据,分为4个分区。 8. 对tb_hash_blog表分区情况进行描述,分区类型是什么,分区依据是什么,分为几个区等等。 9. 创建一个学号,姓名,性别,年龄的视图view_s,按性别统计人数 10. 在学生成绩管理数据库中创建每门课程的平均成绩视图view_c_avg,查询成绩60以下的信息 11. 在学生成绩管理数据库中创建一个每个学生的平均成绩视图view_s_avg,从该视图中查询,平均成绩在85分以上的信息 12. 创建一个学号,姓名,性别,课程号,课程名称,成绩的视图view_sc1,统计每个学生修了多少们课程。 13. 通过视图view_s插入一名学生('2020001','gigi','m',22). 14. 创建课程表的视图view_c,利用该视图给每门课程加一个学分。 15. 利用视图view_c删除学分在5分以上的课程
时间: 2024-02-27 11:55:34 浏览: 125
SQL语句创建学生信息数据库表的示例实用文档.doc
1. 在学生表上创建姓名列的前4个字符的降序索引sno_4_in:
```
CREATE INDEX sno_4_in ON student (SUBSTRING(name, 1, 4)) DESC;
```
2. 在学生表上创建班级列的索引:
```
CREATE INDEX class_idx ON student (class);
```
3. 对课程表进行修改,增加学分列上的升序索引credit_in:
```
ALTER TABLE course ADD INDEX credit_in (credit ASC);
```
4. 创建一个表t1,包含f1,f2,f3列,数据类型分别为int,char,varchar,在创建表时创建f1列的索引:
```
CREATE TABLE t1 (
f1 INT,
f2 CHAR(10),
f3 VARCHAR(50),
INDEX f1_idx (f1)
);
```
5. 删除我们4题的索引:
```
DROP INDEX sno_4_in ON student;
DROP INDEX class_idx ON student;
ALTER TABLE course DROP INDEX credit_in;
DROP INDEX f1_idx ON t1;
```
6. 分区的功能可以将一个大表拆分成多个较小的表,以便更高效地管理数据,提高查询性能和可用性。分区将表按照某个规则分成多个子表,每个子表可以独立管理,查询时可以只查询特定的子表,从而提高查询效率。
7. 创建一张RANGE分区表,包含3个字段,表名及字段名自定义,第一个字段为整数类型,第二个字段为日期类型。以第一个字段为分区依据,分为4个分区:
```
CREATE TABLE partition_table (
id INT,
date_col DATE,
value VARCHAR(50),
PRIMARY KEY (id, date_col)
)
PARTITION BY RANGE (id) (
PARTITION p0 VALUES LESS THAN (1000),
PARTITION p1 VALUES LESS THAN (2000),
PARTITION p2 VALUES LESS THAN (3000),
PARTITION p3 VALUES LESS THAN MAXVALUE
);
```
8. 对tb_hash_blog表分区情况进行描述,分区类型是什么,分区依据是什么,分为几个区等等:
分区类型为HASH分区,分区依据是文章ID(article_id),分为4个分区。
9. 创建一个学号,姓名,性别,年龄的视图view_s,按性别统计人数:
```
CREATE VIEW view_s AS
SELECT sno, name, gender, age
FROM student;
SELECT gender, COUNT(*) AS count
FROM view_s
GROUP BY gender;
```
10. 在学生成绩管理数据库中创建每门课程的平均成绩视图view_c_avg,查询成绩60以下的信息:
```
CREATE VIEW view_c_avg AS
SELECT course_id, AVG(score) AS avg_score
FROM score
GROUP BY course_id;
SELECT *
FROM score
WHERE score < 60;
```
11. 在学生成绩管理数据库中创建一个每个学生的平均成绩视图view_s_avg,从该视图中查询,平均成绩在85分以上的信息:
```
CREATE VIEW view_s_avg AS
SELECT sno, AVG(score) AS avg_score
FROM score
GROUP BY sno;
SELECT *
FROM view_s_avg
WHERE avg_score > 85;
```
12. 创建一个学号,姓名,性别,课程号,课程名称,成绩的视图view_sc1,统计每个学生修了多少们课程:
```
CREATE VIEW view_sc1 AS
SELECT student.sno, student.name, student.gender, score.course_id, course.name AS course_name, score.score
FROM student
JOIN score ON student.sno = score.sno
JOIN course ON score.course_id = course.course_id;
SELECT sno, COUNT(DISTINCT course_id) AS course_count
FROM view_sc1
GROUP BY sno;
```
13. 通过视图view_s插入一名学生('2020001','gigi','m',22):
```
INSERT INTO view_s (sno, name, gender, age)
VALUES ('2020001', 'gigi', 'm', 22);
```
14. 创建课程表的视图view_c,利用该视图给每门课程加一个学分:
```
CREATE VIEW view_c AS
SELECT course_id, name, credit
FROM course;
UPDATE view_c
SET credit = credit + 1;
```
15. 利用视图view_c删除学分在5分以上的课程:
```
DELETE FROM view_c
WHERE credit > 5;
```
阅读全文