要求:/*
学生表:Student (Sno, Sname, Ssex , Sage, Sdept)
学号,姓名,性别,年龄,所在系 Sno为主键
课程表:Course (Cno, Cname,)
课程号,课程名 Cno为主键
学生选课表:SC (Sno, Cno, Score)
学号,课程号,成绩 Sno,Cno为主键
*/
#创建数据库:
CREATE DATABASE Stu;
使用数据库
USE Stu;
1.用SQL语句创建学生表student,定义主键,姓名不能重名,性别只能输入男或女,所在系的默认值是 “计算机”。
#创建学生表
CREATE TABLE Student(
Sno INT UNIQUE AUTO_INCREMENT PRIMARY KEY,
Sname VARCHAR(20) UNIQUE,
Ssex VARCHAR(20) CHECK(Ssex='男' OR Ssex='女') ,
Sage INT,
Sdept VARCHAR(200) DEFAULT'计算机'
)ENGINE=INNODB DEFAULT CHARSET=utf8;
#查看表的结构,验证
DESC Student;
2.修改student 表中年龄(age)字段属性,数据类型由int 改变为smallint。
ALTER TABLE Student MODIFY Sage SMALLINT;
#创建课程表
CREATE TABLE Course(
Cno INT PRIMARY KEY,
Cname VARCHAR(20)
);
#查看结构
DESC Course;
#创建选课表
CREATE TABLE Sc(
Sno INT UNIQUE ,
Cno INT,
Score VARCHAR(20),
PRIMARY KEY(Sno,Cno)
);
DESC Sc;
3.为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引,索引名为SC_INDEX 。
CREATE UNIQUE INDEX sc_index ON Sc(Sno ASC,Cno ASC);
#查询Sc表的索引情况
SHOW CREATE TABLE Sc;
4.创建一视图 stu_info,查询全体学生的姓名,性别,课程名,成绩。
CREATE VIEW stu_info
AS SELECT Student.Sname AS '姓名',Student.Ssex AS '性别',Sc.Cno AS '课程名',Sc.Score AS '成绩'
FROM Student,Course,Sc;
查看视图:
DESCRIBE stu_info;