15、数据库应用

create database xscjgldata;
1.系部信息表:
create table department(deptno char(2) primary key,deptname varchar(50) not null);
insert into department values('00','生态建设与环境保护学院'),('01','园林与建筑学院'),('02','工业与设计学院'),('03','商学院'),('04','通讯与信息学院'),('05','机电学院'),('06','旅游与外语学院'),('07','汽车学院'),('08','家具学院');
2.班级表
create table class(classid char(7) primary key,classname varchar(50) not null,deptno char(2) not null,foreign key(deptno) references department(deptno) on update cascade on delete cascade);
insert into class values('04923B1','2023级物联网工程 1班','04'),('04923B2','2023级物联网工程 2班','04'),('04923B3','2023级物联网工程 3班','04'),('04923B4','2023级物联网工程 4班','04');
3.课程信息表
create table course(cid char(6) primary key,cname varchar(30) not null);
insert into course values('049001','数据库原理与技术'),('049002','软件综合开发课程'),('049003','JavaWeb程序设计'),('049004','数据结构'),('049005','Linux操作系统及应用'),('049006','中国近现代史纲要'),('049007','形势与政策'),('049008','计算机网络技术'),('049009','现代传感器技术');
4.教师信息表
create table teacher(tid char(4) primary key,tname varchar(10) not null);
insert into teacher values('0401','张三');
5.学生信息表
create table student(sid char(8) primary key,sname varchar(10) not null,classid char(7) not null,sage datetime not null,ssex enum('男','女') not null,foreign key(classid) references class(classid) on update cascade on delete cascade);
drop table student;
CREATE TABLE `student` (  `sid` char(8) NOT NULL,  `sname` varchar(10) NOT NULL,  `classid` char(7) NOT NULL,  `ssex` enum('男','女') NOT NULL,  PRIMARY KEY (`sid`),  KEY `classid` (`classid`),  CONSTRAINT `student_ibfk_1` FOREIGN KEY (`classid`) REFERENCES `class` (`classid`) ON DELETE CASCADE ON UPDATE CASCADE);
INSERT INTO `student` VALUES('20234658','李四','04923B3','男'));
6.开课信息表
create table tea_course(tid char(4) not null,cid char(6) not null,term varchar(30) not null,classid char(7) not null,primary key(tid,cid,term,classid),foreign key(tid) references teacher(tid) on update cascade on delete cascade,foreign key(cid) references course(cid) on update cascade on delete cascade,foreign key(classid) references class(classid) on update cascade on delete cascade);

7.成绩信息表
create table sc(sid char(8) not null,cid char(6) not null,score float not null,primary key(sid,cid),foreign key(sid) references student(sid) on update cascade on delete cascade,foreign key(cid) references course(cid) on update cascade on delete cascade);


8.备份数据库
C:\Windows\system32>mysqldump -u root -p xscjgldata>d:\db_bak\xscjgldata_bak.sql
9.还原数据库
mysql> create database xscjgldata2;
C:\Windows\system32>mysqldump -u root -p xscjgldata2<d:\db_bak\xscjgldata_bak.sql
C:\Windows\system32>mysqldump -u root -p xscjgldata<d:\db_bak\table_student_sc_bak.sql

select * from sc;
select * from tea_course;
select * from student;

10.视图【虚拟的表】
连接查询:
Select sc.sid as 学号,student.sname as 姓名 ,sc.cid as 课程编号,Course.cname as 课程名称,sc.score as 成绩 from sc,student,course Where sc.sid=student.sid and sc.cid=course.cid;
行转换为列显示:
SELECT sc.sid 学号,student.sname 姓名,student.classid 班级,max(case sc.cid  when '049001' then sc.score else 0 end) 数据库,max(case sc.cid  when '049002' then sc.score else 0 end) 软件综合,max(case sc.cid  when '049003' then sc.score else 0 end) javaweb,max(case sc.cid  when '049004' then sc.score else 0 end) 数据结构,max(case sc.cid  when '049005' then sc.score else 0 end) Linux,max(case sc.cid  when '049006' then sc.score else 0 end) 近现代史,max(case sc.cid  when '049007' then sc.score else 0 end) 形势与政策,max(case sc.cid  when '049008' then sc.score else 0 end) 计算机网络,max(case sc.cid  when '049009' then sc.score else 0 end) 传感器技术 FROM  sc,course,student where sc.sid=student.sid and sc.cid=course.cid group by sc.sid,student.sname,student.classid;
创建视图查询:
create view sc_view as SELECT sc.sid 学号,student.sname 姓名,student.classid 班级,max(case sc.cid  when '049001' then sc.score else 0 end) k1,max(case sc.cid  when '049002' then sc.score else 0 end) k2,max(case sc.cid  when '049003' then sc.score else 0 end) k3,max(case sc.cid  when '049004' then sc.score else 0 end) k4,max(case sc.cid  when '049005' then sc.score else 0 end) k5,max(case sc.cid  when '049006' then sc.score else 0 end) k6,max(case sc.cid  when '049007' then sc.score else 0 end) k7,max(case sc.cid  when '049008' then sc.score else 0 end) k8,max(case sc.cid  when '049009' then sc.score else 0 end) k9 FROM  sc,course,student where sc.sid=student.sid and sc.cid=course.cid group by sc.sid,student.sname,student.classid;
select * from sc_view;
11.创建远程访问的账号“student”,并分配查询sc_view视图的权限
create user student@'%' identified by'chaxun';
grant select on table xscjgldata.sc_view to student@'%';



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江西理工课堂课后实训作业

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值