收藏 分享(赏)

数据库基础讲义word版.doc

上传人:hskm5268 文档编号:9306973 上传时间:2019-08-01 格式:DOC 页数:11 大小:142.50KB
下载 相关 举报
数据库基础讲义word版.doc_第1页
第1页 / 共11页
数据库基础讲义word版.doc_第2页
第2页 / 共11页
数据库基础讲义word版.doc_第3页
第3页 / 共11页
数据库基础讲义word版.doc_第4页
第4页 / 共11页
数据库基础讲义word版.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、数据库数据库(Database,DB)是长期存储在计算机内的、有组织的、可共享的、统一管理的相关数据的集合。按照字面的理解,数据库就是存放数据的仓库。数据库管理系统(DBMS) DBMS 的功能:数据库定义功能;数据存取功能;数据库运行管理功能;数据库的建立和维护功能;数据通信功能。 DBMS 的组成:语言编译处理程序;系统运行控制程序;系统建立、维护程序;数据字典。数据库系统的组成 数据:数据是数据库系统的工作对象,它们是某特定应用环境中进行管理和决策所必需的信息。 用户:用户是指存储、维护和检索数据库中数据的人员。数据库系统中主要有 3 类用户:终端用户、应用程序员和数据库管理员。 硬件:

2、硬件是指存储数据库和运行数据库管理系统 DBMS 的硬件资源。 软件:软件是指负责数据库存取、维护和管理的软件系统,通常叫做数据库管理系统(DBMS)。数据库系统的特点数据低冗余、共享性高。数据独立性提高。有统一的数据控制功能。数据库应用系统数据库应用系统(Database ApplicationSystem,DBAS) , 是指在 BMS 的基础上,针对一个实际问题开发出来的面向用户的系统。数据库系统的体系结构内部体系结构:数据库系统得内部体系结构是三级模式结构,分别为模式、外模式和内模式。外部体系结构:外部体系结构主要有集中式结构、文件服务器结构和客户/服务器结构。概念模型 实体与实体集:

3、实体是现实世界中可区别于其他对象的“事件”或物体;实体集是具有相同类型及共享相同性质(属性) 的实体集合。 属性:实体通过一组属性来表示;属性是实体集中每个成员具有的描述性性质。 关键字和域:实体的某一属性或属性组合,其值能惟一标识出某一实体,称为关键字,也称码;每个属性都有一个可取值的集合,称为该属性的域,或者该属性的值集; 联系:两个实体之间的联系又可分为一对一联系(1:1)、一对多联系(1:n)和多对多的联系(m:n)。常用的数据模型层次模型:层次数据模型是数据库系统最早使用的一种模型,它的数据结构是一颗有向树。层次结构模型具有如下特征:有且仅有一个结点没有双亲,该结点是根结点。 其他结

4、点有且仅有一个双亲。网状模型:如果取消层次模型的两个限制,即两个或两个以上的结点都可以有多个双亲,则“有向树”就变成了“有向图”。 “有向图”结构描述了网状模型。网状模型具有如下特征:可有一个以上的结点没有双亲。至少有一个结点可以有多于一个双亲。关系模型:关系模型(Relational Model)是用二维表格结构来表示实体及实体之间联系的数据模型。关系模型的数据结构是一个“二维表框架”组成的集合,每个二维表又可称为关系,因此可以说,关系模型是“关系框架”组成的集合。关系模型是使用最广泛的数据模型,目前大多数数据库管理系统都是关系型的,如Access、sql server、oracle 都是关

5、系数据库管理系统。1. 关系数据库 关系模型中的基本术语 关系的性质 关系数据库中的表之间的关系 关系模型的完整性约束关系模型中的基本术语关系:一个关系就是一张二维表。元组:二维表中的每一条记录就是一个元组。属性:二维表中的一列就是一个属性,又称为字段。域:属性的取值范围。分量:元组中的一个属性值。关系模式:对关系的描述。候选关键字:关系中的一个或几个属性的集合,该属性集惟一标识一个元组。关系数据库:对应于一个关系模型的所有关系的集合称为关系数据库。主关键字:一个关系中有多个候选关键字,可以选择其中一个作为主关键字。外部关键字:如果一个属性组不是所在关系的关键字,但它是其他关系的关键字,则该属

6、性组称为外部关键字。主属性:包含在任一候选关键字中的属性称为主属性。关系的性质 关系是一个二维表,但并不是所有的二维表都是关系。关系应具有以下性质: 每一列中的分量是同一类型的数据。 不同的列要给予不同的属性名。 列的次序可以任意交换。 一个关系中的任意两个元组不能完全相同。 行的次序可以任意交换。 每一个分量必须是不可分的数据项。关系数据库中的表之间的关系在关系数据库中,可以通过外部关键字实现表与表之间的联系,公共字段是一个表的主键和另一个表的外键。关系模型的完整性约束实体完整性(Entity Integrity):若属性(指一个或一组属性)A 是基本关系 R 的主属性,则 A 不能取空值。

7、所谓空值就是 “不知道”或“不存在”的值。参照完整性(Referential Integrity) :若属性(或属性组)F 是基本关系 R 的外键,它与基本关系 S 的主键 Ks 相对应(基本关系 R 和 S 不一定是不同的关系) ,则对于 R 中每个元组在 F 上的值必须为空或是等于 S 中某个元组的主键值。用户定义的完整性(User-defined Integrity):用于定义的完整性就是针对某一具体关系数据库的约束条件。2 、关系代数传统的集合运算传统的集合运算是二目运算,包括并、差、交、笛卡尔积 4 种运算。 关系 R 和关系 S 的并运算 关系 R 和关系 S 的差 关系 R 和关

8、系 S 的交 两个分别具有 n 和 m 个属性的关系 R 和 S 的笛卡尔积是一个(n+m)列的元组的集合。元组的前 n 列是关系 R 的一个元组,后 m 列是关系 S 的一个元组。若 R 有 k1 个元组,S 有 k2 个元组,则关系 R 和关系 S 的笛卡尔积有 k1k2 元组。专门的关系运算:包括选择、投影、连接、除运算等。 选择:从一个关系中选出满足给定条件的记录的操作称为选择或筛选。选择是从行的角度进行的运算; 投影:从一个关系中选出若干指定字段的值。投影是从列的角度进行的运算,所得到的字段个数通常比原关系少,或者字段的排列顺序不同; 连接:把两个关系中的记录按一定条件横向结合,生成

9、一个新的关系; 除:元组在 X 上分量值 x 的象集 Yx 包含 S 在 Y 上投影的集合。3、数据类型与运算上例中的二维表格列叫做“字段”,行叫做“ 记录”,对应某行某列对应了指定的一个“ 元素”。这样就组成了一张张的关系表格。每个字段都需起个名字,叫字段名,字段名称最长可达到 64 个字符(包括空格) 。每个字段存储的数据有不同的数据类型,同一字段数据类型必须一致。常见数据类型主要有:1、文本型(c):最大长度 255 个字符;2、数字型(n),常用的有:(1)整型:整数字段。(2) 长整型:整数字段,当该字段设为自动编号字段时必须是长整型。(3)单精度:(4)双精度:(5)小数:小数字段

10、存储的小数长度 18 位(含小数点及前后所有位数)一般情况下,数字型字段我们都选双精度,小数位数 2 位。3、日期时间型: 一般选择常规日期即可。会计帐表中的日期为短日期。4、逻辑型:长度为 1,存储(true) “真”或(false) “假”。5、备注型:长度 6,直存储指向备注文件的一个指针,字段的实际内容存储在备注文件中。程序中变量数据类型基本相同。 在 asl 语言中对变量内容进行了扩充,可以是“通用型”,变量除了有以上数据类型意外,变量的内容可以是一个数据集(一个查询的结果) 。如:Var aBigena:=createQ(select * from 学生档案数据 where 专业

11、like 计算机应用)End.上述程序中的 CREATEQ()创建的查询结果赋给了变量 a,就可以象操作一个查询一样操作 a。SQL 语言运算符运算符运算符:是一种符号,用来指定在一个或多个表达式中执行的操作运算符分类:1)算术运算符2)赋值运算符3)比较运算符4)逻辑运算符5)字符运算符*6)按位运算符*7)一元运算符一、算术运算符连接两个式子进行数学运算的符号运算符包括:加,减,乘,除,取模(求余数)例:select 3+5 结果:8select 16%3 结果:1select CAST(2010-1-1 AS DATETIME)+100 AS 原日期加 100 后的日期结果:原日期加 1

12、00 后的日期=2010-04-11 00:00:00.000说明: CAST。 。AS。 。:用来将一种数据类型转换为另一种类型二、赋值运算符(=号)将表达式的值赋给另一个变量格式: SET =表达式例: use schoolselect sno=学生,sname,class from STUDENTSNO SNAME CLASS=学生 王二 计算机系学生 张三 化生系学生 李四 经管系。 。 。例:use schoolselect sno,sname,class=计算机系 from STUDENTWHERE CLASS=C01在 asl 语言中,常量赋值用“=”,变量赋值用“ :=”三、比

13、较运算符比较两个表达式,其结果可能是真:TRUE (T) 或假:FALSE (F)比较符包括:大于,= 大于等于, 不等于,=!不等于,!不大于,!80四、逻辑运算符判断多个关系比较的连接运算符号,其运算结果:可能是真 TRUE 或是假FLASE逻辑运算符包括:1)AND : 与运算2)OR : 或运算3)NOT : 非运算4)ALL : 所有关系式全为真时,返回 TRUE5)ANY : 只要比较关系中有一个值为 TRUE,就返回 TRUE6)BETWEEN : 对操作数在指定范围内,返回 TRUE7)IN : 对操作数在所给定的具体值时,返回 TRUE8)LIKE : 如果操作数与模式匹配时

14、,返回 TRUE例:查询学生表中所有计算机系的男生记录 CLASS=“计算机系“ AND SSEX=“男“查询成绩表中课号为 C01 成绩大于 80 分的学生记录 DEGREE90 ADN CNO=“C01“查询成绩表中成绩在 80 到 100 之间的学生记录 BETWEEN 80 AND 100查询计算机系与物理系的学生记录 IN(“计算机系“,“物理系“)五、字符串运算符将两个字符串连接起来的符号: “+”例:SELECT (AAA+BBB) AS 两个字符串相加 结果:两个字符串相加=AAABBB六、运算优先级乘*、除/、取模%加+、连接+、减-大于、小于、等于( =,=,!=,!,!)

15、 统计一列中值的个数SUM(DISTINCT|ALL) 计算一列值的总和(此列必须是数值型 )AVG(DISTINCT|ALL) 计算一列值的平均值(此列必须是数值型)MAX(DISTINCT|ALL) 求一列值中的最大值MIN(DISTINCT|ALL) 求一列值中的最小值连接查询连接查询也叫多表查询,在实际应用过程中经常需要同时从两个表或者两个以上的表中检索数据。连接查询允许通过指定表中某个或者某些列作为连接条件,同时从两个表或者多个表中检索数据。连接查询可以使用两种连接语法形式,一种是ANSI 连接语法形式,它的连接条件写在 FROM 子句中,另外一种是 SQL Server 连接语法形

16、式,它的连接条件写在 on 子句中。1、where 子句的多表查询。在多表中查询所需要的字段。Select a.字段 1,a.字段 2,b.字段 1,b.字段 2From 表 1 as a,表 2 as b,.Where a.字段 n=b.字段 m and .Jion 子句1、left jion 左连接:包括左表中所有记录和右表中连接字段相等的记录;2、right jion 右连接:包括右表中所有记录和左表中连接字段相等的记录;3、inner jion 内连接:只包含两个表中连接字段相等的行。Jion 连接语法格式:Select a.字段 1,a.字段 2,.b.字段 1,b.字段 2,.,c

17、.字段 1,From 表 1 as aleft、right、innerJion 表 2 as b on a.字段 n=b.字段 mleft、right、innerJion 表 3 as c on a.字段 n=C.字段 m注意:确定连接条件对应关系的唯一性。也就是说 on 子句确定的条件必须有唯一对应分量(元素) 。否则会出现大量重复数据。地税连接的一个例子( 可以对一个表做多次连接select distinct a.纳税人,a.行业 ,a.行业大类,a.征收项目,b.税额合计 as 一月,c.税额合计 as 二月,d.税额合计 as 三月,e.税额合计 as 四月,f.税额合计 as 五月,

18、g.税额合计 as 六月,h.税额合计 as 七月,i.税额合计 as 八月,j. 税额合计 as 九月,k.税额合计 as 十月,l.税额合计 as 十一月,m.税额合计 as 十二月into 单位汇总表from (dwxx as a left join hzsj as b on (a.纳税人=b.纳税人 and a.征收项目 =b.征收项目 and b.入库年=2010 and b.入库月 =1)left join hzsj as c on (a.纳税人 =c.纳税人 and a.征收项目=c. 征收项目 and c.入库年=2010 and c.入库月=2)left join hzsj

19、as d on (a.纳税人=d.纳税人 and a.征收项目 =d.征收项目 and d.入库年=2010 and d.入库月 =3)left join hzsj as e on (a.纳税人 =e.纳税人 and a.征收项目=e. 征收项目 and e.入库年=2010 and e.入库月=4)left join hzsj as f on (a.纳税人=f.纳税人 and a.征收项目=f.征收项目 and f.入库年=2010 and f.入库月=5)left join hzsj as g on (a.纳税人 =g.纳税人 and a.征收项目=g.征收项目 and g.入库年=201

20、0 and g.入库月=6)left join hzsj as h on (a.纳税人=h.纳税人 and a.征收项目 =h.征收项目 and h.入库年=2010 and h.入库月 =7)left join hzsj as i on (a.纳税人 =i.纳税人 and a.征收项目=i.征收项目 and i.入库年=2010 and i.入库月=8)left join hzsj as j on (a.纳税人=j.纳税人 and a.征收项目=j.征收项目 and j.入库年=2010 and j.入库月=9)left join hzsj as k on (a.纳税人=k.纳税人 and

21、a.征收项目 =k.征收项目 and k.入库年=2010 and k.入库月 =10)left join hzsj as l on (a.纳税人 =l.纳税人 and a.征收项目=l.征收项目 and l.入库年=2010 and l.入库月=11)left join hzsj as m on (a.纳税人 =m.纳税人 and a.征收项目=m.征收项目 and m.入库年=2010 and m.入库月=12)说明:通过上述连接生成易于审计人员查看的横排的纳税人年度纳税台账。Union 合并查询(纵向)Union 实现了多个查询结果的纵向合并Select 字段 1,字段 2,字段 3,F

22、rom 表 1Union Select 字段 1,字段 2,字段 3,From 表 2UnionSelect 字段 1,字段 2,字段 3,From 表 3注意事项:1、Union 合并的查询结果纵向对应字段类型要一致,即字段的数据类型要一致,取值范围一致,否则出现类型不匹配等错误。2、注意查询结果字段的先后顺序和前后查询结果字段的对应顺序。子查询带有 IN 和 BETWEEN 的子查询 带有比较运算符的子查询 带有 ANY(SOME)或 ALL 谓词的子查询IN 和 BETWEENIN 查询1、指定字段与条件列表比较:Select 字段 1,字段 2,字段 3From 表 1WHERE 字段

23、 1 IN (张三, 李四, 王五, 赵六); 2、指定字段与查询的集合比较:Select 字段 1,字段 2,字段 3,字段 4From 表 1Where 字段 1 in(select * from 表 2)3、not in 用法同 in。BetweenSELECT 字段 1, SUM(字段 2)FROM 表 1WHERE 字段 3 BETWEEN 值 1 AND 值 2; 等同于:SELECT 字段 1, SUM(字段 2)FROM 表 1WHERE 字段 3 =值 1 AND 字段 3(SELECT AVG(价格) + 100FROM 购物信息表);exists 和 all ( Any

24、)EXISTS 使用了一个子查询作为条件,只有当子查询返回行的时候这个条件才为真,如果子查询不返回任何的行条件就为假。如果商店在处理 Chair 的时候,有个顾客想看看所有拥有者的列表,就可以使用 EXSIST,语句如下:SELECT 第一客户名, 最后客户名FROM 拥有客户表WHERE EXISTS (SELECT * FROM 拥有商品表WHERE 品名 = Chair);如果在“拥有商品表”列中有 Chair,那么子查询就会返回一行或者多行,就使得 EXISTS子句为真,然后让 SQL 列出拥有者来。如果没有搜索到 Chair,则没有行被返回,条件就为假。ALL 是另外一个不寻常的关键

25、字,因为 ALL 查询通常可以用不同的方法来进行,并且可能是一种更为简单的方法。SELECT BUYERID, ITEMFROM ANTIQUESWHERE PRICE = ALL(SELECT PRICEFROM ANTIQUES);上面这条语句将返回最高价格的 Item 以及它的买方。子查询返回了 Antiques 表中的所有的 Price 列,而外层的查询逐行查询 Antiques 表,并且如果它的 Price 大于等于(或者ALL)列中的 Prices,它就会被列出,它就是最好价格的 Item。这里必须使用“=“的原因是最高价格的 Item 要等于列表中的最高价格,因为这个 Item

26、在 Price 列中。上述语句可以写成:SELECT BUYERID, ITEM, MAX(PRICE)FROM ANTIQUESgroup by buyerid,item取最大值的聚合函数,与 group by 配合使用,计算并显示分组字段的最大值;否则语法错误。Min()、count(*)等函数同。SQL 数据操纵功能INSERT 命令 UPDATE 命令 DELETE 命令INSERT 命令完全添加,语法格式如下:INSERT INTO 表名 VALUES (第一个字段值,.,最后一个字段值)部分添加,语法格式如下:INSERT INTO 表名( 字段 1, ,字段 N, ) VALUE

27、S (第一个字段值,.,第 N 个字段值, )UPDATE 命令UPDATE 语句用来修改数据表中已经存在的数据记录。它的基本语法格式如下:UPDATE 表名 SET 字段 1 = 值 1, , 字段 N = 值 N, WHERE 条件表达式DELETE 命令DELETE 语句用来删除数据表中的记录,基本语法格式如下:DELETE FROM 表名WHERE 条件表达式数据库常用函数内部合计函数 1)COUNT(*) 返回行数 2)COUNT(DISTINCT COLNAME) 返回指定列中唯一值的个数 3)SUM (COLNAME/EXPRESSION) 返回指定列或表达式的数值和; 4)SU

28、M (DISTINCT COLNAME) 返回指定列中唯一值的和 5)AVG(COLNAME/EXPRESSION) 返回指定列或表达式中的数值平均值 6)AVG(DISTINCT COLNAME) 返回指定列中唯一值的平均值 7)MIN(COLNAME/EXPRESSION) 返回指定列或表达式中的数值最小值 8)MAX(COLNAME/EXPRESSION) 返回指定列或表达式中的数值最大值 日期与时间函数 1)DAY(DATE/DATETIME EXPRESSION) 返回指定表达式中的当月几号 2)MONTH(DATE/DATETIME EXPRESSION) 返回指定表达式中的月份

29、3)YEAR(DATE/DATETIME EXPRESSION) 返回指定表达式中的年份 4)WEEKDAY(DATE/DATETIME EXPRESSION) 返回指定表达式中的当周星期几 5)DATE(NOT DATE EXPRESSION) 返回指定表达式代表的日期值 6)TODAY 返回当前日期的日期值 7)CURRENTFIRST TO LAST 返回当前日期的日期时间值 8)COLNAME/EXPRESSION UNITS PRECISION 返回指定精度的指定单位数 9)MDY(MONTH,DAY,YEAR) 返回标识指定年、月、日的日期值 10)DATETIME(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表达式代表的日期时间值 11)INTERVAL (DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表达式代表的时间间隔值 12)EXTEND( DATE/DATETIME EXPRESSION,FIRST TO LAST)返回经过调整的日期或日期时间值

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报