《数据库基础知识补充.ppt》由会员分享,可在线阅读,更多相关《数据库基础知识补充.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库基础知识(补充)与数据库有关的概念数据库(DB)数据库是存储在计算机存储设备上,结构化的相关数据集合。简言之,它是有结构的数据的集合。数据库中的数据必须满足结构化、共享性、独立性、完整性、安全性等特性。结构化是指数据结构化是指数据应有一定的组织应有一定的组织结构,而不是杂结构,而不是杂乱无章的。乱无章的。共享性是指共享性是指数据能够为数据能够为多个用户同多个用户同时使用。时使用。独立性是指数独立性是指数据记录和数据据记录和数据管理软件之间管理软件之间的独立的独立完整性是指完整性是指保证数据库保证数据库中的数据的中的数据的正确性。正确性。安全性是指不安全性是指不同级别的用户同级别的用户对数
2、据的处理对数据的处理有不同的权限有不同的权限数据库中的数据可是文字、图像、声音等。在数据处理领域中不仅包括数字、字母、文字和其他特殊字符组成的文本形式的数据,而且包括图形、图像、动画、影像、声音等多媒体数据。数据模型一.实体描述1.实体:客观存在并且相互区别的事物称为实体2.实体属性:描述实体的特征称为属性。3.实体集和实体型:属性值的集合表示一个实体,属性的集合表示一个实体类型,称为实体型。同类型的实体的集合称为实体集。学生1(学号、姓名、性别、出生日期、系别、籍贯)实体实体属性属性实体集实体集实体型实体型学生2(学号、姓名、性别、出生日期、系别、籍贯)学生n(学号、姓名、性别、出生日期、系
3、别、籍贯)二.实体间联系1.一对一联系:2.一对多联系:3.多对多联系:实体之间的对应关系称为联系,反映现实世界各种事物之间的相互关联,一般有以下三种联系。部门经理部门职工部门职工工作项目三、数据模型简介1.1.层次数据模型层次数据模型:反映客观事物之间一对多(反映客观事物之间一对多(1:1:n)n)的关系的关系2.2.网状数据模型网状数据模型:反映客观事物之间多对多(反映客观事物之间多对多(m:n)m:n)的关系的关系3.3.关系数据模型关系数据模型:把事物之间(内部)关系用二维表表示把事物之间(内部)关系用二维表表示数据库中的数据是用数据模型来表示数据的结构,数据模型一般有以下三种。校部校
4、部教务处教务处科研处科研处人事处人事处各系各系师资科师资科学籍科学籍科教务科教务科。民生民生南方南方银河银河电冰箱电冰箱洗衣机洗衣机彩电彩电商店:商店:价格:价格:商品:商品:商店商店商品商品价格价格民生民生洗衣机洗衣机2100南方南方电冰箱电冰箱1800银河银河彩电彩电4700银河银河电冰箱电冰箱1700二维表的二维表的列列称为称为字段字段二维表的二维表的行行称为称为记录记录行列行列交叉处交叉处成为成为值值行和列的行和列的排列次序不重要排列次序不重要关系数据模型一.关系术语1.关系:二维表2.元组:记录。3.属性:字段。4.域:属性取值范围。5.关键字:唯一标志记录。6.外部关键字:在本表不
5、是关键字,但是在另外表中是关键字或者候选关键字。数据库的设计步骤:数据库的设计步骤:分析建立数分析建立数据库的目的据库的目的确定数据确定数据库中的表库中的表确定表中确定表中的字段的字段确定主确定主关键字关键字确定表之确定表之间的关系间的关系都属都属于表于表的设的设计范计范畴!畴!需先分析为什么需先分析为什么要建立数据库以要建立数据库以及所建数据库应及所建数据库应完成的任务。完成的任务。确定表的原则确定表的原则:1.1.每个表应该只包含每个表应该只包含一个主题信息。一个主题信息。2.2.表中不应该包含重表中不应该包含重复,并且信息不应该复,并且信息不应该在表之间复制。在表之间复制。字段名命名规则
6、字段名命名规则:1.1.长度长度1-641-64个字符。个字符。2.2.可以包含字母、数字、可以包含字母、数字、汉字、空格和其他字符。汉字、空格和其他字符。3.3.不能包括句号、感叹不能包括句号、感叹号、方括号和重音号。号、方括号和重音号。例:例:设计一个教学管理数据库,主要包括设计一个教学管理数据库,主要包括教师管理教师管理、学生管理学生管理、学生选课管理学生选课管理,那么表的设计如下:,那么表的设计如下:数据类型(Access)数据类型数据类型说明说明文本型文本型没有大小多少之意,是一个代号,最长没有大小多少之意,是一个代号,最长255255个字符个字符备注型备注型和文本差不多,最长的字符
7、个数可达和文本差不多,最长的字符个数可达6400064000个个数字型数字型表示有表示有“大小多少大小多少”的数值之意的数值之意日期日期/时间型时间型表示时间表示时间/日期日期货币型货币型用于记录货币的数据类型用于记录货币的数据类型自动编号型自动编号型每当增加一条记录,自动插入一个序号每当增加一条记录,自动插入一个序号是否型是否型只有只有“Yes/No”Yes/No”、“True/False”“True/False”、“On/Off”“On/Off”两种两种值(布尔型)值(布尔型)OLEOLE对象型对象型可以插入各种可以插入各种OLEOLE对象对象(图像、声音等图像、声音等),最大,最大1 1
8、GBGB超级链接型超级链接型用来保存超级链接,操作为用来保存超级链接,操作为“插入插入”-“”-“超级链接超级链接”查阅向导型查阅向导型1 1二二进进制数据制数据类类型型 二二进进制制数数据据是是一一些些用用十十六六进进制制表表示示的的数数据据。二二 进进 制制 数数 据据 类类 型型 包包 括括 三三 种种:binarybinary、varbinaryvarbinary和和imageimage。2 2整数数据类型整数数据类型 整整数数数数据据类类型型有有五五种种:bitbit、intint、bigintbigint、smallintsmallint、tinyinttinyint。数据类型(S
9、QL Server)3 3浮点数据类型浮点数据类型 浮点数据类型包括浮点数据类型包括float和和real两种类型,用于两种类型,用于存储范围非常大的数字。存储范围非常大的数字。4 4精确小数数据类型精确小数数据类型 精确小数数据类型包括精确小数数据类型包括decimal和和numeric两两种,可以精确指定小数点两边的总位数和小数点右种,可以精确指定小数点两边的总位数和小数点右边的位数。边的位数。5 5货币数据类型货币数据类型 货币数据类型专门用于货币数据处理,包括货币数据类型专门用于货币数据处理,包括money和和smallmoney。6 6日期日期/时间数据类型时间数据类型 日期日期/时
10、间数据类型可以存储日期和时间的时间数据类型可以存储日期和时间的组合数据,包括组合数据,包括datetime和和smalldatetime两种数据类型。两种数据类型。7 7字符数据类型字符数据类型 字符型数据是由字母、数字和符号组合而成。字符型数据是由字母、数字和符号组合而成。字符数据类型又可分为字符数据类型又可分为3 3种:种:char(n)char(n)、varchar(n)varchar(n)、texttext。8 8unicodeunicode数据类型数据类型 unicodeunicode数数据据类类型型用用于于存存储储要要用用两两个个字字节节才才能能存存储储的的双双字字节节字字符符,例
11、例如如汉汉字字、日日文文或或韩韩文文等等。unicode数据类型包括数据类型包括ncharnchar、nvarcharnvarchar和和ntextntext。9 9sql_variantsql_variant数据类型数据类型 sql_variant数数据据类类型型可可以以应应用用在在列列、参参 数数、变变 量量 和和 函函 数数 返返 回回 值值 中中,以以sql_variant为为数数据据类类型型的的数数据据可可以以存存储储除除text、ntext、image和和sql_variant数据类型以外的各种数据。数据类型以外的各种数据。什么是SQL SQL(Structured Query L
12、anguage,结构查询语言)是一个功能强大的数据库操纵语言。SQL使用场合:n应用程序与数据库的通讯n通过DBMS或第三方工具,完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据SQL命令分组 nDML(Data Manipulation Language,数据操作语言):用于检索或者修改数据 nDDL(Data Definition Language,数据定义语言):用于定义数据的结构,比如 创建、修改或者删除数据库对象 nDCL(Data Control Language,数据控制语言):用于定义数据库用户的权限 DML命令 nSELECT:用于检索数据 nINSE
13、RT:用于增加数据到数据库 nUPDATE:用于从数据库中修改现存的数据 nDELETE:用于从数据库中删除数据 Select命令 功能:从数据库中检索所需要信息。例:从学生表(student)中检索出李明的档案信息,其SQL语法为:Select*from student where SNAME=李明Select 命令语法 SELECT predicate *|table.*|table.field,table.field2,.AS alias1,alias2,.FROM tableexpression,.IN externaldatabaseWHERE.GROUP BY.HAVING.ORD
14、ER BY.WITH OWNERACCESS OPTION SELECT ALL/DISTRINCT*|SELECT ALL/DISTRINCT*|FROM FROM WHERE WHERE ORDER BY ORDER BY ASC|DESCASC|DESC;2.1.2 predicateALL,DISTINCT,DISTINCTROW,TOP nDISTINCT:Select DISTINCT SNAME from studentTOP n:Select top 2*from student查询字段所有字段:所有字段:Select*from Student指定查询字段:指定查询字段:Sel
15、ect SNO,SNAME from Student字段换名:Select SNO as 学号,SNAME as 姓名 from Student查询多表字段:Select a.SNO,a.SNAME,b.CNAME,b.SCORE from Student a,Curse b where a.SNO=b.SNO Select a.*,b.CNAME,b.SCORE from Student a,Curse b where a.SNO=b.SNOwhere子句指定从表中获取哪些记录。Select*from student where SSEX=女Select a.SNO,a.SNAME,b.CN
16、AME,b.SCORE from Student a,Curse b where a.SNO=b.SNO and b.SCORE=90order by子句指定结果如何排序:升序:ASC;降序:DESC。Select*from student order by SNAMESelect a.SNO,a.SNAME,b.CNAME,b.SCORE from Student a,Curse b where a.SNO=b.SNO order by a.SNAME,b.SCORE DESCSQL的特殊操作的特殊操作 nIN 操作符操作符 nLIKE 操作符操作符 nSQL 的运算符及表达式的运算符及表达
17、式 nSQL 的统计函数的统计函数nBetween and 运算符运算符nUnion 操作操作nINNER JOIN操作操作 in操作符操作符 n用在where后,当同时查询多个条件时,用以简化写法 Select*from student where SNAME in(李明,成功)等价SQL语句:Select*from student where SNAME=李明 or SNAME=成功n多层SQL查询like操作符操作符 实现模糊查询。例:找出所有姓李的学生Select*from student where SNAME like 李*或:Select*from student where S
18、NAME like 李%运算符及表达式运算符及表达式 逻辑运算符AND 逻辑与 OR 逻辑或 NOT 逻辑非 数学函数1、AVG(字段名或表达式):算数平均数 Select avg(sold)as avg_old from student2、COUNT(字段名或表达式):计算记录条数 Select COUNT(*)as NSRS from student where SSEX=女3、SUM(字段名或表达式):返回某特定字段或是运算的总和数值。Select sum(score)as t_score from Curse where sno=8701014、MAX(字段名或表达式)、MIN(字段名
19、或表达式):求最大、最小值BETWEEN.AND决定某一数值是否介于特定的范围之内例:查询年龄在18-20岁之间的学生Select*from student where sold BETWEEN 25 AND 30等价于:Select*from student where sold=25 AND sold=30数据更新语句 nUpdate:更新表中已有的数据nInsert into:向表添加新的数据nDelete From:删除表中的记录update语句 更新指定条件的数据。UPDATE table SET newvalue WHERE criteria 例:更新学生成绩Update Curs
20、e set score=65 where sno=870102 and cname=微机原理与应用Update Curse set score=75,cname=数据结构 where sno=870102 and cname=微机原理与应用所有学生的年龄加1Update student set sold=sold+1insert into语句 向表中增加新的数据。INSERT INTO ()values()例:增加新的成绩Insert into Curse(sno,cname,score)values (870102,数据结构,75)insert into语句 向表中增加新的数据。INSERT INTO ()values()例:增加新的成绩Insert into Curse(sno,cname,score)values (870102,数据结构,75)增加名单:Insert into student(sno,sname,sold,ssex,sclass)values (870203,王五,19,男,微机872)delete from语句 删除指定数据。delete from where 例:从名单中删除王五 Delete from student where sname=王五该语句将删除学生表中所有姓名为王五的记录注意:Delete from student将删除学生表中所有记录