MySQL实验04

SQL创建

CREATE SCHEMA list;
USE list;
CREATE TABLE Student(
Sno CHAR(9) PRIMARY KEY,
Sname CHAR(20)UNIQUE,
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20));

TABLE Student

CREATE TABLE Course(
Cno CHAR(4)PRIMARY KEY,
Cname CHAR(40)NOT NULL,
Cpno CHAR(4),
Ccredit SMALLINT,
FOREIGN KEY(Cpno)REFERENCES Course(Cno));

TABLE Course

CREATE TABLE SC(
Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT,
PRIMARY KEY (Sno,Cno),
FOREIGN KEY(Sno)REFERENCES Student(Sno),
FOREIGN KEY(Cno)REFERENCES Course(Cno));

在这里插入图片描述

INSERT INTO Student VALUES
('202300001','蔡徐坤','男',20,'CS'),
('202300002','谷爱凌','女',11,'CS'),
('202300003','马嘉祺','男',23,'MA'),
('202300004','何同学','女',19,'IS'),
('202300005','小黑子','男',23,'MA');

在这里插入图片描述

INSERT INTO Course VALUES
('1','高等数学',NULL,4),
('2','C语言',NULL,2),
('3','数字电路',NULL,4),
('4','模拟电路',NULL,3),
('5','STM32',NULL,1),
('6','汇编语言',NULL,5),
('7','数据结构',NULL,3);

在这里插入图片描述

INSERT INTO sc VALUES('202300001','1',92);
INSERT INTO sc VALUES('202300001','2',85);
INSERT INTO sc VALUES('202300001','3',88);

INSERT INTO sc VALUES('202300002','1',92);
INSERT INTO sc VALUES('202300002','2',90);
INSERT INTO sc VALUES('202300002','3',80);

INSERT INTO sc VALUES('202300003','1',80);
INSERT INTO sc VALUES('202300003','2',89);
INSERT INTO sc VALUES('202300003','3',93);

INSERT INTO sc VALUES('202300004','1',85);
INSERT INTO sc VALUES('202300004','2',60);
INSERT INTO sc VALUES('202300004','3',59);

INSERT INTO sc VALUES('202300005','1',53);
INSERT INTO sc VALUES('202300005','2',77);
INSERT INTO sc VALUES('202300005','3',99);

在这里插入图片描述

ALTER TABLE Student MODIFY COLUMN Sage INT;
ALTER TABLE Course ADD UNIQUE(Cname);

在这里插入图片描述

UPDATE Course SET Cpno='5'WHERE Cno='1';
UPDATE Course SET Cpno='1'WHERE Cno='3';
UPDATE Course SET Cpno='6'WHERE Cno='4';
UPDATE Course SET Cpno='7'WHERE Cno='5';

在这里插入图片描述

ALTER TABLE Student ADD S_enterance DATE;

下三表在MYSQL中显示不全,故用SQLyog展示

CREATE UNIQUE INDEX stusno ON student(sno);
SHOW INDEX FROM student;

在这里插入图片描述

CREATE UNIQUE INDEX coucno ON course (cno);
SHOW INDEX FROM course;

在这里插入图片描述

CREATE UNIQUE INDEX scno ON sc(sno ASC,cno DESC);
SHOW INDEX FROM sc;

在这里插入图片描述

SQL查询

SELECT Sno,Sname FROM Student;

在这里插入图片描述

SELECT Sname,Sno,Sdept FROM Student;

在这里插入图片描述

SELECT *FROM student;

在这里插入图片描述

SELECT  Sno,Sname,Ssex,Sage,Sdept FROM Student;

在这里插入图片描述

SELECT Sname,2014-Sage FROM student;

在这里插入图片描述

SELECT Sname,'Year of Birth:',2023-Sage,LOWER(Sdept)FROM student;

在这里插入图片描述

SELECT DISTINCT Sno FROM sc;

在这里插入图片描述

SELECT Sname FROM Student WHERE Sdept='CS';

在这里插入图片描述

SELECT Sname,Sage FROM Student WHERE Sage<20;

在这里插入图片描述

SELECT DISTINCT Sno FROM SC WHERE Grade<60;

在这里插入图片描述

SELECT Sname,Sdept,Sage FROM Student WHERE Sage BETWEEN 20 AND 23;

在这里插入图片描述

SELECT Sname,Sdept,Sage FROM Student WHERE Sage NOT BETWEEN 20 AND 23;

在这里插入图片描述

SELECT Sname,Sage FROM student WHERE Sdept IN('CS','MA','IS');

在这里插入图片描述

SELECT Sname,Ssex FROM Student WHERE Sdept NOT IN('CS','MA','IS');

在这里插入图片描述

SELECT *FROM Student WHERE Sno LIKE 202300001;

在这里插入图片描述

SELECT Sname,Sno,Ssex FROM Student WHERE Sname LIKE'谷%';

在这里插入图片描述

SELECT Sno,Grade FROM SC WHERE Cno='3'ORDER BY Grade DESC;

在这里插入图片描述

SELECT COUNT(*)FROM Student;

在这里插入图片描述

SELECT AVG (Grade) FROM SC WHERE Cno='1';

在这里插入图片描述

SELECT MAX(Grade)FROM SC WHERE Cno='1';

在这里插入图片描述

SELECT Sno,AVG(Grade)FROM SC GROUP BY Sno HAVING AVG(Grade)>=90;

在这里插入图片描述

select student.sno,sname,ssex,sage,sdept,cno,grade
from student,sc
where  student.sno;

在这里插入图片描述

select student.sno,sname
from student,sc
where student.sno=sc.sno and sc.cno='2'and sc.grade>90;

在这里插入图片描述

select first.cname,second.cname from course first,course second where first.cpno=second.cno;

在这里插入图片描述

select first.cno,second.cpno
from course first,course second
where first.cpno=second.cno;

在这里插入图片描述

--左外连接
select student.sno,sname,ssex,sage,sdept,cno,grade
from Student LEFT OUTER JOIN SC ON (Student.Sno=Sc.Sno);

在这里插入图片描述

--右外连接
select student.sno,sname,ssex,sage,sdept,cno,grade
from Student RIGHT OUTER JOIN SC ON (Student.Sno=Sc.Sno);

在这里插入图片描述

--right
select course.cno,cname,cpno,ccredit,sc.sno,sc.cno,Grade
from course RIGHT OUTER JOIN SC ON (course.cno=SC.cno);

在这里插入图片描述

--left
select course.cno,cname,cpno,ccredit,sc.sno,sc.cno,Grade 
from course LEFT OUTER JOIN SC ON (course.cno=SC.cno);

在这里插入图片描述

select student.sno,sname,cname,Grade
 from student,sc,Course
 Where student.sno=sc.sno and sc.cno=course.cno;

在这里插入图片描述

Select Sno,Sname 
FROM Student 
WHERE Sno IN 
(SELECT Sno 
FROM SC 
WHERE Cno IN 
(SELECT Cno 
FROM Course 
WHERE Cname='高等数学'));

在这里插入图片描述

SELECT Sname,Sage
FROM Student
WHERE Sage>ALL
(SELECT Sage
FROM Student
WHERE Sdept='CS')
AND Sdept<>'CS';

在这里插入图片描述

SELECT Sname
FROM Student
WHERE EXISTS
(SELECT *FROM SC
WHERE Sno-Student.Sno AND Cno='1');

在这里插入图片描述

SELECT *FROM Student
WHERE Sdept='CS'
UNION
SELECT*
FROM Student;

在这里插入图片描述

SELECT Sno
FROM SC
WHERE Cno='1'
UNION
SELECT Sno
FROM SC
WHERE Cno='2';

在这里插入图片描述

SELECT *
FROM Student
WHERE Sdept='CS'INTERSECT
SELECT *
FROM Student
WHERE Sage<=19;
SELECT *
FROM Student
WHERE Sdept='CS' AND Sage<=19;

在这里插入图片描述

SELECT Student.sname,SC.Sno,SC.Cno   
FROM Student   
INNER JOIN SC ON Student.Sno = SC.Sno   
INNER JOIN  ( SELECT Sno, AVG(Grade) as avg_grade    
FROM SC GROUP BY Sno )
AS Avg_SC ON  SC.Sno = Avg_SC.Sno   
WHERE  SC.Grade >= Avg_SC.avg_grade;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值