首页 vf教程,数据库与SQL,视图等资料命令

vf教程,数据库与SQL,视图等资料命令

举报
开通vip

vf教程,数据库与SQL,视图等资料命令1.命令书写规则 (1)任何命令必须以命令动词开始; (2)命令动词与子句之间、各子句之间都以空格分隔; (3)一个命令行最多包含8192个字符(包括空格)。一行书写不完,行尾用分号“;”做续行标志, (4)不区分命令字符的大小写; (5)除命令动词外,子句的排列顺序一般不影响命令功能 2.VF中的数据类型包括以下六种: 数值型(N)货币型(Y)字符型(C)日期型(D)日期时间型(T)逻辑性(L) 1)数值型(N) 常量 ..两种输入法:基本表示法、科学计数法 ..基本表示法32,126.7,...

vf教程,数据库与SQL,视图等资料命令
1.命令书写规则 (1)任何命令必须以命令动词开始; (2)命令动词与子句之间、各子句之间都以空格分隔; (3)一个命令行最多包含8192个字符(包括空格)。一行书写不完,行尾用分号“;”做续行标志, (4)不区分命令字符的大小写; (5)除命令动词外,子句的排列顺序一般不影响命令功能 2.VF中的数据类型包括以下六种: 数值型(N)货币型(Y)字符型(C)日期型(D)日期时间型(T)逻辑性(L) 1)数值型(N) 常量 ..两种输入法:基本表示法、科学计数法 ..基本表示法32,126.7,-12.45 科学计数法1.2345E8,-9.87E-8 2) 货币型(Y) 常量 ..输入与数值型常量的基本表示法类似,只是前面加上一个$符号。不能使用科学计数法。如$100.2,$123.456789 ..输出时没有“$”符号,小数点后自动保留4位 3) 字符型(C) 常量 定界符:‘ ’,“ ”,[ ] 英文 如: ‘123’ ,“山东” ,[aA Bb] ..定界符要成对出现 ..如果定界符做为字符串中的一部分,必须使用其他定界符; ..输出时没有定界符 ..字符串区别大小写,“A”与“a”不同; ..空串与仅包含空格的字符串不同 4) 日期型(D) 常量 输入: 输入格式:{^yyyy-mm-dd} {^ }为定界符。-为分隔符,也可以使用 / , 空格, 句点作为分隔符 输出: 输出格式:mm/dd/yy /分隔符以及年月日顺序可通过命令进行调整 1%设置分隔符 Set mark to “-” ?{^2006-08-28} 输出 08-28-06 2%设置日期显示格式 Set date to YMD ? {^2006-08-28} 输出 06/08/28 3%设置年份显示位数 Set century on ? {^2006-08-28} 输出 08/28/2006 5)日期时间型(T) 常量 输入格式: {^YYYY-MM-DD, [hh [:mm[:ss]] [a|p]]} 输入: {^2006-08-27,10:15 a} 输出: 08/27/06 10:15:00 AM 说明:hh,mm,ss,a|p的默认值分别为:12,00,00,AM; 6)逻辑型/布尔型(L) 常量 输入: 真: .T. 、 .t. 、 .Y. 、 .y. 假:.F. 、 .f. 、 .N. 、 .n. 输出: 真: .T. 假:.F. 3.变量的命名需要遵守以下规则: ..由字母、数字、下划线或汉字组成 ..不能以数字开头 ..变量名的长度<=128个字符 ..变量名不区分大小写 ..变量名尽量不要与系统中已有的名称冲突(命令名,函数名,表名,字段名) A, a1A, 2AB, A-BC, SUM ,_SUM,面积,周长1,A□B,A?B 1)简单变量及 赋值 【格式1】内存变量名 = 表达式 (一次只能给一个变量赋值) 【格式2】STORE 表达式 TO 变量1,变量2(一次可以给多个变量赋相同的值) 2)数组变量 Dimension / Declare 数组名1(下标1 [,下标2 ])[,……] Dimension A(5) (一行五个), B(2,3) (两行一行三个)先行后列 dimension b(2,3) 第1行 ① ② ③ b(1,1) , b(1,2) , b(1,3) 第2行 ④ ⑤ ⑥ b(2,1) , b(2,2) , b(2,3) b (1) b(1,1) b (2) b(1,2) b (5) b(2,2) 。。数组下界规定为1 。。一个数组中各元素的数据类型可以不相同 。。数组创建后,系统自动给每个数组元素赋以逻辑假.F. 。。给数组名赋值则给数组中的每个元素赋值 。。可用一维数组表示二维数组. 4.表达式 1)数值表达式 %(求余运算):特点是余数的正负号与除数一致,且余数的绝对值小于除数的绝对值 2)字符表达式 +前后两个字符串首尾连接 -连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部 输入 输出 “ABC” + “123” “ABC123” “ABC” - “123” “ABC123” “ABC□□” + “123□” “ABC□□123□” “ABC□□” - “123□” “ABC123□□□” “AB□C□” + “12□3□” “AB□C□12□3□” “AB□C□” - “12□3□” “AB□C12□3□□” 格式 两边类型 结果类型 {日期} + 天数 D(日期型) + N(数值型) D {日期} - 天数 D - N D {日期} - {日期} D - D N 注:无<日期>+<日期> 和 <日期时间>+<日期时间>3)日期时间表达式) 4)逻辑表达式 运算符 优先级 运算规则 not 1 取反 and 2 两边同时为真,则为真 or 3 有一边为真,则为真 5)关系表达式 格式:e1 <关系运算符> e2 返回值:逻辑类型 运算符 名称   >,>=,<,<=,   可用于比较任意相同类型的两个数据 <>、#、或 != 不等于 = 等于 = = 全等 仅适用于比较两个字符型数据 $ 包含于 逻辑型:真值大于假值 。。$(子串包含测试): 格式:c1 $ c2 功能:用来测试前者是否为后者的子串。 。。字符串精确比较与EXACT设置 Set Exact On :先在较短的字符串的尾部加上若干个空格,使两个字符串长度相等,然后对应字符一一比较 Set Exact Off (默认) :按照右边字符串的长度进行比较 6)运算符优先级   运算符 优先级 圆括号 ( ) 1 算数运算符 **, ^, *, /, %, +, - 2 字符运算符 +, - 日期运算符 +, - 关系运算符 >, >=, <, <=, $ <>, #, !=, =, = = 3 逻辑运算符 Not And Or 4 将以下条件写成VF逻辑表达式 。。m-n≤j≤m+ n (J >= M-N) And (J <= M+N) 。。X<-5或X>5 (X < -5)Or (X > 5) 。。M和N之一为5,但不能同时为5 ((M = 5) And (N<>5)) Or ((M <> 5) And (N = 5)) 。。-100 -100) And (K < 100) And (K % 2 = 0 ) 5.函数 调用方法:函数名(参数1,参数2,……) 。。三要素 : 函数名、参数(个数类型)、返回值(类型) 。。即使没有参数,两边的括号不能省略 。。函数可以和其他数据进行操作运算 常见数值函数 格式 返回 功能 ABS(N) N 绝对值 SIGN(N) N 符号函数 PI() N 圆周率 SQRT (N) N EXP (N) N 指数 LOG (N) N e为底的对数 LOG10(N) N 10为底的对数 格式 返回 功能 Round (N1, N2) N 四舍五入 Int (N) N 返回N的整数部分 Ceiling (N) N 返回大于等于N的最小整数 Floor (N) N 返回小于等于N的最大整数 Mod (N1,N2) N 取余,相当于% Max (e1,e2,…… )   返回最大值 Min (e1,e2,……)   返回最小值 Rand () N 返回一个 0 到 1 之间的随机数 字符函数 日期和时间函数 格式 返回 功能 Date() D 返回当前日期 Datetime() T 返回当前日期时间 Time() C 返回当前时间(24小时制) Year(D|T) N 返回年份 Month(D|T) N 返回月份 Day(D|T) N 返回天数部分 Hour(T) N 返回小时 Minute(T) N 返回分钟 Sec(T) N 返回秒数 类型转换函数 格式 返回 功能 STR(N1,NStrLen,NDecimal) C VAL(C) N 字符型转换为数值型 测试函数 格式 返回 功能 Between(E1,E2,E3) L 若e2<=e1<=e3,返回.t. IIF(L,E1,E2)   若L为.t.,返回E1,否则返回E2。E1和E2数据类型可以不同 Vartype(E) C 返回表达式的数据类型 Empty(E) L E值为空,返回.t. ISNULL(E) L E值为null,返回.t. 数据库与表的基本操作 1.数据库的基本操作 DB的扩展名 Table的扩展名 .dbc (数据库文件) .dbf (表文件) .dct (数据库备注文件) .fpt (表备注文件) .dcx (数据库索引文件) .cdx/.idx (表索引文件) 。。数据库相关操作 创建数据库 打开数据库 设置当前数据库 编辑修改数据库 关闭数据库 删除数据库 1创建数据库:Create Database [Name] VF在磁盘上创建数据库相关文件,同时打开这个数据库 2打开数据库:Open Database [Name] 打开数据库,可以使用数据库内的对象,如表,视图等。是后续操作的前提 3设置当前数据库 Set Database To [Name] 当多个数据库被打开时,指定被用户使用的数据库 Set Database To 取消当前数据库,所有打开的数据库并未关闭 4编辑修改数据库(打开数据库设计器) Modify Database [Name] 打开数据库设计器,添加、删除、修改数据库对象 5关闭数据库 Close Database [All] 关闭当前数据库及其中的对象,ALL为关闭所有打开的数据库 6删除数据库 Delete Database Dbname [ Deletetables ] [ Recycle ] 删除数据库,数据库中的表成为自由表 DeleteTables:不仅删除数据库,也删除数据库中的表 Recycle:将删除的文件放入回收站 2.表的基本操作 表的创建、打开、关闭、删除 。。表结构查看、修改 。。表数据浏览、编辑 。。移动 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 指针 。。追加、更新、删除表记录 。。表的复制 。。数据库中的表与自由表 1创建表 Create [Tname] 创建表相关文件。启动表设计器,让用户填写新表的结构。 2 表结构相关概念 。。字段结构(字段名,类型,字段宽度,小数位数) 。。字段显示格式,输入掩码,字段标 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 。。字段有效性检查(规则L,信息,默认值) 。。记录有效性检查(规则L,信息) 。。触发器检查(插入、更新、删除) 。。索引(多个) 3打开表 Use [DbName!]TName 。。使用use打开表是对表进行其它操作的前提 。。表打开后就可以执行与表相关的操作,如查看表中的记录数据,查看表结构信息,添加、删除、修改记录。 。。如果当前已经打开一个表,则VF先关闭已打开的表,再打开新表 4关闭表 Use 关闭当前数据库中所有打开的表 Close tables [all] 关闭所有打开的数据库中所有打开的表 5删除表 Drop Table TName [Recycle] 6显示表结构 Display | List Structure [To Printer | To File FName] Open database 教务管理 Use Student List Structure 7修改表结构 Modify Structure 打开表设计器,修改表结构 Open database 教务管理 Use Student Modify Structure 8浏览编辑表数据 Browse [Fields FieldList] [For L1] Edit/Change [Fields FieldList] [For L1] 9移动记录指针 。。系统为每一表文件都设置有一个记录指针;它始终指向当前表中正在操作处理的那条记录,此记录被称为当前记录。表文件打开时,记录指针指向第一个记录。 。。如果要对某条记录进行处理,必须移动记录指针,使其指向该记录。在任意时刻指针只能指向一条记录 1)相关命令 。。Go|Goto [Record] nRecordNumber 将记录指针移至物理记录编号为nRecordNumber的记录 。。 Go|Goto Top|Bottom记录指针移动到首记录或尾记录 。。 Skip [±nRecords] 记录指针从当前记录向前(或向后)移动n个记录。 nRecords缺省为1 10显示表数据 List/Display [Fields fieldlist] [Scope] [For l1] List命令Scope缺省值为All, Display命令Scope缺省值为Next 1 √Scope被明确指出(四种形式)√若存在for子句,scope缺省为all √使用特定命令scope的缺省值 List Fields 学号, 姓名, 性别 List Fields 学号,姓名, 出生日期 For Year(出生日期)=1980 List For Year(出生日期)>1980 and 性别='男' 11追加记录 Insert [Before] Blank 在当前记录后插入空记录,记录指针指向新记录 在当前记录前插入空记录,记录指针指向新记录 Append Blank 在表末尾插入空记录,记录指针指向新记录 12更新记录 Replace F1 With E1 [,F2 With E2…] [Scope] [For L1] Scope缺省值为 Next 1,缺省仅更新当前记录 例如: 1)Student(学号,性别,高考成绩,出生日期) @将所有同学高考成绩加10分: Replace 高考成绩 With 高考成绩+10 For 1=1 Replace 高考成绩 With 高考成绩+10 For .T. @在第三条纪录前插入一条新记录(‘XS0412’,肖慧,女,500, 1980-09-16) !Go 3 Insert Before Blank Replace 学号 With ‘XS0412’, 姓名 With ‘肖慧’,性别 With ‘女’,高考成绩 With 500,出生日期 With {^ 1980-09-16} !Go 2 Insert Blank Replace 学号 With ‘XS0412’, 姓名 With ‘肖慧’,性别 With ‘女’,高考成绩 With 500,出生日期 With {^ 1980-09-16} @在表末尾插入一条新记录(‘XS0412’,肖慧,女,500, 1980-09-16) !Append Blank Replace 学号 With ‘XS0412’, 姓名 With ‘肖慧’,性别 With ‘女’,高考成绩 With 500,出生日期 With {^ 1980-09-16} !Go Bottom Insert Blank Replace 学号 With ‘XS0412’, 姓名 With ‘肖慧’,性别 With ‘女’,高考成绩 With 500,出生日期 With {^ 1980-09-16} 2)Worker(工号,性别,工资,奖金,合计,出生日期) @将年龄小于15岁的员工的工资加20元 Replace 工资 with 工资+20 For Year(Date())-Year(出生日期)<15 @将工资字段加奖金字段的值替换合计字段的值 Replace 合计 with 工资+奖金 ALL @将表中物理编号第2至5号记录的工资增加10 元 Go 2 Replace 工资 with 工资+10 Next 4 Replace 工资 with 工资+10 For Recno()>=2 and Recno()<=5 13删除记录 1)删除记录 Delete [Scope] [For L1] 对指定记录逻辑删除(做删除标记) Scope缺省值为 Next 1,缺省仅删除当前记录 2)取消删除 Recall [Scope] [For L1] 对指定记录取消逻辑删除标记 Scope缺省值为 Next 1,缺省仅恢复当前记录 3)物理删除 Pack 对所有逻辑删除记录进行物理删除,其它记录保留 4)物理删除所有记录 Zap 等价于 Delete ALL Pack 例如:将 工号 字段前加‘20’这二个字符数据 删除Worker中所有男员工的记录 Replace 工号 with ‘20’+工号 ALL Delete For 性别=‘男’ 14向表中追加数据 Append From FName [Fields fieldlist] [For l1] 从Fname所指的文件向当前表末尾追加数据 Use Student Copy To S1 For .F. Use S1 Append From Student Use 15 自由表:不属于任何数据库而独立存在的表 。。存在当前数据库时,新建立的表为数据库中的表 。。不存在当前数据库时,新建立的表为自由表 。。删除某数据库时,该数据库中的表变为自由表 @将表移出数据库,成为自由表 Remove Table 表名 [Delete] @将自由表移入数据库,成为数据库中的表 Add Table 表名 [NAME 长表名] !!!!!数据库中表:可以设置 !!!!!自由表:不可以设置 16 排序 Sort To TableName On 字段1 [/A | /D] [/C] [, 字段2 [/A | /D] [/C] ...] [Ascending | Descending] 1. 当有多个排序字段时,先按字段1的值排列,其值相同的,再按字段2的值排列。 2. /A:升序 /D:降序 /C:不区分大小写 3. Ascending是缺省值,/A 的优先级比ASCENDING高。 4. 原表文件与排序后的文件是相互独立的。 Use Student 1)对表Student按照性别升序排序,生成stud1 Sort To Stud1 On 性别 2)对表Student排序,先按照性别降序排序,性别相同则按照出生日期升序排序,生成stud2 Sort to stud2 on 性别/d,出生日期 Sort to stud2 on 性别,出生日期 /a descending 3)对表Student排序,先按照性别降序排序,性别相同则按照出生日期升序排序,生成stud3,最终结果中只包含“姓名,性别,出生日期”三个字段 Sort to stud3 on 性别/d,出生日期 fields 姓名,性别,出生日期 17关于索引 。。索引是从逻辑上改变了表中记录的顺序。 。。通过索引表达式建立索引。 。。索引存在于索引文件中,占用空间小。 。。一个表文件可以建立多个索引文件 。。对于打开的表文件,任何时侯只有一个索引起作用,此索引称为主控索引。 类型 索引表达式 文件     主索引 不重复 结构复合 索引文件 数据库中的表 一个 候选索引 不重复 数据库中的表、自由表 多个 普通索引 可重复 单项、结构复合、非结构复合 唯一 可重复 1)创建索引 Index On e1 …… 表达式e1通常为使用当前表字段变量的表达式,更通常的情况是直接使用字段名 Index On e1 To IDXFilename Index On e1 Tag TagName Index On e1 Tag TagName Of CDXFileName 实用:Use Student Index On 出生日期 To CSRQ Descending Index On 性别+姓名 To XBXM Index On 性别+DTOC(出生日期) To XBXM Index On 出生日期 Tag CSRQ2 Index On 性别+姓名 Tag XBXM1 Of Stud2 Index On 学号 Tag XH Candidate Descending 2)打开索引 Set Index To IndexFileList [Additive] 结构复合索引文件随表的打开自动打开,随表的关闭自动关闭。其它索引文件需要使用这条命令打开 Additive表示保留以前打开的索引文件。否则,除结构复合索引文件外,以前打开的其他索引文件都将被关闭。 Use student Set index to stud2 Set index to stud1 Set index to stud2 Additive Set index to stud1 , stud2 3) 设置主控索引 Set Order To IDXFileName | TAG TagName [OF CDXFileName] Use student Set index to stud1 , stud2 Set Order to stud1 Set Order to Tag XH Of Stud2 Set Order to Tag XB · Stud1.idx · Stud2.cdx · XH · CSRQ · Student.cdx · XB 4)更新索引 Reindex 更新所有打开索引文件中的所有索引 对于没有打开的索引文件,索引不能自动更新。为避免使用旧的索引文件导致错误,应该使用重新索引命令更新已经建立的索引文件。 Use student Set index to stud1 , stud2 Reindex 5) 关闭索引 a) Set Index To b) Close Indexes c) Use d) Close Tables [ALL] 6) 删除索引 结构复合索引文件随表的关闭自动关闭 a) Delete Tag TagName1 [OF CDXFileName1] [, TagName2 [OF CDXFileName2]] ... Delete Tag ALL [OF CDXFileName1] [, ALL [OF CDXFileName2]] ... Delete File IDXFileName 7)索引查询 Seek E1 在当前表主控索引中查找索引表达式值与E1值相匹配的第一条记录 Use S1 Index on 性别 Tag 性别 Use Use S1 Set Order To 性别 Browse Seek ‘女’ Display Seek ‘女’ Display @由于索引文件中索引表达式值相同的记录总是排在一起的,可用Skip、Display命令来逐个查询满足条件的其它记录 Seek ‘女’ Display Seek ‘女’ Display Skip Display !!!顺序查询 Locate For L1 [Scope] 找到第一条满足条件的记录后,记录指针指向该记录,并将函数FOUND()置为.T. ; 否则,记录指针指向<范围>的底部或文件结束标志,并且将函数 FOUND()置为.F. Continue 根据前面的Locate命令,查找下一个满足条件的记录。 18 多表操作 1)切换工作区 Select 工作区名 VFP启动时,会自动选择1号工作区供用户使用 Select 0 表示选择编号最小还未被使用的工作区作为当前工作区 2)在指定工作区中打开表 Use [DBname!]Tname In 工作区名 注意:并未切换当前工作区 结构化查询语言SQL SQL功能 命令动词 数据查询DQL 数据查询 Select 数据操纵DML 插入记录 Insert 更新记录 Update 删除记录 Delete 数据定义DDL 定义基本表 Create 删除基本表 Drop 修改基本表 Alter 数据控制 DCL 授权 Grant 收回权限 Revoke SELECT 表达式1, 表达式2, …… FROM 表1, 表2, …… WHERE 连接条件 GROUP BY 列1, 列2, …… HAVING 分组筛选条件 ORDER BY 列1, 列2, …… 1)单表查询-无条件查询 @将Student表中的专业字段的信息检索出来 Select 专业 From Student @将Student表中的专业字段的信息检索出来,并去掉重复元组。 Select Distinct 专业 From Student @查询score表中的所有信息。 Select 学号, 课程编号, 成绩 From Score Select * From Score @查询全体学生的姓名,年龄,并使用别名。 Select 姓名, YEAR(DATE())-YEAR(出生日期) AS 年龄 ; From Student Select All 专业 From Student Select [All | Distinct] E1 As E1_alias [, E2 As E2_alias, …… ] From [Dbname!]Table1 2)单表查询-排序查询 Select [All | Distinct] E1 As E1_alias [, E2 As E2_alias, …… ] From [Dbname!]Table1 Order By Order_item1 [ASC | DESC] [, Order_item2 [ASC | DESC] ...] 检索学生信息,按学生的性别升序排序,如果性别相同则按学生的出生日期降序进行排序。 Select * From Student ; Order By 性别 ASC, 出生日期 DESC 3)单表查询-条件查询 Where Filtercondition 从SCORE表检索出课程编号为“01”或“05”的,并且成绩大于80分的记录。 Select * ; From Score ; Where (课程编号=”01” OR 课程编号=”05”) AND 成绩>80 4)单表查询-条件查询-IN运算符 从SCORE表查询课程编号为“01”或“03”或“07”几门课程中,成绩在80分以上的学生的学号、课程编号和成绩。 Select 学号, 课程编号, 成绩 ; From Score; Where 课程编号 In ("01","03","07") And 成绩>=80 5)单表查询-条件查询-Between运算符 从student表查询出生日期在1980年1月1日至1981年12月31日之间的学生的信息 Select * From Student ; Where 出生日期 Between {^1980-01-01} And {^1981-12-31} Select * From Student ; Where 出生日期>= {^1980-01-01} And 出生日期<={^1981-12-31} Select * From Student; WHERE Between(出生日期, {^1980-01-01}, {^1981-12-31}) 6) 单表查询-条件查询-Like运算符 从student表查询所有姓“李”的学生的学号、姓名、性别、专业。 Select 学号, 姓名, 性别, 专业 From Student; Where 姓名 Like "李%" 从student表查询第二个汉字是“春”的学生的学号、姓名、性别、专业。 Select 学号, 姓名, 性别, 专业 From Student; Where 姓名 Like "_春%" 7)单表查询-条件查询- IS NULL运算符 从score表查询出还没有给出成绩的记录。 Select * From Score Where 成绩 Is Null 8)字段函数 @求score表中的最高分、最低分和平均分。 Select Max(成绩) As 最高分, min(成绩) As 最低分, ; Avg(成绩) As 平均分; From Score @求学号为"01"的学生平均成绩。 Select Avg(成绩) As 平均分 ; From Score ; Where 学号="01" @从score表统计考试课程的数目。 Select Count(Distinct 课程编号) As 课程数目; From Score 9)单表查询-分组查询 从SCORE表检索出每个学生的学号、总分、平均分、最高分和最低分。 Select 学号, Sum(成绩) As 总分, Avg(成绩) As 平均分, ; Max(成绩) As 最高分, Min(成绩) As 最低分; From Score ; Group By 学号 检索除了‘02’号课程以外,其它课程平均分在80分以上的每个学生的学号、总分和平均分,将结果按学号升序排列。 Select 学号, Sum(成绩) As 总分, Avg(成绩) As 平均分; From Score ; Where 课程编号<>‘02’ Group By 学号 Having Avg(成绩)>=80; Order By 学号 10)多表查询 隐式内连接 @检索出“文学”专业的每个学生的学号、姓名、总分、平均分、最高分和最低分。 思路:几个表->Where ->分组->投影->排序 Select Student.学号, 姓名, Sum(成绩) As 总分, ; Avg(成绩) As 平均分, ; Max(成绩) As 最高分, ; Min(成绩) As 最低分 ; From Student, Score ; Where Student.学号= Score.学号 And 专业=”文学” ; Group By Student.学号 显式内连接 @检索“文学”专业选课在3门以上(含3门)的每个学生的学号、姓名和平均成绩,并按平均成绩降序排序 思路:几个表->On->Where ->分组->投影->排序 Select Student.学号, 姓名, Avg(成绩) As 平均成绩 ; From Student Inner Join Score; On Student.学号= Score.学号 Where 专业=”文学”; Group By Student. 学号 Having Count(*)>=3; Order By 平均成绩 Desc 自连接查询 @查询比“张华”年龄大的学生姓名和出生日期 1.Select Y.姓名, Y.出生日期 From Student X, Student Y Where X.出生日期>Y.出生日期 And X.姓名='张华' 2.Select X.姓名, X.出生日期 From Student X, Student Y Where X.出生日期 Any|Some (Select 字段1 From … ) Where E > All (Select 字段1 From … ) Where Exist (Select 字段1,字段2,… From … ) ~~~SQL操作 1)插入 向score表中插入一条记录,学号为“06”,课程编号为“05”,分数为98 Insert Into Score(课程编号,学号,成绩) ; Values ("05" ,"06", 98) 2)更新 给score表中所有不及格的成绩加10分 Update Score Set 成绩=成绩+10 Where 成绩<60 3)删除 物理删除student表中在7月出生的所有学生记录 Delete From Student; Where Month(出生日期)=7 Pack ~~~SQL定义 1)创建 根据下面的表结构创建数据库表score.dbf 字段 字段名 类型 宽度 小数位 Nulls 1 成绩 数值型 3 是 2 课程编号 字符型 8 否 3 学号 字符型 8 否 Create Table Score ; ( ; 成绩 N(3) Null Default Null ; Check 成绩>=0 and 成绩<=100 ; Error "成绩必须在0-100之间" , ; 课程编号 C(8) Not Null , ; 学号 C(8) Not Null ; Reference Student Tag 学号 ; ) 2)删除表 删除表score.dbf Drop Table Score 3)更改 格式一:先删除原有字段的定义,再添加新字段的定义 Alter Table Score ; Alter Column 成绩 N(5,1) 格式二:不删除原有字段,在原字段的基础上修改 Alter Table Score ; Alter Column 成绩 ; Set Check 成绩>=0 and 成绩<=10 ; Error "成绩必须在0-10之间" 格式三:对表范围内的一些属性进行修改 Alter Table Score ; Drop Foreign Key Tag 学号 Save 查询与视图 1.查询 。。一个独立的文本文件 。。文本文件内保存着一条Select语句 。。扩展名为QPR 。。查询文件不属于任何数据库 2. Create Query 文件名 。。Modify Query 文件名 。。Do 文件名.qpr 3.建立过程 例如检索”文学”专业学生姓名以及所选修的课程名称、成绩和授课教师姓名 思路:几个表->On->Where ->投影->分组->排序 Select 姓名, 课程名称, 成绩, 教师姓名; From Student Inner Join Score ; Inner Join Course; Inner Join Teacher; On Course. 教师编号=teacher.教师编号 ; On Course.课程编号=score.课程编号 ; On Student.学号=score.学号 ; Where Student.专业=“文学" 4视图 以Select为基础,兼有表和查询的功能 。。视图称为虚拟表,自身没有数据,可从多个表中查询数据,是外模式的体现(查询) 。。视图可以更新数据(表) 。。使用方式与表类似(表) 。。仅存在于数据库中,在磁盘上没有独立的文件 5过程 Create Sql View 视图3 As ; Select Student.学号, 姓名, 成绩; From Student, Score; Where Student.学号=Score.学号 排序 分组筛选,选取部分组 分组 被查询的表 选择,选取部分行 投影,选取部分列 PAGE 1
本文档为【vf教程,数据库与SQL,视图等资料命令】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_004610
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:22
分类:其他高等教育
上传时间:2012-06-05
浏览量:130