VF 表的定义
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*在使用SQL命令建立表之间的联系时,要先建主表,再建子表,然后才能建立联系。
*使用SQL命令创建和第三章使用设计器创建的数据库与表同样结构的数据库1和表1
*DB订货管理1
create database 订货管理1
modify database
*仓库1
create table 仓库1(仓库号 C(3) primary key,城市 C(4),;
面积 I check 面积>=0 error "输入错误!" default 0)
*primary key:主关键字,即主索引;
check:字段的约束性规则,在其后跟上逻辑表达式;
error:出错信息,一般为C型;
default:默认值,其类型与字段类型匹配
*职工1
create table 职工1(仓库号 C(3),职工号 C(2) primary key,;
工资 I check (工资>0 and 工资<5000) error "工资须大于0!" default 1000,;
foreign key 仓库号 tag 仓库号 reference 仓库1)
*foreign key:外部关键字;
tag:引用其它表的主索引;
reference:参照某表,也可理解为上面的tag来自于哪张表
*供应商1
create table 供应商1(供应商号 C(2) primary key,供应商名 C(20),地址 C(20))
*订购单1
create table 订购单1(职工号 C(2),;
供应商号 C(2) null default .NULL.,;
订购单号 C(4) primary key,;
订购日期 D(8) NULL DEFAULT .NULL.,;
foreign key 职工号 tag 职工号 reference 职工1,;
foreign key 供应商号 tag 供应商号 reference 供应商1)
*关于空值:null:允许某字段为空值,否定时为 not null;
default .NULL.:表示默认值设为.NULL.
*补充:在SQL中的候选索引,使用命令短语为 unique ,这个短语在VF数据库中为唯一索引,需要注意
COPY TO "c:\documents and settings\administrator\桌面\vf.dbf"
*VF当中,表的删除,单独使用delete [for];
SQL当中, delete from 表名 where 条件
*以上是表中信息的删除,而表的删除在VF中为:;
delete file 表名.dbf =>必须加上扩展名,因为file是指所有文件;
而在SQL当中,删除表,使用的命令是:;
drop table 表名
*分别用VF和SQL命令实现删除名为test的表
*VF
delete file test.dbf
*SQL
drop table test
close all
*以上对于表的删除操作都是【物理删除】
*练习,删除刚建立的供应商1
*格式一、增加新字段;
alter table 表名 ADD 字段名 字段类型(宽度) check(字段约束规则) error "信息" default 默认值;
* 修改字段;
alter table 表名 ALTER 字段名 字段类型(宽度) =>修改字段的类型和宽度,但不能修改名称
*关于字段有效性规则;
alter table 表名 ALTER 字段名 SET CHECK (字段约束规则) &&修改字段现有的有效性规则;
alter table 表名 ALTER 字段名 DROP CHECK &&删除字段现有的有效性规则;
alter table 表名 ALTER 字段名 CHECK (字段约束规则) &&增加有效性规则;
*关于字段名;
alter table 表名 RENAME COLUMN 字段名 TO 新字段名 &&更改字段名
alter table 表名 DROP 字段名
&&删除字段
*关于索引;
alter table 表名 add <索引短语> 字段名(若依据为多个字段,用+连接) tag 索引名 &&根据字段创建索引;
alter table 表名 drop <索引短语> tag 索引名;
*最后,在修改表结构时需要注意的三个命令:;
1、check:设定新的规则,即在无规则或者新建表文件时使用;
2、set check:在现有规则的基础上进行修改;
3、drop check:删除现有规则
*例题:将"订购单"表的“职工号”和“供应商号”定义为候选索引,索引名为ttt
VF中:
use 订购单
index on 职工号+供应商号 tag ttt candidate
pack
use 订购单
browse
index on 职工号+供应商号 tag ttt candidate
SQL中:
use
use 订购单
delete tag ttt
alter table 订购单 add unique 职工号+供应商号 tag ttt
*命令小结:
1、create table|dbf
2、primary key
3、check
4、error
5、default
6、foreign
6、foreign key … reference &&和某张表对照,字段作为本表的外部关键字
7、drop table
8、drop check
9、drop column
10、drop unique
11、drop view &&删除视图
12、alter table
13、set check
14、rename column
15、add unique
*关于视图
一、定义:是一个虚拟的表,仅仅是保存一个SQL语句的定义过程
二、分类:单表视图:来源于唯一的一张表(可插入,更新,但是不可以删除)
多表视图: 多张表(什么都不可以)
三、作用:增强了表操作的安全性,可以不用直接针对表进行操作
四、创建命令: create view 视图名 as 任意的select查询语句
如:create view testv as select * from 职工 where 工资>1230
五、视图特点:
1、视图是可以更新的(unit 5会具体涉及)
2、视图是从表中派生而来的,所以依赖表存在,即不能独立存在。则该表成为视图的【基本表】
3、虚字段:原表中没有的,而是通过计算得出的。如sum()等此类查询出的字段,则为虚字段。
4、视图是存放于DB中的,所以操作视图必须先打开相应DB
5、视图中并没有保存真正的数据,每次浏览视图其实就是执行了依次SQL查询命令.