数据库原理及应用实验一,二

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.课程名称 = '数据库原理及其应用';

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值