第一章数据库系统概述1.数据是信息的载体,信息是数据的内涵2.信息的特征:(1)表征性。信息能够表达事物的属性、运动特性及状态(2)可传播性。信息可以进行获取、存储、传递和共享(3)可处理性。信息可以进行压缩、加工、再生(4)信息具有可用性、可增值性、可替代性3.数据处理:指利用计算机对各种形式的数据进行一系列的存储、加工、计算、分类、检索、传输等处理4.数据库是在计算机外部存储器中存储的数据仓库5.DBS=DB+DBMS+DBA数据库系统=数据库+数据库管理系统+数据库管理员6.数据库的发展经历了人工管理、文件系统到数据库系统三个阶段7.数据库的特征:数据结构化、实现数据共享、减少数据冗余程度、数据独立性、统一的数据安全保护数据独立性:数据与操作这些数据的应用程序相互独立8.数据库软件的核心是数据库管理系统DBMS9.根据模型应用的目的,可以将数据模型分为:(1)概念模型:也称信息模型,是独立于计算机之外的模型,如实体—联系模型→面向人,按用户的观点对数据和信息建模,主要用于数据库设计(2)数据模型:网状模型、层次模型和关系模型→直接面向计算机,按计算机系统的观点对数据进行建模,用于DBMS的实现10.数据模型是数据库系统的核心和基础11.数据模型三要素(★):数据结构、数据操作和完整性约束12.信息世界的基本概念:(1)实体:客观存在并可相互区别的事物(2)实体集:性质相同的同类实体的集合(3)实体型:用实体名及其属性名的集合来抽象和刻画同类实体(4)属性:实体所具有的某一特性属性的名称是属性的型,型的具体内容是属性的值(5)关键字:能唯一表示实体的属性或属性值(6)域:属性的取值范围称为该属性的域(7)联系:实体内部的联系→组成实体的各属性之间的联系实体之间的联系→不同实体集之间的联系①一对一联系1:1②一对多联系1:n③多对多联系m:n13.概念模型的表示方法:在E-R图中,实体集用矩形框表示,属性用椭圆表示,联系用菱形框表示14.E-R图的绘制p8(1)加下划线-主键(2)多对多要专门建表,在中间引入联系(3)实体的属性=315.层次数据库系统只能处理一对多的实体联系16.关系模型的基本概念:(1)关系:一个关系就是一个二维表(2)元组:二维表中的每一行在关系中称为一个元组(元组=记录=行)(3)属性:二维表的每一列在关系中称为属性(属性=字段=列)每个属性都有一个属性名,属性值则是各个元组属性的取值(4)域:属性的取值范围(5)关键字:关系中能唯一区分、确定不同元组的属性或属性组合(6)候选关键字:凡在关系中能够唯一区分、确定不同元组的属性和属性组合均为候选关键字(7)主关键字:在候选关键字中选定一个作为关键字,称为该关系的主关键字(8)外部关键字:并非关系中的关键字但却是另一个关系的主关键字的某个属性或属性组合。关系之间的联系是通过外部关键字实现的(9)关系模式:对关系的描述。→关系名(属性名1,属性名2,...,属性名n)17.在关系模型中,关系具有以下特点:(1)关系必须规范化,属性不可再分割,即表中不能套表(2)在同一关系中不允许出现相同的属性名(3)关系中不允许有完全相同的元组(4)在同一关系中元组和属性的次序无关紧要实体椭圆菱形18.关系的运算:(1)选择:给定一个关系,从中筛选出满足某种条件的元组的过程选择→行(2)投影:给定一个关系,从中只检索期望得到的字段(或属性)的过程投影→列(3)自然连接:形成一个新表(合并),但并不会存在,结束了就会消失条件:参与自然连接运算的两个关系间有一个公共的属性,在一个关系(一表)中它是主键,在另一个关系(多表)中它是外键结果:在属性上是两个参与运算关系的属性叠加;在元组上是在多表元组的记录基础上,扩展连接属性相同时对应的数据表19.关系模型的优点:(1)它是建立在严格的数学概念的基础上的;(2)概念单一,数据结构简单、清晰,用户易懂易用;(3)存取路径对用户透明,具有更高的独立性、更好的安全保密性。20.关系完整性约束(★):实体完整性、参照完整性、域完整性和用户定义完整性p17关系完整性约束是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。实体完整性:一个关系中不能存在两个完全相同的记录。参照完整性:是两个表之间的约束。指多表外部关键字的取值必须与一表中某元组主关键字的值相同,否则违反了参照完整性约束。公共属性是一个关系R(称为被参照关系或目标关系,一表)的主关键字,同时又是另一关系K(参照关系,多表)的外部关键字。参照完整性是指参照关系K中外部关键字的取值必须与被参照关系R中某元组主关键字的值相同。域完整性:指一个或多个列必须满足的约束条件,当用户插入或更新数据时,所插入或更新的数据在指定了域完整性的列上必须满足所施加的约束条件。→用户自己添加的,属于用户定义完整性用户定义完整性:针对某一具体业务规则提出的关系数据库必须满足的约束条件,反映某一具体应用所涉及的数据必须满足的应用要求。21.数据库系统应用模式:C/S模式,B/S模式C/S(Client/ServerSystem),客户/服务器应用模式:优点:(1)便于数据的保存,网络通信过程标准化(2)可以同时服务多个客户,实现数据资源的灵活应用(3)实现信息数据处理的分散化和使用上集中化缺点:维护困难,更适用于局域网B/S(Browser/ServerSystem),浏览器/服务器结构:优点:客户机不存在安装维护问题,转移到了Web服务器端;实现跨平台的应用;共享系统资源,支持更多用户。22.E-R图的设计、E-R图转化为关系表→数据库设计题书本p20E-R图设计的步骤:确定E-R图的实体→定义实体的属性→定义实体间的联系→确定实体的关键字→确定联系的类型E-R图转化为关系表的规则:(1)实体的转换:E-R图的每一个实体,都应该转换为一个关系表,该表包括对应实体的全部属性,实体的关键字对应为关系表的主关键字;(2)一对多联系:必须将一方实体关键字放在多方实体对应的关系表中,并设置成外键;(3)多对多联系的转换:必须单独建立一个关系表,还需设置不包含在E-R图中、联系所连接的两个实体集关键字的组合构成该关系表中的主键。第三章SQL查询与操纵语句的使用1.SQL语句分成三类:数据操纵语言DML→SELECT/INSERT/UPDATE/DELETE(选择填空)数据定义语言DDL数据控制语言DCL2.SQL的优点:(1)非过程化语言(2)统一的查询语言(3)所有关系数据库的公共语言3.日期的格式:#yyyy/mm/dd#逻辑型:TRUE/FALSE4.SELECT语句→查询最后以分号(;)结尾DISTINCT→去除重复行放在select后面BETWEEN(低值)AND(高值)AND优先于OR,可以用括号改变优先级LIKE:字符通配运算*(星号)→任意长度的任意字符?(问好)→一个位置上任意字符例:查询第二个字符为“建”的学生学号和姓名SELECT学号,姓名FROM学生表WHERE姓名LIKE“?建*”;ASC→升序DESC→降序5.聚合函数:不能放在where后面AVG(表达式)COUNT(*):统计元组个数COUNT(表达式):针对某一字段进行统计MIN(表达式)、MAX(表达式)、SUM(表达式)6.对查询结果分组:GROUPBY(1)用聚合函数,极大可能要使用分组语句(2)使用分组语句,极大可能要使用聚合函数(3)分组语句中使用时,出现在GROUPBY后的字段一定要出现在SELECT后(4)在SELECT的字段列表中,凡没有出现在聚合函数中的字段,必须出现在GROUPBY子句中7.例:求总学分在11分以上的学生姓名SELECT姓名,SUM(学分)AS学分合计FROM学生表,成绩表,课程表WHERE学生表.学号=成绩表.学号AND成绩表.课程号=课程表.课程号GROUPBY姓名HAVINGSUM(学分)=11;ORDERBYSUM(学分)DESC;HAVING子句的功能是过滤GROUPBY子句的结果聚合函数只能放在HAVING后面,不能放在WHERE后面8.参数查询:[请输入入学成绩]中括号9.子查询:只考由IN引出的子查询(用在FROM里面)IN子查询结构:WHERE表达式[NOT]IN(子查询语句)(1)所有多表查询都可以转换成等价子查询,反之不然;(2)子查询实现已知条件,副查询查找目标;(3)副查询与子查询要查询不同的表(一般来说);(4)副查询与子查询通过公共属性建立连接;(5)当副查询、子查询中涉及到大表(多表时),尽可能让副查询的表越小越好。例:求没有修“高等数学III”的学生学号和姓名SELECT学号,姓名FROM学生表WHERE学号NOTIN(SELECT学号FROM成绩表,课程表WHERE成绩表.课程号=课程表.课程号AND课程名=”高等数学III”)WHERE公共属性NOTIN/IN(SELECT公共属性10.真实的数据并不存储于查询中,数据实际上存储于数据表中11.1995年和1996年出生:出生日期between#1995/01/01#and#1996/12/31#第六章VBA程序语言基础1.要求使用Debug.Print语句输出结果2.变量名称:首字母只能是下划线、字母3.数据类型:Boolean布尔型TRUE/FALSEInteger整型-32768~32767%是类型声明字符Long长整型-2147483648~2147483647&Double双精度浮点型(最大的范围)#String串类型(变长)0~大约20亿“江西财经大学”Date日期型#2018/11/01#4.;(分号)更紧密空两格,(逗号)更开“m=”;m“m=”,mm=10m=105.VBA数值处理函数:Exp(数值表达式):求自然对数e的的数值表达式次方Sqr(数值表达式):求数值表达式的平方根Rnd:返回一个[0,1)区间的随机数值公式→Int((upperbound-lowerbound+1)*Rnd+lowerbound)↓↓↓取整随机产生数下限的上限Abs(数值表达式):求绝对值Sgn(数值表达式):求参数的正负号,负数→-1,正数→1,0→0取整:Int()、Fix()区别:如果数值表达式是负数,Int返回=数值表达式的第一个负数,Fix返回=数值表达式的第一个负数。如果数值表达式是正数,都往下取6.整除的表达:a/b=b\a“\”整除运算符a/b=Int(a/b)amodb=07.取左字串函数:Left(字符串表达式,length)?left(“江西财经大学”,4)结果为:江西财经取左字串函数:Right(字符串表达式,length)取中间子串函数:Mid(字符串表达式,Start[,length])?mid(“江西财经大学”,3,2)结果为:财经8.日期和时间处理函数:Now返回系统当前日期和时间Year(date)返回表示年份的整数DateDiff求指定两个日期时间的时间间隔数目9.输入与输出函数:(1)打印输出空格函数:Spc(n)输出n个空格,用来对输出定位(2)打印输出定位函数:Tab[(n)],直接跳到某列(3)MsgBox()函数,以消息框形式输出(4)InputBox()函数,在一对话框中显示提示,等待用户输入正文或按下按钮10.表达式:(1)数值表达式:x=(-b+sqr(b^2-4*a*c))/(2*a)(2)字符表达式:?”江西”&”南昌”江西南昌(3)日期表达式:?#2016/07/01#+312016/08/01两日期表达式不能相加,相加属非法表达式(4)关系表达式:结果为逻辑量,要么TRUE要么FALSE(5)逻辑表达式:逻辑运算符包括Not(非)、And(与)、Or(或)、Xor(异或)、Eqv(异同)Xor当两侧不同才为TRUE;Eqv当两侧相同才为TRUE优先级:NotAndOrXorEqv第七章结构化程序设计1.程序的有序性:顺序、分支、循