SELECT查询包括条件项、内连接、分组汇总(含HAVING)、排序、简单子查询(不考EXIS TS)及一些输出选项。
数据库管理系统(DBMS)特点(1)数据结构化(2)数据共享性好、冗余度低、(3)数据独立性强(4)DBMS统一管理。
数据库(DB),就是相关联的数据的集合。
数据库系统(DBS),是指在计算机中引入数据库后的系统构成,由计算机软硬件、数据库、D BMS、应用程序以及数据库管理员(DBA)和数据库用户构成。
关系模型是一种数据模型关系模型中最重要的概念就是关系。
关系(Relation),直观的看,就是由行和列组成的二维表,一个关系就是一张二维表。
关系中的一列称为关系的一个属性(Attribute),一行称为关系的一个元组(Tuple)。
组称为候选键(Candidate Key),从候选键中挑选一个作为该关系的主键(Primary Key)。
一个关系中存放的另一个关系的主键称为外键(Foreign Key)。
并不是任何的二维表都可以称为关系。
关系具有以下特点:•关系中的每一列属性都是原子属性,即属性不可再分;•关系中的每一列属性都是同质的,即每一个元组的该属性取值都表示同类信息;•关系中的属性间没有先后顺序;•关系中元组没有先后顺序;•关系中不能有相同的元组。
关系模型,就是对一个数据处理系统中所有数据对象的数据结构的形式化描述。
将一个系统中所有不同的关系模式描述出来,就建立了该系统的关系模型。
关系数据库,是依据关系模型建立的数据库,是目前各类数据处理系统中最普遍采用的数据库类型。
依照关系理论设计的DBMS,称为关系DBMS。
数据库设计指:对于给定的应用环境,设计构造最优的数据库结构,建立数据库及其应用系统,使之能有效地存储数据,对数据进行操作和管理,以满足用户各种需求的过程。
联系有三种类型,转化为关系模式后,与其他关系模式可进行合并优化。
1:1的联系,一般不必要单独成为一个关系模式,可以将它与联系中的任何一方实体转化成的关系模式合并(一般与元组较少的关系合并)。
1:n的联系也没有必要单独作为一个关系模式,可将其与联系中的n方实体转化成的关系模式合并。
m:n的联系必须单独成为一个关系模式,不能与任何一方实体合并。
在数据库输入和存放数据时,最主要的是要满足三类数据完整性约束规则:实体完整性、参照完整性和用户定义的完整性。
实体完整性规则:定义了主键的关系中,不允许任何元组的主键属性值为空值。
参照完整性规则:关系S的主键作为外键出现在关系R中,它在R中的取值只能符合两种情形之一:或者为空值(Null);或者在关系S的主键中存在对应的值。
用户定义的完整性规则:用户根据实际需要对数据库中的数据或者数据间的相互关系可以定义约束条件,所有这些约束构成了用户定义的完整性规则。
投影、选择、连接是关系操作的核心运算;域完整性规则属于用户定义的完整性规则。
Access数据库,由7个对象组成。
这7个对象是:表、查询、窗体、报表、页、宏、模块。
除页外,其他6个对象都保存在数据库文件.mdb中。
表是Access数据库的核心。
表由表名加以标识和区别,每个表的名称不可以重复。
表中的行称为记录,表中的列称为字段。
在Access中,标识字段称为主键,而放在一个表中的另外一个表的主键字段,起两个表联系的作用,称为外键。
表之间的联系也称为关系。
“组”是组织管理数据库对象的一种方式。
组由从属于该组的数据库对象的快捷方式组成。
对于数据库中数据的完整性保护,最简单和有效的方法是进行备份。
备份即将数据库文件在另外一个地方保存一份副本。
当数据库由于故障或人为原因被破坏后,将副本恢复即可。
数据类型规定数据的取值范围、表达方式和运算种类。
在数据操作和运算中直接使用的确定的数据值称为常量。
当需要使用文本值常量时,必须用ASCII的单引号或双引号括起来。
单引号或双引号称为字符串定界符,必须成对出现。
日期、时间或日期时间的常量表示要用“#”作为标识符。
日期时间之间用空格隔开。
日期的间隔符号还可以用“/”。
是/否型作为逻辑值的常量,可以取的值有:true与false、on与off、yes与no等。
True、on、yes存储的值是-1,f alse、off与no存储的值为0。
超链接型。
用于存放超链接地址。
定义的超链接地址最多可以有四部分,各部分间用数字符号(#)分隔,含义是:显示文本#地址#子地址#屏幕提示。
Access对于表名、字段名和控件名等对象的命名制定了相应的规则。
命名规定如下:名称长度最多不超过64个字符,名称中可以包含字母、汉字、数字、空格及特殊的字符(除句号(.)、感叹号(!)、重音符号(`)和方括号([ ])之外)的任意组合,但不能包含控制字符(ASCII值为0到31的控制符)。
首字符不能以空格开头。
在Access项目中,表、视图或存储过程的名称中不能包括双引号(")。
为字段、控件或对象命名时,最好确保新名称不要和Access保留字相同。
所谓保留字,就是Access自己已使用的词汇。
字段属性属性项设置说明字段大小定义文本型长度、数字型的子类型、自动编号的子类型格式定义数据的显示格式和打印格式输入掩码定义数据的输入格式小数位数定义数字型和货币型数值的小数位数标题在数据表视图、窗体和报表中替代字段名显示默认值添加新记录时,自动加入到字段中的值有效性规则定义对于字段存放数据的检验约束规则,是一个逻辑表达式有效性文本当字段输入或更改的数据没有通过检验时,要提示的文本信息新值只用于自动编号型,指定新的值产生的方式:递增或随机数据库系统一般包括三大功能:数据定义功能、数据操作功能、数据控制功能。
关系数据库中进行数据操作的语言是结构化查询语言(Structure Query Language),简称SQL。
在Access中,实现数据库操作功能的数据库对象就是“查询”。
表是数据组织存储的概念,查询是关于数据库操作的概念,查询以表为基础。
Access数据库将查询分为“选择查询”和“动作查询”两大类。
用户使用选择查询从指定表中获取满足给定条件的记录;使用动作查询从指定表中筛选记录以生成一个新表或者对指定表进行记录的更新、添加或删除操作。
Access的“选择查询”有两种基本用法:一是根据条件,从数据库中查找满足条件的数据,并进行运算处理。
二是对数据库进行重新组织,以支持用户的不同应用。
Access可以命名保存查询的定义,这就得到数据库的查询对象。
查询对象可以反复执行,查询结果总是反映表中最新的数据。
查询所对应的结果数据集被称为“虚表”,是一个动态的数据集。
SQL具有完善的数据库处理功能,主要功能如下:(1)数据定义功能。
SQL可以方便地完成对表及关系、索引、查询的定义和维护。
(2)数据操作功能。
操作功能包括数据插入、删除、修改和数据查询。
SQL可以满足数据库操作的各种需要。
(3)数据控制功能。
SQL可以实现对数据库的安全性和完整性控制。
SQL的主要特点如下。
(1)高度非过程化,是面向问题的描述性语言。
用户只须将需要完成的问题描述清楚,具体处理细节由DBMS自动完成。
即用户只须表达“做什么”,不用管“怎么做”。
(2)面向表,运算的对象和结果都是表。
(3)表达简洁,使用词汇少,便于学习。
SQL定义和操作功能使用的命令动词只有:CREAT E、ALTER、DROP、INSERT、UPDATE、DELETE、SELECT。
(4)自主式和嵌入式的使用方式,方便灵活。
(5)功能完善和强大,集数据定义、数据操纵和数据控制功能于一身。
(6)所有关系数据库系统都支持,具有较好的可移植性。
SQL命令语句包括定义命令:CREATE、ALTER、DROP;查询命令:SELECT;更新命令:INSER T、UPDATE、DELETE。
在Access中,由运算符和运算对象组成的运算式称为表达式。
运算对象包括常量、输入参数、表中的字段等,运算符包括一般运算和函数运算。
Access事先规定了各类型数据运算的运算符。
(1)数字运算符。
数字运算符用来对数字型或货币型数据进行运算,运算的结果也是数字型数据或货币型数据。
(2)文本运算符。
或称字符串运算符。
普通的文本运算符是:“&”或者“+”,两者完全等价。
其运算功能是将两个字符串联接成一个字符串。
其他文本运算使用函数。
(3)日期时间运算符。
普通的日期时间运算符只有“+”和“-”。
它们的运算功能如表5-2所示。
表5-2 日期和日期时间运算格式结果及类型<日期> + <n> 或 <日期> - < n>日期时间型,给定日期n天后或n天前的日期<日期> - <日期>数字型,两个指定日期相差的天数<日期时间> + <n> 或 <日期时间> - < n>日期时间型,给定日期时间n秒后或n秒前的日期时间<日期时间> - <日期时间>数字型,两个指定日期时间之间相差的秒数(4)比较测试运算符。
同类型数据可以进行比较测试运算。
可以进行比较运算的数据类型有:文本型、数字型、货币型、日期时间型、是否型等。
运算符如表5-3所示,运算结果为是否型,即true或false。
由于Access中用0表示false,-1表示true,所以运算结果为0或-1。
表5-3 比较测试运算符运算符说明运算符说明<小于BETWEEN … AND …范围判断<=小于等于[NOT] LIKE文本数据的模式匹配>大于IS [NOT] NULL是否空值>=大于等于[NOT] IN元素属于集合运算=等于EXISTS是否存在测试(只用在表查询中)<> 不等于文本型数据比较大小时,两个字符串逐位按照字符的机内编码比较,只要有一个字符分出大小,即整个串就分出大小。
日期型按照年、月、日的大小区分,数值越大的日期越大。
是否型只要两个值:true和false,true小于false。
“BETWEEN x1 AND x2”,x1为范围起点,x2为终点。
范围运算包含起点和终点。
LIKE运算用来对数据进行通配比较,通配符为“*”和“?”(ANSI SQL为“%”和“_”)。
对于空值判断,不能用等于或不等于NULL,只能用IS NULL或IS NOT NULL。
IN运算相当于集合的属于运算,用括号将全部集合元素列出,看要比较的数据是否属于该集合中的元素。
EXISTS用于判断查询的结果集合中是否有值。
(5)逻辑运算符。
逻辑运算是指针对是否型值true或false的运算,运算结果仍为是否型。
最早由布尔(Boolean)系统提出,所以逻辑运算又称为布尔运算。
逻辑运算符主要包括:求反运算NOT、与运算AND、或运算OR、异或运算XOR等。