klete

I am so emptiness

博客园 首页 新随笔 联系 订阅 管理
http://www.delphidevelopers.com/learnbooks/SQL_Manual_Chinese.htm

Between…And

用途:

 指定需返回数据的范围

语法:

SELECT column_name FROM table_name
WHERE column_name
BETWEEN value1 AND value2

例:

“Persons”表中的原始数据

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Nordmann

Anna

Neset 18

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

Svendson

Tove

Borgvn 23

Sandnes

BETWEEN…AND返回LastName为从”Hansen””Pettersen”的数据:

SELECT * FROM Persons WHERE LastName 
BETWEEN 'Hansen' AND 'Pettersen'

返回结果:

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Nordmann

Anna

Neset 18

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

 

为了显示指定范围之外的数据,也可以用NOT操作符:

SELECT * FROM Persons WHERE LastName 
NOT BETWEEN 'Hansen' AND 'Pettersen'

返回结果:

LastName

FirstName

Address

City

Svendson

Tove

Borgvn 23

Sandnes

 

 

Distinct

用途:

 DISTINCT关键字被用作返回唯一的值

语法:

SELECT DISTINCT column-name(s) FROM table-name

解释:

 column-name(s)中存在重复的值时,返回结果仅留下一个

例:

“Orders”表中的原始数据

Company

OrderNumber

Sega

3412

W3Schools

2312

Trio

4678

W3Schools

6798

DISTINCT关键字返回Company字段中唯一的值:

SELECT DISTINCT Company FROM Orders

返回结果:

Company

Sega

W3Schools

Trio

 

 

Order by

用途:

指定结果集的排序

语法:

SELECT column-name(s) FROM table-name ORDER BY { order_by_expression [ ASC | DESC ] }

解释:

 指定结果集的排序,可以按照ASC(递增方式排序,从最低值到最高值)或者DESC(递减方式排序,从最高值到最低值)的方式进行排序,默认的方式是ASC

例:

“Orders”表中的原始数据:

Company

OrderNumber

Sega

3412

ABC Shop

5678

W3Schools

2312

W3Schools

6798

按照Company字段的升序方式返回结果集:

SELECT Company, OrderNumber FROM Orders
ORDER BY Company

返回结果:

Company

OrderNumber

ABC Shop 

5678

Sega

3412

W3Schools

6798

W3Schools

2312

按照Company字段的降序方式返回结果集:

SELECT Company, OrderNumber FROM Orders
ORDER BY Company DESC

返回结果:

Company

OrderNumber

W3Schools

6798

W3Schools

2312

Sega

3412

ABC Shop

5678

 

 

Group by

用途:

对结果集进行分组,常与汇总函数一起使用。

语法:

SELECT column,SUM(column) FROM table GROUP BY column

例:

“Sales”表中的原始数据:

Company

Amount

W3Schools

5500

IBM

4500

W3Schools

7100

按照Company字段进行分组,求出每个CompanyAmout的合计:

SELECT Company,SUM(Amount) FROM Sales
GROUP BY Company

返回结果

Company

SUM(Amount)

W3Schools

12600

IBM

4500

 

 

Having

用途:

指定群组或汇总的搜寻条件。

语法:

SELECT column,SUM(column) FROM table
GROUP BY column
HAVING SUM(column) condition value

解释:

HAVING 通常与 GROUP BY 子句同时使用。不使用 GROUP BY 时,HAVING 则与 WHERE 子句功能相似。

例:

“Sales”表中的原始数据:

Company

Amount

W3Schools

5500

IBM

4500

W3Schools

7100

按照Company字段进行分组,求出每个CompanyAmout的合计在10000以上的数据:

SELECT Company,SUM(Amount) FROM Sales
GROUP BY Company HAVING SUM(Amount)>10000

返回结果

Company

SUM(Amount)

W3Schools

12600

 

 

Join

用途:

当你要从两个或者以上的表中选取结果集时,你就会用到JOIN

例:

“Employees”表中的数据如下,(其中ID为主键):

ID

Name

01

Hansen, Ola

02

Svendson, Tove

03

Svendson, Stephen

04

Pettersen, Kari

“Orders”表中的数据如下:

ID

Product

01

Printer

03

Table

03

Chair

EmployeesIDOrdersID相关联选取数据:

SELECT Employees.Name, Orders.Product
FROM Employees, Orders
WHERE Employees.ID = Orders.ID

返回结果:

Name

Product

Hansen, Ola

Printer

Svendson, Stephen

Table

Svendson, Stephen

Chair

或者你也可以用JOIN关键字来完成上面的操作:

SELECT Employees.Name, Orders.Product
FROM Employees
INNER JOIN Orders
ON Employees.ID = Orders.ID

INNER JOIN的语法:

SELECT field1, field2, field3
FROM first_table
INNER JOIN second_table
ON first_table.keyfield = second_table.foreign_keyfield

解释:

       INNER JOIN返回的结果集是两个表中所有相匹配的数据。

 

LEFT JOIN的语法:

SELECT field1, field2, field3
FROM first_table
LEFT JOIN second_table
ON first_table.keyfield = second_table.foreign_keyfield

”Employees”表去左外联结”Orders”表去找出相关数据:

SELECT Employees.Name, Orders.Product
FROM Employees
LEFT JOIN Orders
ON Employees.ID = Orders.ID

返回结果:

Name

Product

Hansen, Ola

Printer

Svendson, Tove

 

Svendson, Stephen

Table

Svendson, Stephen

Chair

Pettersen, Kari

 

解释:

       LEFT JOIN返回first_table”中所有的行尽管在 second_table中没有相匹配的数据。

 

RIGHT JOIN的语法:

SELECT field1, field2, field3
FROM first_table
RIGHT JOIN second_table
ON first_table.keyfield = second_table.foreign_keyfield

”Employees”表去右外联结”Orders”表去找出相关数据:

SELECT Employees.Name, Orders.Product
FROM Employees
RIGHT JOIN Orders
ON Employees.ID = Orders.ID

返回结果:

Name

Product

Hansen, Ola

Printer

Svendson, Stephen

Table

Svendson, Stephen

Chair

解释:

       RIGHT JOIN返回 second_table中所有的行尽管在first_table”中没有相匹配的数据。



聚集函数

count

用途:

       传回选取的结果集中行的数目。

语法:

SELECT COUNT(column_name) FROM table_name

例:

“Persons”表中原始数据如下:

Name

Age

Hansen, Ola

34

Svendson, Tove

45

Pettersen, Kari

19

选取记录总数:

SELECT COUNT(Name) FROM Persons

执行结果:

3

 

sum

用途:

       以表达式传回所有值的总和,或仅 DISTINCT 值。SUM 仅可用于数值资料行。已忽略 Null 值。

语法:

SELECT SUM(column_name) FROM table_name

例:

“Persons”表中原始数据如下:

Name

Age

Hansen, Ola

34

Svendson, Tove

45

Pettersen, Kari

19

选取”Persons”表中所有人的年龄总和:

SELECT SUM(Age) FROM Persons

执行结果:

98

选取”Persons”表中年龄超过20岁的人的年龄总和:

SELECT SUM(Age) FROM Persons WHERE Age>20

执行结果:

79

 

avg

用途:

       传回选取的结果集中值的平均值。已忽略 Null 值。

语法:

SELECT AVG(column_name) FROM table_name

例:

“Persons”表中原始数据如下:

Name

Age

Hansen, Ola

34

Svendson, Tove

45

Pettersen, Kari

19

选取”Persons”表中所有人的平均年龄:

SELECT AVG(Age) FROM Persons

执行结果:

32.67

选取”Persons”表中年龄超过20岁的人的平均年龄:

SELECT AVG(Age) FROM Persons WHERE Age>20

执行结果:

39.5

 

max

用途:

       传回选取的结果集中值的最大值。已忽略 Null 值。

语法:

SELECT MAX(column_name) FROM table_name

例:

“Persons”表中原始数据如下:

Name

Age

Hansen, Ola

34

Svendson, Tove

45

Pettersen, Kari

19

选取”Persons”表中的最大年龄:

SELECT MAX(Age) FROM Persons

执行结果:

45

 

min

用途:

       传回选取的结果集中值的最小值。已忽略 Null 值。

语法:

SELECT MIN(column_name) FROM table_name

例:

“Persons”表中原始数据如下:

Name

Age

Hansen, Ola

34

Svendson, Tove

45

Pettersen, Kari

19

选取”Persons”表中的最小年龄:

SELECT MIN(Age) FROM Persons

执行结果:

19

 

 

 

算术函数

abs

用途:

       传回指定数值表达式 (Numeric Expression) 的绝对正值。

语法:

ABS(numeric_expression)

例:

ABS(-1.0) ABS(0.0) ABS(1.0)

执行结果:

1.0         0.0        1.0

 

ceil

用途:

       传回大于等于给定数值表达式的最小整数。

语法:

CEIL(numeric_expression)

例:

CEIL(123.45)   CEIL(-123.45)

执行结果:

124.00            -123.00

 

floor

用途:

       传回小于或等于给定数值表达式的最大整数。

语法:

FLOOR(numeric_expression)

例:

FLOOR(123.45)   FLOOR(-123.45)

执行结果:

123.00             -124.00

 

cos

用途:

       在指定表达式中传回指定角度 (以弪度为单位) 的三角余弦值的数学函数。

语法:

COS(numeric_expression)

例:

COS(14.78)

执行结果:

-0.599465

 

cosh

用途:

       传回以弧度为单位的角度值,其余弦为指定的 float 表达式,也称为反余弦。

语法:

COSH(numeric_expression)

例:

COSH(-1)

执行结果:

3.14159

 

sin

用途:

       以近似的数值 (float) 表达式传回给定角度 (以弧度) 之三角正弦函数 (Trigonometric Sine)。

语法:

SIN(numeric_expression)

例:

SIN(45.175643)

执行结果:

0.929607

 

sinh

用途:

       传回以弪度为单位的角度,其正弦为指定的 float 表达式 (也称为反正弦)。

语法:

SINH(numeric_expression)

例:

SINH(-1.00)

执行结果:

-1.5708

 

tan

用途:

       传回输入表达式的正切函数。

语法:

TAN(numeric_expression)

例:

TAN(3.14159265358979/2)

执行结果:

1.6331778728383844E+16

 

tanh

用途:

       传回以弪度为单位的角度,其正切为指定的 float 表达式 (也称为反正切)

语法:

TANH(numeric_expression)

例:

TANH(-45.01)

执行结果:

-1.54858

 

exp

用途:

       传回给定的 float 表达式的指数 (Exponential) 值。

语法:

EXP(numeric_expression)

例:

EXP(378.615345498)

执行结果:

2.69498e+164 

 

log

用途:

       传回给定的 float 表达式之自然对数。

语法:

LOG(numeric_expression)

例:

LOG(5.175643)

执行结果:

1.64396 

 

power

用途:

       传回给定表达式指定乘幂的值。

语法:

POWER(numeric_expression,v)

例:

POWER(2,6)

执行结果:

64

 

sign

用途:

       传回给定的表达式之正 (+1)、零 (0) 或负 (-1) 号。

语法:

SIGN(numeric_expression)

例:

SIGN(123)    SIGN(0)    SIGN(-456)

执行结果:

1             0          -1

 

sqrt

用途:

       传回给定表达式的平方。

语法:

SQRT(numeric_expression)

例:

SQRT(10)

执行结果:

100

 

 
posted on 2004-11-13 16:52  豆浆  阅读(478)  评论(0)    收藏  举报