SQL知识点总结

数据库语法


1.从表中选取 LastName 列的数据:

Select LastName from persons

· SELECT - 从数据库表中获取数据

· UPDATE - 更新数据库表中的数据

· DELETE - 从数据库表中删除数据

· INSERT INTO - 向数据库表中插入数据

2..获取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表)

Select lastName , FirsName from persons   (查询的两个字段之间用逗号隔开)

3.查询表persons中的所有数据

Select * from Persons

关键词 DISTINCT 用于返回唯一不同的值。

Select distinct  列名称 from  表名称

WHERE 子句

如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。

Select 列名称 from 表名称 where 列 运算符 值

 

如果只希望选取居住在城市 "Beijing" 中的人,我们需要向 SELECT 语句添加 WHERE 子句:

Select *from persons where city = Beijing

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。

AND 和 OR 运算符

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

使用 AND 来显示所有姓为 "Carter" 并且名为 "Thomas" 的人:

Select *from persons where lastaName = carter  and fIrstName = Thomas

使用 OR 来显示所有姓为 "Carter" 或者名为 "Thomas" 的人:

Select *from Persons where lastaName = carter or firstName = Thomas

我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式):

Select *from Persons where (lastaName = carter or firstName = Thomas) and lastaName = carter

ORDER BY 语句

ORDER BY 语句用于根据指定的列对结果集进行排序。

ORDER BY 语句默认按照升序对记录进行排序。

如果您希望按照降序对记录进行排序,可以使用 DESC 关键字;ASC升序

 

以字母顺序显示公司名称(Company),并以数字顺序显示顺序号(OrderNumber):

Select Company , orderNumber from Orders ORBER BY Company ,

OrderNumber

以逆字母顺序显示公司名称:

SELECT Company , orderNumber From Orders ORDER BY Company desc

TOP 子句

TOP 子句用于规定要返回的记录的数目。

SQL Server 的语法:

SELECT TOP number|percent column_name(s)

FROM table_name

SQL TOP 实例

现在,我们希望从上面的 "Persons" 表中选取头两条记录。

我们可以使用下面的 SELECT 语句:

SELECT TOP 2 * FROM Persons

SQL TOP PERCENT 实例

现在,我们希望从上面的 "Persons" 表中选取 50% 的记录。

我们可以使用下面的 SELECT 语句:

SELECT TOP 50 PERCENT * FROM Persons

 

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

SQL LIKE 操作符语法

SELECT column_name(s)

FROM table_name

WHERE column_name LIKE pattern

 

LIKE 操作符实例

例子 1

现在,我们希望从上面的 "Persons" 表中选取居住在以 "N" 开始的城市里的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons

WHERE City LIKE 'N%'

提示:"%" 可用于定义通配符(模式中缺少的字母)。

例子 2

接下来,我们希望从 "Persons" 表中选取居住在以 "g" 结尾的城市里的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons

WHERE City LIKE '%g'

例子 3

接下来,我们希望从 "Persons" 表中选取居住在包含 "lon" 的城市里的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons

WHERE City LIKE '%lon%'

例子 4

通过使用 NOT 关键字,我们可以从 "Persons" 表中选取居住在不包含 "lon" 的城市里的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons

WHERE City NOT LIKE '%lon%'

 

SQL 通配符

在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。

SQL 通配符必须与 LIKE 运算符一起使用。

SQL 中,可使用以下通配符:

通配符

描述

%

替代一个或多个字符

_

仅替代一个字符

[charlist]

字符列中的任何单一字符

[^charlist]

或者

[!charlist]

不在字符列中的任何单一字符

使用 % 通配符

例子 1

现在,我们希望从上面的 "Persons" 表中选取居住在以 "Ne" 开始的城市里的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons

WHERE City LIKE 'Ne%'

例子 2

接下来,我们希望从 "Persons" 表中选取居住在包含 "lond" 的城市里的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons

WHERE City LIKE '%lond%'

使用 _ 通配符

例子 1

现在,我们希望从上面的 "Persons" 表中选取名字的第一个字符之后是 "eorge" 的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons

WHERE FirstName LIKE '_eorge'

例子 2

接下来,我们希望从 "Persons" 表中选取的这条记录的姓氏以 "C" 开头,然后是一个任意字符,然后是 "r",然后是任意字符,然后是 "er"

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons

WHERE LastName LIKE 'C_r_er'

使用 [charlist] 通配符

例子 1

现在,我们希望从上面的 "Persons" 表中选取居住的城市以 "A" "L" "N" 开头的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons

WHERE City LIKE '[ALN]%'

例子 2

现在,我们希望从上面的 "Persons" 表中选取居住的城市不以 "A" "L" "N" 开头的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons

WHERE City LIKE '[!ALN]%'

IN 操作符

IN 操作符允许我们在 WHERE 子句中规定多个值。

SQL IN 语法

SELECT column_name(s)

FROM table_name

WHERE column_name IN (value1,value2,...)

IN 操作符实例

现在,我们希望从上表中选取姓氏为 Adams Carter 的人:

我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons

WHERE LastName IN ('Adams','Carter')

BETWEEN 操作符

操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。

SQL BETWEEN 语法

SELECT column_name(s)

FROM table_name

WHERE column_name

BETWEEN value1 AND value2

 

BETWEEN 操作符实例

如需以字母顺序显示介于 "Adams"(包括)和 "Carter"(不包括)之间的人,请使用下面的 SQL

SELECT * FROM Persons

WHERE LastNameBETWEEN 'Adams' AND 'Carter'

重要事项:不同的数据库对 BETWEEN...AND 操作符的处理方式是有差异的。某些数据库会列出介于 "Adams" "Carter" 之间的人,但不包括 "Adams" "Carter" ;某些数据库会列出介于 "Adams" "Carter" 之间并包括 "Adams" "Carter" 的人;而另一些数据库会列出介于 "Adams" "Carter" 之间的人,包括 "Adams" ,但不包括 "Carter"

所以,请检查你的数据库是如何处理 BETWEEN....AND 操作符的!

实例 2

如需使用上面的例子显示范围之外的人,请使用 NOT 操作符:

SELECT * FROM Persons

WHERE LastNameNOT BETWEEN 'Adams' AND 'Carter'

通过使用 SQL,可以为列名称和表名称指定别名(Alias)。

SQL Alias

表的 SQL Alias 语法

SELECT column_name(s)

FROM table_name

AS alias_name

列的 SQL Alias 语法

SELECT column_name AS alias_name

FROM table_name

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值