在SQL SERVER 創建一個”學校”數據庫
mysql> create database school;
在學校數據庫中創建三張表:學生,課程,選課
學生
mysql> use school;
Database changed
mysql> CREATE TABLE student(sno VARCHAR(50),s_name VARCHAR(50) NOT NULL, s_age INT(30) NOT NULL,PRIMARY KEY (s_id));
課程
mysql> CREATE TABLE course (cno INT(10)NOT NULL,c_name VARCHAR(50) NOT NULL,teacher VARCHAR(50) NOT NULL,PRIMARY KEY (cno));
選課
mysql> CREATE TABLE studentcourse (sno INT(10)NOT NULL,cno VARCHAR(50) NOT NULL,PRIMARY KEY (sno,cno),grade INT(20));
分別為這三張表在主鍵上創建一個索引
學生
CREATE INDEX index_student ON student(Sno);
課程
CREATE INDEX index_Cno ON course(Cno);
選課
CREATE INDEX index_studentcourse ON studentcourse(Sno);
CREATE INDEX Cno ON studentcourse(Cno);
分別向這三張表中插入三條數據,要求選課表中出現的學號和課程號必須在學生和課程表中出現
學生
INSERT INTO student VALUE(1,'lilei',23);
INSERT INTO student VALUE(2,'hanmeimei',22);
INSERT INTO student VALUE(3,'yaoming',44);
課程
INSERT INTO course VALUE(1,'navigation','laowang');
INSERT INTO course VALUE(2,'English','teacher_chen');
INSERT INTO course VALUE(3,'CS','pan');
選課
INSERT INTO studentcourse VALUE(1,1,88);
INSERT INTO studentcourse VALUE(1,2,90);
INSERT INTO studentcourse VALUE(1,3,66);
INSERT INTO studentcourse VALUE(2,1,99);
INSERT INTO studentcourse VALUE(2,2,70);
INSERT INTO studentcourse VALUE(2,3,75);
INSERT INTO studentcourse VALUE(3,1,55);
INSERT INTO studentcourse VALUE(3,2,35);
INSERT INTO studentcourse VALUE(3,3,85);
檢索學習某一具體課程號課程的學生學號和成績
mysql> SELECT Cno,Sno,grade FROM studentcourse WHERE Cno=2;
檢索學習某一具體課程號課程的學生學號和姓名
mysql> SELECT s_name,student.sno,cno FROM student,studentcourse WHERE studentcourse.Sno
=student.Sno
AND studentcourse.Cno
=1;
檢索學習某一具體課程名的學生學號和姓名
SELECT c_name,student.Sno
,S_name FROM student,course,studentcourse WHERE student.Sno
=studentcourse.Sno
AND studentcourse.Cno=course.Cno
AND c_name='CS';
在學生,選課和課程三張表上創建一個視圖,視圖可顯示選修某一門課程學生數.按課程名稱分組,按學生數排降序.
CREATE VIEW coursecount(cname,studentnumber) AS SELECT c_name,COUNT(Sno) AS studentnumber FROM course,studentcourse WHERE course.cno
=studentcourse.cno
GROUP BY c_name ORDER BY studentnumber DESC;
在學生,選課和課程三張表上創建視圖,視圖可顯示選修某一門課程學生姓名,按照姓名升序. (CS課)
mysql> CREATE VIEW course_s_name(cname,sname) AS SELECT c_name,s_name FROM course,student,studentcourse WHERE student.Sno
=studentcourse.Sno
AND studentcourse.Cno
=course.Cno
AND c_name= 'cs' ORDER BY s_name;
刪除兩個視圖
mysql> DROP VIEW coursecount;
mysql> DROP VIEW course_s_name;
從學生能表里刪除一條記錄,并查看刪除的結果
DELETE FROM student WHERE Sno=2;
SELECT * FROM student;
分別刪除三張表的索引
DROP INDEX index_Cno ON course;
DROP INDEX index_student ON student;
DROP INDEX index_studentcourse ON studentcourse;
刪除三張表格
DROP TABLE student,course,studentcourse;
刪除數據庫
DROP DATABASE school;