本文为看了一整天的教学视频而一时兴起的笔记记录,简要记录知识要点,用于日后的考试复习,并练习一下markdown语言的使用。顺便一提,markdown语言真的是很帅的一门笔记语言!
数据库的建立与修改
建立,删除数据库:
-
使用
create
关键字建立某数据库,或者建立某个表格,之后使用use
关键字引用这块数据库 -
使用
drop
关键字删除数据库 -
primary key
将某键设定为主键,可以设定多个 -
foreign key
将某键设定为外键,与其他表格的主键链接
相关sql
指令集如下:
drop database stuinfo--使用drop关键字删除数据库
create database stuinfo
use stuinfo
create table major(
mno int primary key,--把mno设定为int类型的主键
mname varchar(30)
)
create table stu(
sno varchar(13) primary key,
sname varchar(30) not null,--加了个not null约束
age int ,
sex bit,
mno int,
foreign key(mno) references major(mno)--使用foreign key建立外键
)
create table cou(
cno varchar(13) primary key,
cname varchar(30) not null,
ctime int,
ccredit decimal(5,2)
)
create table sc(
cno varchar(13),
sno varchar(13),
grade decimal(5,2),
primary key(cno,sno),--两列一同构成一个主键
foreign key(cno) references cou(cno),--构成主键的每一列分别是外键
foreign key(sno) references stu(sno),
)
最后得到的参考表格格式如下所示,该表将用于后续笔记的应用句式举例,较为重要:
sc
表:是学生和课程的联系,表明每名学生学了什么课,成绩如何
cno | sno | grade |
---|---|---|
major
表:陈述各个专业号及名字
mno | mname |
---|---|
cou
表:各个课程的编号,名字,学时和学分
cno | cname | ctime | ccredit |
---|---|---|---|
stu
表:学生的基础信息
sno | sname | age | sex | mno |
---|---|---|---|---|
数据库表格内容的增删改
insert into–数据插入
使用insert into
关键词对某些列进行插入,有两种表示方式:
--方式一,指定行进行插入
insert into major(mno,mname) values(1,"计算机科学技术")
--该方法适合在只知道部分列值的时候进行数据插入,此时缺省的列自动填充为NULL(主键不能为空!)
在预先知道整个表格结构的情况下,也可以直接全插入,一次插入一整行,如下:
--方式二:省去列的括号,直接插数据
insert into cou values('20201','C语言',32,5);
--该方法括号内的数据不允许有缺省
delete from–数据删除
使用delete from
来删除某一行的数据元组,用where来限定
delete from sc where sno='2020005'--删除某个学生的数据
update–数据更新修改
update xx set +新内容+where
update stu set mno=null where mno=1
需要注意的点:欲修改表格1的键值,如果该键还是表格2的外键,则必须先把引用了这个键的值置为null,才能进行表格1的值修改,否则二者绑定,无法修改。
相关sql
指令集如下
select * from major
insert into major(mno,mname) values(1,'计算机科学与技术');
insert into major(mno,mname) values(2,'软件工程');
insert into major(mno,mname) values(3,'网络工程');
insert into major(mno,mname) values(4,'智能科学与技术');
select * from stu
insert into stu values('2020001','小一',18,0,1);
insert into stu values('2020002','小二',18,1,1);
insert into stu values('2020003','小四',18,1,1);
insert into stu values('2020004','小五',18,1,1);
insert into stu values('2020005','小六',18,0,2);
insert into stu values('2020006','小七',18,1,2);
insert into stu values('2020007','小八',18,0,2);
insert into stu values('2020008','小九',18,1,2);
insert into stu values('2020009','小十',19,0,3);
insert into stu values('20200010','小十',20,0,3);
insert into stu values('20200011','小快',19,0,3);
insert into stu values('20200012','小冬',21,0,3);
insert into stu values('20200013','小宇',19,0,null);
insert into stu values('20200014','小点',19,0,4);
insert into stu values('20200015','彭杰',21,0,4);
insert into stu values('20200016','彭小杰',21,0,4);
select * from cou
insert into cou values('20201','C语言',32,5);
insert into cou values('20202','C#',32,3);
insert into cou values('20203','数据结构',16,5);
insert into cou values('20204','大学英语1',32,3.5);
insert into cou values('20205','大学英语2',32,3.5);
insert into cou values('20206','大学英语3',32,3.5);
insert into cou values('20207','大学英语4',32,3.5);
select * from sc
insert into sc(sno,cno,grade) values('2020006','20201',null);
insert into sc(sno,cno,grade) values('2020005','20201',null);
insert into sc(sno,cno,grade) values('2020001','20201',90);
insert into sc(sno,cno,grade) values('2020002','20201',90);
insert into sc(sno,cno,grade) values('2020003','20201',90);
insert into sc(sno,cno,grade) values('2020004','20201',58);
insert into sc(sno,cno,grade) values('2020004','20202',98);
insert into sc(sno,cno,grade) values('2020004','20203',90);
insert into sc(sno,cno,grade) values('2020005','20203',90);
update stu set mno=null where mno=1
update major set mno=5 where mno=1--别的表有外键的先把外键置null,才能进行本表的修改
References
参考视频,需要一定知识基础才看得懂