VF常用SQL语句大全

合集下载

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

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语句大全

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命令一览表

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() 取日函数。

SQL语句大全(很全)sql语句用法

SQL语句大全(很全)sql语句用法

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 = '10010001'select id = '10010001'---全局变量---必须以开头--IF ELSEdeclare x int y int z intselect x = 1 y = 2 z=3if x > yprint 'x > y' --打印字符串'x > y'else if y > zprint 'y > z'else print 'z > y'--CASEuse panguupdate employeeset e_wage =casewhen job_level = ’1’ then e_wage*1.08 when job_level = ’2’ then e_wage*1.07 when 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_name'stockname like '% find this %'stockname like '[a-zA-Z]%' --------- ([]指定值的围)stockname like '[^F-M]%' --------- (^排除指定围)--------- 只能在使用like关键字的where子句中使用通配符)or stockpath = 'stock_path'or stocknumber < 1000and stockindex = 24not stock*** = 'man'stocknumber 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_name select 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)--STDEV()--STDEV()函数返回表达式中所有数据的标准差--STDEVP()--STDEVP()函数返回总体标准差--VAR()--VAR()函数返回表达式中所有值的统计变异数--VARP()--VARP()函数返回总体变异数----算术函数----/***三角函数***/SIN(float_expression) --返回以弧度表示的角的正弦COS(float_expression) --返回以弧度表示的角的余弦TAN(float_expression) --返回以弧度表示的角的正切COT(float_expression) --返回以弧度表示的角的余切/***反三角函数***/ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角ATAN2(float_expression1,float_expression2)--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角DEGREES(numeric_expression)--把弧度转换为角度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型EXP(float_expression) --返回表达式的指数值LOG(float_expression) --返回表达式的自然对数值LOG10(float_expression)--返回表达式的以10 为底的对数值SQRT(float_expression) --返回表达式的平方根/***取近似值函数***/CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型FLOOR(numeric_expression) --返回<=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返回的数据--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型SIGN(numeric_expression) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型--与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型PI() --返回值为π 即3.97936RAND([integer_expression]) --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数----字符串函数----ASCII() --函数返回字符表达式最左端字符的ASCII 码值CHAR() --函数用于将ASCII 码转换为字符--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值LOWER() --函数把字符串全部转换为小写UPPER() --函数把字符串全部转换为大写STR() --函数把数值型数据转换为字符型数据LTRIM() --函数把字符串头部的空格去掉RTRIM() --函数把字符串尾部的空格去掉LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置SOUNDEX() --函数返回一个四位字符码--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异--0 两个SOUNDEX 函数返回值的第一个字符不同--1 两个SOUNDEX 函数返回值的第一个字符相同--2 两个SOUNDEX 函数返回值的第一二个字符相同--3 两个SOUNDEX 函数返回值的第一二三个字符相同--4 两个SOUNDEX 函数返回值完全相同QUOTENAME() --函数返回被特定字符括起来的字符串/*select quotename('abc', '{') quotename('abc')运行结果如下----------------------------------{{abc} [abc]*/REPLICATE() --函数返回一个重复character_expression 指定次数的字符串/*select replicate('abc', 3) replicate( 'abc', -2)运行结果如下----------- -----------abcabcabc NULL*/REVERSE() --函数将指定的字符串的字符排列顺序颠倒REPLACE() --函数返回被替换了指定子串的字符串/*select replace('abc123g', '123', 'def')运行结果如下----------- -----------abcdefg*/SPACE() --函数返回一个有指定长度的空白字符串STUFF() --函数用另一子串替换字符串指定位置长度的子串----数据类型转换函数----CAST() 函数语法如下CAST() (<expression> AS <data_ type>[ length ])CONVERT() 函数语法如下CONVERT() (<data_ type>[ length ], <expression> [, style])select cast(100+99 as char) convert(varchar(12), getdate())运行结果如下------------------------------ ------------199 Jan 15 2000----日期函数----DAY() --函数返回date_expression 中的日期值MONTH() --函数返回date_expression 中的月份值YEAR() --函数返回date_expression 中的年份值DATEADD(<datepart> ,<number> ,<date>)--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期DATEDIFF(<datepart> ,<number> ,<date>)--函数返回两个指定日期在datepart 方面的不同之处DATENAME(<datepart> , <date>) --函数以字符串的形式返回日期的指定部分DATEPART(<datepart> , <date>) --函数以整数值的形式返回日期的指定部分GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间----系统函数----APP_NAME() --函数返回当前执行的应用程序的名称COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值COL_NAME(<table_id>, <column_id>) --函数返回表中指定字段的名称即列名DATALENGTH() --函数返回数据表达式的数据的实际长度DB_ID(['database_name']) --函数返回数据库的编号DB_NAME(database_id) --函数返回数据库的名称HOST_ID() --函数返回服务器端计算机的名称HOST_NAME() --函数返回服务器端计算机的名称IDENTITY(<data_type>[, seed increment]) [AS column_name]) --IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中/*select identity(int, 1, 1) as column_nameinto newtablefrom oldtable*/ISDATE() --函数判断所给定的表达式是否为合理日期ISNULL(<check_expression>, <replacement_value>) --函数将表达式中的NULL 值用指定值替换ISNUMERIC() --函数判断所给定的表达式是否为合理的数值NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值NULLIF(<expression1>, <expression2>)--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1的值sql中的保留字action add aggregate allalter after and asasc avg avg_row_length auto_incrementbetween bigint bit binaryblob bool both bycascade case char characterchange check checksum columncolumns comment constraint createcross current_date current_time current_timestamp data database databases datedatetime day day_hour day_minute day_second dayofmonth dayofweek dayofyeardec decimal default delayeddelay_key_write delete desc describedistinct distinctrow double dropend else escape escapedenclosed enum explain existsfields file first floatfloat4 float8 flush foreignfrom for full functionglobal grant grants grouphaving heap high_priority hourhour_minute hour_second hosts identifiedignore in index infileinner insert insert_id intinteger interval int1 int2int3 int4 int8 intoif is isam joinkey keys kill last_insert_idleading left length likelines limit load locallock logs long longbloblongtext low_priority max max_rowsmatch mediumblob mediumtext mediumintmiddleint min_rows minute minute_secondmodify month monthname myisamnatural numeric no notnull on optimize optionoptionally or order outeroutfile pack_keys partial passwordprecision primary procedure processprocesslist privileges read realreferences reload regexp renamereplace restrict returns revokerlike row rows secondselect set show shutdownsmallint soname sql_big_tables sql_big_selectssql_low_priority_updates sql_log_off sql_log_update sql_select_limit sql_small_result sql_big_result sql_warnings straight_joinstarting status string tabletables temporary terminated textthen time timestamp tinyblobtinytext tinyint trailing totype use using uniqueunlock unsigned update usagevalues varchar variables varyingvarbinary with write whenwhere year year_month zerofill查看全文分类: ( 一般分类 ) :: 评论 (0) :: 静态网址 :: 引用 (0)常用SQL命令和ASP编程发表人:kendy517 | 发表时间: 2007年二月09日, 11:57在进行数据库操作时,无非就是添加、删除、修改,这得设计到一些常用的SQL语句,如下:SQL常用命令使用方法:(1) 数据记录筛选:sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"sql="select * from 数据表 where 字段名 like %字段值% order by 字段名 [desc]"sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"sql="select * from 数据表 where 字段名 in (值1,值2,值3)"sql="select * from 数据表 where 字段名 between 值1 and 值2"(2) 更新数据记录:sql="update 数据表 set 字段名=字段值 where 条件表达式"sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"(3) 删除数据记录:sql="delete from 数据表 where 条件表达式"sql="delete from 数据表" (将数据表所有记录删除)(4) 添加数据记录:sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)(5) 数据记录统计函数:AVG(字段名) 得出一个表格栏平均值COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计MAX(字段名) 取得一个表格栏最大的值MIN(字段名) 取得一个表格栏最小的值SUM(字段名) 把数据栏的值相加引用以上函数的方法:sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"set rs=conn.excute(sql)用 rs("别名") 获取统的计值,其它函数运用同上。

常用经典SQL语句大全完整版

常用经典SQL语句大全完整版

常用经典SQL语句大全完整版--详解+实例下列语句部分是Mssql语句,不可以在access中使用。

SQL分类:DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句:1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建备份数据的deviceUSE masterEXECsp_addumpdevice ’disk’, ’testBack’, ’c:\mssql7backup\MyNwind_1.d at’--- 开始备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)根据已有的表创建新表:A:create table tab_new like tab_old (使用旧表创建新表)B:create table tab_new as select col1,col2… from tab_old definition only5、说明:删除新表:drop table tabname6、说明:增加一个列:Alter table tabname add column col type注:列增加后将不能删除。

DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

7、说明:添加主键:Alter table tabname add primary key(col)说明:删除主键:Alter table tabname drop primary key(col)8、说明:创建索引:create [unique] index idxname on tabname(col….)删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建。

第3章 VF中SQL语言的应用2

第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语句大全

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命令

全国计算机二级(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基本语句

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

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常用命令列表

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常用命令(全)

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语句大全

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 习题

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答案完整版

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知识点总结(考试必备) ⑤

VF知识点总结(考试必备) ⑤

VF知识点总结(考试必备)一、有效性规则和参照完整性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,按什么分组。

VF学习笔记完整版

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常用命令

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<文件类型>]功能:由磁盘上指定的表文件中,将规定范围内符合条件的记录自动添加到当前数据表的末尾。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复
select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name
MAX --求最大值
MIN --求最小值
SUM --求和
--AVG
use pangu
select avg(e_wage) as dept_avgWage
from employee
group by dept_id
--MAX
--求工资最高的员工姓名
use pangu
select e_name
Stockname = default
Stockname = null
Stocknumber = Stockname + 4
***delete***
delete from table_name where Stockid = 3
truncate table_name ----------- 删除表中所有行,仍保持表的完整性
select stockname , "stocknumber" = count(*) from table_name group by stockname
--------- group by 将表按行分组,指定列中有相同的值
having count(*) = 2 --------- having选定指定的组
ATAN2(float_expression1,float_expression2)
--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角
DEGREES(numeric_expression)
--把弧度转换为角度返回与表达式相同的数据类型可为
--VARP()
--VARP()函数返回总体变异数
----算术函数----
/***三角函数***/
SIN(float_expression) --返回以弧度表示的角的正弦
COS(float_expression) --返回以弧度表示的角的余弦
TAN(float_expression) --返回以弧度表示的角的正切
--程序化SQL
DECLARE --为查询设定游标
EXPLAN --为查询描述数据访问计划
OPEN --检索查询结果打开一个游标
FETCH --检索一行查询结果
CLOSE --关闭游标
PREPARE --为动态执行准备SQL 语句
EXECUTE --动态地执行SQL 语句
DESCRIBE --描述准备好的查询
from employee
where e_wage =
(select max(e_wage)
from employee)
--STDEV()
--STDEV()函数返回表达式中所有数据的标准差
--STDEVP()
--STDEVP()函数返回总体标准差
--VAR()
--VAR()函数返回表达式中所有值的统计变异数
order by 1,2 --------- by列号
stockname = (select stockname from stock_information where stockid = 4)
--------- 子查询
--------- 除非能确保内层select只返回一个行的值,
--------- 否则应在外层where子句中用一个in限定符
DROP DOMAIN --从数据库中删除一个域
--数据控制
GRANT --授予用户访问权限
DENY --拒绝用户访问
REVOKE --解除用户访问权限
--事务控制
COMMIT --结束当前事务
ROLLBACK --中止当前事务
SET TRANSACTION --定义当前事务数据访问特征
select @x = 1 @y=1
while @x < 3
begin
print @x --打印变量x 的值
while @y < 3
begin
select @c = 100*@x + @y
print @c --打印变量c 的值
select @y = @y + 1
end
select @x = @x + 1
or stockpath = 'stock_path'
or stocknumbe 24
not stock*** = 'man'
stocknumber between 20 and 100
stocknumber in(10,20,30)
order by stockid desc(asc) --------- 排序,desc-降序,asc-升序
ALTER TABLE --修改数据库表结构
CREATE VIEW --创建一个视图
DROP VIEW --从数据库中删除视图
CREATE INDEX --为数据库表创建一个索引
DROP INDEX --从数据库中删除索引
CREATE PROCEDURE --创建一个存储过程
DROP PROCEDURE --从数据库中删除存储过程
VF常用SQL语句大全
SQL是结构化查询语言,查询是SQL语言的重要组成部分,但不是全部,SQL还包括数据定义,数据操纵和数据控制功能等部分.如今SQL已成为关系数据库的标准数据语言,所以现在的关系数据库管理系统都支持SQL.FOXPRO从2.5 FOR DOS版式就开始支持SQL,现在VISUAL FOXPRO当然在之方面更加完善,以下是VF经常用到SQL语句.
alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束
***function(/*常用函数*/)***
----统计函数----
AVG --求平均值
COUNT --统计数目
CREATE TRIGGER --创建一个触发器
DROP TRIGGER --从数据库中删除触发器
CREATE SCHEMA --向数据库添加一个新模式
DROP SCHEMA --从数据库中删除一个模式
CREATE DOMAIN --创建一个数据值域
ALTER DOMAIN --改变域定义
select * from employee
***SELECT***
select *(列名) from table_name(表名) where column_name operator value
ex:(宿主)
select * from stock_information where stockid = str(nid)
value (select Stockname , Stocknumber from Stock_table2)---value为select语句
***update***
update table_name set Stockname = "xxx" [where Stockid = 3]
select @y = 1
end
--WAITFOR
--例 等待1 小时2 分零3 秒后才执行SELECT 语句
waitfor delay ’01:02:03’
select * from employee
--例 等到晚上11 点零8 分后才执行SELECT 语句
waitfor time ’23:08:00’
sp_help table_name ---- 显示表已有特征
create table table_name (name char(20), age smallint, lname varchar(30))
insert into table_name select ......... ----- 实现删除列的方法(创建新表)
union [all] ----- union合并查询结果集,all-保留重复行
select stockname from table2
***insert***
insert into table_name (Stock_name,Stock_number) values("xxx","xxxx")
COT(float_expression) --返回以弧度表示的角的余切
/***反三角函数***/
ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角
ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角
ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角
if @x > @y
print 'x > y' --打印字符串'x > y'
else if @y > @z
print 'y > z'
else print 'z > y'
--CASE
use pangu
相关文档
最新文档