第一章数据库系统概述数据库系统(DBS):指引入数据库技术的计算机系统特点:数据结构化,数据共享性高,程序和数据具有较高的独立性,为用户提供良好的接口,统一管理和控制数据,系统灵活,易于扩充.数据库(DB):是存储在计算机设备上.结构化的相关数据的集合,不仅描述事物数据的本身,也包括相关事物之间的联系.数据库管理系统(DBMS):是数据库系统中对数据进行管理的软件系统,是数据库的核心.功能:数据定义功能,数据操纵功能,数据库管理和控制功能.数据库管理员(DBA)的主要工作:数据库设计,数据库维护,改善系统性能,提高系统效率数据库设计的根本目的:解决数据资源共享问题数据库系统的体系结构概念模式:简称模式,是数据库中全体数据的逻辑结构和特征的描述,是面向全部用户的公共数据视图外模式:又称子模式或用户模式是用户与数据库的接口.内模式:又称物理模式或存储模式,描述数据在存储介质上的安排和存储方式。
一个数据库只有一个内模式.数据模型:客观事物及联系—概念模型—数据模型.E-R模型:实体(矩形)属性(椭圆)联系(菱形)在数据库设计阶段,将E-R图转化为关系数据模型的过程属于逻辑设计阶段。
两个实体间的联系:一对一的联系如班级与班长一对多的联系如班级与学生多对多的联系如学生与课程数据模型有:层次模型,网状模型,关系模型:是用二维表结构描述,一张二维表就是一个关系关系数据库关系:一个关系就是一张二维表.元组(记录):表中的一行.属性(字段):表中的一列.域:属性的取值范围.关键字:一张表中的一列或若干列能够把不同的记录区分开来.超关键字:二维表中能唯一确定记录的一列或几列,但它包含的字段可能是多余的.候选关键字:如果超关键字去掉任何一个字段后都不能唯一确定,是候选关键字.主关键字:外部关键字P10关系的特点:(1)关系必须规范化.即表中不能再包含表.(2)同一关系中不允许出现相同的属性名.(3)关系中任意两个元组不能完全相同.(4)关系中元组的次序可以任意交换.(5)关系中属性的次序可以任意交换。
关系的完整性约束:实体完整性:主关键字不能去空值(visual foxpro中主索引和候选索引可以保证实体完整性)参照完整性:对关系数据库中建立关联关系的数据表间数据参照引用的约束,也就是说外部关键字可以没有值,不允许为无效值.用户定义的完整性.关系运算:并,交,差. 选择,投影,连接Visual foxpro概念Visual foxpro的工作方式:交互方式和程序方式命令的书写规则:P16简单操作命令:(1)输出命令“?”,换行输出“??”,不换行输出(2)清屏命令CLEAR(3)注释命令“*”,注释整行“&&”,注释某行中的部分内容(4)退出命令QUIT常用的set命令:SET CENTURY ON/OFF 决定是否显示日期表达式中的世纪部分.SET DEFAULT TO (路径说明) 指定默认的驱动器,目录,文件夹SET TALK ON/OFF 决定Visual foxpro是否显示命令结果SET RELATION OFF INTO 取消某个具体的临时联系SET RELATION TO …INTO... 建立临时联系关系创建项目文件:create project 项目文件名打开项目文件:modify project 项目文件名项目管理器:数据:数据库,自由表,查询,视图文档:表单,报表,标签类代码:程序,AIP库,app应用程序其他:菜单文件,文本文件,其他文件,位图文件全部第二章Visual foxpro的数据与数据运算Visual foxpro的数据类型:字符型C, 数值型N 整型I 浮点型F 双精度型D 货币型Y 日期型D 日期时间型T 逻辑型L 备注型M 通用型G(用于存储OLE对象的数据)变量与常量常量字符型常量:是用定界符括起来的一串字符,常用的定界符有单引号,双引号,方括号数值型常量货币型常量逻辑型常量日期型常量和日期时间型常量:严格的日期格式{^YYYY—MM—DD hh:mm:ss a/p}变量3种变量形式:内存变量,字段变量,(数组变量),内存变量(断电后会消失)内存变量的访问:必须在变量名前加M.或M->内存变量按作用域可分为全局变量(public),局部变量(local)和私有变量.全局变量是指任何模块中都可以使用的变量,私有变量是在程序中直接使用由系统自动隐含的变量,其作用域是在变量的模块及其下属的各层模块,局部变量只能在建立它的模块中使用,不能在上层或下层模块中使用。
变量的赋值:1.<内存变量名>=<表达式>2.STORE<表达式> TO <内存变量表>注:like<通配符>:表示显示与通配符相匹配的内存变量,通配符“?”代表单一字符,通配符“*”代表多个字符。
数组变量:DIMESION和declare创建数组。
系统默认数组中各下标变量的初值都是逻辑假(.F.).可利用STORE命令或等号命令为整个数组赋值Visual foxpro系统函数取绝对值函数ABS(),取符号函数SIGN(),最大值函数MAX(),最小值函数min()取整函数INT(),四舍五入函数ROUND(),求平均根函数SQRT(),随机函数RAND(),求余数函数MOD()删除字符串前后空格函数:ALL TRIM(<字符表达式>)RTRIM(<字符表达式>)LTRIM(<字符表达式>)计算字符串长度函数:LEN()求子串位置函数:AT()取子字符串函数:SUBSTR().LEFT(),RIGHT()生成空格函数:space()年份,月份,天数函数:YEAR(),MONTH(),DAY()数值型转化为字符型函数:STR()字符型转化为数值型函数:VAL()条件测试函数:IIF() ?IIF(YEAR(DATE())=2008,”今年在北京开奥运会”,”今年北京没有开奥运会”Visual foxpro的表达式算术表达式:%:模运算即取余数字符表达式:+:将两个字符串连接在一起-:删除运算符左侧字符串的空格后,与右串连接起来删除的空格放在整个字符串的后面$:左侧是否包含在右侧中结果是逻辑值关系表达式:<>或#或!= 不等于表示结果是逻辑值第三章数据表的建立与使用创建表结构:CREATE TABLE <表文件名>(<字段名1><字段类型>[(<字段宽度[,小数位数]>)][null/not null])如:CREATE TABLE js(gh C(6),xm C(8),xb C (2),csrq D,gzsj D,zcmc C(12),jbgz N(7,2),xybh C(2),jl M,zp G)SET NULL ON/OFF 控制表中的字段是否接受空值利用ALTER TABLE-SQL命令修改表结构:(1)添加或修改字段ALTER TABLE <表文件名> ADD/ALTER[COLUMN]<字段名1><字段类型>[(字段宽度[,小数位数])(2)重命名字段ALTER TABLE <表文件名>RENAME[COLUMN]<字段名1> TO <字段名2>(3)删除字段ALTER TABLE <表文件名> DROP[COLUMN]<字段名>表记录的输入:APPEND FROM <表文件名>[FLELDS<字段名1 >,<字段名2>……]]FOR<条件表达式>]APPEND FROM <文本文件名> DELIMITEDAPPEND FROM <EXCEL文件名> XLSINSERT INTO <表文件名>[(字段)…] VALUES (<表达式1 >)…INSERT INTO js(gh, xm, xb, csrq) VALUES (“020004”,”高山”,”男’’,{^1986-2-2})数据表的操作表的打开:(1)界面方式(2)命令方式:USE<表文件名> [NOUPDATE(只读)][EXCLUSIVE(独占)][SHARED(共享)]表的浏览:(1)界面方式(2)BROWSE命令BROWSE[FLELD<字段名>][FOR<条件表达式>]记录的显示:LIST或DISPLAY命令记录的定位:记录的开始标志BOF 记录指针标志RECNO 记录食物结束标志EOF绝对定位:GO n 或GOTO nGO TOP/BOTTOM 或GOTO TOP/BOTTOM相对定位:SKIP[<n>]条件定位:LOCATE FOR <条件表达式>[<范围>]记录的修改:命令方式:REPLACE命令和UPDATE-SQL命令REPLACE jbgz WITH jbgz+200 FOR xb=”女”UPDATE js SET jbgz=jbgz+200 WHERE xb=”女”记录的删除:逻辑删除:DELETE FROM<表文件名>[WHERE<条件表达式>]物理删除:PACK(当前记录) ZAP(全部记录)恢复带有删除标记的记录:RECALL[<范围>][FOR<条件表达式>] 对带有删除标记记录的访问:SET DELETED ON(不可以)/OFF(可以)数据表的索引索引实际上是根据索引关键字的值进行逻辑排序的一组指针主索引:是不允许索引表达式的值出现重复的索引。
每张表只能建立一个主索引,只有数据表可以建立主索引。
候选索引:是不允许索引表达式的值出现重复的索引,数据表和自由表都可建立候选索引,一张表可建立多个候选索引。
普通索引:是允许索引表达式的值出现重复的索引,数据表和自由表都可建立普通索引,一张表可建立多个普通索引。
唯一索引:是允许索引表达式的值出现重复的索引,数据表和自由表都可建立唯一索引,一张表可建立多个唯一索引。
字符型字段在表达式中的前后顺序将影响索引的结果。
数值型字段按表达式的运算结果排序。
索引的建立:命令方式:INDEX ON <索引表达式> TAG <索引标识名>[FOR<条件表达式>][ASCENDING(升序)/DESCENDING(降序)/UNIQUE(唯一)/CANDIDATE(候选)]系统默认是普通索引注:主索引不可以用INDEX命令建立,其他都可以。