SQL命令: table可以换成.dbf
1)creat table 2)alter table 3)update….set… 4)insert into、、、ualues、、、
5)delete from、、、 6)select 7)drop
注意:VFP的表操作命令都需要先用use打开相应的表,而SQL命令都不需要先打开相应的表。
1、 creat table 表名(字段名 类型(宽度))null/not null
primary key
unique
check 设置有效性规则 errer 出错信息
default 默认值
说明:1)有效性规则为逻辑型表达式,出错信息是字符型表达式,默认值的类型和字段类型一致。
2)primary key 用于创建主索引,但当前必须有数据库处于打开状态。
3)unique 用于创建候选索引,注意在index 命令中,候选索引为candidate 默认值为NULL.
修改字段:
1) Alter table (、dbf) 表名 Add/Alter 字段名 类型(宽度)
Check 有效性规则 error 出错信息
Default 默认值 3)Alter table drop 字段名
primary key rename column 原字段名 to 新字段名
unique
2) Alter table 表名 alter 字段名
Set check 有效性规则 error 出错信息
Set default 默认值
考试重点:1)如果字段名后面没有类型,则check 前加set
2)要想增加字段用add ,删除字段用drop,修改字段用alter
3)rename column、、、to、、、
3、drop table 表名
Drop view 试图名
Delete from 表名 where 条件
注意:1)如果省略where短语,默认删除所有记录。
Delete for 条件 VFP的delete命令,省略for短语,仅删除当前一条记录。
3) 不论是SQL还是VFP都仅仅做逻辑删除,需要做彻底删除的都要用pack命令。
4、insert into 表名(字段名表)values (值1,值2、、、)
insert into表名 from array 数组名
注意:如果值列表给出了所有字段的值,并且顺序与表文件中的字段的顺序一致,则可以省略字段名列表,否则不能省略。
5、update 表名 set 字段名=表达式 where 条件
VFP的更新命令:replace 字段名 with 表达式
注意:如果省略where短语,则默认更新所有记录,而VFP中的replace短语中,省略for短语,仅更新当前一条记录。
6、select distinct(消除重复记录)top n/top n percent 查询字段列表
From 表
Where 条件
Group by 分组依据 having 分组条件
Order by 排序依据 asc/desc
Into table 表文件
注意:1)distinct 用于消除重复记录 2)top 短语需要与order by 结合使用才有效
3)如果查询数据源有多个表,则用逗号隔开,并且要求where 短语中有链接条件。如果表之间用join连接,则连接条件用on,并且有几个join就有几个on。
4) Order by 用于分组(
如每个、各个),分组条件要用having短语。
5) Order by 排序(group by 和order by后可以用字段的序号)
6) Into table/dbf(永久表) into cursor(临时表) into array(数组)
1、 简单查询:查找表的所有字段用*
2、 简单连接查询:注意:同名字段必须用“表名”加以区别
3、 嵌套查询:注意:同一字段的多次比较才能得到结果用嵌套查询
4、 几个特殊的运算符:between----(where 字段名 between 下限 and 上限)=where 字段名>=下限and 字段名<=上限
Like:(模糊查询)-----(where 字段名 like 字符表达式)
注意:字符表达式中用%代表若干个任意字符,用“ ”(下划线)代表一个任意字符而在VFP的like函数中用*代表若干个任意字符,用?代表一个任意字符。
Where 字段名 not in (子查询)
计算函数:
Sum() count(*) avg() max() min()
注意:1)函数只能出现在select短语和having短语后面。
2)一旦使用了计算函数进行查询,则每个组只有一条记录,假设没有group by 短语,则整个结构只有一条记录。
利用空值查询:
注意:查询某个字段是否是空值只能用where字段is【not】null,不能用where字段=null
量词和谓词
查询:
Where 字段 比较运算符 all/some/any(子查询) some=any
Where [not] exists(子查询) 子查询中需要内外表的连