vf中的sql语句大全
VF中的SQL语句大全
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 查询语句>——建立视图执行这个语句时,如果没有打开的数据库,则建立独立的视图,这样的视图不能存储。
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中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查询命令是()。
VF基本语句
基本操作:1、新建数据库命令:CREATE <文件名>2、打开数据库命令:USE <文件名>3、浏览数据库命令:BROWSE4、查找记录命令:LOCATE 例:Loca all for 性别=’女’Loca all for 工资>160.00 .AND. 工资<180.00常和继续查找命令CONTINUE连用。
FIND 例:find <字符串>/<n>使用前需要先排序。
SEEK 例:seek <表达式>表达式是字符串时,必须用“”引起来。
如seek “卫明”5、增加库记录命令:APPEND &&增加记录命令APPEND BLANK &&增加一条空记录APPEND FROM <文件名> [FOR<表达式>] &&从一个文件复制记录到现行数据库中6、插入记录命令INSERT格式:insert [blank] [before]use <文件名>go 5insert before7、库记录的删除DELETE格式:DELETE [<范围>] [FOR<表达式>] [WHILE<表达式>]功能:给符合条件的库记录加上删除标记。
例:delete all for 性别=’女’PACK格式:PACK功能;把打开的数据库文件中作过删除标记的记录真正删除掉。
ZAP格式:ZAP功能;从打开的数据库文件中删除所有记录8、恢复命令RECALL格式;RECALL [<范围>] [FOR<表达式>] [WHILE<表达式>]功能;恢复打开的数据库文件中带有删除标记的记录9、库记录的修改EDIT格式:EDIT [<范围>] [FIELDS<字段名表>] [FOR<表达式>] [WHILE<表达式>]CHANGE格式:CHANGE [<范围>] [FIELDS<字段名>] [FOR<表达式>] [WHILE<表达式>]BROWSE格式:BROWSE [FIELDS<字段名>] [LOCK<表达式>] [FREEZE<字段名>]10、替换命令REPLACE格式;REPLACE [<范围>] <字段名1> WITH <表达式1> [,<字段名2> WITH<表达式2>…] [FOR<表达式>] [WHILE<表达式>]功能:用来替换打开的数据库文件中指定字段的数据。
vf中SQL
1、SQL:structure query language2、定义:是结构化查询语言,是关系数据库的标准语言,是一种高度非过程化的语言,是数据库后台操作语言,具有非常强大的查询功能,查询时它的核心。
3、基本构成:select 查询什么from 从哪来where 查询条件l 数据查询①.格式:select 字段名/表名/* from 表1 inner join 表2 on 表1主关键字=表2主关键字where 筛选条件[group by (按……分组)having(限定分组条件)order by(按……排序)②.函数③.值域查询:between…and…④.空值查询:is null⑤.模糊查询:$ (后包前) *(%)?likel 数据操作功能①.插入insert into 表名value②. 更新update 表名set 字段=表达式where 条件③.删除delete from 表名where 条件l 表的操作①.表的定义creat ***②. 删除表 drop table表名删除视图drop view③.表结构的修改⑴.添加字段:alter table 表名add 字段名类型(长度)⑵.删除字段:alter table 表名drop 字段名⑶.修改字段:alter table 表名alter 字段名新类型(长度)⑷.重新命名字段:alter table 表名rename 旧字段名to 新字段名⑸.建立有效性规则:alter table 表名(数据库表)alter 字段set check 字段条件⑹.删除有效性规则:alter table 表名alter 字段drop check⑺.建立默认值:alter table 表名alter 字段set default 条件⑻.删除默认值:alter table 表名alter 字段drop default⑼.建立唯一索引:alter table 表名add unique 字段tag索引名⑽.删除唯一索引:alter table 表名drop unique tag 索引名⑾.建立主索引:alter table 表名add primary key字段tag索引名⑿.删除主索引:alter table 表名drop primary key字段tag索引名⒀.建立普通索引:alter table 表名add foreign key字段tag索引名⒁.删除普通索引:alter table 表名drop foreign key tag索引名5、SQL的六种去向:⑴.将查询结果保存到永久表:into table/dbf 表名⑵.将查询结果保存到临时表:into cursor表名⑶.将查询结果保存到数组:into array 数组名⑷.将查询结果保存到文本文件:to file 文本文件名⑸.将查询结果预览显示:to preview⑹.将查询结果打印:to printer6、约束规则:7、量词查询:some any all (any、some是同义词)* some、any 只有子查询中有一行能使结果为真,则结果为真* all 子查询中所有记录都使结果为真,则结果为真。
VF常用命令列表
数据表中数据操作(查询、插入、删除和修改等)数据查询SELECT语句(SQL命令)格式见教材的有关章节。
这是本课程的重点内容,必须很好地掌握。
更改数据表中的记录:REPLACE 字段 1 WITH 表达式1[ADDITIVE] [,< [,<字段2> WITH <表达式2>[ADDITIVE],… [FOR 条件1][WHILE条件2] 其中的ADDITIVE子句适用于备注字段,表示将表达式的值加在字段的末尾。
用内存数组的值更新数据表中的记录:REPLACE FROM ARRAY数组名[FIELDS 字段名列表][常用子句]用新的值更新表中的记录(SQL命令):UPDATE [databasename!]tablename;SET Column_1=Expression1 [{Column_2=expression2}...] [WHERE Condition]用一个表中的数据更新当前指定工作区中打开的表:UPDATE ON fieldname FROM filename;REPLACE fieldname1 WITH expr1[, fieldname2 WITH expr2 [, ...]]给记录加删除标记(SQL命令):DELETE FROM [databasename!]tablename [WHERE 条件]给记录加删除标记:DELETE [范围] [FOR 条件] [WHILE 条件] [IN 工作区号|表别名]永久删除加了删除标记的记录:PACK永久删除打开的数据库中加了删除标记的记录:PACK DATABASE去掉删除标记(恢复) RECALL [常用子句]删除一个表中所有记录(保留表的结构):ZAP [IN tablename|alias]为数据表文件追加记录:APPEND [BLANK][IN 工作区号|别名]从另一个文件中提取数据添加到当前数据表的尾部:APPEND FROM filename|? [FIELDS 字段名列表][ FOR 条件] 其中filename所指定的文件可以是数据表、EXCEL电子表格、文本文件等,如果不是数据表,需要其它子句指定格式(详见手册)。
vf常用命令(全)
一、数据库的建立、打开、关闭和删除 (1)二、数据表和视图的建立、打开、关闭和删除 (2)三、数据表和表结构的编辑、修改 (2)四、数据表中数据操作(查询、插入、删除和修改等) (3)五、文件管理(文件和文件夹的复制、创建和删除) (5)六、数据的复制与传送 (5)七、排序与索引 (6)命令结构FoxPro的命令结构一般由命令动词、语句体和注释几部分构成。
如:LIST [范围] [[FIELDS 字段名列表] [FOR 条件][WHILE 条件] [OFF] [TO PRINT]常用子句范围:表示记录的执行范围,可以是下面几项其中之一:ALL 表示全部记录;NEXT n 表示从当前记录开始的以下n条记录;RECORD n 表示第n号记录;REST 表示从当前记录到最后一条记录。
FIELDS 字段名表:用于指定操作的字段,多个字段时用逗号分隔。
FOR条件:对满足条件的记录进行操作。
WHILE 条件:当遇到第一个不满足条件的记录时,停止命令执行。
以下命令中,大写的英文词为关键词,必须原样照写。
“常用子句”指以下几个可选子句:[范围] [FIELDS 字段名表] [FOR 条件] [WHILE 条件]命令中的“列表”,指用“,”分隔的各项。
如“字段名列表”就是将各个字段名用逗号分隔。
部分英文词的意义:Databasename 数据名tablename 数据表名filename 文件名Viewname 视图名arrayname 数组名提示:加下划线的为本课程要求掌握的命令。
一、数据库的建立、打开、关闭和删除建立数据库:CREATE DATABASE [databasename|?]从磁盘中删除数据库:DELETE DATABASE databasename|?打开数据库:OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE]打开数据库设计器(允许用户按交互方式编辑当前数据库):MODIFY DATABASE [databasename|?]指定的数据库databasename为当前数据库。
VF常用SQL语句大全
VF常用SQL语句大全(1)SQL是结构化查询语言,查询是SQL语言的重要组成部分,但不是全部,SQL还包括数据定义,数据操纵和数据控制功能等部分.如今SQL已成为关系数据库的标准数据语言,所以现在的关系数据库管理系统都支持SQL.FOXPRO从2.5 FOR DOS版式就开始支持SQL,现在VISUAL FOXPRO当然在之方面更加完善,以下是VF经常用到SQL语句.--语句功能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据--数据定义CREATE TABLE --创建一个数据库表DROP TABLE --从数据库中删除表ALTER TABLE --修改数据库表结构CREATE VIEW --创建一个视图DROP VIEW --从数据库中删除视图CREATE INDEX --为数据库表创建一个索引DROP INDEX --从数据库中删除索引CREATE PROCEDURE --创建一个存储过程DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器DROP TRIGGER --从数据库中删除触发器CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREATE DOMAIN --创建一个数据值域ALTER DOMAIN --改变域定义DROP DOMAIN --从数据库中删除一个域--数据控制GRANT --授予用户访问权限DENY --拒绝用户访问REVOKE --解除用户访问权限--事务控制COMMIT --结束当前事务ROLLBACK --中止当前事务SET TRANSACTION --定义当前事务数据访问特征--程序化SQLDECLARE --为查询设定游标EXPLAN --为查询描述数据访问计划OPEN --检索查询结果打开一个游标FETCH --检索一行查询结果CLOSE --关闭游标PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句DESCRIBE --描述准备好的查询---局部变量declare @id char(10)--set @id = 10010001select @id = 10010001---全局变量---必须以@@开头--IF ELSEdeclare @x int @y int @z intselect @x = 1 @y = 2 @z=3if @x > @yprint x > y --打印字符串x > yelse if @y > @zprint y > zelse print z > y--CASEuse panguupdate employeeset e_wage =casewhen job_level = ’1’ then e_wage*1.08when job_level = ’2’ then e_wage*1.07when job_level = ’3’ then e_wage*1.06else e_wage*1.05end--WHILE CONTINUE BREAKdeclare @x int @y int @c intselect @x = 1 @y=1while @x < 3beginprint @x --打印变量x 的值while @y < 3beginselect @c = 100*@x + @yprint @c --打印变量c 的值select @y = @y + 1endselect @x = @x + 1select @y = 1end--WAITFOR--例等待1 小时2 分零3 秒后才执行SELECT 语句waitfor delay ’01:02:03’select * from employee--例等到晚上11 点零8 分后才执行SELECT 语句waitfor time ’23:08:00’select * from employee***SELECT***select *(列名) from table_name(表名) where column_name operator valueex:(宿主)select * from stock_information where stockid = str(nid)stockname = str_namestockname like % find this %stockname like [a-zA-Z]% --------- ([]指定值的范围)stockname like [^F-M]% --------- (^排除指定范围)--------- 只能在使用like关键字的where子句中使用通配符)or stockpath = stock_pathor stocknumber < 1000and stockindex = 24not stock*** = manstocknumber between 20 and 100stocknumber in(10,20,30)order by stockid desc(asc) --------- 排序,desc-降序,asc-升序order by 1,2 --------- by列号stockname = (select stockname from stock_information where stockid = 4)--------- 子查询--------- 除非能确保内层select只返回一个行的值,--------- 否则应在外层where子句中用一个in限定符select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_nameselect stockname , "stocknumber" = count(*) from table_name group by stockname--------- group by 将表按行分组,指定列中有相同的值having count(*) = 2 --------- having选定指定的组select *from table1, table2where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示table1.id =* table2.id -------- 右外部连接select stockname from table1union [all] ----- union合并查询结果集,all-保留重复行select stockname from table2***insert***insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")value (select Stockname , Stocknumber from Stock_table2)---value为select语句***update***update table_name set Stockname = "xxx" [where Stockid = 3]Stockname = defaultStockname = nullStocknumber = Stockname + 4***delete***delete from table_name where Stockid = 3truncate table_name ----------- 删除表中所有行,仍保持表的完整性drop table table_name --------------- 完全删除表***alter table*** --- 修改数据库表结构alter table database.owner.table_name add column_name char(2) null .....sp_help table_name ---- 显示表已有特征create table table_name (name char(20), age smallint, lname varchar(30))insert into table_name select ......... ----- 实现删除列的方法(创建新表)alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束***function(/*常用函数*/)***----统计函数----AVG --求平均值COUNT --统计数目MAX --求最大值MIN --求最小值SUM --求和--AVGuse panguselect avg(e_wage) as dept_avgWagefrom employeegroup by dept_id--MAX--求工资最高的员工姓名use panguselect e_namefrom employeewhere e_wage =(select max(e_wage)from employee)。
VF 习题
考试前复习讲一、SQL命令(1)修改表结构ALTER TABLE <表名>[ADD[COLUMN] <新字段名><数据类型>[完整性约束]] [RENAME[COLUMN] <旧字段名> TO <新字段名>] [ALTER <字段名><数据类型>][DROP [COLUMN] <.字段名> <完整性约束> ]说明:[ADD……]增加字段[RENAME……]字段重命名[ALTER……]修改字段[DROP……]删除字段(2)SQL数据查询(常用的结构)Select 字段名列表 From 表名列表Where 条件Order by 排序依据Group by 分组名 Having 分组条件Union Select命令To 文件名into table 表名 |into cursor表名 | into array 数组名(3)插入记录INSERT INTO <表名>(字段名1,<字段名2>,…)VALUES(表达式1,表达式2,…)(4)删除记录DELETE FROM 数据库名! 表名 WHERE 条件表达式(5)更新记录UPDATE 数据库名!表名SET 字段名1=表达式1,字段名2=表达式2…WHERE 条件表达式说明:如果不使用WHERE子句,则更新全部记录二、数据库基本操作题在VF集成环境下,按照以下要求操作。
1、请在考生文件夹下建立一个数据库KS1。
2、在新建的数据库KS1中建立一个名称为 order.dbf 的数据库表,表结构如下:客户号字符型(6)订单号字符型(5)订购日期日期型总金额数值型(10,2)3、在新建的表中添加如下记录内容:客户号订单号订购日期总金额c10001 tr01c 2001-10-1 4000.00d00001 tr01a 2002-2-10 4450.004、为表order.db按“客户号”的降序建立结构复合索引,索引类型为主索引,索引标识为khh。
VF答案完整版
VF答案完整版第一套―基本操作“规则”框中写:数量>0and数量<9999(注意:不加定界符),在“信息”框中输入:“数量超范围”(注意:必须加定界符)1.用sql语句顺利完成以下操作方式:列举所有与\白\颜色零件有关的信息(供应商号,工程号和数量),并将检索结果按数量降序排序放置于表中supply_temp中。
答案:select供应商号,工程号,数量;from零件,供应where供应.零件号=零件.零件号;and颜色=\白\orderby数量desc;intodbfsupply_temp在表单的rightclick事件中输入:domenu_quick.mpr,保存并运行表单。
select零件名,颜色,重量from供应,零件where供应.零件号=零件.零件号;and工程号=thisform.text1.valueorderby零件名intotableppthisform.grid1.recordsource=\第二套――基本操作(1)单击\查询\按钮,查询bookauth数据库中出版过三本以上(含三本)图书的作者信息,查询信息包括:作者姓名,所在城市;查询结果按作者姓名升序保存在表new_view4中。
select作者姓名,所在城市fromauthors,books;whereauthors.作者编号=books.作者编号;groupby作者姓名havingcount(books.图书编号)>=3;orderby作者姓名;intotablenew_view4(1)首先将books.dbf中所有书名中含有\计算机\个字的图书复制到表books_bak中,以下操作均在books_bak表中完成;(2)复制后的图书价格在原价格基础上降价5%;(3)从图书均价低于25元(含25)的出版社中,查阅并表明图书均价最高的出版社名称以及均价,查阅结果留存在表中new_table4中(字段名为出版单位和均价)。
VF命令大全
建立数据库:CREATE DATABASE [databasename|?]从磁盘中删除数据库:DELETE DATABASE databasename|?打开数据库:OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE]打开数据库设计器(允许用户按交互方式编辑当前数据库):MODIFY DATABASE [databasename|?]指定的数据库databasename为当前数据库。
指定当前的数据库:SET DATABASE TO [databasename]Databasename必须为已经打开的数据库。
如果省略数据库名称databasename,则不指定当前数据库(没有当前数据库)。
关闭数据库:CLOSE DATABASE [ALL]关闭当前数据库,如果带ALL子句,则关闭所有打开的数据库。
二、数据表和视图的建立、打开、关闭和删除建立数据表(SQL命令):CREATE TABLE | DBF tablename (Col_name1 Type1 [NOT NULL/NULL][{,Col_name2 Type2 [NOT NULL/NULL]}...])table_name是所创建的数据表的名字。
Col_name1,Col_name2,...是表中列的名。
Type1, Type2...是相应列的数据类型(VFP的数据类型见表3-9)。
如果说明为NOT NULL,则列中不允许分配空值(这种情况下,列不能包含空值,如果插入空值,将返回错误信息)。
向当前打开的数据库中添加数据表:ADD TABLE tablename|?从当前打开的数据库中删除数据表:REMOVE TABLE tablename|? [DELETE]如果包含DELETE子句,将从磁盘中删除这个表文件,否则,只从数据库中删除,但文件仍保存在磁盘中。
在当前打开的数据库中建立视图:CREATE SQL VIEW viewname AS SELECT ……其中SELECT ……为SELECT语句。
VF学习笔记完整版
VF学习笔记章节.Ⅰ1.选择查询:“标记”select*from 个人账号记录 where 名称="工商银行"2.改变主窗口字体大小命令:_screen.fontsize=253.清除主荧幕内容命令:clear4.项目建立命令:create project <要建立的项目文件名>5.字符型数据1).字符型数据输出时都必须加定界符[]、""、''<任选其一>。
定界符都必须成对输出,否者无效,如遇定界符嵌套使用,以最外成的定界符为准,期间的定界符都是字符型数据。
(定界符定义了字符型数据从哪里开始到哪里结束,其间的数据都属于字符型数据)2).其次,VF中的汉字、数字、空格都属于字符型数据。
(字符型数据是原样输出,必须区分大小写)*一个?代表"输出"两个??代表"不换行输出" *章节Ⅱ1.表达式①由数据、变量、函数、运算符构成的式子。
②用来计算、判断和数据的转换。
1)数值型表达式:(其结果也是数值型的)———————————————————————优先级运算符说明1 ( ) 形成表达式内的子表达式2 * *或^ 乘方运算3 * / % 乘除运算、求余运算4 + - 加减运算----------------------------------------------1@求余运算%和取余函数MOD()的作用相同,结果的正负号与除数一致。
2@如果余数与被除数同号就是两数相除的余数,反之则把两数相除的余数加上除数的值。
2).字符表达式①它只有加和减两种运算。
②不管哪种运算,它的结果仍然是字符串。
③两个字符串相加,其结果就是两个字符串首尾相连。
④连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部。
示例:"ABC "+"123"="ABC123 "3)日期时间型表达式@计算格式没有日期+日期/日期+-日期时间/日期时间+日期时间。
VF常用命令
数据表操作命令1、创建数据表命令:格式:CREATE [<表文件名>/?]功能:新建一个VF数据表2、打开数据表命令:格式:USE [<表文件名>]功能:打开指定的数据表或关闭数据表3、关闭数据表命令格式:CLOSE DATABASES功能:关闭所有工作区中打开的数据表文件及相关文件,选择1号工作区为当前工作区格式:CLOSE ALL功能:关闭所有工作区的所有文件,选择1号工作区为当前工作区格式:CLEAR ALL功能:关闭所有文件,释放内存变量,选择1号工作区为当前工作区格式:QUIT功能:关闭所有文件,安全退出VF,返回宿主操作系统4、显示表结构命令格式1:LIST STRUCTURE格式2;DISPLAY STRUCTURE功能:在主窗口显示当前打开的数据表结构5、修改表结构命令格式:MODIFY STRUCTURE功能:显示并修改当前打开数据表结构6、复制表结构命令格式:COPY STRUCTURE TO <表文件名>[FEILES<字段名>]功能:对当前数据表结构进行复制,形成一个指定名称的新表结构7、复制数据表命令格式:COPY TO <表文件名>[<范围>] [FOR<条件>] WHILE<条件>][FIELDS<字段表>] [TYPE<文件类型>]功能:对当前数据表中指定范围内符合条件的记录进行复制,形成一个指定名称的新数据表8、追加与插入记录命令格式:APPEND [BLANK]功能:在当前数据表的末尾增加新记录格式:APPEND FROM<表文件名>[FOR<条件>] [WHILE<条件>] [FILEDS<当前表字段表>][TYPE<文件类型>]功能:由磁盘上指定的表文件中,将规定范围内符合条件的记录自动添加到当前数据表的末尾。
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指定要修改其结构的表名。
- 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.05WHERE 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分数>=0AND分数<=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作用:打开一个“浏览”窗口,供用户浏览或修改记录。
格式: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工资+200FOR工资<1000REPLACE FROM ARRAY数组名[FIELDS字段名列表][常用子句]——用存数组的值更新数据表中的记录:14、DELETE、PACK、ZAP和RECALL作用:分别是给要删除的记录作删除标记、彻底删除、删除所有记录和取消被选中的表记录的删除标志。