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

SQL语句大全

SQL语句大全
SQL语句大全

SQL语句大全

正如大多数现代的关系语言一样,SQL 是基于记录关系微积分(TRC)的。结果是每个可以用记录关系微积分(TRC)表示的查询(相等地,或者是关系演算),同样也可以用SQL 表示。不过,还有一些超出关系演算或者微积分的能力。下面是一个SQL 提供的并非关系演算或者关系微积分的内容的一个列表:?插入,删除或者更改数据的命令。

?算术能力:在SQL 里,我们可以和比较功能一样进行算术运算,例如

? A < B + 3。

要注意+ 或者其他算术操作符从未在关系演算或者关系微积分里面出现过。

?分配和打印命令:我们可以打印一条查询构造的关系以及给一个被计算的关系分配关系名。

?聚集函数:象average,sum,max,等操作符可以应用于一个关系的列以获取单一的量。1.4.1. Select(选择)

SQL 里面最常用的命令是SELECT 语句,用于检索数据。语法是:

SELECT [ ALL | DISTINCT [ ON ( expression[, ...] ) ] ]

* | expression[ AS output_name] [, ...]

[ INTO [ TEMPORARY | TEMP ] [ TABLE ] new_table]

[ FROM from_item[, ...] ]

[ WHERE condition]

[ GROUP BY expression[, ...] ]

[ HAVING condition[, ...] ]

[ { UNION | INTERSECT | EXCEPT [ ALL ] } select]

[ ORDER BY expression[ ASC | DESC | USING operator] [, ...] ]

[ FOR UPDATE [ OF class_name[, ...] ] ]

[ LIMIT { count| ALL } [ { OFFSET | , } start]]

现在我们将通过不同的例子演示SELECT 语句复杂的语法。用于这些例子的表在供应商和部件数据库里定义。

1.4.1.1. 简单的Select

这里是一些使用SELECT 语句的简单例子:

Example 1-4. 带有条件的简单查询

要从表PART 里面把字段PRICE 大于10 的所有记录找出来,我们写出下面查询:

SELECT * FROM PART

WHERE PRICE > 10;

然后得到表:

PNO | PNAME | PRICE

-----+---------+--------

3 | Bolt | 15

4 | Cam | 25

在SELECT语句里使用"*" 将检索出表中的所有属性。如果我们只希望从表PART 中检索出属性PNA ME 和PRICE,我们使用下面的语句:

SELECT PNAME, PRICE

FROM PART

WHERE PRICE > 10;

这回我们的结果是:

PNAME | PRICE

--------+--------

Bolt | 15

Cam | 25

请注意SQL 的SELECT 语句对应关系演算里面的"projection" (映射),而不是"selection"(选择)(参阅关系演算获取详细信息)。

WHERE 子句里的条件也可以用关键字OR,AND,和NOT 逻辑地连接起来:

SELECT PNAME, PRICE

FROM PART

WHERE PNAME = 'Bolt' AND

(PRICE = 0 OR PRICE <= 15);

这样将生成下面的结果:

PNAME | PRICE

--------+--------

Bolt | 15

目标列表和WHERE 子句里可以使用算术操作。例如,如果我们想知道如果我们买两个部件的话要多少钱,我们可以用下面的查询:

SELECT PNAME, PRICE * 2 AS DOUBLE

FROM PART

WHERE PRICE * 2 < 50;

这样我们得到:

PNAME | DOUBLE

--------+---------

Screw | 20

Nut | 16

Bolt | 30

请注意在关键字AS 后面的DOUBLE 是第二个列的新名字。这个技巧可以用于目标列表里的每个元素,给它们赋予一个在结果列中显示的新的标题。这个新的标题通常称为别名。这个别名不能在该查询的其他地方使用。

1.4.1.

2. Joins(连接)

下面的例子显示了SQL 里是如何实现连接的。

要在共同的属性上连接三个表SUPPLIER,PART 和SELLS,我们通常使用下面的语句:

SELECT S.SNAME, P.PNAME

FROM SUPPLIER S, PART P, SELLS SE

WHERE S.SNO = SE.SNO AND

P.PNO = SE.PNO;

而我们得到的结果是:

SNAME | PNAME

-------+-------

Smith | Screw

Smith | Nut

Jones | Cam

Adams | Screw

Adams | Bolt

Blake | Nut

Blake | Bolt

Blake | Cam

在FROM 子句里,我们为每个关系使用了一个别名,因为在这些关系间有着公共的命名属性(SNO 和PNO)。现在我们可以区分不同表的公共命名属性,只需要简单的用每个关系的别名加上个点做前缀就行了。联合是用与一个内部联接里显示的同样的方法计算的。首先算出笛卡儿积SUPPLIER ×PART ×SELLS 。然后选出那些满足WHERE 子句里给出的条件的记录(也就是说,公共命名属性的值必须相等)。最后我们映射出除S.SNAME 和P.PNAME 外的所有属性。

另外一个进行连接的方法是使用下面这样的SQL JOIN 语法:

select sname, pname from supplier

JOIN sells USING (sno)

JOIN part USING (pno);

giving again:

sname | pname

-------+-------

Smith | Screw

Adams | Screw

Smith | Nut

Blake | Nut

Adams | Bolt

Blake | Bolt

Jones | Cam

Blake | Cam

(8 rows)

一个用JOIN 语法创建的连接表,是一个出现在FROM 子句里的,在任何WHERE,GROUP BY 或HAVING 子句之前的表引用列表项.其它表引用,包括表名字或者其它JOIN 子句,如果用逗号分隔的话,可以包含在FROM 子句里.连接生成的表逻辑上和任何其它在FROM 子句里列出的表都一样.

SQL JOIN 有两种主要类型,CROSS JOIN (无条件连接) 和条件连接.条件连接还可以根据声明的连接条件(ON,USING,或NATURAL)和它应用的方式(INNER 或OUTER 连接)进一步细分.

连接类型

CROSS JOIN

{ T1}CROSS JOIN { T2}

一个交叉连接(cross join)接收两个分别有N 行和M 行的表T1 和T2,然后返回一个包含交叉乘积NxM 条记录的连接表.对于T1 的每行R1,T2 的每行R2 都与R1 连接生成连接的表行JR,JR 包含所有R1 和R2 的字段.CROSS JOIN 实际上就是一个INNER JOIN ON TRUE.

条件JOIN

{ T1} [ NATURAL ] [ INNER | { LEFT | RIGHT | FULL } [ OUTER ] ]JOIN { T2} { ON search condition| USING ( join column list) }

一个条件JOIN 必须通过提供一个(并且只能有一个) NATURAL,ON,或者USING 这样的关键字来声明它的连接条件.ON 子句接受一个search condition,它与一个WHERE 子句相同.USING 子句接受一个用逗号分隔的字段名列表,连接表中必须都有这些字段,并且用那些字段连接这些表,生成的连接表包含每个共有字段和两个表的所有其它字段.NATURAL 是USING 子句的缩写,它列出两个表中所有公共的字段名字.使用USING 和NATURAL 的副作用是每个连接的字段都只有一份拷贝出现在结果表中(与前面定义的关系演算的JOIN 相比

较).

[ INNER ]JOIN

对于T1 的每行R1,连接成的表在T2 里都有一行满足与R1 一起的连接条件.

对于所有JOIN 而言,INNER 和OUTER 都是可选的.INNER 是缺省.LEFT,RIGHT,和FULL 只用于OUTER JOIN.

LEFT [ OUTER ]JOIN

首先,执行一次INNER JOIN.然后,如果T1 里有一行对任何T2 的行都不满足连接条件,那么返回一个连接行,该行的T2 的字段为null.

小技巧: 连接成的表无条件地包含T1 里的所有行.

RIGHT [ OUTER ]JOIN

首先,执行一次INNER JOIN.然后,如果T2 里有一行对任何T1 的行都不满足连接条件,那么返回一个连接行,该行的T1 的字段为null.

小技巧: 连接成的表无条件地包含T2 里的所有行.

FULL [ OUTER ]JOIN

首先,执行一次INNER JOIN.然后,如果T1 里有一行对任何T2 的行都不满足连接条件,那么返回一个连接行,该行的T1 的字段为null.同样,如果T2 里有一行对任何T1 的行都不满足连接条件,那么返回一个连接行,该行的T2 的字段为null.

小技巧: 连接成的表无条件地拥有来自T1 的每一行和来自T2 的每一行.

所有类型的JOIN 都可以链接在一起或者嵌套在一起,这时T1和T2都可以是连接生成的表.我们可以使用圆括弧控制JOIN 的顺序,如果我们不主动控制,那么连接顺序是从左到右.

1.4.1.3. 聚集操作符

SQL 提供以一些聚集操作符(如,AVG,COUNT,SUM,MIN,MAX),这些聚集操作符以一个表达式为参数。只要是满足WHERE 子句的行,就会计算这个表达式,然后聚集操作符对这个输入数值的集合进行计算.通常,一个聚集对整个SELECT 语句计算的结果是生成一个结果.但如果在一个查询里面声明了分组,那么数据库将对每个组进行一次独立的计算,并且聚集结果是按照各个组出现的(见下节).

Example 1-5. 聚集

果我们想知道表PART 里面所有部件的平均价格,我们可以使用下面查询:

SELECT AVG(PRICE) AS AVG_PRICE

FROM PART;

结果是:

AVG_PRICE

-----------

14.5

如果我们想知道在表PART 里面存储了多少部件,我们可以使用语句:

SELECT COUNT(PNO)

FROM PART;

得到:

COUNT

-------

4

1.4.1.4. 分组聚集

SQL 允许我们把一个表里面的记录分成组。然后上面描述的聚集操作符可以应用于这些组上(也就是说,聚集操作符的值不再是对所有声明的列的值进行操作,而是对一个组的所有值进行操作。这样聚集函数是为每个组独立地进行计算的。)

对记录的分组是通过关键字GROUP BY实现的,GROUP BY后面跟着一个定义组的构成的属性列表。

如果我们使用语句GROUP BY A1, ⃛, A k我们就把关系分成了组,这样当且仅当两条记录在所有属性A1, ⃛, A k上达成一致,它们才是同一组的。

Example 1-6. 聚集

如果我们想知道每个供应商销售多少个部件,我们可以这样写查询:

SELECT S.SNO, S.SNAME, COUNT(SE.PNO)

FROM SUPPLIER S, SELLS SE

WHERE S.SNO = SE.SNO

GROUP BY S.SNO, S.SNAME;

得到:

SNO | SNAME | COUNT

-----+-------+-------

1 | Smith | 2

2 | Jones | 1

3 | Adams | 2

4 | Blake | 3

然后我们看一看发生了什么事情。首先生成表SUPPLIER 和SELLS 的连接:

S.SNO | S.SNAME | SE.PNO

-------+---------+--------

1 | Smith | 1

1 | Smith | 2

2 | Jones | 4

3 | Adams | 1

3 | Adams | 3

4 | Blake | 2

4 | Blake | 3

4 | Blake | 4

然后我们把那些属性S.SNO 和S.SNAME 相同的记录放在组中:

S.SNO | S.SNAME | SE.PNO

-------+---------+--------

1 | Smith | 1

| 2

--------------------------

2 | Jones | 4

--------------------------

3 | Adams | 1

| 3

--------------------------

4 | Blake | 2

| 3

| 4

在我们的例子里,我们有四个组并且现在我们可以对每个组应用聚集操作符COUNT,生成上面给出的查询的最终结果。

请注意如果要让一个使用GROUP BY 和聚集操作符的查询的结果有意义,那么用于分组的属性也必须出现在目标列表中。所有没有在GROUP BY 子句里面出现的属性都只能通过使用聚集函数来选择。否则就不会有唯一的数值与其它字段关联.

还要注意的是在聚集上聚集是没有意义的,比如,AVG(MAX(sno)),因为SELECT 只做一个回合的分组和聚集.你可以获得这样的结果,方法是使用临时表或者在FROM 子句中使用一个子SELECT 做第一个层次的聚集.

1.4.1.5. Having

HAVING 子句运做起来非常象WHERE 子句,只用于对那些满足HAVING 子句里面给出的条件的组进行计算。其实,WHERE 在分组和聚集之前过滤掉我们不需要的输入行,而HAVING 在GROUP 之后那些不需要的组.因此,WHERE 无法使用一个聚集函数的结果.而另一方面,我们也没有理由写一个不涉及聚集函数的HAVING.如果你的条件不包含聚集,那么你也可以把它写在WHERE 里面,这样就可以避免对那些你准备抛弃的行进行的聚集运算.

Example 1-7. Having

如果我们想知道那些销售超过一个部件的供应商,使用下面查询:

SELECT S.SNO, S.SNAME, COUNT(SE.PNO)

FROM SUPPLIER S, SELLS SE

WHERE S.SNO = SE.SNO

GROUP BY S.SNO, S.SNAME

HAVING COUNT(SE.PNO) > 1;

and get:

SNO | SNAME | COUNT

-----+-------+-------

1 | Smith | 2

3 | Adams | 2

4 | Blake | 3

1.4.1.6. 子查询

在WHERE 和HAVING 子句里,允许在任何要产生数值的地方使用子查询(子选择)。这种情况下,该值必须首先来自对子查询的计算。子查询的使用扩展了SQL 的表达能力。

Example 1-8. 子查询

如果我们想知道所有比名为'Screw' 的部件贵的部件,我们可以用下面的查询:

SELECT *

FROM PART

WHERE PRICE > (SELECT PRICE FROM PART

WHERE PNAME='Screw');

结果是:

PNO | PNAME | PRICE

-----+---------+--------

3 | Bolt | 15

4 | Cam | 25

当我们检查上面的查询时会发现出现了两次SELECT 关键字。第一个在查询的开头- 我们将称之为外层SELECT - 而另一个在WHERE 子句里面,成为一个嵌入的查询- 我们将称之为内层SELECT。对外层SELECT 的每条记录都必须先计算内层SELECT。在完成所有计算之后,我们得知名为'Screw' 部件的记录的价格,然后我们就可以检查那些价格更贵的记录了。(实际上,在本例中,内层查询只需要执行一次,因为它不依赖于外层查询高等状态.)

如果我们想知道那些不销售任何部件的供应商(比如说,我们想把这些供应商从数据库中删除),我们用:

SELECT *

FROM SUPPLIER S

WHERE NOT EXISTS

(SELECT * FROM SELLS SE

WHERE SE.SNO = S.SNO);

在我们的例子里,结果列将是空的,因为每个供应商至少销售一个部件。请注意我们在WHERE 子句的内层SELECT 里使用了来自外层SELECT 的S.SNO。正如前面所说的,子查询为每个外层查询计算一次,也就是说,S.SNO 的值总是从外层SELECT 的实际记录中取得的。

1.4.1.7. 在FROM 里面的子查询

一种有些特别的子查询的用法是把它们放在FROM 子句里.这个特性很有用,因为这样的子查询可以输出多列和多行,而在表达式里使用的子查询必须生成一个结果.FROM 里的子查询还可以让我们获得多于一个回合的分组/聚集特性,而不需要求助于临时表.

Example 1-9. FROM 里面的子查询

如果我们想知道在所有我们的供应商中的最高平均部件价格的那家,我们不能用MAX(AVG(PRICE)),但我们可以这么写:

SELECT MAX(subtable.avgprice)

FROM (SELECT AVG(P.PRICE) AS avgprice

FROM SUPPLIER S, PART P, SELLS SE

WHERE S.SNO = SE.SNO AND

P.PNO = SE.PNO

GROUP BY S.SNO) subtable;

这个子查询为每个供应商返回一行(因为它的GROUP BY)然后我们在外层查询对所有行进行聚集.

1.4.1.8. Union, Intersect, Except(联合,相交,相异)

这些操作符分别计算两个子查询产生的元组的联合,相交和集合理论里的相异。

Example 1-10. Union, Intersect, Except

下面的例子是UNION 的例子:

SELECT S.SNO, S.SNAME, S.CITY FROM SUPPLIER S

WHERE S.SNAME = 'Jones' UNION

SELECT S.SNO, S.SNAME, S.CITY

FROM SUPPLIER S

WHERE S.SNAME = 'Adams';

产生结果:

SNO | SNAME | CITY

-----+-------+--------

2 | Jones | Paris

3 | Adams | Vienna

下面是相交(INTERSECT)的例子:

SELECT S.SNO, S.SNAME, S.CITY FROM SUPPLIER S

WHERE S.SNO > 1

INTERSECT

SELECT S.SNO, S.SNAME, S.CITY

FROM SUPPLIER S

WHERE S.SNO < 3;

产生结果:

SNO | SNAME | CITY

-----+-------+--------

2 | Jones | Paris

两个查询都会返回的元组是那条SNO=2 的

最后是一个EXCEPT 的例子:

SELECT S.SNO, S.SNAME, S.CITY

FROM SUPPLIER S

WHERE S.SNO > 1

EXCEPT

SELECT S.SNO, S.SNAME, S.CITY

FROM SUPPLIER S

WHERE S.SNO > 3;

结果是:

SNO | SNAME | CITY

-----+-------+--------

2 | Jones | Paris

3 | Adams | Vienna

1.4.

2. 数据定义

在SQL 语言里包含一套用于数据定义的命令。

1.4.

2.1. 创建表

数据定义的最基本的命令是创建一个新关系(新表)的命令。CREATE TABLE 命令的语法如下:

CREATE TABLE table_name

(name_of_attr_1type_of_attr_1

[, name_of_attr_2type_of_attr_2

[, ...]]);

Example 1-11. 创建表

要创建供应商和部件数据库里的表,要使用下面的SQL 语句:

CREATE TABLE SUPPLIER

(SNO INTEGER,

SNAME VARCHAR(20),

CITY VARCHAR(20));

CREATE TABLE PART

(PNO INTEGER,

PNAME VARCHAR(20),

PRICE DECIMAL(4 , 2));

CREATE TABLE SELLS

(SNO INTEGER,

PNO INTEGER);

1.4.

2.2. SQL 里的数据类型

下面是SQL 一些数据类型的列表:

?INTEGER:有符号全长二进制整数(31位精度)。

?SMALLINT:有符号半长二进制整数(15位精度)。

?DECIMAL (p[,q]): 有符号的封装了的十进制小数,最多有p位数,并假设有q位在小数点右边。如果省略q,则认为是0。

?FLOAT:有符号双字浮点数。

?CHAR(n):长度为n的定长字符串。

?VARCHAR(n):最大长度为n的变长字符串。

1.4.

2.

3. 创建索引

索引用于加速对关系的访问。如果关系R有一个建立在属性A上的索引,那么我们检索满足t(A) = a的所有元组t用的时间和这样的元组数t成比例,而不是与R的大小成比例。

在SQL 里创建一个索引,使用CREATE INDEX 命令。语法是:

CREATE INDEX index_name

ON table_name( name_of_attribute);

Example 1-12. 创建索引

要在关系SUPPLIER 的属性SNAME 上创建一个名为I 的索引,我们使用下面语法:

CREATE INDEX I ON SUPPLIER (SNAME);

所创建的索引是自动维护的,也就是说,当向关系SUPPLIER 插入新的记录时,索引I 相应做调节。请注意有索引存在时,用户能感觉到的唯一的变化就是速度的提升。

1.4.

2.4. 创建视图

一个视图可以看作一个虚拟表,也就是说,数据库里的一个物理上不存在的,但是用户看起来却存在的表。与之相比,当我们谈到一个基本表时,则是在物理存储中的确物理地存放着表中每一行的内容。视图没有它们自身的,物理上分开的,可区分的存储区。实际上,系统把视图的定义(也就是说,为视图物化的应如何访问物理上存储在基本表中内容的规则)存放在系统表里的某个地方(参阅系统表)。

关于实现视图的不同技巧,请参考SIM98.

在SQL 里,使用CREATE VIEW命令定义视图。语法是:

CREATE VIEW view_name

AS select_stmt

这里select_stmt是一个与定义在Select(选择)里一样的有效选择语句。请注意在视图创建时并不执行select_stmt。它只是存储在系统表里,当对视图进行查询时将执行。

假设给出下面的视图定义(我们再次使用来自供应商和部件数据库里的表):

CREATE VIEW London_Suppliers

AS SELECT S.SNAME, P.PNAME

FROM SUPPLIER S, PART P, SELLS SE

WHERE S.SNO = SE.SNO AND

P.PNO = SE.PNO AND

S.CITY = 'London';

现在我们可以把这个虚拟的关系London_Suppliers当作是另外一个基本表:

SELECT * FROM London_Suppliers

WHERE PNAME = 'Screw';

将返回下面的表:

SNAME | PNAME

-------+-------

Smith | Screw

要计算这个结果,数据库系统必须先对基本表SUPPLIER,SELLS 和PART 先进行一次隐藏的访问。它是通过对这些基本表运行该视图定义里面给出的查询实现隐藏访问的。然后,余下的附加条件(在查询

里给出的对视图的条件)就可以应用上来,最后获取结果表。

1.4.

2.5. 删除表,删除索引,删除视图

要删除表(包括该表存储的所有记录),使用DROP TABLE 命令:

DROP TABLE table_name;

要删除SUPPLIER 表,使用下面语句:

DROP TABLE SUPPLIER;

DROP INDEX 命令用于删除一个索引:

DROP INDEX index_name;

最后用DROP VIEW 删除一个给出的视图:

DROP VIEW view_name;

1.4.3. 数据操作

1.4.3.1. 插入数据

一旦表创建完成(参阅创建表),就可以用命令INSERT INTO向里面填充元组。语法是:

INSERT INTO table_name(name_of_attr_1

[, name_of_attr_2[,...]])

VALUES (val_attr_1[, val_attr_2[, ...]]);

要向关系SUPPLIER 中插入第一条元组(来自供应商和部件数据库),我们使用下面语句:

INSERT INTO SUPPLIER (SNO, SNAME, CITY)

VALUES (1, 'Smith', 'London');

要向关系SELLS 插入第一条元组,我们用:

INSERT INTO SELLS (SNO, PNO)

VALUES (1, 1);

1.4.3.

2. Update(更新)

要修改元组中的一个或者多个属性的值,使用UPDATE 命令。语法是:

UPDATE table_name

SET name_of_attr_1= value_1

[, ... [, name_of_attr_k= value_k]]

WHERE condition;

要修改表关系PART 中部件'Screw' 的属性PRICE 的值,我们用:

UPDATE PART

SET PRICE = 15

WHERE PNAME = 'Screw';

记录名为'Screw' 的属性PRICE 的新值现在是15。

常用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、说明:几个高级查询运算词

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

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 --定义当前事务数据访问特征--程序化SQL DECLARE --为查询设定游标 EXPLAN --为查询描述数据访问计划 OPEN --检索查询结果打开一个游标 FETCH --检索一行查询结果 CLOSE --关闭游标 PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句 DESCRIBE --描述准备好的查询

经典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

数据库经典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语句大全

数据库基本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

数据库基本----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

SAS中的SQL语句大全

S A S中的S Q L语句大 全 标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]

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:指定被选择的列

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/4214976352.html,O=https://www.doczj.com/doc/4214976352.html,O 例11 删除视图GRADE_TABLE DROP VIEW GRADE_TABLE RESTRICT 索引操作 例12 在学生表中按学号建立索引。 CREATE UNIQUE INDEX ST ON STUDENTS (SNO,ASC) 例13 删除按学号所建立的索引。 DROP INDEX ST 数据库模式操作

西门子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语句大全--语句功能 --数据操作 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 --定义当前事务数据访问特征 --程序化SQL DECLARE --为查询设定游标 EXPLAN --为查询描述数据访问计划 OPEN --检索查询结果打开一个游标

SQL语句大全

SQL语句大全 正如大多数现代的关系语言一样,SQL 是基于记录关系微积分(TRC)的。结果是每个可以用记录关系微积分(TRC)表示的查询(相等地,或者是关系演算),同样也可以用SQL 表示。不过,还有一些超出关系演算或者微积分的能力。下面是一个SQL 提供的并非关系演算或者关系微积分的内容的一个列表:?插入,删除或者更改数据的命令。 ?算术能力:在SQL 里,我们可以和比较功能一样进行算术运算,例如 ? A < B + 3。 要注意+ 或者其他算术操作符从未在关系演算或者关系微积分里面出现过。 ?分配和打印命令:我们可以打印一条查询构造的关系以及给一个被计算的关系分配关系名。 ?聚集函数:象average,sum,max,等操作符可以应用于一个关系的列以获取单一的量。1.4.1. Select(选择) SQL 里面最常用的命令是SELECT 语句,用于检索数据。语法是: SELECT [ ALL | DISTINCT [ ON ( expression[, ...] ) ] ] * | expression[ AS output_name] [, ...] [ INTO [ TEMPORARY | TEMP ] [ TABLE ] new_table] [ FROM from_item[, ...] ] [ WHERE condition] [ GROUP BY expression[, ...] ] [ HAVING condition[, ...] ] [ { UNION | INTERSECT | EXCEPT [ ALL ] } select] [ ORDER BY expression[ ASC | DESC | USING operator] [, ...] ] [ FOR UPDATE [ OF class_name[, ...] ] ] [ LIMIT { count| ALL } [ { OFFSET | , } start]]

数据库基本SQL语句大全

数据库基本_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\‘ --- 开始备份 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 范围

常用经典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 注:索引是不可更改的,想更改必须删除重新建。 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]

计算机三级数据库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 [uniqu e] 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、说明:几个高级查询运算词 A:UNION 运算符 UNION 运算符通过组合其他两个结果表(例如TABLE1 和TABLE2)并消去表中任何重复行而派生出一个结果表。当ALL 随UNION 一起使用时(即UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自TABLE1 就是来自TABLE2。 B:EXCEPT 运算符 EXCEPT 运算符通过包括所有在TABLE1 中但不在TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随EXCEPT 一起使用时(EXCEPT ALL),不消除重复行。 C:INTERSECT 运算符

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