第3章数据库的建立和操作.ppt

上传人:本田雅阁 文档编号:2577401 上传时间:2019-04-11 格式:PPT 页数:94 大小:250.51KB
返回 下载 相关 举报
第3章数据库的建立和操作.ppt_第1页
第1页 / 共94页
第3章数据库的建立和操作.ppt_第2页
第2页 / 共94页
第3章数据库的建立和操作.ppt_第3页
第3页 / 共94页
亲,该文档总共94页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第3章数据库的建立和操作.ppt》由会员分享,可在线阅读,更多相关《第3章数据库的建立和操作.ppt(94页珍藏版)》请在三一文库上搜索。

1、第3章 数据库的建立和操作,内容,介绍数据库、数据表的基本概念 数据库和数据表的建立 编辑表中的数据、记录修改与删除 表的索引等有关操作。,概念,数据库(.dbc) 就是一个关于某一特定主题或目标的信息集合。 表(.dbf) 基本单位,是数据库的基础 可以说表是关系数据库系统中的基本结构。 要存数据,为所需记录的信息创建一个表。 由行和列组成的,一行为一个记录,一列为一个字段。,一行为一个记录(Record),一列为一个字段(Field),通常所说的表格,二维表简称表(Table)特征:,(1)若干记录 (2)若干个字段,每记录具有相同结构的字段 (3)不同类型的字段来存储不同类型的数据 (4

2、)字段的顺序与存储的数据无关 (5)记录在的顺序与存储的数据无关。,表的两要素: 表结构(列) 相应记录(行),表结构,表的字段,表是由记录组成 记录又由字段组成 字段的属性(表结构) 字段名 字段类型 字段宽度 小数位数,1.字段名,约定: 只能使用字母、汉字、下划线和数字 见名知义 = + / | : ? 空格 字段名必须以字母或汉字开头,并且长度不能超过128个字符 如:下列那些合法 不以数字开头 3mn 姓名1 mn3 不能含有空格; m n 编 号 不能含有各种运算符; S-N S_N AI*X,2.字段类型,不同类型的字段来存储不同类型的数据,(1)字符型(Character) 通

3、常用于存储键盘输入的文本数据。 汉字、字母、数字、空格、 符号及标点符号 字符型数据必用双引号或单引号或来定界 字符型字段的宽度最大为254 * 如: “how” 1234 中国人,zpz: 内存变量,(2)货币型(Currency) 保存货币数值时,用货币类型而不是数值类型字段 最多保留4位小数位数,多则四舍五入至4位 内存变量用$数值来赋初值 如:x=$999 ? Type(x),zpz: 内存变量,(3)数值型(Numeric) 数值型字段用来存储数值数据。 它可以包含数字09,也可以带正、负号或小数点 如:1234 100.89 (4)浮点型(Float) 浮点型字段在功能上等价于数值

4、型字段。,zpz: 内存变量N,(5)日期型(Date) 用于存储包含有年、月、日的日期数据 长度为8字节 (6)日期时间型(DateTime) 用于存储包含有年、月、日、时、分、秒的日期和时间数据。 (7)双精度型(Double) 双精度型用于存储精度要求较高、位数固定的数值,或真正的浮点数值。,zpz: 内存变量5.6,(8)备注型(Memo) 长度固定为4字节 用于存储不定长度的文本数据 当文本数据长度可能大于254,无法使用字符型存储时,使用备注类型字段 所有备注型字段的实际内容存储在和表名相同,扩展名为.FPT的备注文件中,(9)通用型(General) 通用型用于存储OLE对象数据

5、 字段宽度固定为4个字节,用于存储一个4个字节的指针,指向该字段的实际内容 其内容存储在扩展名为.FPT的文件中。 OLE对象包括电子表格、字处理文档、图像或其他多媒体对象等 OLE对象可以用链接方式存储在表中。 存储数据的大小,取决于相的OLE服务程序,和磁盘空间大小的限制。,(10)整型(Integer) 整型用于存储整数数据 字段宽度固定为4个字节。 取值范围从-2 147 483 647 到2 147 483 646。 (11)逻辑型(Logical) .T.或.Y. 为逻辑真 .F.或.N. 为逻辑假 长度固定为1字节,(12)字符型(二进)(Character(Binary) 字符

6、型(二进制)用于存储不需要系统代码页维护的字符数据 其他字段特性同字符型字段 密码(各国) (13)备注型(二进制)(Memo(Binary) 备注型(二进制)用于存储不需要系统代码页维护的备注字段数据。其他字段特性同备注型字段。,数据类型(结),数据类型(Type)13种 C-字符型 N-数值形 F-浮点型 D-日期型 I- 整 型 L-逻辑型 M-备注型 G-通用型 Y货币型,3.字段宽度,规定宽度 字符型字段 254 货币型字段 8 数值型字段 20 日期型字段 8 备注型 4 逻辑型 1 日期时间型 8 通用型字段 4 用于存储一个4个字节的指针,指向该字段的实际内容。整型字段宽度固定

7、为4个字节。,宽度(Width) (结) (以下类型宽度固定) 货币型、日期型、日期时间型、双精度型:8字节 整型、备注型、备注型(二进制)、通用型:4字节 逻辑型:1字节,4.小数位数 有小数的字段: 数值型 浮点型 双精度型 字段宽度 = 整数部分宽度 + 小数点1位 +小数位宽度 如小数位数不为0,则小数位数至少要比整个字段宽度小2,小数位数,一个N形变量宽为6,小数位数为3,则这个变量最大可表示的数为多少? _ _ . _ _ _ 99.999,5.空值(NULL),空值是用来标识一个字段“没有值”的标志 空值表示没有任何值或没有确定值 空值不等同于数值0、空字符串或逻辑“假” 函数E

8、MPTY() 测试空值 如果允许字段接受NULL值,则应选中该栏所在框 表的关键字段不允许为NULL值,字段类型 中文名称 宽度(字节) 说明 Character 字符型 254 字母、汉字、数字、文本、符号 Currency 货币型 8 货币单位 Numeric 数值型 20 整数或小数 Float 浮点型 20 同数值型 Date 日期型 8 年、月、日 DateTime 日期时间型8 年、月、日、时、分、秒 Double 双精度型 8 双精度数值 Integer 整型 4 整数 Logical 逻辑型 1 真或假 Memo 备注型 4 不定长的字母、文本、数字 General 通用型 4

9、 OLE图像、多媒体对象,小结,数据库是表和表间关系的集合 表是由表结构和记录组成 表结构是由各不同字段构成 每一字段又具有字段名、数据类型、数据宽度、小数位数等属性 表中的每一个记录又具有相同的字段,建表的步骤: 1)设计表结构 2)建表的结构 creat 表名 3)保存表文件 ctrl+w 4)输入记录 append browse,表结构的创建,1、表设计器 (1)打开“表设计器” 项目管理器/自由表/新建/新表/保存 注: A、也可从菜单或工具栏中直接新建表 B、与在“项目管理器”中新建表不同的是: 这样新建的表将不包含在项目中 (2)在“表设计器”中创建表结构 表设计器/字段/输入/确

10、定,表结构的创建,2、用create table -SQL命令创建表结构 create table |DBF表文件名(字段名1 字段类型(字段宽度,小数位数);,字段名2 字段类型(字段宽度,小数位数)-编程时用 例:学生表结构 create table xs2(xh c(6),xm c(8),xb c(2),zydh c(6) 教师表结构 create table js(xm c(8),xb c(2),gl n(2,0),csrq d,jbgz n(7,2),jl m),3、使用Null值 表设计器/字段 create table 中NULL,NOT NULL子句 例: create tab

11、le books(sh c(6) not null,sm c(40) not null,cbrq d null) set null on,数据表的建立,如: 一张名为教师档案文件zgda.dbf 编号 姓名 性别 年龄 职称 工作时间 婚否 简历 1 张黎黎 女 26 助教 052483 T memo 2 李 艳 女 30 助教 091490 T memo 3 刘 强 男 38 讲师 122476 T memo,职工档案表结构(zgda.dbf),字段名 类型 宽度 小数位数 索引 NULL 编号 字符型 4 无 升序 否 姓名 字符型 6 无 无 否 性别 字符型 2 无 无 否 年龄 数值

12、型 2 无 无 否 职称 字符型 8 无 无 可 工时 日期型 8 无 无 否 婚否 逻辑型 1 无 无 否 简历 备注型 4 无 无 可 照片 通用型 4 无 无 可,表的打开,VFP在使用一个表前必须把表打开 打开命令 USE VFP在结束使用一个表时,必须把表关闭 关闭命令 USE CLOSE ALL CLOSE DATABASE/TABLE,修改表结构 1、表设计器 项目管理器/选定表/修改 2、命令 USE books MODIFY STRUCTURE,修改表结构,2、命令 ALTER TABLE-SQL命令 添加字段:ADD COLUMN 子句 例: ALTER TABLE boo

13、ks ADD COLUMN 折扣 n(4,2) 重命名字段:RENAME COLUMN 子句 例: ALTER TABLE books RENAME COLUMN 折扣 TO zk 删除字段:DROP COLUMN 子句 例: ALTER TABLE books DROP COLUMN zk,3、菜单/按钮方式 法1: “表”“属性” “工作区” “工作区属性”“修改” 法2: “窗口” “数据工作期” (“属性” “修改”),记录的处理,记录的追加 1、立即输入记录(浏览/编辑/追加方式) 2、浏览窗口下追加(USE/BROWSE)(表/追加新记录) 3、使用INSERT - SQL命令追加

14、记录 insert into zgda(姓名,性别,年龄) values (洪七公,男,900) 4、从其他表中追加记录 命令APPEND APPEND FROM APPEND BLANK ,记录的浏览 1、浏览窗口 进入 : BROWSE 命令 use books/显示/浏览 项目管理器/选定某个表/单击“浏览”按钮 2、命令 BROWSE LIST / DISPLAY BROWSE FIELDS 书号,书名,作者 for .,如何定制浏览窗口?,重新安排列的位置: 拖动 改变列的宽度: 拖动 显示或隐藏表格线: 显示/网格线 分为两个窗格: 左下角拖动,6.3.3 记录的定位,Go top

15、 go bottom skip,1、记录指针标志 记录号(输入顺序) 记录的开始标志 BOF ( ) 记录指针标志 ( 当前记录 ) RECNO ( ) 记录的结束标志 EOF ( ) 2、记录的定位方式 绝对定位 go 相对定位 skip 条件定位,几个概念,记录指针 当前记录 记录定位 记录号RECNO(),例1,假设ZGDA表有848条记录,先后执行以下命令 bof() eof() recno() use books f f 1 skip -1 t f 1 skip -1 Error f 1 go bott f f 848 skip f t 849 skip Error,例2,RECN(

16、) Use books 1 go 5 5 skip +2 7 skip -3 4 locate for ,3、记录定位的实现 界面方式 (“表”“转到记录”) 记录号:绝对定位 goto 定位:条件定位 locate for 作用范围:all,next,record,rest,for 找到/未找到 命令方式 绝对定位:GO( GOTO ) GO( GOTO ) TOP/BOTTOM 相对定位:SKIP(与索引有关)skip=skip 1 快速移动:SEEK 及 FIND,记录的修改,1、在浏览窗口中修改 EDIT / CHANGE / BROWSE 项目管理器/浏览 例:修改books表中第5

17、条记录 use books edit record 5,记录的修改,2、批量记录的修改 (1)界面方式 “表”“替换字段”字段条件 (2)命令方式 UPDATE-SQL命令(表不必事先打开,以下同) REPLACE 命令 USE books copy to temp use temp REPLACE 单价 WITH 5.00 FOR 单价5,记录的删除,目的: 节省时空 删除步骤: 逻辑删除 物理删除,逻辑删除,给要删除的记录加标记(*号) 标记要删除的记录(逻辑删除) 浏览窗口: 单击小方框 “表” “删除记录” 命令DELETE FROM 表名WHERE 过滤条件表达式 例: 删除教材表中

18、库存在数量为0的记录 delete from books where 库存数量=0,物理删除,彻底删除(物理删除) “表” “彻底删除” 命令PACK(独占) 删除有删除标记的记录 命令ZAP=delete all +pack(独占),恢复记录的删除,恢复带删除标记的记录(与set dele 无关) 法1: 小方框 黑白 法2:“表” “恢复记录” 法3:RECALL 范围FOR 条件表达式1WHERE 条件表达式2 例:recall recall all recall all for 库存数量=0(这里的all 可省) 说明:缺省范围(当前记录,不是全部记录),记录的删除,对带删除标记记录的

19、访问 (1)测试记录的删除标记deleted() 有删除标记返回为真,否为假 (2)控制对带删除标记记录的访问 set deleted on/off 说明: 有些默认为ON,有些默认为OFF 实验: 先删除若干记录(逻辑删除) LIST 默认为OFF SET DELETED ON LIST,set deleted on/off,为set deleted on时 屏蔽掉有标记的记录,不能访问 影响Count命令 不影响Reccount() 例:8个记录,一个有删除标记 Set deleted on Count to x ? X 7 ? Reccount() 8,筛选记录,界面 “表”“属性”“数

20、据过滤器” 命令 SET FILTER TO SET FILTER TO FOR子句:临时性记录筛选 例:USE ZGDA SET FILT TO 出版社=石油大学 注意: 是隐藏而非删除 与FOR子句不同 对SE LECT-SQL、 DELETE-SQL、UPDATE-SQL无效,筛选字段,表/属性/字段筛选 SET FIELDS TO , SET fields to 姓名,性别,表的使用,工作区: 用以标识一张打开的表的内存区域 一个工作区在某一时刻只能打开一张表 一张表可以在多个工作区同时打开 (use 表 again) 共有255个工作区 默认工作区号为1区 USE books(默认为

21、1号) LIST USE books1(books自动关闭) LIST,工作区的标识*,用数字来标识各个工作区(1255) 用相应工作区中表名来标识工作区 (此时表没有指定别名,如指定别名,用别名来标识工作区) Sele 5 Use zgda Sele 4 Sele zgda 1-10个工作区常用英文字母A-J Sele 10=sele j,工作区的转换,命令: Select 工作区号/工作区中表别名/A-J 如: Sele 1 Use zgda Sele B Selct zgda Select 0 表示选择未用的号最小工作区,Select O例子,sele 1 use zgda sele 4

22、 use zggz sele 0 ? select() 返回选择的工作区号,The answer is :2,表的使用,可以同时在多个工作区中打开多个没有打开的表 SELE 1 USE books1 LIST SELE 2 USE books2 LIST SELE 1 LIST 一张表不可以在多个工作区同时打开,表的使用,表的别名指定 USE ALIAS 例:USE ZGDA ALIAS OK 当前工作区:正在使用的工作区 ALIAS ( )及SELECT ( ) 函数 SELE(0):测试当前工作区的区号 ALIAS():测试当前工作区中表的别名 “数据工作期”窗口 别名,操作非当前工作区中

23、的表 把其它的工作区选为当前工作区 Sele 2 在命令中强行指定工作区 GO TOP IN ok,关于表的打开和关闭,刚创建的表处于打开状态* 1、表的打开 界面 文件/打开 窗口/数据工作期/打开 USE ? 命令 USE USE IN 0 多次打开同一张表(同时) USE AGAIN 例:USE books/SELE 0/USE XS AGAIN,2、表的关闭 界面 窗口/数据工作期/关闭 命令 USE USE IN CLOSE ALL&数据库、索引、项目管理器等也被关闭 CLOSE DATABASES &如果当前没有打开的数据库,则把自由表全部关闭 CLOSE TABLES &关闭表,

24、不关闭库 退出VFP 注意:SQL语句能自动打开表,但不会自动关闭表!,表的独占与共享使用,表的共享使用: 一张表可以同时被多个用户打开 (RECORD UNLOCKED) 表的独占使用: 一张表只能被一个用户打开(默认) (EXCLUSIVE),表的独占与共享使用,设置独占与共享打开表的默认状态 工具/选项/数据 SET EXCLUSIVE OFF/ON(共享/独占) 强行用独占方式打开表 “打开”“独占”复选框 USE SHARED/EXCLUSIVE 设置改变,并不改变已经打开的表的状态 一张表同时被多次打开时,只以第一次的打开方式为准(窗口/数据工作期),利用缓冲访问表中的数据,1、数

25、据缓冲 在多用户环境下,用以保护对表记录所做的数据更新以及数据维护操作的一种技术 2、类型 (1)记录缓冲(行缓冲):一次访问、修改、写一个记录 (2)表缓冲:对多个记录缓冲更新 两种锁定方式: (1)保守式缓冲:在多用户环境中,防止一个用户访问(读/写)另一个用户正在修改的记录或表 (2)开放式缓冲:记录只在被写入时加锁,表的数据缓冲,表的数据缓冲 保守式行缓冲 开放式行缓冲 保守式表缓冲 开放式表缓冲 不设置缓冲,设置表的数据缓冲,3、设置表的数据缓冲 (1)界面 窗口/数据工作期/属性/ 选中“允许数据缓冲”,“锁定记录”,“缓冲” “在编辑时”(保守式)“在写入时”(开放式) “当前记

26、录”(记录缓冲)“所有编辑过的记录”(表缓冲),设置表的数据缓冲,(2)CURSORSETPROP() 格式: CURSORSETPROP(Buffering,缓冲类型值,工作区|别名) 缓冲类型值 1无缓冲(默认) 2保守式行缓冲 3开放式行缓冲 4保守式表缓冲 5开放式表缓冲 例:为XS表打开开放式表缓冲: SET MULTILOCKS ON(除方式1外) USE XS = CURSORSETPROP( Buffering, 5),利用缓冲访问表中的数据,4、检测缓冲区中的数据是否与数据源表一致 (1)CURVAL()和OLDVAL() CURVAL():返回当前值 OLDVAL():返回

27、初始值 (2)GETFLDSTATE() 5、执行和放弃对缓冲数据的更改 (1)TABLEUPDATE()执行对缓冲行、缓冲表或临时表的修改 格式: TABLEUPDATE(AllRows,lForce,别名|工作区) (2)TABLEREVERT()放弃对缓冲行、缓冲表或临时表的修改 格式: TABLEREVERT(AllRows,工作区|别名),zpz: 此页不讲,概念,物理顺序: 一般是按照其输入的顺序进行记录的存储顺序 顺序找,速度慢 不便于查找需要的信息 逻辑顺序: 记录的处理顺序 (快速) 可以使用索引来改变记录的顺序即逻辑顺序 根据表中字段的值,建立具有逻辑顺序的索引文件,然后根

28、据索引文件重新排列数据库表中显示的记录。,索引文件,1、索引: 如同目录 数据库的辅助文件,不能单独使用 可以按一个字段索引,也可以多个 一个表可以创建多个索引 索引存储在索引文件中 索引文件中存储着记录号和索引字段的索引值,理解索引,索引可以理解为根据某一字段的值进行逻辑排序的一组指针 按照索引显示记录,VFP按照指针排列的顺序分别读取每一条记录,而这些记录在数据库中的实际存储位置并未改变。,按年龄索引后的表文件,姓名 年龄 张黎黎 26 李 艳 30 刘 强 38 DA.DBF,姓名 年龄 刘 强 38 李 艳 30 张黎黎 26 DA.DBF,物理顺序,逻辑顺序,记录号 年龄大小 3 1

29、 2 2 1 3 NL.CDX,关键字与索引标识,(1)索引关键字(Index Key) 建立索引的依据(索引表达式) 字段/字段表达式 VFP使用索引关键字来显示和访问表中的记录 (2)索引标识(Tag) 索引关键字的名称(索引名) =10字节,索引的类型,4种类型索引(根据关键字段) 主索引 候选索引 普通索引 惟一索引,表的索引,2、索引的类型 主索引(Primary indexs) 在数据库表中,每张表只能创建一个主索引 组成主索引关键字的字段或表达式,在表的所有记录中不能有重复的值(学号可以,姓名不可以) 自由表不能建立主索引 主索引存储于数据库表的结构复合索引中 侯选索引(Cand

30、idate indexs) 在指定的关键字段或表达式中不允许有重复值的索引 一张表中可以建立多个侯选索引 侯选索引可用于数据库表和自由表,表的索引,2、索引的类型 普通索引(Regular indexs) 可以决定记录的处理顺序 允许关键字段或表达式的值出现重复 对一张表可以创建多个普通索引(GL) 唯一索引(Unique indexs) 允许有重复值 具有重复值的记录仅存储其中的第一个(出版社) 惟一:对每一个特定的关键字只存储一次,而忽略了重复值第二次或以后的记录,表的索引,3、索引文件的种类 索引本身并不改变表中数据的物理顺序 结构复合索引(CDX) 与数据表同名 文件名是在创建时由系统

31、自动给定 结构复合索引文件与表文件同步打开、更新、关闭 是表的一部分 非结构复合索引(CDX) 文件名由用户给出 非结构复合索引文件中不能创建主索引 独立索引(IDX):与FoxBase兼容,创建索引文件,表设计器 “表设计器”“索引”选项卡 Index命令 INDEX ON TAG FOR ASCENDING|DESCENDING UNIQUE|CANDIDATE(允许相同|不允许相同) 注意 不能对备注字段和通用字段建立索引 不要建立无用的索引,析Index命令,?结构复合索引(CDX) ?非结构复合索引(CDX) ?独立索引(IDX),INDEX ON TAG FOR ASCENDING

32、|DESCENDING UNIQUE|CANDIDATE(允许相同|不允许相同),索引的建立,步骤: 项目管理器-表-修改 表设计器-索引 输入索引名-类型-表达式 不要对每个字段都建立索引,否则会降低程序的运行效率,对多个字段索引,操作步骤: 项目管理器-选择已索引的表,选“修改” 表设计器,选索引,输入索引的名称 在“表达式”框中,输入对多个索引的表达式 如:按性别与年龄进行索引,其表达式应为 性别+STR(年龄,2) 确定 可以对多个字段建立索引 其排序是按照表达式的值进行的,索引的修改和删除,索引的修改 表设计器 “表设计器”“索引”选项卡 命令 INDEX命令修改原索引 索引的删除

33、表设计器 “表设计器”“索引”选项卡 DELETE TAG 删除索引标识,索引的使用,设置主控索引 主控索引:决定显示或访问表中记录的顺序的索引 主控索引可以是: 复合索引文件中的一个标识(主控标识) 一个独立索引文件(主控索引文件) 打开表的同时指定主控索引 Use 表名 index 索引文件名 打开后再设置主控索引 窗口 /数据工作期 /属性/索引顺序 命令 SET ORDER TO TAG 取消主控索引 SET ORDER TO 索引函数 CDX() ORDER() TAG(),索引的使用,利用索引快速定位记录 SEEK 命令 SEEK 命令只能在索引过的表中使用,并且只能搜索索引关键字

34、(XS/960102) EOF()与FOUND() SEEK函数(=SEEK+FOUND(),da: 此页不讲,筛选记录(set filter to),操作步骤: 项目管理器-选择已索引的表,选“修改” 表设计器,选索引,输入索引的名称 在“筛选”处,输入过滤表达式 按“确定”,完成筛选表达式的建立 如:筛选性别为男的记录,表达式为 Set filter to 性别=男 可以实现对记录的控制,4 4 王秋燕 女 45讲师 10/09/70 T memo gen 5 5 姜丽萍 女 45讲师 10/09/70 T memo gen 6 6 陈丽丽 女 38讲师 09/27/72 T memo g

35、en 7 7 刘 刚 男 50副教授 06/23/61 T memo gen 8 8 王 良 男 39讲师 08/09/78 T memo gen,习 题,1.在创建表之前需要做好哪些准备工作? 2.过滤器有什么作用?怎样设置过滤器的过滤字段? 3.VFP 中的索引有哪几种?索引的使用应该遵守哪几条原则? 4.建立一个“职工档案”表,参考本章例题。建立一个“工资”表,表的内容自己定。 5.建立一个“学生成绩”表,表的内容自己定。,习 题,6.将“职工档案”表,复制一个新文件,先添加几个记录,进行修改和删除操作。 (1)用“浏览”或“编辑”进行表的修改操作。 (2)给前3个记录做删除标记,然后再

36、恢复操作。 (3)将职称是“助教”的记录做删除标记,然后再彻底删除。,习 题,7.用过滤器,筛选记录,将“职工档案”表进行如下操作: (1)浏览前4个记录,只列出姓名、性别和工资三个字段的内容。 (2)浏览男的全部记录的内容。 (3)浏览职称是“讲师”并且性别是男的记录的内容。,习 题,8.将“职工档案”表,按下列要求建立索引文件: (1)按职称建立索引文件。 (2)按年龄建立索引文件。,理 解,数据库提供一个环境 文件名DBC 由多表及其关系组成,表提供记录信息 文件名DBF 可不放数据库中,自由表,数据库,数据表,索引应遵循原则,(1)为了提高速度,用普通索引、候选索引或主索引 (2)控制字段的重复值对数据库“表”用“主索引”或“候选索引”,对于“自由表”,用“候选索引”。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1