当前位置:文档之家› SAS中的SQL语句大全

SAS中的SQL语句大全

SAS中的SQL语句大全
SAS中的SQL语句大全

SAS中的SQL语句完全教程之一:SQL简介与基本查询功能

本系列全部内容主要以《SQL Processing with the SAS System (Course Notes)》为主进行讲解,本书是在网上下载下来的,但忘了是在哪个网上下的,故不能提供下载链接了,需要的话可以发邮件向我索取,我定期邮给大家,最后声明一下所有资料仅用于学习,不得用于商业目的,否则后果自负。

1 SQL过程步介绍

SQL过程步可以实现下列功能:

查询SAS数据集、从SAS数据集中生成报表、以不同方式实现数据集合并、创建或删除SAS数据集、视图、索引等、更新已存在的数据集、使得SAS系统可以使用SQL语句、可以和SAS的数据步进行替换使用。注意,SQL过程步并不是用来代替SAS数据步,也不是一个客户化的报表工具,而是数据处理用到的查询工具。

SQL过程步的特征

SQL过程步并不需要对每一个查询进行重复、每条语句都是单独处理、不需要print过程步就能打印出查询结果、也不用sort过程步进行排序、不需要run、要quit来结束SQL 过程步

SQL过程步语句

SELECT:查询数据表中的数据

ALTER:增加、删除或修改数据表的列

CREATE:创建一个数据表

DELETE:删除数据表中的列

DESCRIBE:列出数据表的属性

DROP:删除数据表、视图或索引

INSERT:对数据表插入数据

RESET:没用过,不知道什么意思

SELECT:选择列进行打印

UPDATE:对已存在的数据集的列的值进行修改

2 SQL基本查询功能

SELECT语句基本语法介绍

SELECT object-item <, ...object-item>

FROM from-list

>

>;

这里SELECT:指定被选择的列

FROM:指定被查询的表名

WHERE:子数据集的条件

GROUP BY:将数据集通过group进行分类

HAVING:根据GROUP BY的变量得到数据子集

ORDER BY:对数据集进行排序

SELECT语句的特征

选择满足条件的数据、数据分组、对数据进行排序、对数据指定格式、一次最多查询32个表。这里还要提到的就是,在SAS系统中,对于表名和变量名一般不超过32个字符,对于库名,文件引用名,格式等不能超过8个字符

Validate关键字

Validate关键字只存在于select语句中、可以在不运行查询的情况下测试语句的语法、检查列名是否合法、对于不正确的查询将打印其消息。例:

1 proc sql;

2 validate

3 select Region, Product,Sales

4 from

5 where Region = 'Africa';

NOTE: PROC SQL 语句有有效语法。

6 quit;

此外,我们还可以用noexec选项也可以用来进行语法测试。例:

7 proc sql noexec;

8 select Region, Product,Sales

9 from

10 where Region = 'Africa';

NOTE: 由于 NOEXEC 选项,未执行语句。

11 quit;

这里提示未执行,未提示错误,说明该语句没有语法错误。但是如果加入一个表里没有字段,这里就会出现错误,例:

12 proc sql noexec;

13 select Region, Product,Sales,test

14 from

15 where Region = 'Africa';

ERROR: 以下这些列在起作用的表中没有找到: test.

16 quit;

查询列

我们可以像那样查询指定列,也可以用*来查询所有列。例:

proc sql;

select *

from ;

quit;

这里我们可以用feedback选项来查看到底我们选择了哪些列:

17 proc sql feedback;

18 select *

19 from ;

NOTE: Statement transforms to:

select , , , , , ,

from ;

20 quit;

这时,我们可以看到从表中选择了8个列

消除重复值

我们可以用distinct选项来消除重复值。例如,我们要得到没有重复的所有地区的名称:

proc sql;

select distinct Region

from

quit;

where子集查询

比较运算符

先列出where语句用到的比较运算符:

LT < 小于

GT > 大于

EQ = 等于

LE <= 小于或等于

GE >= 大于或等于

NE ^= 不等于

例如,我们要查询sales大于100000的所有数据:

proc sql;

select *

from

where sales>100000;

quit;

in:只要满足in里的任意一个值,表达式即为真,例如,我们要选择Region在Africa 和Eastern Europe的所有数据:

proc sql;

select *

from

where Region in ('Africa','Eastern Europe');

quit;

逻辑运算符

OR | 或

AND & 是

NOT ^ 非

例如,选择Region在Africa和Eastern Europe,且销售额大于100000的所有数据:proc sql;

select *

from

where Region in ('Africa','Eastern Europe') and sales>100000;

quit;

CONTAINS或:判断某列是否包含指定字符串

例如,选择列Region包含’Afr’的数据:

proc sql;

select *

from

where Region 'Afr';

quit;

IS NULL或IS MISSING:判断某列数据是否为空

例如,如果找出Region为空的数据:

proc sql;

select *

from

where Region is missing;

quit;

注意,这里我们还可以用以下表达式对where语句进行替换。如果region为数值型变量,则可以用region=.,如果region为字符型变量,则可以用region= ‘’进行替换。

Between and:选择某一区间的数据

例如选择sales大于100000,但小于200000的所有数据:

proc sql;

select *

from

where sales between 100000 and 200000;

quit;

like:判断是否能匹配某些字符

例如,选择以region以A开头的所有地区

proc sql;

select *

from

where Region like 'A%';

quit;

这里注意有两类通配符,‘%’可以通配任意个任意字符,‘_’只能通配一个任意字符

=*:类似匹配

这里由于里没有符合要求的数据,所有就用书上的例子说明一下吧:

Where lastname=* ‘smith’,出来的结果可能是:smith,smythe等

表达式

我们可以通过已有的列进行计算来得到新的列,这时用关键词as来给新的列赋列名,例如:

proc sql;

select Region, Product,Sales,Stores,Sales/Stores as salesperstores

from

quit;

这时结果就会多一列salesperstores,用来得到该地区该产品每个商店的平均销售量。这里要注意的是,在创建表达式时,我们还可以在SQL里用到SAS中的除LAG和DIFF之外的所有函数。

这里我们还可以用表达式计算出来的结果来进行子集查询,但一定要记住用calculated 关键词。例如我们要找出商店平均销售量大于5000的数据:

方法一:

proc sql;

select Region, Product,Sales,Stores,Sales/Stores as salesperstores

from

where Sales/Stores>5000;

quit;

方法二:

proc sql;

select Region, Product,Sales,Stores,Sales/Stores as salesperstores

from

where calculated salesperstores>5000;

quit;

查询结果展示

order by数据排序

默认的排序方式是升序,我们可以用DESC关键词来进行降序排列。例如以sales降序排列数据:

proc sql;

select *

from

order by Sales DESC;

quit;

这里提示一下,我们可以用任意多列进行排序,包括表达式结果(不用calculated),但最好是选择的列。

LABEL与FORMAT

LABEL:改变输出变量名的内容

FORMAT:改变列的值的输出方式

例如,改变salesperstores的label和format

proc sql;

select Region, Product,Sales,Stores,

Sales/Stores as salesperstores

label='sales per stores'

format=

from ;

quit;

处理SQL常用函数

MEAN或AVG:均值

COUNT或N或FREQ:非缺失值个数

MAX:最大值

MIN:最小值

NMISS:缺失值个数

STD:标准差

SUM:求和

VAR:方差

求和sum

proc sql;

select Region, Product,Sales,Stores,

sum(Sales,Inventory,Returns) as total

from ;

quit;

求均值avg

proc sql;

select Region, Product,Sales,Stores,

avg(Sales) as salesavg

from ;

quit;

分组求均值group by

proc sql;

select Region,

avg(Sales) as salesavg

from

group by Region;

quit;

计数count

proc sql;

select Region,count(*) as count

from

group by Region;

quit;

HAVING数据子集

proc sql;

select Region,count(*) as count

from

group by Region

having count(*)>50;

quit;

其它的就不多作介绍了,多用用就熟悉了

子查询

找出regions平均sales大于全部平均sales的region

proc sql;

select Region,

avg(Sales) as salesavg

from

group by Region

having avg(Sales)>

(select avg(Sales) from ;

quit;

ANY关键词介绍

>ANY(20,30,40) 最终效果:>20

=ANY(20,30,40) 最终效果:=20 or =30 or =40

例如,选择出region为united state的sales小于任意region为africa的sales的数据

proc sql;

select Region,Sales

from

where Region='United States'

and Sales

(select Sales from where Region='Africa');

quit;

这个例子没有多少意义,只是说明一下any的用法

ALL关键词介绍

>ALL (20,30,40) 最终效果:>40

例如,选择出region为united state的sales小于所有region为africa的sales的数据

proc sql;

select Region,Sales

from

where Region='United States'

and Sales

(select Sales from where Region='Africa');

quit;

EXISTS与NOT EXISTS

proc sql;

select *

from

where exists

(select * from ;

quit;

SAS中的SQL语句完全教程之二:数据合并与建表、建视图

SAS中的SQL语句完全教程之二:数据合并与建表、建视图索引等

本系列全部内容主要以《SQL Processing with the SAS System (Course Notes)》为主进行讲解,本书是在网上下载下来的,但忘了是在哪个网上下的,故不能提供下载链接了,需要的话可以发邮件向我索取,我定期邮给大家,最后声明一下所有资料仅用于学习,不得用于商业目的,否则后果自负。

1 连接joins分为内连接inner joins和外连接outer joins

内连接:仅返回匹配的数据,最多可以有32个表同时进行内连接

外连接:返回所有匹配的数据和非匹配的数据,一次只能有两个表或视图进行外连接迪卡尔积:返回表内所有可能的匹配情况。例如表A有10*20的数据,表B有30*40的数据,则两个表的迪卡尔积有(10+30)*(20+40)=40*60的数据

我们先建立两个数据集:

data march;

input flight $3. +5 date date7. +3 depart time5. +2 orig $3.

+3 dest $3. +7 miles +6 boarded +6 capacity;

format date date7. depart time5.;

informat date date7. depart time5.;

cards;

219 01MAR94 9:31 LGA LON 3442 1 98 250

622 01MAR94 12:19 LGA FRA 3857 20 7 250

132 01MAR94 15:35 LGA YYZ 366 1 15 178

8 250

302 01MAR94 20:22 LGA WAS 229 1 05 180

114 02MAR94 7:10 LGA LAX 2475 1 19 210

202 02MAR94 10:43 LGA ORD 740 1 20 210

219 02MAR94 9:31 LGA LON 3442 1 47 250

132 02MAR94 15:35 LGA YYZ 366 1 06 178

202 03MAR94 10:43 LGA ORD 740 1 18 210

219 03MAR94 9:31 LGA LON 3442 1 97 250

622 03MAR94 12:19 LGA FRA 3857 18 0 250

271 03MAR94 13:17 LGA PAR 3635 14 7 250

202 04MAR94 10:43 LGA ORD 740 1 48 210

219 04MAR94 9:31 LGA LON 3442 2 32 250

622 04MAR94 12:19 LGA FRA 3857 13 7 250

132 04MAR94 15:35 LGA YYZ 366 1 17 178

271 04MAR94 13:17 LGA PAR 3635 14 6 250

302 04MAR94 20:22 LGA WAS 229 1 15 180

114 05MAR94 7:10 LGA LAX 2475 1 17 210

202 05MAR94 10:43 LGA ORD 740 1 04 210

219 05MAR94 9:31 LGA LON 3442 1 60 250

622 05MAR94 12:19 LGA FRA 3857 18 5 250

132 05MAR94 15:35 LGA YYZ 366 1 57 178

271 05MAR94 13:17 LGA PAR 3635 17 7 250

28 210

202 06MAR94 10:43 LGA ORD 740 1 15 210

219 06MAR94 9:31 LGA LON 3442 1 63 250

132 06MAR94 15:35 LGA YYZ 366 1 50 178

302 06MAR94 20:22 LGA WAS 229

66 180

114 07MAR94 7:10 LGA LAX 2475 1 60 210

132 07MAR94 15:35 LGA YYZ 366 1 64 178

271 07MAR94 13:17 LGA PAR 3635 15 5 250

302 07MAR94 20:22 LGA WAS 229 1 35 180

;

run;

data delay;

input flight $3. +5 date date7. +2 orig $3. +3 dest $3. +3

delaycat $15. +2 destype $15. +8 delay;

informat date date7.;

format date date7.;

cards;

114 01MAR94 LGA LAX 1-10 Minutes Domestic 8

202 01MAR94 LGA ORD No Delay Domestic -5

622 01MAR94 LGA FRA No Delay International -5

132 01MAR94 LGA YYZ 11+ Minutes International 14

302 01MAR94 LGA WAS No Delay Domestic -2

114 02MAR94 LGA LAX No Delay Domestic 0

202 02MAR94 LGA ORD 1-10 Minutes Domestic 5

219 02MAR94 LGA LON 11+ Minutes International 18

622 02MAR94 LGA FRA No

Delay International 0

132 02MAR94 LGA YYZ 1-10 Minutes International 5

271 02MAR94 LGA PAR 1-10 Minutes International 4

302 02MAR94 LGA WAS No Delay Domestic 0

114 03MAR94 LGA LAX No Delay Domestic -1

202 03MAR94 LGA ORD No Delay Domestic -1

219 03MAR94 LGA LON 1-10 Minutes International 4

622 03MAR94 LGA FRA No Delay International -2

132 03MAR94 LGA YYZ 1-10 Minutes International 6

271 03MAR94 LGA PAR 1-10 Minutes International 2

302 03MAR94 LGA WAS 1-10 Minutes Domestic 5

114 05MAR94 LGA LAX No Delay Domestic -2

202 06MAR94 LGA ORD No Delay Domestic -3

219 06MAR94 LGA LON 11+ Minutes International 27

132 06MAR94 LGA YYZ 1-10 Minutes International 7

302 06MAR94 LGA WAS 1-10 Minutes Domestic 1

622 07MAR94 LGA FRA 11+ Minutes International 21

132 07MAR94 LGA YYZ No Delay International -2

271 07MAR94 LGA PAR 1-10 Minutes International 4

302 07MAR94 LGA WAS No Delay Domestic 0

;

run;

内连接

proc sql;

create table innerjoins as

select a.*,b.*

from March a,Delay b

where = and =;

quit;

外连接

左连接left join

proc sql;

create table leftjoins as

select *

from March a

left join Delay b

on = and =;

quit;

右连接right join

proc sql;

create table rightjoins as

select *

from March a

right join Delay b

on = and =;

quit;

全连接full join

proc sql;

create table fulljoins as

select *

from March a

full join Delay b

on = and =;

quit;

迪卡尔积

proc sql;

create table cartesian as

select a.*,b.*

from March a,Delay b;

quit;

这里再大概说明一下内外连接的实现的基本原理:首先生成两个数据表的迪卡尔积,然后再根据where语句来选择符合条件的数据作为输出结果。当然,在实际处理过程中,SQL 过程步会对这个迪卡尔积的数据集进行优化,将其划分成小块数据进行处理。

2 复杂的连接

这里因为找不到很好的例子来说明如何处理复杂的连接,因此就不讲解了,大概说一下思路吧:简单地说,对于复杂的查询,我们应该将该查询分解成几个小的子查询,然后对每个子查询的结果进行测试,最后将所有的子查询结合起来就组成了这个复杂的查询。这样会比一来就写复杂的查询容易得多。

3 数据集SET操作

这里有四类SET操作,分别是EXCEPT、INTERSECT、UNION、OUTER UNION。

EXCEPT:得到除第二个数据集以外的所有第一个数据集里的数据

INTERSECT:得到第一个数据集和第二个数据集都有的数据

UNION:得到两个数据集所有的数据,这里如果两个数据集有相同的数据,重复数据只出现一次

OUTER UNION:得到两个数据集所有的数据。

还有两个关键词来修改SET操作的行为:ALL和CORRESPONDING

ALL:并不删除重复值,不能与OUTER UNION合用(注意,用ALL关键词,一种情况是你不管是否会有重复值,另一个情况是不可能出现重复值,例如有主键的数据)CORRESPONDING:只保留两个数据集都有的字段,一般简写为CORR

EXCEPT

找出所有没有延迟的航班和日期:

proc sql;

select flight,date

from March

except

select flight,date

from Delay;

quit;

注意:这里重复值已经被删除。如果要得到所有的包含重复值的数据,就要用到关键词ALL:

proc sql;

select flight,date

from March

except ALL

select flight,date

from Delay;

quit;

如果只保留两个数据集都有的字段,则用到关键词CORRESPONDING(可简写为CORR):proc sql;

select *

from March

except CORR

select *

from Delay;

quit;

INTERSECT

找出所有延迟的航班和日期:

proc sql;

select flight,date

from March

INTERSECT

select flight,date

from Delay;

quit;

关键词ALL和CORRESPONDING与在EXCEPT中一样,这里不再作介绍

UNION

选择所有的数据,这里的重复值只出现一次

proc sql;

select flight,date

from March

UNION

select flight,date

from Delay;

quit;

关键词ALL和CORRESPONDING与在EXCEPT中一样,这里不再作介绍

OUTER UNION

proc sql;

select flight,date

from March

OUTER UNION

select flight,date

from Delay;

quit;

这里,如果我们用到关键词CORR,就可以将相同字段的数据结合到一起:proc sql;

select *

from March

OUTER UNION CORR

select *

from Delay;

quit;

4 建表

建空表

通过指定变量建空表

proc sql noprint;

create table percent

(varname char(30),

Industry char(4),

begindate num format date9. label='the beginning date',

enddate num format date9. label='the ending date',

P_1 num,

P_5 num,

P_95 num,

P_99 num);

quit;

拷贝数据集来建空表

proc sql noprint;

create table Delaycopy(keep=flight date)

like Delay;

quit;

查询语句中,用outobs选项来建空表

proc sql noprint outobs=0;

create table flight114 as

select *

from Delay;

quit;

对数据表增加数据

主要有三种方法:

SET语句

proc sql noprint;

insert into flight114

set flight='302' ,

date='07MAR94'd,

orig='LGA',

dest='WAS',

delaycat='No Delay',

destype='Domestic',

delay=0;

quit;

VALUES语句

proc sql noprint;

insert into flight114

values('271','07MAR94'd,'LGA','PAR','1-10 Minutes','International',4);

quit;

条件查询:建表和导入数据同时完成

proc sql noprint;

create table flight114 as

select *

from Delay

where flight='114';

quit;

5 完整性约束

完整性约束的好处是保证SAS数据集的连续性和正确性,它在我们更新数据或插入新的数据时,验证新的数据是否符合该变量的约束条件。

完整性约束需要以上版本,符合ANSI标准,可以在表建立时或表有数据后建立约束,但不能被用于视图,也不能用于低于版本的SAS系统建立的数据集。

五大类完整性限制:NOT NULL、CHECK、UNIQUE、PRIMARY KEY、FOREIGN KEY。

NOT NULL:不许出现缺失值

CHECK:指定该变量可以输入哪些值

UNIQUE:每个值必须是唯一的,其值可以为空,但只能有一个值为空

PRIMARY KEY:主键,每个值必须是唯一且非空的

FOREIGN KEY:其它表的主键,即外键,其值为关联表的主键的值且非空

check

例:

proc sql noprint;

create table percent

(varname char(30),

Industry char(4),

begindate num format date9. label='the beginning date',

enddate num format date9. label='the ending date',

percent num,

CONSTRAINT percent _check check

(percent le );

quit;

这时,如果我们插入的数据中,percent>1的话,将会出现错误。

回滚ROLLBACKS

当我们用INSERT或UPDATE的时候,操作要等到发生错误的时候才会停止,这时会出现一个问题,就是数据表的一些数据更新了,而另一些数据没更新,这时如果我们要回到原来的状态,就需要用到UNDO_POLICY选项进行回滚。

UNDO_POLICY有三个选项:

REQUIRED:缺省选项,取消所有的更新或新插入的数据。这里要注意的是,此操作不一定完全能成功。

NONE:阻止所有的与约束不符的更新或新数据

OPTOINAL:取消所有可以成功取消的更新或新插入的数据

本功能用得很少,所以只是翻译一下,请大家查阅相关文献。

6 创建视图与索引

视图

视图最大的好处是它只是一个存储的查询,因此不包含任何数据,这可以减少磁盘的使用空间。其它的功能与数据库的表类似。

创建视图语法:

Create View View-name as

Query-expression ;

例:

proc sql noprint outobs=0;

create View delayview as

select *

from Delay;

quit;

索引

语法:

Create Index index-name

On table-name (column-name,column-name);

视图和索引都用得很少,所以这里就不作讲解了,大家查阅相关文献吧。

7 维护表

这里主要讲一下如何更新或删除已存在的表的数据,如何对一个表增加、减少、或改变其列的属性,如何删除表、视图和索引。

更新数据

这里主要用update来更新表的数据,语法如下

Update table-name

Set column-name=expression,

Set column-name=expression,…

Where expression;

注意,这里的where一定要写清楚,如果没有的话,则会更新所有的数据。

例:

proc sql noprint;

update delay

set delaycat='Delay'

where delay=0;

quit;

条件处理

用CASE语句来实现条件处理。例如,对根据sales的大小进行分类:语法:

Select column…

Case

When when-condition then result-expression

< When when-condition then result-expression>

End;

例:

proc sql;

create table shoesrank as

select *,

(case

when sales>100000 then 'good'

else 'bad'

end) as rank

from ;

quit;

删除行

语法:

Delete from table-name

Where expression;

例:

proc sql;

Delete from shoesrank

Where Region='Africa';

quit;

改变列

语法:

Alter Table table-name

Add column-definition,column-definition,…

Drop column-name,column-name,…

Modify column-definition,column-definit ion,…

对已存在的数据表增加一个列:例:

proc sql;

alter table shoesrank

add addcolumn num format=,

addcolumnmore char(10);

quit;

从已存在的数据表中删除列,例:

proc sql;

alter table shoesrank

drop addcolumn;

quit;

修改某列的属性,例:

proc sql;

alter table shoesrank

modify addcolumnmore char(20) label='modify add label';

quit;

删除表、视图、索引

语法:

Drop Table table-name,table-name,…;

Drop View View-name,View-name,…;

Drop Index index-name,index-name,…;

From table-name;

例:

proc sql;

drop table shoesrank;

quit;

SAS中的SQL语句完全教程之三:SQL过程步的其它特征

SAS中的SQL语句完全教程之三:SQL过程步的其它特征

本系列全部内容主要以《SQL Processing with the SAS System (Course Notes)》为主进行讲解,本书是在网上下载下来的,但忘了是在哪个网上下的,故不能提供下载链接了,需要的话可以发邮件向我索取,我定期邮给大家,最后声明一下所有资料仅用于学习,不得用于商业目的,否则后果自负。

前面两部分内容都比较简单,本节内容才是本系列要介绍的重点。不过这里装的内容都是点到即止,如果以后有时间,会进行更详细地讲解。

1 SQL过程步选项

SQL过程步选项的作用主要是可以从更细节的方式去控制SQL过程步,并且可以在不执行过程的情况下对程序进行测试等。

下面介绍一下列出来的选项,这些选项大多经常用到,更多的选项可以参考SAS帮助。

INOBS:进行一个查询时,对每个源数据表进行N行限制,仅对这N行的数据进行查询。

OUTOBS:指定查询输出结果的观测数

LOOPS:指定SQL过程步内循环的次数(此选项我用得比较少,谁明白的可以讲一下,多谢)NOPROMPT和PROMPT:修改上述三个选项的效果,从而让你选择是否继续或停止选项的效果。

PRINT和NOPRINT:控制是否打印选择的数据结果

NONUMBER和NUMBER:控制是否在第一列打印观测值编号

DOUBLE和NOBOUBLE:输入报表是否隔行显示

NOFLOW和FLOW和FLOW=n和FLOW=n m :指定列宽,n指定列宽,m指定行宽

double选项

proc sql double;

select flight,date

常用SQL语句大全

常用SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 DROP database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 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 only 5、说明:删除新表 DROP table tabname 6、说明:增加一个列 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 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:DROP view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词

2021年SQL语句大全实例

SQL语句实例 欧阳光明(2021.03. 07) 表操作 例1对于表的教学管理数据库中的表STUDENTS ,可以定义如下: CREATE TABLE STUDENTS (SNO NUMERIC (6, 0) NOT NULL SNAME CHAR (8) NOT NULL AGE NUMERIC(3,0) SEX CHAR(2) BPLACE CHAR(20) PRIMARY KEY(SNO)) 例2对于表的教学管理数据库中的表ENROLLS ,可以定义如下:CREATE TABLE ENROLLS (SNO NUMERIC(6,0) NOT NULL CNO CHAR(4) NOT NULL GRADE INT PRIMARY KEY(SNO,CNO) FOREIGN KEY(SNO) REFERENCES STUDENTS(SNO) FOREIGN KEY(CNO) REFERENCES COURSES(CNO)

*欧阳光明*创编2021.03.07 CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100))) 例3根据表的STUDENTS表,建立一个只包含学号.姓名.年龄的女学生表。 CREATE TABLE GIRL AS SELECT SNO, SNAME, AGE FROM STUDENTS WHERE SEX=女?; 例4删除教师表TEACHER。 DROP TABLE TEACHER 例5在教师表中增加住址列。 ALTER TABLE TEACHERS ADD (ADDR CHAR(50)) 例6把STUDENTS表中的BPLACE列删除,并且把引用 BPLACE列的所有视图和约束也一起删除。 ALTER TABLE STUDENTS DROP BPLACE CASCADE 例7补充定义ENROLLS表的主关键字。 ALTER TABLE ENROLLS ADD PRIMARY KEY (SNO,CNO);

VF考试复习 命令大全

VF命令一览表 一、命令 https://www.doczj.com/doc/0118058760.html,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.? ? 从当前行当前列起显示结果 https://www.doczj.com/doc/0118058760.html,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 project 2.数据库.dbc database

SQL查询语句大全集锦(超经典)

SQL查询语句大全集锦 MYSQL查询语句大全集锦 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 复制内容到剪贴板 代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: 复制内容到剪贴板 代码:SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: 复制内容到剪贴板 代码:SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 标题:

复制内容到剪贴板 代码:SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: 复制内容到剪贴板 代码:SELECT TOP 2 * FROM `testtable` 复制内容到剪贴板 代码:SELECT TOP 20 PERCENT * FROM `testtable` (二) FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, 它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: 复制内容到剪贴板 代码:SELECT `username`,citytable.cityid FROM `usertable`,`citytable` WHERE usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名: 复制内容到剪贴板 代码:表名 as 别名 表名别名例如上面语句可用表的别名格式表示为: 复制内容到剪贴板

数据库_经典SQL语句大全

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 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 only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 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 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1

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

常用经典SQL语句大全完整版--详解+实例下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice ’disk’, ’testBack’, ’c:\mssql7backup\MyNwind_1.dat’--- 开始备份 BACKUP DATABASE pubs TO testBack

4、说明:创建新表 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 only 5、说明: 删除新表:drop table tabname 6、说明: 增加一个列: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

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 kc 3.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>80 5.DELETE 命令格式:DELETE FROM<表名>[WHERE条件表达式] 例:DELETE FROM xscj WHERE cj<60 6.SELECT-SQL命令创建查询 常用的格式:SELECT表名1.字段名1[AS标题名1],表名1.字段名2[AS标题名2],… FROM数据库名!表名1[,数据库名!表名2][,数据库名!表名3] [TO FILE文本文件名|into table|into cursor表文件名]

数据库经典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-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk','testBack', 'c:mssql7backupMyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表

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 only 5、说明: 删除新表: tabname 6、说明: 增加一个列: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 注:索引是不可更改的,想更改必须删除重新建。

常用经典SQL语句大全完整版教学文案

常用经典S Q L语句大 全完整版

常用经典SQL语句大全完整版--详解+实例下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice ’disk’, ’testBack’, ’c:\mssql7backup\MyNwind_1.dat’--- 开始备份

BACKUP DATABASE pubs TO testBack 4、说明:创建新表 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 only 5、说明: 删除新表:drop table tabname 6、说明: 增加一个列: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….)

数据库基本----sql语句大全

学会数据库是很实用D~~记录一些常用的sql语句...有入门有提高有见都没见过的...好全...收藏下... 其实一般用的就是查询,插入,删除等语句而已....但学学存储过程是好事...以后数据方面的东西就不用在程序里搞喽..而且程序与数据库只要一个来回通讯就可以搞定所有数据的操作.... 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 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 only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 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 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where X围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where X围 更新:update table1 set field1=value1 where X围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1

数据库语言大全

经典SQL语句大全 —、基础 1说明:创建数据库 CREATE DATABASE database-n ame 2、说明:删除数据库 drop database dbn ame 3、说明:备份sql server ---创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwi nd_1.dat' ---开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tab name(col1 type1 [not nu II] [primary key],col2 type2 [not nul l] ,..) 根据已有的表创建新表: A: create table tab_new like tab_old ( 使用旧表创建新表) B: create table tab_new as select col1,col2 …from tab_old definition only 5、说明:删除新表 drop table tab name 6、说明:增加一个列 Alter table tab name add colu mn col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varc har类型的长度。 7、说明:添加主键:Alter table tab name add primary key(col) 说明:删除主键 : Alter table tab name drop primary key(col) 8、说明:创建索弓丨:create [unique] index idxname on tabname(col ….) 删除索弓丨:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view view name as select stateme nt 删除视图:drop view view name 10、说明:几个简单的基本的sql语句 选择:select * from tablei where 范围 插入:in sert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ' %value1% ---like 的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1

VF(SQL语句习题)-

VF(SQL语句习题)- 大学计算机 VisualFoxpro6.0数据库和编程 SQL语句练习 学院:经济与管理学院专业:农林经济与管理编号:XXXX年龄> 60,其功能是()(a)从SS表中完全删除60岁以上的记录(b)在SS表中为60岁以上的记录添加删除标记(c)删除SS表 (D)删除SS表的“年龄”字段 5。查询结果中只包括满足连接条件的记录。这种联系是()(a)左连接(b)右连接(c)内连接(d)全连接ii。填空题(5×2=10分) 1。SQL语言集成了、、和的函数。由于其自身在安全控制方面的缺陷,VFP不提供功能 2。关系数据库的标准语言是_ language,意思是 3。在VFP6.0支持的标准中,_命令可以修改表中的数据,_命令可以修改表的结构 4。在SQL-SELECT命令中,允许为_子句中定义的表定义别名,以便在查询的其他部分使用 5。在SQL-SELECT语句中,子句可以消除查询结果中的重复记录版权所有

保留所有权利 2 违反者将被起诉 大学计算机Visual Foxpro6.0-SQL语句练习 3。练习题(10 x 2 = xxxx日期和学生人数输出 5。在“学生表”中查找所有男孩的信息,包括他们的姓名和年龄6。在“学生表”中查找所有女孩的信息,包括她们的姓名和年龄7。在“成就表”中查找所有学生的平均分数 8。在“成绩表”中找到得分最高的学生的信息,包括姓名、性别和学生编号。版权所有 保留所有权利 5 违反者将被起诉 大学计算机Visual Foxpro6.0-SQL语句练习 9。在“成绩表”中找出得分最低的学生的信息,包括姓名、性别和学

数据库基本SQL语句大全

数据库基本SQL语句大全 数据库基本----SQL语句大全 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1、d at' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 typ e2 [not null],、、) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definit ion only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 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 注:索引就是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement

vf常用命令(全)

命令结构 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为当前数据库。 指定当前的数据库: 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|? 从当前打开的数据库中删除数据表:

西门子ABB等PLC专用经典SQL语句大全一、基础

西门子ABB等PLC专用经典SQL语句大全一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 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 only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 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 idxna me on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1

精妙SQL语句收集

精妙SQL语句收集 摘要:一、基础 二、提升 三、技巧 正文: SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作。 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 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 only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加var char类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col)

SQL语句大全实例

SQL语句实例 表操作 例 1 对于表的教学管理数据库中的表STUDENTS ,可以定义如下:CREATE TABLE STUDENTS (SNO NUMERIC (6, 0) NOT NULL SNAME CHAR (8) NOT NULL AGE NUMERIC(3,0) SEX CHAR(2) BPLACE CHAR(20) PRIMARY KEY(SNO)) 例 2 对于表的教学管理数据库中的表ENROLLS ,可以定义如下: CREATE TABLE ENROLLS (SNO NUMERIC(6,0) NOT NULL CNO CHAR(4) NOT NULL GRADE INT PRIMARY KEY(SNO,CNO) FOREIGN KEY(SNO) REFERENCES STUDENTS(SNO) FOREIGN KEY(CNO) REFERENCES COURSES(CNO) CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100))) 例 3 根据表的STUDENTS 表,建立一个只包含学号、姓名、年龄的女学生表。 CREATE TABLE GIRL

AS SELECT SNO, SNAME, AGE FROM STUDENTS WHERE SEX=' 女'; 例 4 删除教师表TEACHER 。 DROP TABLE TEACHER 例 5 在教师表中增加住址列。 ALTER TABLE TEACHERS ADD (ADDR CHAR(50)) 例 6 把STUDENTS 表中的BPLACE 列删除,并且把引用BPLACE 列的所有视图和约束也一起删除。 ALTER TABLE STUDENTS DROP BPLACE CASCADE 例7 补充定义ENROLLS 表的主关键字。 ALTER TABLE ENROLLS ADD PRIMARY KEY (SNO,CNO) ; 视图操作(虚表) 例9 建立一个只包括教师号、姓名和年龄的视图FACULTY 。( 在视图定义中不能包含ORDER BY 子句) CREATE VIEW FACULTY AS SELECT TNO, TNAME, AGE FROM TEACHERS 例10 从学生表、课程表和选课表中产生一个视图GRADE_TABLE ,它包括学生姓名、课程名和成绩。 CREATE VIEW GRADE_TABLE AS SELECT SNAME,CNAME,GRADE FROM STUDENTS,COURSES,ENROLLS WHERE STUDENTS.SNO =ENROLLS.SNO AND https://www.doczj.com/doc/0118058760.html,O=https://www.doczj.com/doc/0118058760.html,O 例11 删除视图GRADE_TABLE DROP VIEW GRADE_TABLE RESTRICT 索引操作 例12 在学生表中按学号建立索引。 CREATE UNIQUE INDEX ST ON STUDENTS (SNO,ASC) 例13 删除按学号所建立的索引。 DROP INDEX ST 数据库模式操作

相关主题
文本预览
相关文档 最新文档