CREATE DATABASE studentsdb;
use studentsdb;
create table student_info(
学号 CHAR(4) PRIMARY KEY,
姓名 CHAR(8) NOT NULL,
性别 CHAR(2),
出生日期 DATE,
家庭住址 VARCHAR(50)
);
desc student_info;
create table curriculum(
课程编号 CHAR(4) PRIMARY KEY,
课程名称 VARCHAR(50),
学分 INT
);
desc curriculum;
create table grade(
学号 CHAR(4),
课程编号 CHAR(4),
PRIMARY KEY(学号,课程编号),
分数 INT
);
desc grade;
INSERT INTO student_info(学号,姓名,性别,出生日期,家庭住址)
VALUES('0001','张青平','男','2000-10-01','阿凡达1号'),
('0002','刘东阳','男','1998-12-09','阿凡达2号'),
('0003','马晓夏','女','1995-05-12','阿凡达3号'),
('0004','钱忠理','男','1994-09-23','阿凡达4号'),
('0005','孙海洋','男','1995-04-03','阿凡达5号'),
('0006','郭小斌','男','1997-11-10','阿凡达6号'),
('0007','肖月玲','女','1996-12-07','阿凡达7号'),
('0008','张玲珑','女','1997-12-24','阿凡达8号');
INSERT INTO curriculum(课程编号,课程名称,学分)
VALUES('0001','计算机应用基础',2),
('0002','C语言程序设计',2),
('0003','数据库原理及应用',2),
('0004','英语',4),
('0005','离散数学',4);
INSERT INTO grade(学号,课程编号,分数)
VALUES('0001','0001',80),
('0001','0002',91),
('0001','0003',88),
('0001','0004',85),
('0001','0005',77),
('0002','0001',73),
('0002','0002',68),
('0002','0003',80),
('0002','0004',79),
('0002','0005',73),
('0003','0001',84),
('0003','0002',92),
('0003','0003',81),
('0003','0004',82),
('0003','0005',75);
ALTER TABLE curriculum
MODIFY 课程名称 VARCHAR(50) NULL;
ALTER TABLE grade
MODIFY 分数 decimal(5,2);
ALTER TABLE student_info
ADD 备注 VARCHAR(50);
CREATE DATABASE studb;
use studb;
create table studentsdb
SELECT * FROM studentsdb,student_info;
DELETE FROM studentsdb WHERE 学号='0004';
UPDATE stu SET 家庭住址='阿凡达2号' WHERE='0002';
DELETE TABLE studentsdb
DROP 备注;
SELECT * FROM studentsdb;
DROP TABLE studentsdb;
SELECT * FROM studentsdb;
DROP DATABASE studb;
-- 实验二
use studentsdb;
SELECT 学号,姓名,出生日期 FROM student_info;
SELECT 姓名,家庭住址 FROM student_info
WHERE 学号='0002';
SELECT 姓名,出生日期 FROM student_info
WHERE 性别='女' and (出生日期>1995);
SELECT 学号,课程编号,分数 FROM grade
WHERE 分数>70 and 分数<80;
SELECT AVG(分数) FROM grade
WHERE 课程编号='0002';
SELECT COUNT(学号),COUNT(分数) FROM grade
WHERE 课程编号='0003' ;
SELECT 姓名,出生日期 FROM student_info
ORDER BY 出生日期 DESC;
-- ORDER BY是降序加了DESC以后才是降序
SELECT 学号,姓名 FROM student_info
WHERE 姓名 like '张%';-- "%是某某某某。。。。"," __是某"
SELECT 学号,姓名,性别,出生日期,家庭住址 FROM student_info
ORDER BY 性别,学号 DESC;
select * from stu.student_info
ORDER BY 性别,学号 desc;
select 学号,avg(分数) as 平均分数 from grade
GROUP BY 学号;
(SELECT 学号, 姓名 FROM student_info WHERE 姓名 LIKE '刘%')
UNION
(SELECT 学号, 姓名 FROM student_info WHERE 姓名 LIKE '张%');
SELECT 姓名, 出生日期
FROM student_info
WHERE 性别 = (
SELECT 性别
FROM student_info
WHERE 姓名 = '刘东阳'
);
SELECT 学号, 姓名, 性别
FROM student_info
WHERE 学号 IN (
SELECT 学号
FROM grade
WHERE 课程编号 IN ('0002', '0005')
);
SELECT 课程编号,分数
FROM grade
where 学号 = '0001'
and 分数 > any (
select min(分数)
from grade
where 学号 = '0002'
);
SELECT 课程编号,分数
FROM grade
where 学号 = '0001'
and 分数 > all (
select max(分数)
from grade
where 学号 = '0002'
);
SELECT si.姓名, es.分数
FROM student_info si
JOIN grade es ON si.学号 = es.学号
WHERE es.分数 BETWEEN 80 AND 90;
SELECT si.学号, si.姓名, es.分数
FROM student_info si
INNER JOIN grade es ON si.学号 = es.学号
INNER JOIN curriculum c ON es.课程编号 = c.课程编号
WHERE c.课程名称 = '数据库原理及其应用';
数据库原理及应用实验一,二
于 2024-05-17 09:50:56 首次发布