1第三章数据库及其操作一讲创建数据库创建数据库文件与数据库文件相关的命令建立数据表建立数据表修改表结构与表操作相关的命令2创建数据库(1)单击“文件\新建”命令,在“新建”对话框中单击“数据库”,单击“确定”。(2)在项目管理器中选择数据选项卡,选定数据库图标后单击“新建”按钮。在创建窗口选定保存位置、键入数据库名如“学籍管理”,单击“保存”,此时出现数据库设计器窗口,并且所有打开的数据库都可以通过工具栏中的下拉列表选择创建新数据库:3与数据库相关的命令(一)创建:CREATEDATABASE数据库名省略将自动显示创建对话框注:若没有设置默认路径,写清全路径例:CREATEDATABASEd:/xjgl.dbcCREATEDATABASExjgl.dbc打开数据库有两种方式:1、独占方式打开:除了打开数据库的用户可以访问该数据库其它用户将不能访问。EXCLUSIVE2、共享方式打开:允许多人同时访问该数据库。SHARED不使用命令的情况下即在打开对话框的下方选中Openexclusive4与数据库相关的命令(二)打开:OPENDATABASE数据库名[打开方式][NOUPDATE]删除:DELETEDATABASE数据库名例:DELETEDATABASExjgl.dbc独占:EXCLUSIVE共享:SHARED是否可以修改打开的数据库例:OPENDATABASEc:\xjgl.dbc关闭:CLOSEDATABASE例:CLOSEDATABASESALLALL关闭所有打开的数据库之前要先关闭哦!修改:MODIFYDATABASE数据库名例:MODIFYDATABASE此时将出现5与数据库相关的命令(三)设置当前数据库:SETDATABASETO数据库名当打开多个数据库时某时刻只能有一个数据库成为当前数据库。例:SETDATABASETOc:\xjgl小结:与数据库相关的六条命令完成了对数据库的简单操作。需要注意的是:在非默认情况下,所有文件应该写明全路径。6创建自由表自由表是与数据库无关联的表,它的建立不需要数据库作容器,所以在建立之前要关闭打开的数据库。创建自由表:(1)在项目管理器中单击“自由表”,单击“新建”。(2)在关闭数据库的情况下单击“文件\新建”。自由表不具备数据库表的所有属性,但两表可进行相互转化7添加和移去表在“项目管理器”中,点击要操作的数据库中的“表”选项,单击“添加”(“移去”)。在“数据库设计器”中,点击工具栏上的“添加表(“移去表”)添加表移去表一个表只能添加到一个数据库中。当需要把字段名的长度大于10个字符的数据库表变为自由表时,该字段名的长度将自动被截取前十个字符。8修改表结构1、“文件\打开”,选择文件类型为表(*.dbf),单击需要修改的表,在“显示”菜单下选择“表设计器”。2、打开项目管理器找到需要修改的表,点击右边的“修改”。3、若是数据库表则利用数据库工具栏上的“修改表”,或者右键点击数据库设计器所包含的表的标题栏,在出现的快捷菜单上选择“修改”。在表设计器中进行9与表操作相关的命令(一)建立表文件:CREATETABLE数据表名[FREE](字段名字段类型[(字段长度[,精度])])说明:若使用[FREE]参数,可在任何情况下建立自由表。不要用A-J单个字母作为表文件名,它们是工作区的别名。creattableabcfree(姓名C(8),成绩N(7))怎样建立数据表?例:建立一自由表abc.dbf”,其中有两个字段分别是姓名:字符型,长度8和成绩:数值型,长度7。10与表操作相关的命令(二)将自由表加入数据库中:ADDTABLE表文件名说明:加入自由表之前要保证数据库是打开的。打开数据表:USE表文件名USE学生表说明:打开的数据表在状态栏中可以看到相关信息显示表结构:LIST/DISPLAYSTRUCTURE说明:显示打开的数据表结构。LISTSTRUCTURE是列表显示方式。DISPSTRUCTURE是分页显示方式。例:在“学籍管理.DBC”数据库中加入数据表“选课登记.dbf”OPENDATABASE学籍管理ADDTABLE选课登记11与表操作相关的命令(三)修改表结构:MODIFYSTRUCTURE说明:该命令是打开数据表设计器,显示当前的数据表结构。关闭数据表:USE说明:关闭当前数据表删除数据表:DELETEFILE表文件名说明:“表文件名”一定要写明表后缀名.dbf。使用该命令时一定要确保要删除的文件是关闭的。12数据表的复制:一张数据表既有结构又有数据(记录),因此学习数据表复制就有多种情况。新表包含的字段名及顺序筛选所满足的条件的记录ALL,NEXT,REST,RECORDUSE学生档案&&打开原数据表COPYTOb1FIELDS学号,姓名,出生年月,是否贷款FOR性别=“男”&&新表中包含原表的四个字段并且只复制男生的纪录USEb1&&打开复制的数据表LIST&&显示数据一、结构和记录:COPYTO表文件名[范围][FIELDS字段名][FOR|WHILE条件]13与表操作相关的命令(三)二、单独复制文件结构:COPYSTRUCTURETO表文件名[FIELDS字段名]USE学生档案COPYSTRUCTURETOb2FIELDS学号,姓名,出生地,性别USEb2LISTSTRUCTURE新表包含的字段名及顺序例:把学生档案表中学号,姓名,综合测评,出生地,性别五个字段的相关结构拷贝到b2表中,不要求有数据。14与表操作相关的命令(三)三、结构文件建立:COPYTO表结构文件名STRUCTUREEXTENDEDUSE学生档案COPYTOjgwjSTRUCTUREEXTENDEDUSEjgwjLISTSTRUCTURELIST&&有数据显示吗??例:将学生档案的表结构复制成一个特殊的表文件。说明:文件的结构由系统固定的模式自动生成文件的记录由原文件的结构生成15第二章二讲多个工作区的概念显示记录增加记录定位记录与记录指针有关的函数修改和删除记录搜索记录筛选记录windows下表记录的操作16工作区概念:是表的临时存储区域,在VFP中默认情况下打开一张表就打开一个工作区,打开多张表就需要有多个工作区。VFP同时最多可开辟32767个工作区。命名:工作区使用序号1-32767或别名表示,并且最初的1-10序号可以使用A…J代替,系统初始状态的当前工作区是1号工作区。操作:要查看工作区或者使用别名打开表,就需要通过“数据工作期”对话框来完成。“窗口菜单下的数据工作期(或工具栏上)→打开→找到需要数据表→重复操所即可打开多张工作表。若是同张表系统自动用其别名。在工作区中选定工作区的表指定别名等操所使用命令会更简洁17工作区相关的命令(一)指定当前工作区:SELECT工作区序号︱工作区别名说明:某时刻只能有一个工作区为当前活动的,其中SELECT0用于打开当前空闲的最低序号工作区。SELECTAUSE学生表IN1USE学生表USEINJUSEIN1在工作区中打开表:USE数据库名!数据表名IN工作区号说明:1、省略“IN工作区号”,默认选择当前工作区,在使用当前工作区前系统将自动关闭当前已经打开的表(该表与打开的不能是同一张表)。2、在当前数据库下打开表或者打开自由表,“数据库名!”可以省略。关闭工作区中的表:USEIN工作区序号18工作区相关的命令(二)为工作区指定别名:SELECT工作区号USE表名ALIAS别名说明:在有些情况下,既可用表名又可用别名代替工作区序号。该命令设定工作区的别名。SELECT2SELECT3USE学生表USE课程表ALIASKCBSELECT学生表SELECTKCB&&以表名代替工作区名&&以别名代替工作区名不同工作区打开同一张表:USE表名AGAIN[ALIAS别名]说明:省略“ALIAS别名”则使用系统默认的别名。SELECT1USE学生表SELECT2USE学生表AGAINALIASXSB&&在2号工作区以XSB别名打开表SELECT3USE学生档案AGAIN&&在3号工作区以默认别名打开表19记录显示方式--浏览(Browse)方式一、菜单操作“文件”菜单→“打开”命令→选定文件打开→“显示”菜单→“浏览”命令.(可以在项目管理器中直接点击“浏览”按钮)二、命令方式BROWSE[FIELDS字段列表][Scope][FOR逻辑表达][WHILE逻辑表达式2]需列出字段ALL,NEXT,REST,RECORD例:BROWSEFIELDS学号,姓名20记录显示方式—编辑(Edit)方式一、菜单操作“文件”菜单→“打开”命令→选定文件打开→“显示”菜单→“浏览”命令→“编辑”命令。二、命令方式EDIT[FIELDS字段列表][Scope][FOR逻辑表达1][WHILE逻辑表达式2]例:EDITFIELDS学号,姓名FOR性别=“女”21增加记录—键盘增加1.菜单操作方法“文件”菜单→“打开”命令→选定文件打开→“显示”菜单→“浏览”命令(或者“编辑”)→打开输入表界面→“表”菜单→“追加新记录”命令(一次加一条记录)→“显示”菜单→“追加模式”命令(一次加多条记录)2.输入记录的注意事项:•回车就可以将光标移到下一字段。•逻辑型只有T,Y,F,N4个字母的其中之一(不区分大小写)•日期型数据必须与系统的日期格式相符。•如果在新记录第一个字段的首字符处按回车键或者在数据输入过程中按CTRL+W,则输入数据存盘并返回命令窗口,按ESC或者CTRL+Q则放弃本次输入而返回。输入记录22与增加记录相关的命令APPEND命令:APPEND[BLANK][FROM表文件名]省略出现编辑窗口文件追加方式例:在学生档案表的最后增加一条空记录。USE学生档案APPENDBLANK例:将学生档案2的记录追加到学生档案中。USE学生档案APPENDFROM学生档案223INSERT命令格式1:INSERTINTO表名(字段名1,字段名2,……);VALUES(表达式1,表达式2,……)格式2:INSERTINTO表名FROMARRAY数组名|MEMVAR格式1是向表中添加一条记录,其中“字段名1,字段名2,…”和“表达式1,表达式2,…”一一对应,用于指定需要添加字段值的字段名,没有指定的字段将在记录输入时保持为空。格式2中的“FROMARRAY数组名”是将一个数组中的元素添加到表中,数组的第一个元素成为表中第一个字段的值,数组的第二个元素成为表中第二个字段的值,依次类推;“FROMMEMVAR”是将与表中字段名同名的内存变量的值作为记录添加到表中,如果表中的某些字段没有同名的内存变量,这些字段的值将保持为空。例:向学生档案表中添加一条记录,学号:44444,性别:男,其余字段值为空。USE学生档案INSERTINTO学生档案(学号,性别)VALU(‘44444’,‘男')例:使用INSERTINTO表名FROMMEMVAR命令向学生档案表添加一条记录。USE学生档案请同学们自己练习有FROMARRAY子句的命令姓名='赵明'出生年月={^1999/12/12}是否贷款=.T.学号='123456'INSERTINTO学生档案FROMMEMVARLIST24定位记录(一)记录指针:VFP为每个打开的表设置个内部使用的记录指针,用于指向正在被操作的记录,记录指针的作用是标识表的当前记录。当需要操作某条记录时就需将记录指针定位该记录上。定位记录(菜单):打开表→“表”菜单→“转到记录”命令→选择需要的命令即可命令功能前一个将记录指针移到第一个记录上最后一个将记录指针移到最后一个记录上下一个将记录指针移到当前记录的下一个记录上上一个将记录指针移到当前记录的上一个记录上记录号将记录指针移到指定的记录上定位将记录指针移到满足条件的记录上25定位记录(二)G0记录号︱TOP︱BOTTOM[IN工作区序号︱IN工作区别名]说明:1.移动到绝对位置的方式移动指针。2.“记录号”指定转到的记录号,指定记录位置超过表的范围时,系统会给出警告信息。T