`
cuichang
  • 浏览: 94642 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

SQL语法手册

阅读更多

Select

用途:

从指定表中取出指定的列的数据

语法:

SELECT column_name(s) FROM table_name

解释:

从数据库中选取资料列,并允许从一或多个资料表中,选取一或多个资料列或资料行。 SELECT 陈述式的完整语法相当复杂,但主要子句可摘要为:

SELECT select_list
[ INTO new_table ]
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]

例:

“Persons” 表中的数据有

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

选出字段名 ” LastName ” 、 ” FirstName ” 的数据

SELECT LastName,FirstName FROM Persons

返回结果 :

LastName

FirstName

Hansen

Ola

Svendson

Tove

Pettersen

Kari

选出所有字段的数据

SELECT * FROM Persons

返回结果 :

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

Where

用途:

被用来规定一种选择查询的标准

语法:

SELECT column FROM table WHERE column condition value

下面的操作符能被使用在 WHERE 中:

=,<>,>,<,>=,<=,BETWEEN,LIKE

注意: 在某些 SQL 的版本中不等号 < > 能被写作为 !=

解释:

SELECT 语句返回 WHERE 子句中条件为 true 的数据

例:

从 ” Persons” 表中选出生活在 ” Sandnes” 的人

SELECT * FROM Persons WHERE City='Sandnes'

"Persons" 表中的数据有 :

LastName

FirstName

Address

City

Year

Hansen

Ola

Timoteivn 10

Sandnes

1951

Svendson

Tove

Borgvn 23

Sandnes

1978

Svendson

Stale

Kaivn 18

Sandnes

1980

Pettersen

Kari

Storgt 20

Stavanger

1960

返回结果 :

LastName

FirstName

Address

City

Year

Hansen

Ola

Timoteivn 10

Sandnes

1951

Svendson

Tove

Borgvn 23

Sandnes

1978

Svendson

Stale

Kaivn 18

Sandnes

1980

And & Or

用途:

在 WHERE 子句中 AND 和 OR 被用来连接两个或者更多的条件

解释:

AND 在结合两个布尔表达式时,只有在两个表达式都为 TRUE 时才传回 TRUE

OR 在结合两个布尔表达式时,只要其中一个条件为 TRUE 时, OR 便传回 TRUE

例:

"Persons" 表中的 原始数据 :

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Svendson

Stephen

Kaivn 18

Sandnes

用 AND 运算子来查找 "Persons" 表中 FirstName 为 ”Tove” 而且 LastName 为 ” Svendson” 的数据

SELECT * FROM Persons WHERE FirstName='Tove' AND LastName='Svendson'

返回结果 :

LastName

FirstName

Address

City

Svendson

Tove

Borgvn 23

Sandnes

用 OR 运算子来查找 "Persons" 表中 FirstName 为 ”Tove” 或者 LastName 为 ” Svendson” 的数据

SELECT * FROM Persons WHERE firstname='Tove' OR lastname='Svendson'

返回结果 :

LastName

FirstName

Address

City

Svendson

Tove

Borgvn 23

Sandnes

Svendson

Stephen

Kaivn 18

Sandnes

你也能结合 AND 和 OR ( 使用括号形成复杂的表达式 ), 如 :

SELECT * FROM Persons WHERE (FirstName='Tove' OR FirstName='Stephen') AND LastName='Svendson'

返回结果 :

LastName

FirstName

Address

City

Svendson

Tove

Borgvn 23

Sandnes

Svendson

Stephen

Kaivn 18

Sandnes

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 字段进行分组,求出每个 Company 的 Amout 的合计:

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 字段进行分组,求出每个 Company 的 Amout 的合计在 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

用 Employees 的 ID 和 Orders 的 ID 相关联选取数据:

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” 中没有相匹配的数据。

Alias

用途:

可用在表、结果集或者列上,为它们取一个逻辑名称

语法:

给列取别名:

SELECT column AS column_alias FROM table

给表取别名:

SELECT column FROM table AS table_alias

例:

“Persons” 表中的原始数据 :

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Pettersen

Kari

Storgt 20

Stavanger

运行下面的 SQL :

SELECT LastName AS Family, FirstName AS Name FROM Persons

返回结果

Family

Name

Hansen

Ola

Svendson

Tove

Pettersen

Kari

运行下面的 SQL :

SELECT LastName, FirstName FROM Persons AS Employees

返回结果

Employees 中的数据有:

LastName

FirstName

Hansen

Ola

Svendson

Tove

Pettersen

Kari

Insert Into

用途:

在表中插入新行

语法:

插入一行数据

INSERT INTO table_name VALUES (value1, value2,....)

插入一行数据在指定的字段上

INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....)

例:

“Persons” 表中的原始数据 :

LastName

FirstName

Address

City

Pettersen

Kari

Storgt 20

Stavanger

运行下面的 SQL 插入一行数据:

INSERT INTO Persons VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes')

插入后 ”Persons” 表中的数据为

LastName

FirstName

Address

City

Pettersen

Kari

Storgt 20

Stavanger

Hetland

Camilla

Hagabakka 24

Sandnes

运行下面的 SQL 插入一行数据在指定的字段上:

INSERT INTO Persons (LastName, Address) VALUES ('Rasmussen', 'Storgt 67')

插入后 ”Persons” 表中的数据为

LastName

FirstName

Address

City

Pettersen

Kari

Storgt 20

Stavanger

Hetland

Camilla

Hagabakka 24

Sandnes

Rasmussen

Storgt 67

Update

用途:

更新表中原有数据

语法:

UPDATE table_name SET column_name = new_value WHERE column_name = some_value

例:

“Person” 表中的原始数据 :

LastName

FirstName

Address

City

Nilsen

Fred

Kirkegt 56

Stavanger

Rasmussen

Storgt 67

运行下面的 SQL 将 Person 表中 LastName 字段为 ”Rasmussen” 的 FirstName 更新为 ”Nina” :

UPDATE Person SET FirstName = 'Nina' WHERE LastName = 'Rasmussen'

更新后 ”Person” 表中的数据为

LastName

FirstName

Address

City

Nilsen

Fred

Kirkegt 56

Stavanger

Rasmussen

Nina

Storgt 67

同样的,用 UPDATE 语句也可以同时更新多个字段:

UPDATE Person SET Address = 'Stien 12', City = 'Stavanger' WHERE LastName = 'Rasmussen'

更新后 ”Person” 表中的数据为

LastName

FirstName

Address

City

Nilsen

Fred

Kirkegt 56

Stavanger

Rasmussen

Nina

Stien 12

Stavanger

Delete

用途:

删除表中的数据

语法:

DELETE FROM table_name WHERE column_name = some_value

例:

“Person” 表中的原始数据 :

LastName

FirstName

Address

City

Nilsen

Fred

Kirkegt 56

Stavanger

Rasmussen

Nina

Stien 12

Stavanger

删除 Person 表中 LastName 为 ”Rasmussen” 的数据:

DELETE FROM Person WHERE LastName = 'Rasmussen'

执行删除语句后 ”Person” 表中的数据为

LastName

FirstName

Address

City

Nilsen

Fred

Kirkegt 56

Stavanger

Create Table

用途:

建立新的资料表。

语法:

CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, ....... )

例:

创建一张叫 “Person” 的表,该表有 4 个字段 "LastName", "FirstName", "Address", "Age" :

CREATE TABLE Person ( LastName varchar, FirstName varchar, Address varchar, Age int )

如果想指定字段的最大存储长度,你可以这样:

CREATE TABLE Person ( LastName varchar(30), FirstName varchar(30), Address varchar(120), Age int(3) )

下表中列出了在 SQL 的一些数据类型:

Data Type

Description

integer(size)
int(size)
smallint(size)
tinyint(size)

Hold integers only. The maximum number of digits are specified in parenthesis.

decimal(size,d)
numeric(size,d)

Hold numbers with fractions. The maximum number of digits are specified in "size". The maximum number of digits to the right of the decimal is specified in "d".

char(size)

Holds a fixed length string (can contain letters, numbers, and special characters). The fixed size is specified in parenthesis.

varchar(size)

Holds a variable length string (can contain letters, numbers, and special characters). The maximum size is specified in parenthesis.

date(yyyymmdd)

Holds a date

Alter Table

用途:

在已经存在的表中增加后者移除字段

语法:

ALTER TABLE table_name ADD column_name datatype ALTER TABLE table_name DROP COLUMN column_name

注意:某些数据库管理系统不允许移除表中的字段

例:

“Person” 表中的原始数据 :

LastName

FirstName

Address

Pettersen

Kari

Storgt 20

在 Person 表中增加一个名为 City 的字段:

ALTER TABLE Person ADD City varchar(30)

增加后表中数据如下:

LastName

FirstName

Address

City

Pettersen

Kari

Storgt 20

移除 Person 表中原有的 Address 字段

ALTER TABLE Person DROP COLUMN Address

移除后表中数据如下:

LastName

FirstName

City

Pettersen

Kari

Drop Table

用途:

在数据库中移除一个数据表定义及该数据表中的所有资料、索引、触发程序、条件约束及权限指定。

语法:

DROP TABLE table_name

Create Database

用途:

建立新的数据库 .

语法:

CREATE DATABASE database_name

Drop Database

用途:

移除原有的数据库

语法:

DROP DATABASE database_name

聚集函数

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

分享到:
评论

相关推荐

    SQL语法手册.pdf

    SQL 语法手册 SQL 语法手册是数据库管理系统中使用的一种标准语言,用于管理、操作和访问数据库中的数据。本手册将详细介绍 SQL 语法的基本结构和使用方法。 一、SELECT 语句 SELECT 语句是 SQL 语法中最基本的一...

    SQL语法手册SQL语法手册

    SQL语法手册 Select 用途 从指定表中取出指定的列的数据 语法:SELECT column_name(s) FROM table_name 解释: 从数据库中选取资料列,并允许从一或多个资料表中,选取一或多个资料列或资料行。SELECT 陈述式的...

    SQL语法手册.rar

    《SQL语法手册》是针对Oracle数据库系统的一本实用教程,非常适合初学者进行深入学习。SQL,全称为Structured Query Language,即结构化查询语言,是用于管理和处理关系数据库的标准语言。Oracle作为世界上最流行的...

    人大金仓 KingbaseES V8 手册 及 sql语法手册

    本手册和SQL语法手册是学习和操作KingbaseES V8的重要参考资料。 在KingbaseES V8中,用户可以接触到以下几个核心知识点: 1. **数据库管理系统基础**:理解数据库管理系统的概念,包括数据存储、数据查询、事务...

    SQL语法手册 SQL语法手册

    以上是SQL语法手册中的核心知识点,通过学习和实践,你将能够熟练运用SQL进行数据的管理与分析。在实际工作中,不断探索和理解更复杂的SQL特性,如窗口函数、分区、物化视图等,将有助于提升你的数据库操作能力。

    sql 语法 手册 sql 语法 手册

    ### SQL语法手册精解 #### 一、SELECT语句详解 **用途与基本语法** `SELECT`语句是SQL中最核心的功能之一,主要用于从数据库中提取数据。它可以从一个或多个表中选择特定的列或行,是进行数据查询的基础。 **...

    informix SQL语法手册

    Informix SQL语法手册不仅包含了基本的SQL命令使用方法,还涉及了复杂的查询操作、数据控制以及系统安全等方面的知识。对于使用Informix数据库的开发人员来说,这是一份不可或缺的参考资料。通过深入学习和实践,...

    oracle 常用SQL语法手册.doc

    Oracle 常用 SQL 语法手册 Oracle 是一种关系数据库管理系统, SQL(Structured Query Language)是 Oracle 数据库管理系统的标准语言。下面是 Oracle 常用 SQL 语法手册的知识点总结: 一、SELECT 语句 SELECT ...

    PL/SQL 语法手册

    《PL/SQL 语法手册》全面涵盖了SQL与PL/SQL的相关语法,是数据库开发者和管理员的重要参考资料。手册分为两大部分,分别对SQL语法和PL/SQL语法进行了详细讲解。 第一部分,SQL语法部分,主要涉及以下关键语句和概念...

    SQL语法手册.htm

    一个比较实用的SQL语法手册,概括了SQL的一基本用法,对初学者相当有帮助哦

    sql 语法手册学习

    以上是对SQL语法手册中的基础知识和重要知识点进行了详细的总结和解释,涵盖了从创建表到数据查询等各个方面的内容。通过这些知识点的学习,可以帮助用户更好地理解和掌握SQL语言的基础用法,从而在实际工作中更加...

    SQL语法手册 示例 代码

    本SQL语法手册提供的示例代码覆盖了上述所有概念,开发者可根据实际情况进行查阅和实践,以提升SQL技能。通过深入理解和熟练运用这些知识,可以更有效地管理数据库,提升应用的性能和用户体验。

    T-SQL 语法手册

    T-SQL,全称Transact-SQL,是SQL语言的一个扩展,主要被Microsoft SQL Server所使用。它是数据库管理员、开发人员进行数据查询、更新、管理等操作的核心工具。...这个T-SQL语法手册将是你探索和提升SQL技能的重要资源。

    SQL语法手册和java编码规范

    SQL语法手册和java编码规范标准版,易读易懂,与广大同为初学者共享!

Global site tag (gtag.js) - Google Analytics