VF中的SQL语句大全
VF 关系数据库标准语言S Q L

关系数据库标准语言S Q L1、SQL是结构化的查询语言,是一种高度非过程化的语言。
查询是其核心。
注意:数据定义一般是对数据表操作,数据操纵一般是对表中的记录进行操作2、查询功能格式:SELE字段名……&&说明要查询的数据FROM数据表名(有联系的多个数据表名,有公共域)&&数据来源哪些表ON 联接的字段名WHERE连接条件……AND 条件……&&说明查询条件GROUP BY 分组(字段名)HAVING 分组条件&&查询结果分组ORDER BY 排序字段&&查询结果排序成绩管理数据库有以下三个数据库表:学生(学号C,姓名C,性别C,年龄N,系C……)选课(学号C,课程号C,成绩N……)课程(课程号C,课程名C……)1基于单个数据表,SELE…FROM …WHERE…(类似VF命令LIST FOR 条件)SELE 后面接要查询输出的字段名,多个用逗号分隔,全部可以用* FROM 后面是查询的数据表(单个数据表)WHERE 后面跟查询条件教材P130SELE 工资FROM 职工(从职工表中查询所有职工的“工资”字段值)SELE * FROM 职工(从职工表中查询所有职工的元组,*表示所有属性)SELE * FROM 职工WHERE 工资>1230(从职工表中查询工资大于1230的元组)注意:1、WHERE 后面的条件可以是任意复杂的条件表达式2、DISTINCT 短语消除结果中重复值(注意)列:查询成绩大于等于60分的学生的学号、课程号、成绩(学号,课程号,成绩都在选课表中)SELE 学号,课程号,成绩FROM 选课WHERE 成绩>=60相当于VF命令:LIST FIELDS 学号,课程号,成绩FOR 成绩>=60查询有考试成绩的学生的学号SELE DIST 学号FROM 选课(DIST 去掉重复)列:在学生表中查询2系年龄小于25的女同学的学号,姓名在学生表中查询2系或6系年龄小于25的男同学的学号,姓名分析条件:性别='女' AND 年龄<25 AND (系='6' OR 系='2')等于条件:性别='男' AND 年龄<25 AND 系='6' OR性别='男' AND 年龄<25 AND 系='2'-----------------------------------------------------------------------2)基于多个数据表(两个或三个),这些数据表肯定有联系(有公用字段),而且查询输出的字段可能在几个(两个或以上有联系)数据表中。
VFP命令系列教程---ALTER TABLE – SQL 命令

VFP命令系列教程---ALTER TABLE – SQL 命令以编程方式修改表的结构。
ALTER TABLE TableName1 ADD | ALTER [COLUMN] FieldName1FieldType [( nFieldWidth [, nPrecision])] [NULL | NOT NULL] [CHECK lExpression1 [ERROR cMessageText1]][AUTOINC [NEXTVALUE NextValue [STEP StepValue]]] [DEFAULT eExpression1][primary key | UNIQUE [COLLATE cCollateSequence]][REFERENCES TableName2 [TAG TagName1]] [NOCPTRANS] [NOVALIDATE]或者ALTER TABLE TableName1 ALTER [COLUMN] FieldName2 [NULL | NOT NULL] [SET DEFAULT eExpression2][SET CHECK lExpression2[ERROR cMessageText2]] [ DROP DEFAULT ] [ DROP CHECK ] [ NOVALIDATE ]或者ALTER TABLE TableName1 [DROP [COLUMN] FieldName3][SET CHECK lExpression3 [ERROR cMessageText3]] [DROP CHECK][ADD primary key eExpression3 [FOR lExpression4] TAG TagName2[, COLLATE cCollateSequence]] [DROP primary key][ADD UNIQUE eExpression4 [[FOR lExpression5] TAG TagName3 [ COLLATE cCollateSequence]]] [DROP UNIQUE TAG TagName4][ADD foreign key [eExpression5] [FOR lExpression6] TAG TagName4[ COLLATE cCollateSequence] REFERENCES TableName2 [TAG TagName5]] [DROP foreign key TAG TagName6 [SAVE]] [RENAME COLUMN FieldName4 TO FieldName5] [NOVALIDATE]参数ALTER TABLE TableName1指定要修改其结构的表名。
VFP中SQL语句大全

VFP的SQL命令和语句大全1.CREATE TABLE - SQL命令该命令的一般格式为:CREATE TABLE |dbf <表文件名>(字段名1 字段类型[(字段宽度[,小数位数])][,字段名2 字段类型[(字段宽度[,小数位数])]]……)例:CREATE TABLE xscj(xh c(8),xm c(6),xb c(2),;cj n(5,1),ksrq d)2.ALTER TABLE - SQL命令功能命令格式示例添加字段ALTER TABLE xscj ADD COLUMN kcmc C(14)重命名字段 ALTER TABLE xscj RENAME COLUMN kcmc TO kc删除字段 ALTER TABLE xscj DROP COLUMN kc3.INSERT-SQL命令该命令的一般格式为:INSERT INTO <表名>[(字段名1[,字段名2 …])] VALUES (表达式1[,表达式2 …])例:INSERT INTO xscj(xh,xm,cj) VALUES ("", "张良", 85.5)4.UPDATE-SQL 命令。
命令格式: UPDATE <表名> SET 字段1 = 表达式1 [,字段2 = 表达式2 …];WHERE 条件表达式例: UPDATE xscj SET cj = cj*1.05 WHERE cj>805.DELETE-SQL 命令。
命令格式: DELETE FROM <表名> [WHERE 条件表达式]例: DELETE FROM xscj WHERE cj<606.SELECT-SQL命令创建查询常用的格式:SELECT 表名1. 字段名1 [AS 标题名1], 表名1. 字段名2 [AS 标题名2], …FROM 数据库名! 表名1 [,数据库名! 表名2 ] [, 数据库名! 表名3 ][TO FILE 文本文件名 | into table | into cursor 表文件名 ][ WHERE 选定条件][GROUP BY 分组字段名 ][HAVING 分组中的满足条件 ][ORDER BY 排序字段名1 [ASC | DESC] [, 排序字段名2 [ASC | DESC] ...]] 示例:浏览学生中的查询学生 student.qpr :SELECT 表xs.xh as 学号, 表xs.xm as 姓名, 表xs.xb as 性别, ;表xs.csrq as 出生日期, 表xs.bj as 班级名称;FROM 数据test!表xs;WHERE 表xs.bj =cs1;ORDER BY 表xs.xh;INTO TABLE xs浏览成绩中的按课程查询 sub_cj.qpr :SELECT 表xs.bj as 班级名称, COUNT(表xs.xh) as 班级人数, AVG(表cj.cj) as 平均分, ; MAX(表cj.cj) as 最高分, MIN(表cj.cj) as 最低分;FROM 数据test!表xs, 数据test!表cj, 数据test!表kc;WHERE 表cj.xh = 表xs.xh;AND 表kc.kcm = 表cj.kcm;AND 表cj.kcm = sc1;GROUP BY 表xs.bj;ORDER BY 表xs.bj;INTO TABLE sub_cj7.CREATE SQL VIEW 命令创建视图打开数据库,用命令来创建视图:OPEN DATABASE 数据库名CREATE SQL VIEW 视图文件名 AS SQL-SELECT 语句例: OPEN DATABASE SJCREAT SQL VIEW SCORE AS SELECT SJCJ.XH, SJCJ.CJ ;FROM SJ!SJCJ WHERE SJCJ.KCH=”计算机基础”8.CREATE TABLE-SQL 命令创建数据库表命令一般格式:Create table 表名1 [free] ( 字段名1 字段类型代号 [ (字段宽度[,小数位数 ] ) ][null | not nul l] [check 字段规则1 [error “信息1” ] ] [default 默认值][primary key | unique] [references 表名2 [tag 索引标识1 ] ][ , 字段名2 字段类型代号 [ (字段宽度 [, 小数位数]) ] [null | not nu ll] ][check 字段规则2 [error “信息2” ] ] [default 默认值 ] ) | from array 数组名使用示例:creat data xscjgl&& 创建学生成绩管理数据库create table xs (;xh c(4) default "1201" primary key,;xm c(6), ;xb c(2) check xb="男" or xb="女" error"性别只能是男或女" default "女",;nl n(2) null;)&& 创建学生表create table kc (;kch c(3) unique, ;kcm c(10),;xf n(3,1),;bxk l;)&& 创建课程表create table cj(;xh c(4) default "1201" reference xs tag xh, ;kch c(8),;ksrq d,;cj n(5,1);)&& 创建成绩表modi dataalter table cj add primary key xh+kch+str(cj,4,1) tag dh&& 为成绩表添加一个主索引一、主要命令:1、CREATECREATE DATABASE 库文件名.DBC―――建立数据库:CREATE TABLE/DBF 表名(各个字段属性)¬¬¬¬¬¬¬¬¬¬¬¬¬¬—————建立表CREATE VIEW <视图名> AS <SELECT 查询语句>——建立视图执行这个语句时,如果没有打开的数据库,则建立独立的视图,这样的视图不能存储。
VF命令一览表

VF命令一览表一、命令e 表名打开表2.List 显示表记录,但不能修改3.browse 浏览表记录,可以修改4.display 显示记录指针指向的记录5.append 追加记录6.append blank 追加空白记录7.insert blank 插入空白记录8.delete 逻辑删除记录,记录前出现星号9.pack 物理删除,将逻辑删除的记录彻底删除10.recall 记录恢复11.zap 删除表里的所有记录12.go n 指向第n条记录13.go top 指向第一条记录14.go bottom 指向最后一条记录15.skip n 往下跳n条记录16.skip -n 往上跳n条记录17.? 从屏幕的下一行的第一列起显示结果18.? ? 从当前行当前列起显示结果e sb copy to sb() 复制sb表给sb()表20.recno() 记录号函数21.bof() 上溢出22.eof() 下溢出23.dimension x(4) 定义数组x,里面有四个元素,其中每个元素的默认值为.F. declare和dimension 相同24.replace 替换25.add 表示增加字段26.distinct 不重复记录27.error 错误28.continue 继续29.else if 否则30.column 列31.input 显示数值32.accept 显示字符串33.wait 是弹出的一个信息框34.drop 删除字段或删除表35.otherwise 其它情况36.check 规则37.cursor 临时表38.build 连编二、VF里文件类型1.项目 .pjx project2.数据库 .dbc database3.表 .dbf table4.菜单 .mnx .mpr menu5.程序 .prg6.表单 .scx form7.报表 .frx report 8.查询 .qpr query9.视图 .vue view 10.文件 .txt11.备注型文件 .fpt三、例题1.creat table student(学号 c(6),姓名c(8),性别c(2),年龄n(2)) 创建学生表2.insert into student values("001","张三","男",20) 插入一条学生记录3.alter table student alter 学号 c(8) 将学号字段的宽度改为84.alter table student rename 学号 to 学生编号将学号字段重命名为学生编号5.alter table student drop 年龄将年龄字段删除6.alter table student add 所在院系c(10) 为student表增加一个字段7.select *from student into table xusheng 将表student复制给表xuesheng8.update student set 成绩=成绩+10 where 性别="男" 将男生的成绩提高10分9.delete from student where 性别"女" 册除所有女生的记录10.alter table student alter 学号 set check left(学号,2="00")四、创建、运行与修改1.create database 123 创建数据库123modify database 123 修改数据库123 (注意:alter在SQL中修改表结构)2.modify command 123 修改程序123do 123 运行程序1233.create form 123 创建表单123modify form 123 修改表单123do form123 运行表单1234.create menu 123 创建菜单123modify menu 123 修改菜单123do 123.mpr 运得菜单1235.modify query 123 修改查询123do 123.qpr 运得查询1236.modify report 123 修改报表123report form 123 运行报表1237.drop view 123 删除视图123create view 123 创建视图123 (打开视图用use)五、排序1.sort to nl on 年龄按年龄升序排列,产生一个新表nl2.sort to cj on 成绩/d 按成绩降序排列,产生一个新表cj六、索引1.index on 姓名 tag xm //按姓名升序建立普通索引,索引标识为xm//2.index on 性别 tag xb //按性别升序建立普通索引,索引标识为xb//3.index on 成绩 tag cj descending //按成绩降序建立普通索引,索引标识为cj//4.index on 性别 tag xb1 unique(唯一索引) //按性别升序建立唯一索引,索引标识为xb1//5.index on 年龄 tag nl candidate //按年龄升序建立候选索引,索引标识为nl//6.index on 性别+str(成绩) tag xbcj //按性别升序,如性别相同按成绩升序建立普通索引,索引标识为xbcj//7.index on 性别+str(成绩) tag xbcj1 descending //按性别降序,如性别相同按成绩降序建立普通索引,索引标识为xbcj1//8.index on 年龄-成绩/1000000 tag nlcj //按年龄升序,如年龄相同按成绩降序建立普通索引,索引标识为nlcj//9.index on 年龄-成绩/1000000 tag nlcj1 descending //按年龄降序,如年龄相同按成绩升序建立普通索引,索引标识为xbcj1//七. 命令set index to 打开当前的一个或多个索引文件并确定主控索引文件(to后加东西是打开,不加是关闭)set order to 确定主控索引locate 顺序查找满足条件的记录,并且指向它seek 索引查找count 记数命令sum 求和命令average 求平均值命令total 汇总命令max 求最大值min 求最小值八.SQL查询结构1.select 字段列表要显示的字段2.from 表名列表查询涉及到的所有表3.where 条件条件4.into 目标查询结果输出到哪去5.group by 条件表达式对记录进行分组6.having 筛选条件选择符合条件的分组7.order by 关键字对查询结果按某几个字段进行排序8.top 数值表达式对显示表的前几个记录九.程序结构1.顺序结构2.选择结构:(1)if 条件表达式 (2)if 条件表达式 (3)do case语名序列语名序列1 case 条件表达式1endif else 语句序列1语句序列1 case 条件表达式2endif 语句序列2case 条件表达式3语句序列33.循环结构:(1)for (2)do while 条件表达式 (3)scan(扫描)循环体循环体循环体endfor enddo endscanLoop 重新回到循环的最开始 input to x 从键盘输入一个数给变量xexit 结束循环跳出循环 accept to y 从键盘输入一个字符串给变量yset sysmenu to default 退出菜单thisform.release 退出表单thisform.refresh 刷新表单十.函数数值型函数函数名功能例子结果1.abs() 求绝对值 ?abs(-4) 42.sqrt() 求平方根 ?sqrt(4) 23.int() 取整数 ?int(7.5) 74.max() 求最大值 ?max(3,4,5) 55.min() 求最小值 ?min(3,4,5) 36.mod() 取余 ?mod(11,3) 27.round() 四舍五入 ?round(3.1415,3) 3.1428.ceiling() 返回不小于某值 ?ceiling(3.3) 4的最小整数9.floor() 返回不大于指定数的最大整数 ?floor(3.3) 3十一.字符处理函数1.substr() 求子串 ?substr("abcd",2,2) "bc"2.left() 取左串 ?left("abcd",2) "ab"3.right() 取右串 ?right("abcd",2) "cd"4.len() 求串长 ?len("abcd") 45.at() 求一个串在另一个串中出现的位置 ?at("bc","abcd",1) 26.space() 输出空格 ?space(4) " "7.upper() 将小写字母转换成大写字母 ?upper("aBc") "ABC"8.lower() 将大写字母转换成小写字母 ?lower("aBc") "abc"9.val() 将字符串转换为数值 ?val("3.14") 3.1410.str() 将数值转换为字符串 ?str(3.14,5,1) "3.1"11.alltrim() 去掉字符串前面和后面的空格去掉 ?alltrim("abcd") "abcd"12.stuff 修改字符串 ?stuff("good boy",5.3) "goodgirl"十二.日期处理函数1.date() 当前日期 6.ctod() 将字符转换为日期 ?ctod("10/1/99") {10/01/99}2.time() 当前时间 7.dtoc() 将日期转换为字符 ?dtoc({10/01/99}) "10/01/99"3.year() 取年函数 8.dtos() 将日期转换为年月日4.month() 取月函数格式字符串 ?dtos({10/1/99}) "19991001"5.day() 取日函数。
VF知识点总结-参照完整性

VF知识点总结--必备(2010-05-20 23:17:40)一、有效性规则和参照完整性1.有效性规则先选中要求设置的字段,(1)“规则”:逻辑型表达式即SQL格式表达式。
例:年龄是15-20:年龄>=15 and 年龄<=20(2)“信息”:字符型表达式,直接摘抄加“”(英文状态)(3)“默认值”:看选中的字段是什么类型2.参照完整性(1)判断一方(没有重复字段的表)和多方(有重复字段的表)(2)一方建主索引,多方建普通索引(3)由一方向多方扯一条线(4)清理数据库(数据库—清理数据库,如果遇到“文件正在使用暂不能发布pack命令,” 此时close all,再重新以独占方式打开数据库再进行一次清理)(5)右键编辑参照完整性(两个永久性联系须一一设置其参照完整性)二、SQL语句1.格式:格式一:Select [top]字段1/字段2…… from表1,表2…. where连接条件and(or)筛选条件{group by某一字段[haing count(字段)] } order by字段1 asc/desc,字段2 asc/desc…… into table表格式二:Select [top]字段1/字段2…… from表1 join表2 join表3…. on连接条件(返回来写) where筛选条件{group by某一字段[haing count(字段)] } order by字段1 asc/desc,字段2 asc/desc…… into table表⑴.“字段1/字段2……”,根据题目要求,搜索什么字段写什么字段,若其中某一字段在表中没有则认定为是起的新名字,在该字段前加as,之后向函数avg(),sum(),max(),min(),count()。
⑵.“group by某一字段[haing count(字段”为难点。
考虑用不用group by,首先在草稿纸上或脑海生成题目要求的表,选取一个个例填写分析是否用得到group by,按什么分组。
第3章 VF中SQL语言的应用2

4.2.2 多表查询(工作原理)
一对多的自然连接 在数据库中,使用最多的是一对多的关联。这里关联 有一端为参照表(也称为多表),另一端为被参照表 (也称为一表),二个表之间必须有主外键的约束, 即二个表中有共同的字段(或字段集),这个字段或 字段集在一个表(一表)中为主键,在另一个表(多 表)中为外键。 自然连接的WHERE子句中的条件为:两个表在公共字 段(集)上的值对应相等。 如:WHERE 学生表.学号 = 成绩表.学号 一对多的自然联接的结果是一个关系表,关系表的结 果为:横向上(字段数)为两表的字段相叠加;纵向 上(记录数)以多表的记录为最终结果。
4.2.2 多表查询
HAVING短语与WHERE子句的区别:作用对 象不同 WHERE 子句作用于基表或视图,从中选择 满足条件的元组。
HAVING短语作用于组,从中选择满足条件 的组。
SELECT语句的完整格式
SELECT [ALL | DISTINCT] [TOP <数值表达式> [PERCENT]] [<别名>.] <字段表达式> [AS <字段名>] [, [<别名>.] <字段表达式> [AS <字段名>] ...] FROM [FORCE] [<数据库名>!] <表名> [[AS] <别名>] [[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN <数据库名>!] <表名> [[AS] <别名>][ON <联接条件> …] [[INTO <目的>] | [TO FILE <文件名> [ADDITIVE] | TO PRINTER [PROMPT] | TO SCREEN]] [PREFERENCE PreferenceName] [NOCONSOLE] [PLAIN] [NOWAIT] [WHERE <联接条件> [AND <联接条件> ...][AND | OR <条件> [AND | OR <条件> ...]]] [GROUP BY <分组列> [, <分组列> ...]] [HAVING <条件>] [UNION [ALL] <SELECT命令>] [ORDER BY <排序表达式> [ASC | DESC] [, <排序表达式> [ASC | DESC] ...]]
VFP——SQL语句大全

VFP——SQL语句大全一、主要命令:1、CREATECREATE DATABASE 库文件名.DBC―――建立数据库:CREATE TABLE/DBF 表名(各个字段属性)—————建立表CREATE VIEW <视图名> AS <SELECT 查询语句>——建立视图执行这个语句时,如果没有打开的数据库,则建立独立的视图,这样的视图不能存储。
2.DROPDROP VIEW <视图>————删除视图3、MODIFY STRUCTURE 作用:显示表文件结构,并允许修改此表的结构。
格式:MODIFY STRUCTURE说明:只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。
4、APPEND作用:在当前表的尾部(无论表中有无记录)追加记录(在当前表指当前正使用的表)。
格式:APPEND [BLANK]说明:在APPEND命令后面加上BLANK参数表示在当前表的尾部添加一条空白记录。
无BLANK参数时,表示在当前表的尾部添加一条记录并要求用户输入相应的字段内容。
5、INSERTINSERT BLANK BEFORE 在当前表的当前记录之前插入一条空白记录INSERT INTO 表名[(字段] VALUES(表达式1[,表达式2…])——插入记录INSERT INTO 表名FROM ARRAY ArrayName | FROMMEMVAR如带有FROM MEMVAR子句,则用同名的内存变量给字段赋值。
例:INSERT INTO 学生(XH,XM,XB)VALUES (“950106”,“高山”,“男”)6. ALTER TABLE 表名 ADD 字段名字段类型(字段参数)―――添加字段ALTER TABLE 表名 ALTER 字段名 SET CHECK <条件>——为字段添加有效性规则例:ALTER TABLE 评分 ALTER分数 SET CHECK 分数>=0 AND 分数<=10ALTER TABLE 表名 DROP 字段名[ALTER COLUMN字段名Type {NULL | NOT NULL}][{,字段名Type NULL | NOT NULL}...] [DROP字段名[,字段名[, ...]]例:alter table 歌手add最后得分 F(6,2)7、UPDATEupdate <表名> set <字段1=表达式1>,<字段2=表达式2...> where <条件>例: update 产品 set 单价=单价*1.088、BROWSE作用:打开一个“浏览”窗口,供用户浏览或修改记录。
全国计算机二级(VF)SQL命令

SELECT [ALL | DISTINCT] 输出列表[AS 列标题文本]FROM <表名列表>[WHERE <条件>][GROUP BY <分组字段列表> [HAVING <条件表达式>][ORDER BY <排序字段列表> [ASC | DESC]特殊查询符:[Not] Between…AND…[Not] In(表达式列表)[Not] Like、!=DELETE FROM <表名>[WHERE <条件>] 省略该项逻辑删除全部记录INSERT INTO <表名>[(<字段名列表>)] VALUES (<表达式列表>) UPDATE <表名> SET <字段名1> =<表达式1> [,<字段名2> = <表达式2> ...][WHERE <条件表达式>]省略该项更新全部记录1. VFP中的查询文件是指一个包含一条SELECT-SQL 命令的程序文件,其文件的扩展名为()。
A. PRGB. QPRC. SCXD. TXT2.使用视图之前,首先应该()。
A. 新建一个数据库B. 新建一个数据库表C. 打开相关的数据库D. 打开相关的数据表3.下列关于使用表建立查询的描述中,正确的是()。
A. 不能使用自由表建立查询B. 只能使用数据表建立查询C. 只能使用自由表建立查询D. 可以使用自由表或数据表建立查询4.从语法格式上看,SQL-SELECT语句中不包含的子句是()。
A. WHEREB. INTOC. FORD. UNION 5.SQL语句中联接条件短语的关键字是()。
A. WHEREB. FORC. OND. HAVING6.有一教工表,其中有系别、职工号、年龄等字段,现在要示出每个系职工的平均年龄,所用的SQL查询命令是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VFP的SQL命令和语句大全1.CREATE TABLE一般格式为:CREATE TABLE |dbf <表文件名>(字段名1 字段类型[(字段宽度[,小数位数])][,字段名2 字段类型[(字段宽度[,小数位数])]]……)例:CREATE TABLE xscj(xh c(8),xm c(6),xb c(2),;cj n(5,1),ksrq d)2.ALTER TABLE命令格式:添加字段ALTER TABLE xscj ADD COLUMN kcmc C(14)重命名字段ALTER TABLE xscj RENAME COLUMN kcmc TO kc删除字段ALTER TABLE xscj DROP COLUMN kc3.INSERT一般格式为:INSERT INTO <表名>[(字段名1[,字段名2 …])] VALUES (表达式1[,表达式2 …])例:INSERT INTO xscj(xh,xm,cj)VALUES ("81991001", "张良", 85.5)4.UPDATE命令格式:UPDATE <表名> SET 字段1 = 表达式1 [,字段2 = 表达式2 …];WHERE 条件表达式例:UPDATE xscj SET cj = cj*1.05 WHERE cj>805.DELETE命令格式:DELETE FROM <表名> [WHERE 条件表达式]例:DELETE FROM xscj WHERE cj<606.SELECT-SQL命令创建查询常用的格式:SELECT 表名1. 字段名1 [AS 标题名1], 表名1. 字段名2 [AS 标题名2], …FROM 数据库名! 表名 1 [,数据库名! 表名 2 ] [, 数据库名! 表名3 ][TO FILE 文本文件名| into table | into cursor 表文件名] [ WHERE 选定条件][GROUP BY 分组字段名][HAVING 分组中的满足条件][ORDER BY 排序字段名 1 [ASC | DESC] [, 排序字段名2 [ASC | DESC] ...]]示例:浏览学生中的查询学生student.qpr :SELECT 表xs.xh as 学号, 表xs.xm as 姓名, 表xs.xb as 性别, ; 表xs.csrq as 出生日期, 表xs.bj as 班级名称;FROM 数据test!表xs;WHERE 表xs.bj =cs1;ORDER BY 表xs.xh;INTO TABLE xs浏览成绩中的按课程查询sub_cj.qpr :SELECT 表xs.bj as 班级名称, COUNT(表xs.xh) as 班级人数, AVG(表cj.cj) as 平均分, ; MAX(表cj.cj) as 最高分, MIN(表cj.cj) as 最低分;FROM 数据test!表xs, 数据test!表cj, 数据test!表kc;WHERE 表cj.xh = 表xs.xh;AND 表kc.kcm = 表cj.kcm;AND 表cj.kcm = sc1;GROUP BY 表xs.bj;ORDER BY 表xs.bj;INTO TABLE sub_cj7.CREATE SQL VIEW 命令创建视图打开数据库,用命令来创建视图:OPEN DATABASE 数据库名CREATE SQL VIEW 视图文件名AS SQL-SELECT 语句例: OPEN DATABASE SJCREAT SQL VIEW SCORE AS SELECT SJCJ.XH, SJCJ.CJ ;FROM SJ!SJCJ WHERE SJCJ.KCH=”计算机基础”8.CREATE TABLE-SQL 命令创建数据库表命令一般格式:Create table 表名1 [free] ( 字段名1 字段类型代号[ (字段宽度[,小数位数] ) ][null | not null] [check 字段规则1 [error “信息1”] ] [default 默认值][primary key | unique] [references 表名 2 [tag 索引标识1 ] ][ , 字段名 2 字段类型代号[ (字段宽度[, 小数位数]) ] [null | not null] ][check 字段规则 2 [error “信息2”] ] [default 默认值] ) | from array 数组名使用示例:creat data xscjgl && 创建学生成绩管理数据库create table xs (;xh c(4) default "1201" primary key,;xm c(6), ;xb c(2) check xb="男" or xb="女" error"性别只能是男或女" default "女",;nl n(2) null;) && 创建学生表create table kc (;kch c(3) unique, ;kcm c(10),;xf n(3,1),;bxk l;) && 创建课程表create table cj(;xh c(4) default "1201" reference xs tag xh, ;kch c(8),;ksrq d,;cj n(5,1);) && 创建成绩表modi dataalter table cj add primary key xh+kch+str(cj,4,1) tag dh &&为成绩表添加一个主索引一、主要命令:1、CREATECREATE DATABASE 库文件名.DBC―――建立数据库:CREATE TABLE/DBF 表名(各个字段属性)¬¬¬¬¬¬¬¬¬¬¬¬¬¬—————建立表CREATE VIEW <视图名> AS <SELECT 查询语句>——建立视图执行这个语句时,如果没有打开的数据库,则建立独立的视图,这样的视图不能存储。
2.DROPDROP VIEW <视图>————删除视图3、MODIFY STRUCTURE作用:显示表文件结构,并允许修改此表的结构。
格式:MODIFY STRUCTURE说明:只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。
4、APPEND作用:在当前表的尾部(无论表中有无记录)追加记录(在当前表指当前正使用的表)。
格式:APPEND [BLANK]说明:在APPEND命令后面加上BLANK参数表示在当前表的尾部添加一条空白记录。
无BLANK参数时,表示在当前表的尾部添加一条记录并要求用户输入相应的字段内容。
5、INSERTINSERT BLANK BEFORE 在当前表的当前记录之前插入一条空白记录INSERT INTO 表名[(字段] VALUES(表达式1[,表达式2…])——插入记录INSERT INTO 表名FROM ARRAY ArrayName | FROM MEMVAR如带有FROM MEMVAR子句,则用同名的内存变量给字段赋值。
例:INSERT INTO 学生(XH,XM,XB)VALUES(“950106”,“高山”,“男”)6. ALTER TABLE 表名ADD 字段名字段类型(字段参数)―――添加字段ALTER TABLE 表名ALTER 字段名SET CHECK <条件>——为字段添加有效性规则例:ALTER TABLE 评分ALTER分数SET CHECK 分数>=0 AND 分数<=10 ALTER TABLE 表名DROP 字段名[ALTER COLUMN字段名Type {NULL | NOT NULL}][{,字段名Type NULL | NOT NULL}...] [DROP字段名[,字段名[, ...]]例:alter table 歌手add最后得分F(6,2)7、UPDATEupdate <表名> set <字段1=表达式1>,<字段2=表达式2...> where <条件>例: update 产品set 单价=单价*1.088、BROWSE作用:打开一个“浏览”窗口,供用户浏览或修改记录。
格式:BROWSE [FIELDS <字段名表>]9、USE作用:打开和关闭表文件。
格式:USE [<文件名>]10、LIST和DISPLAY格式:LIST|DISPLAY [OFF] [<范围>] [FIELDS] <表达式表> [WHILE <条件>] [FOR <条件>][TO PRINT|TO FILE <文件>]LIST|DISPLAY STRUCTURE TO PRINT|TO FILE <文件>)LIST|DISPLAY STATUS [TO PRINT|TO FILE <文件>]注:LIST命令一次连续显示完所有记录内容。
DISPLAY命令在显示记录满屏后,要求用户按任意键继续显示。
如果LIST与DISPLAY都无任何选择项时,LIST显示文件的全部记录,DISPLAY仅显示当前记录。
11、记录的定位作用:用记录指针(POINTER)定位记录。
格式:1)GO[TO] RECORD n|TOP|BOTTOM命令定位GO [RECORD] NGO BOTTOMGO TOP2)n3)SKIP [+|-] n说明:第一个命令又叫绝对定位,其中,RECORD n定位到n号记录,TOP定位到第1个记录,BOTTOM定位到最后一个记录。
第二个命令定位到第n个记录,n是一个数值。
第三个命令又叫相对定位,它以当前记录为基准前移(-)或后移(+)n个记录,不选任选项,则默认记录指针后移一个记录。
LOCATE [<范围>] FOR <表达式>范围: ALL NEXT N ,RECORD N, REST12、CHANGE和EDIT作用:显示要编辑或修改的字段。
格式:CHANGE|EDIT [<范围>] [FIELDS <字段名表>] [WHILE <条件>] [FOR <条件>]13、REPLACE格式:REPLACE [<范围>] <字段1> WITH <表达式1>[,<字段2> WITH <表达式2>] [FOR <条件>][WHILE<条件>]例:REPLACE ALL 工资WITH 工资+200 FOR 工资<1000REPLACE FROM ARRAY数组名[FIELDS 字段名列表][常用子句]——用内存数组的值更新数据表中的记录:14、DELETE、PACK、ZAP和RECALL作用:分别是给要删除的记录作删除标记、彻底删除、删除所有记录和取消被选中的表记录的删除标志。