VFP命令系列教程---ALTER TABLE – SQL 命令
VFPSQL语句格式
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 (81991001, 张良, 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 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), ;篇二:vfp sql语句大全(一)vfp——sql语句大全(一) 2010-06-17 10:03:22| 分类:编程 | 标签: |字号大中小订阅vfp命令、函数及程序语句大全一、主要命令:1、createcreate database 库文件名.dbc―――建立数据库:create table/dbf 表名(各个字段属性)??????????????—————建立表create view <视图名> as <select 查询语句>——建立视图执行这个语句时,如果没有打开的数据库,则建立独立的视图,这样的视图不能存储。
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 查询语句>——建立视图执行这个语句时,如果没有打开的数据库,则建立独立的视图,这样的视图不能存储。
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指定要修改其结构的表名。
2、VF基本命令及SQL语句
视图的定义
Create view <视图名> as <查询语句>
视图的删除 Drop view <视图名>
SQL的数据查询功能 嵌套查询
格式:Select 目标列1,目标列2,…… from 表名1 where 字段名; In(select 字段名 from 表名2 where 筛选条件……) 等价于格式: Select 目标列1,目标列2,…… from 表名1 where exists; (select * from 表名2 where 联接条件) SQL的数据查询功能 分组与计算查询 格式:Select <目标列>… from <表名或视图名>… ; [where <筛选条件>] [ order by <排序列> [ASC | DESC] ; [group by <分组列> [having <分组条件>] ]
3.设置当前索引: Set order to [<数值表达式>] 注:0关闭索引,1第一个索引 Set order to [<单索引文件名>] 选择表所在工作区: select <工作区号>|<别名> 功能:从工作区中选择一个作为当前工作区。 说明:Select 0为 选择编号最小且没有使用的工作区为当前工 作区。 (即空闲的最小号工作区)
数据库操作相关命令 表结构的操作相关命令 表记录的操作相关命令基 本 命ຫໍສະໝຸດ 令表记录指针移动的相关命令
索引文件操作相关命令
物理排序 关联的建立: (临时联系)
数据库操作相关命令
建立数据库:create database [Database Name|?] 打开数据库:open database [Filename|?] [exclusive | shared] 修改数据库:modify database [DatabaseName |?] 删除数据库:delete database DatabaseName |? [DeleteTables][Recycle] 关闭数据库:close database
SQLALTERTABLE命令
SQLALTERTABLE命令SQL ALTER TABLE 命令SQL ALTER TABLE 命令⽤于添加、删除或者更改现有数据表中的列。
你还可以⽤ ALTER TABLE 命令来添加或者删除现有数据表上的约束。
语法:使⽤ ALTER TABLE 在现有的数据表中添加新列的基本语法如下:ALTER TABLE table_name ADD column_name datatype;使⽤ ALTER TABLE 在现有的数据表中删除列的基本语法如下:ALTER TABLE table_name DROP COLUMN column_name;使⽤ ALTER TABLE 更改现有的数据表中列的数据类型的基本语法如下:ALTER TABLE table_name MODIFY COLUMN column_name datatype;使⽤ ALTER TABLE 给某列添加 NOT NULL 约束的基本语法如下:ALTER TABLE table_name MODIFY column_name datatype NOT NULL;使⽤ ALTER TABLE 给数据表添加唯⼀约束的基本语法如下:ALTER TABLE table_nameADD CONSTRAINT MyUniqueConstraint UNIQUE(column1, column2...);使⽤ ALTER TABLE 给数据表添加 CHECK 约束的基本语法如下:ALTER TABLE table_nameADD CONSTRAINT MyUniqueConstraint CHECK (CONDITION);使⽤ ALTER TABLE 给数据表添加主键约束的基本语法如下:ALTER TABLE table_nameADD CONSTRAINT MyPrimaryKey PRIMARY KEY (column1, column2...);使⽤ ALTER TABLE 从数据表中删除约束的基本语法如下:ALTER TABLE table_nameDROP CONSTRAINT MyUniqueConstraint;如果你在使⽤ MySQL,代码应当如下:ALTER TABLE table_nameDROP INDEX MyUniqueConstraint;使⽤ ALTER TABLE 从数据表中删除主键约束的基本语法如下:ALTER TABLE table_nameDROP CONSTRAINT MyPrimaryKey;如果你在使⽤ MySQL,代码应当如下:ALTER TABLE table_nameDROP PRIMARY KEY;⽰例:考虑 CUSTOMERS 表,表中记录如下所⽰:+----+----------+-----+-----------+----------+| ID | NAME | AGE | ADDRESS | SALARY |+----+----------+-----+-----------+----------+| 1 | Ramesh | 32 | Ahmedabad | 2000.00 || 2 | Khilan | 25 | Delhi | 1500.00 || 3 | kaushik | 23 | Kota | 2000.00 || 4 | Chaitali | 25 | Mumbai | 6500.00 || 5 | Hardik | 27 | Bhopal | 8500.00 || 6 | Komal | 22 | MP | 4500.00 || 7 | Muffy | 24 | Indore | 10000.00 |+----+----------+-----+-----------+----------+下⾯的⽰例展⽰了如何在现有的表中添加新的⼀列:ALTER TABLE CUSTOMERS ADD SEX char(1);现在,CUSTOMERS 已经被更改了,SELECT 语句的输出应当如下所⽰:+----+---------+-----+-----------+----------+------+| ID | NAME | AGE | ADDRESS | SALARY | SEX |+----+---------+-----+-----------+----------+------+| 1 | Ramesh | 32 | Ahmedabad | 2000.00 | NULL || 2 | Ramesh | 25 | Delhi | 1500.00 | NULL || 3 | kaushik | 23 | Kota | 2000.00 | NULL || 4 | kaushik | 25 | Mumbai | 6500.00 | NULL || 5 | Hardik | 27 | Bhopal | 8500.00 | NULL || 6 | Komal | 22 | MP | 4500.00 | NULL || 7 | Muffy | 24 | Indore | 10000.00 | NULL |+----+---------+-----+-----------+----------+------+下⾯的⽰例展⽰了如何从 CUSTOMERS 表中删除 SEX 列:ALTER TABLE CUSTOMERS DROP SEX;现在,CUSTOMERS 已经被更改了,SELECT 语句的输出应当如下所⽰:+----+---------+-----+-----------+----------+| ID | NAME | AGE | ADDRESS | SALARY |+----+---------+-----+-----------+----------+| 1 | Ramesh | 32 | Ahmedabad | 2000.00 || 2 | Ramesh | 25 | Delhi | 1500.00 || 3 | kaushik | 23 | Kota | 2000.00 || 4 | kaushik | 25 | Mumbai | 6500.00 || 5 | Hardik | 27 | Bhopal | 8500.00 || 6 | Komal | 22 | MP | 4500.00 || 7 | Muffy | 24 | Indore | 10000.00 |+----+---------+-----+-----------+----------+。
用VFP系统命令或SQL命令建索引库表及设置扩展属性的语句示例
一、使用命令方式设置数据库表及其字段的扩展属性举例:1. open data sjk 或者create data sjk 或者用set data to命令创建或设置当前库2. create table jsqk NAME教师基本情况表(gh c(6),xm c(8),csrq d,;gzrq d CHECK gzrq<date() ERROR "工作日期应小于当前系统日期!",;xb c(2) DEFAULT "女",zc c(10) null DEFAULT null, jl m,;CHECK year(gzrq)-year(csrq)>=18ERROR "参加工作的年龄为18岁以上!")3. (1) create table gzqk (gh c(6),xm c(8),xb c(2),zc c(10),jbgz n(8,1),;gwjt n(8,1),grsds n(8,1),yfgz n(8,1),sfgz n(8,1))(2) append from E:\vfptest\gzb(3) i) alter table gzqk SET CHECK grsds=(jbgz+gwjt-800)*0.1NOV ALIDATE&&设置gzqk表的记录有效性规则或alter table gzqk SET CHECK grsds=(jbgz+gwjt)*0.1;ERROR"个人所得税应为基本工资加岗位津贴的10%" NOV ALIDATE&&设置gzqk表的记录有效性规则及有效性信息ii) alter table gzqk alter gh SET CHECK !empty(gh) and len(allt(gh))=5;ERROR"工号不能为空且有效宽度必须为5位。
"&&设置gzqk表中gh字段的有效性规则及有效性信息iv) alter table gzqk alter jbgz SET DEFAULT400&&设置gzqk表中jbgz字段的默认值为4004. (1) alter table gzqk alter zc DROP DEFAULT&&删除gzqk表中zc字段的默认值(2) alter table gzqk alter gh DROP CHECK&&删除gzqk表中gh字段的字段的有效性规则及有效性信息(3) alter table gzqk DROP CHECK&&删除gzqk表的记录有效性规则及有效性信息5. (1) RENAME TABLE gzqk TO教师收入基本情况表&&对gzqk表进行改名操作注:i) 上述改名操作实际是修改数据库表的长表名ii)RENAME TABLE <旧名> TO <新名> 命令只用于数据库表的改名操作。
VF中常用SQL命令使用方法
VF中常用SQL命令使用方法SQL(结构化查询语言)是关系型数据库管理系统中最常用的查询语言。
在VF中,使用SQL命令可以对数据库进行增删改查等操作。
以下是VF中常用的SQL命令使用方法:1.创建表格(CREATETABLE):用于创建数据库中的表格。
语法如下:```sqlCREATE TABLE table_namecolumn1 data_type,column2 data_type,...```例如:```sqlCREATE TABLE customersid INT PRIMARY KEY,name VARCHAR(50),age INT,email VARCHAR(100)```2.插入数据(INSERTINTO):用于向表格中插入新的数据。
语法如下:```sqlINSERT INTO table_name (column1, column2, ...)VALUES (value1, value2, ...);```例如:```sqlINSERT INTO customers (id, name, age, email)```3.更新数据(UPDATE):用于更新表格中的数据。
语法如下:```sqlUPDATE table_nameSET column1 = value1, column2 = value2, ...WHERE condition;```例如:```sqlUPDATE customersSET age = 26WHERE id = 1;```4.删除数据(DELETEFROM):用于从表格中删除数据。
语法如下:```sqlDELETE FROM table_name WHERE condition;```例如:```sqlDELETE FROM customers WHERE id = 1;```5.查询数据(SELECT):用于从表格中查询数据。
语法如下:```sqlSELECT column1, column2, ...FROM table_nameWHERE condition;```例如:```sqlSELECT * FROM customers WHERE age > 25;```6.排序数据(ORDERBY):用于按照指定列对查询结果进行排序。
VFP的SQL命令和语句大全
VFP的SQL命令和语句大全SQL——标准的结构化查询语言关系模型数据库管理系统(DBMS)一、数据定义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 ,csrq d, bj n(10))例:数据库表CREATE TABLE xscj(xh c(8) primary key ,xm c(6),xb c(2),cj n(5,1),ksrq d,zp g )2.ALTER TABLE (修改表结构)命令格式示例(1)添加字段:ALTER TABLE xscj ADD COLUMN kcmc C(14)(2)重命名字段ALTER TABLE xscj RENAME COLUMN kcmc TO kc(3)删除字段ALTER TABLE xscj DROP COLUMN kc .3.DROP TABLE <表名> //删除表文件(.dbf)二、数据操作语句4.INSERT-SQL命令该命令的一般格式为:INSERT INTO <表名>[(字段名1[,字段名2 ])] VALUES (表达式1[,表达式2 …])例:INSERT INTO xscj(xh,xm,cj)VALUES ("81991001", "张良", 85.5)5.UPDATE-SQL 命令。
功能:对符合条件的记录修改字段的值命令格式:UPDATE <表名> SET 字段 1 = 表达式 1 [,字段 2 = 表达式 2 …] [ WHERE 条件表达式][ WHERE 条件表达式]缺省,默认当前一条记录例:UPDATE xscj SET cj = cj*1.05 WHERE cj>805.DELETE-SQL 命令。
VFP的SQL命令和语句大全
VFP的SQL命令和语句大全VFP的SQL命令和语句大全SQL——标准的结构化查询语言关系模型数据库管理系统(DBMS)一、数据定义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 ,csrq d, bj n(10))例:数据库表CREATE TABLE xscj(xh c(8) primary key ,xm c(6),xb c(2),cj n(5,1),ksrq d,zp g )2.ALTER TABLE (修改表结构)命令格式示例(1)添加字段:ALTER TABLE xscj ADD COLUMN kcmc C(14)(2)重命名字段ALTER TABLE xscj RENAME COLUMN kcmc TO kc(3)删除字段ALTER TABLE xscj DROP COLUMN kc .3.DROP TABLE <表名> //删除表文件(.dbf)二、数据操作语句4.INSERT-SQL命令该命令的一般格式为:INSERT INTO <表名>[(字段名1[,字段名2 ])] VALUES (表达式1[,表达式2 …])例:INSERT INTO xscj(xh,xm,cj)VALUES ("81991001", "张良", 85.5)5.UPDATE-SQL 命令。
功能:对符合条件的记录修改字段的值命令格式:UPDATE <表名> SET 字段 1 = 表达式 1 [,字段 2 = 表达式2 …] [ WHERE 条件表达式][ WHERE 条件表达式]缺省,默认当前一条记录例:UPDATE xscj SET cj = cj*1.05 WHERE cj>805.DELETE-SQL 命令。
VFP常用命令
VFP常用命令,函数,属性,事件和方法一.常用命令1.CREATE TABLE-SQL创建一个含有指定字段的表。
2.ALTER TABLE-SQL以编程方式修改表的结构。
3.SELECT激活指定工作区。
4.USE打开一个表及其相关索引文件,或打开一个SQL视图。
5.CLOSE TABLES关闭所有打开数据库中的所有表。
6.COPY STRUCTURE用当前选择的表结构创建一个新的空自由表。
7.COPY TO用当前选定表的内容创建新文件。
8.RENAME TABLE重命名当前数据库中的表。
9.BROWSE打开浏览窗口。
10.A PPEND在表的末尾添加一个或多个新记录。
11.A PPEND FROM从一个文件中读入记录,添加到当前表的尾部。
12.G O/GOTO将记录指针移到指定记录上。
13.L OCATE按顺序搜索表,从而找到满足指定逻辑表达式的第一个记录。
14.S EEK在一个表中搜索首次出现的一个记录。
15.S KIP使记录指针在表中向前或向后移动。
16.C ONTINUE继续执行先前的LOCA TE命令。
17.E DIT显示要编辑的字段。
18.D ELETE给要删除的记录做标记。
19.D ELETE-SQL给要删除的记录做标记。
20.P ACK从当前表中永久删除有删除标记的记录。
21.R ECALL恢复所选表中带删除标记的记录。
22.Z AP从表中删除所有记录。
23.I NSERT-SQL在表尾追加一个包含指定字段值的记录。
24.R EPLACE更新表的记录内容。
25.U PDATE-SQL以新值更新表中的记录。
26.S ET EXCLUSIVE指定Visual FoxPro在网络上是以独占方式,还是以共享方式打开表文件。
27.S ET FILTER指定访问当前表中记录时必须满足的条件。
28.S ET DELETED指定Visual FoxPro 是否处理标有删除标记的记录。
29.S ET INDEX打开一个或多个索引文件,供当前表使用。
sql语句create table、alter table及drop table语句 -回复
sql语句create table、alter table及drop table语句-回复SQL语句是结构化查询语言(Structured Query Language)的缩写,是用于管理和操作关系型数据库的语言。
在SQL中,create table、alter table和drop table是三个常用的语句用于创建、更改和删除表。
本文将详细介绍这三个语句的使用方法及注意事项。
一、create table语句create table语句用于创建表。
其基本语法如下:create table 表名(列名1 数据类型1 约束条件1,列名2 数据类型2 约束条件2,...)其中,表名为要创建的表的名称,列名为表中的列的名称,数据类型为列中存储的数据类型,约束条件定义了列的一些限制条件。
下面是一个创建学生表的示例:create table students(id int primary key,name varchar(50),age int,gender char(1))在这个示例中,创建了一个名为students的表,包含四个列:id、name、age和gender。
id被定义为主键,name和gender被定义为字符串类型,age被定义为整数类型。
二、alter table语句alter table语句用于更改已存在的表的结构。
其可以用于添加、修改或删除表的列、约束条件等。
其基本语法如下:alter table 表名[添加修改删除] [列名] [新数据类型] [约束条件]其中,添加关键字用于向表中添加新列,修改关键字用于修改已存在的列的属性,删除关键字用于删除列。
列名、新数据类型和约束条件根据具体的操作需要进行指定。
下面是一些alter table语句的使用示例:1. 添加列:alter table studentsadd email varchar(100)在上述示例中,给students表中添加了一个名为email的列,数据类型为varchar,长度为100。
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。
sql语句create table、alter table及drop table语句 -回复
sql语句create table、alter table及drop table语句-回复SQL语言是结构化查询语言(Structured Query Language)的缩写,是一种用于管理关系型数据库的语言。
在SQL中,可以使用一系列的语句来创建表、修改表结构以及删除表等操作。
本文将详细介绍SQL中的create table、alter table以及drop table语句,以帮助读者全面了解这些常用的SQL语句。
创建表(create table)是在关系型数据库中新增一张表的操作。
通过create table语句,可以指定新表的名称、字段及其数据类型、以及各个字段的约束条件。
create table语句的基本语法如下所示:sqlcreate table [表名] ([字段名1] [数据类型1] [约束条件1],[字段名2] [数据类型2] [约束条件2],...);其中,方括号内的内容表示占位符,需要替换为实际的值。
例如,假设我们要创建一个名为"employees"的表,包含"emp_id"(员工ID)、"emp_name"(员工姓名)和"emp_salary"(员工薪水)三个字段,我们可以使用以下的create table语句:sqlcreate table employees (emp_id int primary key,emp_name varchar(50) not null,emp_salary decimal(10,2));在上述示例中,我们首先指定了表名为"employees",然后定义了三个字段,分别为"emp_id"(整数类型,被指定为主键)、"emp_name"(字符串类型,不能为null)和"emp_salary"(十进制类型,精度为10位,小数位为2位)。
VFP第8部分(SQL查询语句)
ADD
成绩
N(3 ) N(4) to 考试成绩
alter 成绩 ALTER TABLE SC Rename 成绩
drop
成绩
【例】 把表dab.dbf中的学号字段宽度 改为10,增加字段入学总分N(5,1)。 alter table dab alter 学号 c(10) add 入学总分 n(5,1)
(6)[NOT] EXISTS (<子查询>)
(7)<字段名> [NOT] IN <值表> (8)<字段名> [NOT] IN (<子查询>) (9)<字段名> [NOT] LIKE <字符表达式> LIKE子句中可以用通配符:下划线“_”,表示任何一个
字符;百分号符“%”,表示一串字符。
【例】 列出非西南大学出版社的图书名单。 SELECT * FROM 图书 ; WHERE 出版社<>'西南大学出版社' 以上命令的功能等同于: SELECT * FROM 图书 ; WHERE 出版社 != '西南大学出版社'
或
SELECT WHERE
* FROM 图书 ; NOT( 出版社 = '西南大学出版社')
【例】 列出西南大学出版社和清华大学出版社的图书名单。 SELECT * FROM 图书; WHERE 出版社 IN("西南大学出版社","清华大学出版社") SELECT * FROM 图书; WHERE 出版社=″西南大学出版社″ OR 出版社=″清华大学出 版社″ 注意:IN和( )
注意:SELECT 命令中的选项,不仅可以是字段名,还可以是 表达式,也可以是一些函数,SELECT命令可操纵的函数很 多。 【例】 将所有的图书表价格四舍五入到个位,只显示书号、作 者和价格。 SELECT 书号,作者,ROUND(价格,0) AS 零售价; FROM 图书 注意:这个结果不影响数据库表中的结果,只是在输出时通过 函数计算输出。
VFP基础教程第三章表结构的创建和修改
3.2 表结构的创建和修改1. 表结构的创建创建表结构其实就是设计字段的基本属性。
可以使⽤表设计器、表向导或SQL命令来创建表结构。
(1)使⽤表设计器创建表步骤:从⽂件菜单中单击新建→在新建对话框中选择表并单击新⽂件→在创建对话框中给出⽂件名并确定所需的保存位置→在表设计器对话框中逐个输⼊所需字段(⽤↓或⿏标换⾏),全部字段输⼊完成后单击确定。
(2)使⽤表向导创建表步骤:从⽂件菜单中单击新建→在新建对话框中选择表并单击向导→在表向导中做第1步:选取字段,完成后单击下⼀步→在表向导中做第1a步:选择数据库,完成后单击下⼀步→在表向导中做第2步:修改字段设置,完成后单击下⼀步→在表向导中做第3步:为表建索引,完成后单击下⼀步→在表向导中做第4步:完成,选择表的保存⽅法,完成后单击完成→在另存为对话框中给出⽂件名并确定所需的保存位置。
注意:先选择⼀个与待建数据表类似的样表,再从中挑选出所需的部分字段,然后在下⼀步根据实际需要修改或直接采⽤原字段的宽度。
(3)使⽤ 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. 表结构的修改(1)⽤表设计器修改⽤菜单调出表设计器: 打开所需的表⽂件→单击显⽰菜单中的表设计器→在表设计器对话框中对字段进⾏修改→修改完毕单击确定并在消息框中选择是。
⽤命令调出表设计器:USEMODIFY STRUCTURE(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 kc。
vfp增加字段的命令
vfp增加字段的命令VFP增加字段的命令在Visual FoxPro(VFP)中,增加字段是一种常见的操作,可以通过使用ALTER TABLE命令来实现。
下面将介绍几种常用的ALTER TABLE命令及其用法,帮助读者了解如何在VFP中增加字段。
1. ALTER TABLE命令的基本用法ALTER TABLE命令用于修改已有表的结构,包括增加、修改或删除字段。
它的基本语法如下:ALTER TABLE 表名 ADD COLUMN 字段名字段类型其中,表名是要修改的表的名称,字段名是要增加的字段的名称,字段类型是要增加的字段的数据类型。
例如,如果我们要在名为"学生表"的表中增加一个名为"性别"的字段,数据类型为字符型(character),可以使用以下命令:ALTER TABLE 学生表 ADD COLUMN 性别 c(1)这样就成功地在学生表中增加了一个性别字段。
2. ALTER TABLE命令的其他用法除了增加字段之外,ALTER TABLE命令还可以用于修改和删除字段。
下面分别介绍这两种用法。
2.1 修改字段如果我们需要修改已有字段的数据类型或长度,可以使用ALTER TABLE命令的MODIFY COLUMN子句。
例如,如果我们需要将学生表中的性别字段的数据类型改为字符型(character)且长度为2,可以使用以下命令:ALTER TABLE 学生表 MODIFY COLUMN 性别 c(2)这样就成功地修改了学生表中的性别字段。
2.2 删除字段如果我们需要删除已有字段,可以使用ALTER TABLE命令的DROP COLUMN子句。
例如,如果我们需要删除学生表中的性别字段,可以使用以下命令:ALTER TABLE 学生表 DROP COLUMN 性别这样就成功地删除了学生表中的性别字段。
3. ALTER TABLE命令的注意事项在使用ALTER TABLE命令时,需要注意以下几点:3.1 表名和字段名必须是有效的标识符,遵循VFP的命名规则;3.2 字段类型必须是VFP支持的数据类型,如字符型(character)、数值型(numeric)等;3.3 增加字段时,字段名不能与已有字段重复,否则会报错;3.4 修改字段时,需要确保已有数据能够适应新的数据类型或长度,否则可能会导致数据丢失或截断。
VFP SQL语句大全(一)
VFP——SQL语句大全(一)2010-06-17 10:03:22| 分类:编程| 标签:|字号大中小订阅VFP命令、函数及程序语句大全一、主要命令: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 分数<=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作用:打开一个“浏览”窗口,供用户浏览或修改记录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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指定要修改其结构的表名。
ADD | ALTER [COLUMN] FieldName1指定要添加的字段名。
单个的表中最多可以有 255 个字段。
如果一个或更多的字段允许 null 值, 该限制为 254 个字段。
FieldType [(nFieldWidth [, nPrecision])]指定新字段或待修改字段的字段类型、字段宽度和字段精度(小数点后的位数)。
参数 FieldType 是表示字段数据类型的单个字符。
有些字段类型还需要参数 nFiledWidth 或 nPrecision,或者两者皆要。
下表列出了参数FiledType 的值及其对应参数 nFiledWidth 和 nPression 的取舍情况: 字段宽度精度说明字段类型C n –宽度为 n 的字符字段D ––日期T ––日期时间N n d 宽度为 n 的数值型字段,小数点后保留d 位F n d 宽度为 n 的浮点型字段,小数点后保留d 位I ––整数型B – d 双精度型Y ––货币型L ––逻辑型M ––备注型G ––通用型P ––图象对于 D、T、I、Y、L、M、G 和 P 型数据,省略参数 nFieldWidth 和nPrecision。
如果对 N、F 或 B 型数据没有给出参数 nPrecision 的值,其的默认值为零。
NULL | NOT NULL允许或不允许字段为空值。
NULL 允许 null 值, NOT NULL 不允许 null 值。
如果一个或更多的字段允许 null 值, 表中可以包含的字段从 255减少到 254。
CHECK lExpression1指定字段的有效性规则。
lExpression1 为逻辑表达式值,可以是用户定义的函数或存储过程。
注意:每添加一个空记录时,都将进行有效性检查。
ERROR cMessageText1指定字段有效性检查出现错误时显示的错误信息。
只有在“浏览”或“编辑”窗口中修改数据时,此信息才可能显示。
AUTOINC [NEXTVALUE NextValue [STEP StepValue]]启用字段的自动增量。
NextValue指定开始值并可以是范围在2,147,483,647 到 -2,147,483,647 的正的或负的整型值。
默认值是 1。
可以用表设计器中的字段标签中的 Next Value 微调来设置NextValue。
StepValue 指定字段的增量值并可以是范围在 1 到 255 之间的正的,非零的整型值。
默认值是 1。
可以用表设计器中的字段标签中的 Step 微调来设置StepValue。
Autoincrementing 值不能是NULL。
DEFAULT eExpression1指定字段默认值。
eExpression1 的数据类型必须与字段的数据类型相同。
如果用AUTOINC子句来打开了一个字段的 autoincrementing 就不能指定默认值。
如果同时指定 AUTOINC 和 DEFAULT 子句 Visual FoxPro 会产生一个错误信息。
primary key | UNIQUEprimary key创建主索引标识。
索引标识与字段同名。
UNIQUE创建与字段同名的候选索引标识。
有关候选索引的详细内容,请参阅设置主索引或候选索引。
COLLATE cCollateSequence指定一个非默认设置 MACHINE 的比较序列。
cCollateSequence参数必须是一个可用的 Visual FoxPro 比较序列。
关于设置比较序列的详细信息, 参见优化国际化应用程序和set collate 命令。
REFERENCES TableName2 [TAG TagName1]指定与之建立永久关系的父表。
参数 TAG TagName1 指定父表索引标识,关系建立在此父表索引标识基础上。
索引标识最长为 10 个字。
如果省略TAG 子句, 关系用父表的主索引关键字建立。
如果父表没有主索引, Visual FoxPro 产生一条错误。
NOCPTRANS防止对字符串或备注字段进行代码页转换。
如果表转换到另一代码页,指定了 NOCPTRANS 的字段不进行转换。
NOCPTRANS 只能指定字符字段和备注字段。
这会创建表设计器中的 Character (binary) 和 Memo (binary) 数据类型。
NOVALIDATE选用这一选项后,Visual FoxPro 修改表的结构不受表中数据完整性的约束。
默认时,Visual FoxPro 改变表结构将受到表中数据的完整性约束。
使用 NOVALIDATE 参数将使默认情况无效。
ALTER [COLUMN] FieldName2指定要修改的已有的字段名。
你需要在单个的ALTER TABLE命令中包括多个ALTER COLUMN子句来修改字段的一个以上的属性。
关于ALTERCOLUMN子句的结构的详细信息, 参见本主题中的示例。
Set Default eExpression2指定已有字段的新默认值。
eExpression2 的数据类型必须与字段数据类型相同。
如果用AUTOINC子句来打开了一个字段的 autoincrementing 就不能指定默认值。
如果同时指定AUTOINC和SET DEFAULT子句 Visual FoxPro 会产生一个错误信息。
SET CHECK lExpression2指字已有字段新的有效性规则。
lExpression2 值必须为逻辑表达式,也可以为用户自定义函数或储存过程。
ERROR cMessageText2指定有效性检查出现错误时显示的错误信息。
只有在“浏览”窗口或“编辑”窗口改变数据时,才可能显示此信息。
DROP DEFAULT删除已有字段的默认值。
DROP CHECK删除已有字段的有效性规则。
DROP [COLUMN] FieldName3从表中删除一个字段。
删除一个字段的同时也删除了字段的默认值和字段有效性规则。
字段被删除后,索引关键字或引用此字段的触发器表达式将变为无效。
在这种情况下,删除字段并不产生错误,但是在运行时刻,无效的索引关键字或触发器表达式将导致错误。
SET CHECK lExpression3指定表的有效性规则。
lExpression3 必须是逻辑表达式,也可以是用户自定义函数或储存过程。
ERROR cMessageText3指定表的有效性检查出现错误时显示的错误信息。
只有在“浏览”窗口或“编辑”窗口中改变数据值时,才可能显示此信息。
DROP CHECK删除表的有效性规则。
ADD primary key eExpression3 [FOR lExpression4] TAG TagName2往表中添加主索引,eExpression 指定主索引关键字表达式。
可以用lExpression4来指定一个仅符合条件的记录可以显示和访问的筛选表达式。
主索引关键字是为匹配筛选条件的记录而在索引文件中创建的。
你应该避免使用FOR子句来创建主索引; 唯一性主键只强制匹配FOR子句中指定的条件的记录。
作为代替, 使用带FOR子句的INDEX命令来创建筛选索引。
如果lExpression4表达式可以优化, Rushmore 查询优化何以优化ALTER TABLE ... FOR lExpression4命令。
为了更好的性能, 在FOR子句中使用可优化表达式。
详细信息, 参见SET OPTIMIZE和用 Rushmore 查询优化数据访问速度。
TagName2参数指定主索引标识的名字。
索引标识名可以包含多至 10 个字符。
如果省略TAG TagName2, 而且eExpression3是一个单一的字段, 主索引标识具有与eExpression3中指定的字段相同的名字。
DROP primary key删除主索引及其标识。
因为表只能有一个主关键字,所以不必指定关键字的名称。
删除主索引也将删除所有基于此关键字的永久关系。