五、MySQL---练习3(索引视图)

发布时间:2024年01月19日

五、MySQL---MySQL练习3(索引视图)

素材:
1.学生表:Student (Sno, Sname, Ssex , Sage, Sdept)
学号,姓名,性别,年龄,所在系 Sno为主键
2.课程表:Course (Cno, Cname)
课程号,课程名 Cno为主键
3.学生选课表:SC (Sno, Cno, Score)
学号,课程号,成绩 Sno,Cno为主键
题目:

1.用SQL语句创建学生表student,定义主键,姓名不能重名,性别只能输入男或女,所在系的默认值是 “计算机”。
2.修改student 表中年龄(age)字段属性,数据类型由int 改变为smallint。
3.为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引,索引名为SC_INDEX 。
4.创建一视图 stu_info,查询全体学生的姓名,性别,课程名,成绩。

解题:

1.用SQL语句创建学生表student,定义主键,姓名不能重名,性别只能输入男或女,所在系的默认值是 “计算机”。

mysql> CREATE TABLE student(
    -> sno int primary key auto_increment,
    -> Sname varchar(50) not null unique,
    -> Ssex varchar(20) check(Ssex='男' or Ssex='女'),
    -> Sage int,
    -> Sdept varchar(50) default '计算机');
Query OK, 0 rows affected (0.07 sec)

在这里插入图片描述

2.修改student 表中年龄(age)字段属性,数据类型由int 改变为smallint。

mysql> alter table student modify sage smallint;
Query OK, 0 rows affected (0.12 sec)
Records: 0  Duplicates: 0  Warnings: 0

在这里插入图片描述
3.为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引,索引名为SC_INDEX 。
首先创建课程表和学生选课表

课程表:
mysql> create table course(
    -> cno varchar(20) primary key,
    -> cname varchar(20)
    -> );
Query OK, 0 rows affected (0.03 sec)
学生选课表:
mysql> create table sc(
    -> sno varchar(20),
    -> cno varchar(20) primary key,
    -> score varchar(30)
    -> );
Query OK, 0 rows affected (0.03 sec)

然后创建索引并且查看索引:

mysql> create unique index SC_INDEX on sc(sno asc,cno asc);

在这里插入图片描述

4.创建一视图 stu_info,查询全体学生的姓名,性别,课程名,成绩。

mysql> create view stu_info
    -> as select sname,ssex,cname,score from student,course,sc
    -> where student.sno=sc.sno and sc.cno=course.cno;
Query OK, 0 rows affected (0.01 sec)

在这里插入图片描述

文章来源:https://blog.csdn.net/M372109150/article/details/135635654
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。