数据库Word文件下载.docx
- 文档编号:19490862
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:13
- 大小:104.22KB
数据库Word文件下载.docx
《数据库Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
N联系,分别命名为P_P和P_S.
3把实体类型和联系类型组合成ER图。
4确定实体类型和联系类型的属性。
5确定实体类型的键,在ER图中属于码的属性名下画一条横线。
数据独立性分成物理数据独立性和逻辑数据独立性两个级别。
•数据管理技术经历了人工管理、文件系统、数据库和高级数据库技术等四个阶段。
数据库系统是在文件系统的基础上发展而成的,同时又克服了文件系统的三个缺陷:
数据的冗余、不一致性和联系弱。
数据库是存储在一起集中管理的相关数据的集合。
数据库的体系结构是对数据的三个抽象级别。
它把数据的具体组织留给DBMS去做,用户只需抽象地处理逻辑数据,而不必关心数据在计算机中的存储,减轻了用户使用系统的负担。
由于三级结构之间往往差别很大,存在着两级映象,因此使DBS具有较高的数据独立性:
物理数据独立性和逻辑数据独立性。
DBMS是位于用户与OS之间的一层数据管理软件。
数据库语言分成DDL和DML两类。
DBMS主要由查询处理器和存储管理器两大部分组成。
SQL
全名是结构化查询语言(StructuredQueryLanguage),是用于数据库中的标准数据查询语言
SQL语言包含4个部分:
※数据定义语言(DDL),例如:
CREATE、DROP、ALTER等语句。
※数据操作语言(DML),例如:
INSERT(插入)、UPDATE(修改)、DELETE(删除)语句,COMMIT、ROLLBACK。
※数据查询语言(DQL),例如:
SELECT语句。
※数据控制语言(DCL),例如:
GRANT、REVOKE、等语句。
CREATEDATABASEdatabase_name
可用dropdatabasexxxx
CREATETABLE表名称
(
列名称1数据类型,
列名称2数据类型,
列名称3数据类型,
....
)
CREATETABLEDEPT
(
DEPTNOINTPRIMARYKEY,
DNAMEVARCHAR(14),
LOCVARCHAR(13)
);
INSERTINTOtable_name(列1,列2,...)VALUES(值1,值2,....)
INSERTINTODEPTVALUES
(10,
'
ACCOUNTING'
NEWYORK'
);
SELECT列名称FROM表名称
我们可以为返回列的名称起别名:
示例3:
selectempnobianhao,enamexingming,jobgongzuofromemp;
注:
还可以添加as关键字,也可以使用中文(如果支持)
如:
selectempnoasbianhao,enameasxingming,jobasgongzuofromemp;
扩展:
读懂下面sql语句:
selecte.empnobianhao,e.enamexingming,e.jobgongzuofromscott.empase;
有重复的列,怎样消除重复的列?
-----使用distinct关键字:
关键词DISTINCT用于返回唯一不同的值。
语法:
SELECTDISTINCT列名称FROM表名称
selectdistinctjobfromemp;
如需有条件地从表中选取数据,可将WHERE子句添加到SELECT语句。
语法为:
SELECT列名称FROM表名称WHERE列运算符值(条件)
注释:
在某些版本的SQL中,操作符<
>
可以写为!
=。
除了上面的操作符还包括,IN,NOTIN,AND,OR,BETWEENAND,ISNULL,NOTISNULL,LIKE,NOTLIKE。
操作符BETWEEN...AND会选取介于两个值之间的数据范围。
这些值可以是数值、文本或者日期。
SQLIN语法:
SELECTcolumn_name(s)
FROMtable_name
WHEREcolumn_nameIN(value1,value2,...)
LIKE操作符用于在WHERE子句中搜索列中的指定模式。
其中’%’可以匹配任意长度的内容,’_’可以匹配一个长度的内容。
思考:
select*fromempwhereenamelike‘%%’;
的执行结果。
Select*fromempwhereenamelike‘_M%’;
对查询结果进行排序(ORDERBY子句)
ORDERBY语句用于对结果集进行排序
ORDERBY语句默认按照升序(ASC)对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用DESC关键字。
基本表结构的修改
ALTERTABLE<
基本表名>
[ADD<
新列名>
<
数据类型>
[完整性约束]]
[DROP<
列名>
[CASCADE│RESTRICT]]
[MODIFY<
];
⏹<
表名>
:
要修改的基本表
⏹ADD子句:
增加新列和新的完整性约束条件
⏹DROP子句:
删除指定的列
⏹MODIFY子句:
修改原有列的宽度和数据类型
Altertablestudentaddageint;
Altertablestudentaddprimarykey(stdId);
Altertablestudentdropage;
AltertablestudentmodifystdNamevarchar(20);
UpdatestudentsetstdName=’c’wherestdId=3;
Delectfromstd1wherestdId=3;
注意:
⏹CASCADE方式表示:
在基本表中删除某列时,所有引用到该列的视图和约束也要一起自动地被删除。
⏹RESTRICT方式表示:
在没有视图或约束引用该属性时,才能在基本表中删除该列,否则拒绝删除操作。
示例1:
向emp表中添加住址EADDRESS(varchar(50))字段。
代码:
altertableempaddeaddressvarchar(50);
表数据的更新(修改update)
⏹语句格式
UPDATE<
SET<
=<
表达式>
[,<
…]│ROW=(元组)
[WHERE<
条件>
];
3.3表数据的删除(delete,truncate)
语法格式:
DELETE
FROM<
–功能
♦删除指定表中满足WHERE子句条件的元组
–WHERE子句
♦指定要删除的元组
♦缺省表示要删除表中的所有元组
4多表查询
SELECT{DISTINCT}*|查询列1别名1,查询列2别名2,查询列3别名3,…..
FROM表名称1别名1,表名称2别名2,……
{WHERE条件(S)}
{ORDERBY排序字段ASC|DESC}
5分组函数与分组查询
什么是分组?
比如:
将班上的同学分为男同学和女同学两组,分别计算男同学和女同学的平均分。
问题:
1.将员工按照部门进行分组,计算平均工资。
2.计算每个部门员工的人数?
思考?
分组是按照什么进行分组?
5.1分组函数
COUNT()计数函数
MAX()求出最大值函数
MIN()求出最小值函数
AVG()求平均数函数
SUM()求和函数
5.2分组统计(groupby)
{GROUPBY分组条件}
[例8]查询选修了2号课程的学生的学号。
πSno(σCno='
2'
(SC))
={95001,95002}
⏹
(2)检索学习课程号为C2的学生学号与姓名
σC#=‘C2’∨C#=‘C4’(SC)
数据库设计范式
关系数据库设计之时是要遵守一定的规则的。
尤其是数据库设计范式。
现简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式),一般情况下学习三种范式就可以了。
因为过度的遵守范式设计也会产生很多问题--------------过度设计!
范式是什么?
范式是符合某一种级别的关系模式的集合。
关系数据库中的关系必须满足一定的要求,即满足不同的范式。
目前关系数据库有六种范式:
第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。
满足最低要求的范式是第一范式(1NF)。
在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。
一般说来,数据库只需满足第三范式(3NF)就行了。
第一范式(1NF):
在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系。
比如下面数据库创建脚本:
Createtablestudent(
stuIDintprimarykeyauto_increment,
stuNOvarchar(50),
stuNamevarchar(50),
stuClassvarchar(50),
stuInfovarchar(100)
);
插入测试数据库:
Insertintostudent(stuNO,stuName,stuClass,stuInfo)
values
('
2009123456'
'
xiaoqiang'
09-1'
address:
chinaxinjiangbirthday:
1999-8-3age:
12phoneNumber:
1233444444455'
出现了什么问题?
stuInfo不满足第一范式的设计原则1NF------属性不可再分。
应该改为:
addressvarchar(100),
birthdayvarchar(100),
phoneNumbervarchar(100),
ageint
如果将stuName拆分成:
姓varchar(20)
名varchar(30)
满足第一范式的要求,这样做可以吗,好吗?
原则上,不要过分的去套用范式的要求。
第二范式(2NF):
如果关系模式R(U,F)中的所有非主属性都完全依赖于任意一个候选关键字,则称关系R是属于第二范式的。
所谓的第二范式其实就是把原来的问题,如学生选课这样的问题模型,用多对多这样的关系表达出来,由此节省了磁盘空间。
建立一张学生选课表,包括学生姓名,学号,课程名,分数,学分等等:
CreatetableselectCourse(
scIDintprimarykeyauto_increment,
stuNOvarchar(50),
stuNamevarchar(50),
courseNamevarchar(50),
gradevarchar(10),
creditvarchar(10)
插入测试数据:
InsertintoselectCourse(stuNO,stuName,courseName,grade,credit)
Values
java'
88'
4'
2009123457'
daqiang'
77'
zhongqiang'
66'
有什么问题?
重复数据太多,占用磁盘空间。
怎么解决?
createtablecourse
cIDintnotnull,
cNamechar(50),
creditint,
primarykey(cID)
createtables_c
sidintnotnull,
scorefloat(0),
primarykey(sid,cID)
createtablestudent
sNamechar(50),
sNOchar(50),
primarykey(sid)
altertables_caddconstraintFK_s_cforeignkey(sid)
referencesstudent(sid)ondeleterestrictonupdaterestrict;
altertables_caddconstraintFK_s_c2foreignkey(cID)
referencescourse(cID)ondeleterestrictonupdaterestrict;
第三范式(3NF):
如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的。
第三范式相当于用多对一的关系去解决问题。
设计一个学生表,有姓名,学号,年龄,所在学院,学院地址,学院电话号码,应该怎么设计?
总结:
什么数据库设计三范式?
第一范式:
要求字段不可再分。
第二范式:
在问题域中使用用多对多关系,来解决磁盘空间浪费问题和数据冗余问题。
(问题域中的实体满足多对多关系)
第三范式:
用多对一(一对多)来解决磁盘空间浪费问题和数据冗余问题。
(问题域中的实体满足一对多关系)
在实际开发中,不要强制性的去套用范式,范式只是一个指导,过度使用范式会造成过度设计。
⏹事务(transaction)是构成单一逻辑工作单元的操作集合,要么完整地执行,要么完全不执行。
不论发生何种情况,DBS必须保证事务能正确、完整地执行。
⏹锁(lock)是一个与数据项相关的变量,对可能应用于该资源上的操作而言,锁描述了该数据项的状态。
X锁定义:
如果事务T对某个数据R(可以是数据项、记录、数据集乃至整个数据库)实现了X锁,那么在T对数据R解除封锁之前,不允许其他事务T再对该数据加任何类型的锁。
这种锁称为“X锁”。
●X锁的操作有两个:
封锁操作“XFINDR”
解锁操作“XRELEASER”
●X锁的解除操作应该合并到事务的结束(COMMIT或ROLLBACK)操作中。
⏹封锁的粒度
⏹定义5.6封锁对象的大小称为封锁的粒度
⏹数据库中完整性(Integrity)一词是指数据的正确性(Correctness)、有效性(Validity)和相容性(Consistency),防止错误的数据进入数据库。
5.13触发器(Trigger)是一个能由系统自动执行对数据库修改的语句。
触发器有时也称为主动规则(ActiveRule)或事件—条件—动作规则(Event—Condition—ActionRule,ECA规则)。
●一个触发器由三部分组成:
①事件:
对数据库的插入、删除、修改等操作。
触发器在这些事件发生时,将开始工作。
②条件:
测试条件是否成立。
如果条件成立,就执行相应的动作,否则什么也不做。
③动作。
如果触发器测试满足预定的条件,那么就由DBMS执行这些动作(即对数据库的操作)。
⏹视图(View)是从一个或多个基本表导出的表。
但视图仅是一个定义,视图本身没有数据,不占磁盘空间。
视图一经定义就可以和基本表一样被查询,也可以用来定义新的视图,但更新(插、删、改)操作将有一定限制。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库