学习数据库前有话说:
下面是我自己学习编程一些心得,本人并不是什么大神,也不是什么很厉害的角色,但是,我对自己的专业很喜爱,所以才会有自己的一些总结和看法,也许有一些和您的观点不同,欢迎和我讨论;
在这里也给一些开始学习的同行人一些建议:
1.学习数据库一定要有一个思考的过程,这些过程会让你的逻辑思维无形中提高
2.经常做一些自己的总结,或者是看书,或者是看视频来学习,都要有自己的总结
3.数据库在学习上可以说能和算法一样的重要,他也是对思维的要求很高
4.如果有时间,就常常写一些博客,分享是一种美,互相讨论是一种进步
在学习之前,你需要装一个sql的运行环境,你可以使用mysql,oracle,或者是sqlite3 SQL server2017,
关于他们的安装,可以去找一些其他博客看看,我就不进行讲解了。我用的是微软的sql sever 在微软的官网上有他的下载资源。
学习数据库,肯定是先要有数据库给我们测试,暂时不要知道下面的代码怎么写,因为我在后面的文章中会有。
-- 院系(院系号,院系名,院主任)
CREATE TABLE Departments(
Dno char(4) PRIMARY KEY,
Dname char (10),
Dheadno char (7),
-- foreign key(Dheadno) references Teachers(Tno)
);
insert into Departments
values('MA','数学学院','06001');
insert into Departments
values('CS','信工学院','05001');
-- 老师(教工号,教师名,性别,生日,职称,所在院系号)
CREATE TABLE Teachers(
Tno char(7) PRIMARY KEY,
Tname char(10) NOT NULL,
Sex char(2) CHECK(Sex='男'OR Sex='女'),
Birthday date,
Title char(6),
Dno char(4),
foreign key(Dno) references Departments(Dno)
);
insert into Teachers
values('05001','张海峰','男','1957-10-01','教授','CS');
insert into Teachers
values('05002','刘晓明','男','1969-10-01','副教授','CS');
insert into Teachers
values('05003','王梅','女','1967-10-01','副教授','CS');
insert into Teachers
values('05004','赵青山','男','1976-10-01','讲师','CS');
insert into Teachers
values('06001','朱杰','男','1952-10-01','教授','MA');
insert into Teachers
values('06002','欧阳梅','女','1959-10-01','副教授','MA');
insert into Teachers
values('06003','刘毅','男','1968-10-01','副教授','MA');
insert into Teachers
values('06004','李阳东','男','1978-10-01','讲师','MA');
-- 学生(学号,名字,性别,生日,专业名,院系号)
CREATE TABLE Students(
Sno char(9)PRIMARY KEY,
Sname char(10) NOT NULL,
Sex char(2) CHECK (Sex='男'OR Sex='女'),
Birthday date,
Speciality char(20),
Dno char(4),
foreign key(Dno) references Departments(Dno)
);
insert into Students
values('200705001','张华','男','1988-10-01','计算机','CS');
insert into Students
values('200705002','李玉','女','1989-10-01','计算机','CS');
insert into Students
values('200705003','欧阳山','男','1988-10-01','计算机','CS');
insert into Students
values('200706001','林艳','女','1988-10-01','数学','MA');
insert into Students
values('200706002','高山','男','1987-10-01','数学','MA');
insert into Students
values('200706003','王海洋','男','1988-10-01','数学','MA');
-- 课表(课程号,课程名,学分)
CREATE TABLE Courses(
Cno char(5)PRIMARY KEY,
Cname char(20) NOT NULL,
Credit SMALLINT
);
insert into Courses
values('CS101','计算科学导论',1);
insert into Courses
values('CS102','C语言',3);
insert into Courses
values('CS201','数据结构',3);
insert into Courses
values('CS301','数据库系统原理',3);
insert into Courses
values('MA101','数学分析一',3);
insert into Courses
values('MA102','高等代数',3);
insert into Courses
values('MA103','数学分析二',3);
insert into Courses
values('MA201','常微分方程',3);
insert into Courses
values('CS103','java语言',3);
insert into Courses
values('CS202','html语言',3);
-- 选课(学生学号,课程号,学生成绩)
CREATE TABLE SC(
Sno char(9),
Cno char(5),
Greade SMALLINT CHECK(Greade>=0 AND Greade<=100),
PRIMARY key(Sno,Cno),
foreign key(Sno) references Students(Sno),
foreign key(Cno) references Courses(Cno),
);
insert into SC
values('200705001','CS101',89);
insert into SC
values('200705002','CS101',92);
insert into SC
values('200705003','CS101',80);
insert into SC
values('200705001','CS103',90);
insert into SC
values('200705002','CS103',91);
insert into SC
values('200705003','CS103',83);
insert into SC
values('200705001','CS201',88);
insert into SC
values('200705002','CS201',89);
insert into SC
values('200705003','CS201',90);
insert into SC
values('200705001','CS202',87);
insert into SC
values('200705002','CS202',85);
insert into SC
values('200705001','CS301',89);
insert into SC
values('200705002','CS301',88);
insert into SC
values('200705003','CS301',85);
-- 实体教(教工号,课程号,评估得分)
CREATE TABLE Teaches (
Tno char(7),
Cno char(5),
TCscore SMALLINT,
PRIMARY key(Tno,Cno),
foreign key(Tno)references Teachers(Tno),
foreign key(Cno)references Courses(Cno)
);