Between…And
用途:
指定需返回数据的范围
语法:
SELECT column_name FROM table_nameWHERE column_nameBETWEEN 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 OrdersORDER BY Company
|
返回结果:
|
Company |
OrderNumber |
|
ABC Shop |
5678 |
|
Sega |
3412 |
|
W3Schools |
6798 |
|
W3Schools |
2312 |
按照Company字段的降序方式返回结果集:
SELECT Company, OrderNumber FROM OrdersORDER 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字段进行分组,求出每个Company的Amout的合计:
SELECT Company,SUM(Amount) FROM SalesGROUP BY Company
|
返回结果:
|
Company |
SUM(Amount) |
|
W3Schools |
12600 |
|
IBM |
4500 |
Having
用途:
指定群组或汇总的搜寻条件。
语法:
SELECT column,SUM(column) FROM tableGROUP BY columnHAVING SUM(column) condition value
|
解释:
HAVING 通常与 GROUP BY 子句同时使用。不使用 GROUP BY 时,HAVING 则与 WHERE 子句功能相似。
例:
“Sales”表中的原始数据:
|
Company |
Amount |
|
W3Schools |
5500 |
|
IBM |
4500 |
|
W3Schools |
7100 |
按照Company字段进行分组,求出每个Company的Amout的合计在10000以上的数据:
SELECT Company,SUM(Amount) FROM SalesGROUP 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 |
用Employees的ID和Orders的ID相关联选取数据:
SELECT Employees.Name, Orders.ProductFROM Employees, OrdersWHERE Employees.ID = Orders.ID
|
返回结果:
|
Name |
Product |
|
Hansen, Ola |
Printer |
|
Svendson, Stephen |
Table |
|
Svendson, Stephen |
Chair |
或者你也可以用JOIN关键字来完成上面的操作:
SELECT Employees.Name, Orders.ProductFROM EmployeesINNER JOIN OrdersON Employees.ID = Orders.ID
|
INNER JOIN的语法:
SELECT field1, field2, field3FROM first_tableINNER JOIN second_tableON first_table.keyfield = second_table.foreign_keyfield
|
解释:
INNER JOIN返回的结果集是两个表中所有相匹配的数据。
LEFT JOIN的语法:
SELECT field1, field2, field3FROM first_tableLEFT JOIN second_tableON first_table.keyfield = second_table.foreign_keyfield
|
用”Employees”表去左外联结”Orders”表去找出相关数据:
SELECT Employees.Name, Orders.ProductFROM EmployeesLEFT JOIN OrdersON 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, field3FROM first_tableRIGHT JOIN second_tableON first_table.keyfield = second_table.foreign_keyfield
|
用”Employees”表去右外联结”Orders”表去找出相关数据:
SELECT Employees.Name, Orders.ProductFROM EmployeesRIGHT JOIN OrdersON Employees.ID = Orders.ID
|
返回结果:
|
Name |
Product |
|
Hansen, Ola |
Printer |
|
Svendson, Stephen |
Table |
|
Svendson, Stephen |
Chair |
解释:
RIGHT JOIN返回” second_table”中所有的行尽管在”first_table”中没有相匹配的数据。
聚集函数count用途: 传回选取的结果集中行的数目。 语法:
例: “Persons”表中原始数据如下:
选取记录总数:
执行结果:
sum用途: 以表达式传回所有值的总和,或仅 DISTINCT 值。SUM 仅可用于数值资料行。已忽略 Null 值。 语法:
例: “Persons”表中原始数据如下:
选取”Persons”表中所有人的年龄总和:
执行结果:
选取”Persons”表中年龄超过20岁的人的年龄总和:
执行结果:
avg用途: 传回选取的结果集中值的平均值。已忽略 Null 值。 语法:
例: “Persons”表中原始数据如下:
选取”Persons”表中所有人的平均年龄:
执行结果:
选取”Persons”表中年龄超过20岁的人的平均年龄:
执行结果:
max用途: 传回选取的结果集中值的最大值。已忽略 Null 值。 语法:
例: “Persons”表中原始数据如下:
选取”Persons”表中的最大年龄:
执行结果:
min用途: 传回选取的结果集中值的最小值。已忽略 Null 值。 语法:
例: “Persons”表中原始数据如下:
选取”Persons”表中的最小年龄:
执行结果:
算术函数abs用途: 传回指定数值表达式 (Numeric Expression) 的绝对正值。 语法:
例:
执行结果:
ceil用途: 传回大于等于给定数值表达式的最小整数。 语法:
例:
执行结果:
floor用途: 传回小于或等于给定数值表达式的最大整数。 语法:
例:
执行结果:
cos用途: 在指定表达式中传回指定角度 (以弪度为单位) 的三角余弦值的数学函数。 语法:
例:
执行结果:
cosh用途: 传回以弧度为单位的角度值,其余弦为指定的 float 表达式,也称为反余弦。 语法:
例:
执行结果:
sin用途: 以近似的数值 (float) 表达式传回给定角度 (以弧度) 之三角正弦函数 (Trigonometric Sine)。 语法:
例:
执行结果:
sinh用途: 传回以弪度为单位的角度,其正弦为指定的 float 表达式 (也称为反正弦)。 语法:
例:
执行结果:
tan用途: 传回输入表达式的正切函数。 语法:
例:
执行结果:
tanh用途: 传回以弪度为单位的角度,其正切为指定的 float 表达式 (也称为反正切)。 语法:
例:
执行结果:
exp用途: 传回给定的 float 表达式的指数 (Exponential) 值。 语法:
例:
执行结果:
log用途: 传回给定的 float 表达式之自然对数。 语法:
例:
执行结果:
power用途: 传回给定表达式指定乘幂的值。 语法:
例:
执行结果:
sign用途: 传回给定的表达式之正 (+1)、零 (0) 或负 (-1) 号。 语法:
例:
执行结果:
sqrt用途: 传回给定表达式的平方。 语法:
例:
执行结果:
|
浙公网安备 33010602011771号