SQL查询语句

目录

基础语句

DISTINCT

WHERE

AND OR

ORDER BY

TOP

通配符

IN

Alias(别名)

JOIN

UNION


基础语句

DISTINCT

SELECT DISTINCT 列名称 FROM 表名称

表示在查询结果中对该列进行去重,不过,只能指定一个列进行去重。

WHERE

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

选出满足WHERE子句条件的数据。

内置有这些运算符(从w3中复制):

操作符

描述
=等于
<>不等于
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某个范围内
LIKE搜索某种模式

有些版本的SQL中,操作符<>可以写成!=

对于文本,需要用引号

BETWEEN

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

NOT BETWEEN ... AND ...选取范围之外的数据

WHERE name BETWEEN 1 AND 100;

LIKE

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

例如:选取以‘N’开头的城市:

SELECT *FROM Persons WHERE City LIKE 'N%'

这里的%和正则中的*差不多,为通配符,匹配多个任意字符。

通过NOT关键字可以选择不包含在‘lon’的城市里的人。

SELECT * FROM Persons WHERE City NOT LIKE '%lon%';

AND OR

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

例:SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'

ORDER BY

用于根据指定列对结果进行排序

默认按照升序对记录进行排序

用DESC关键字可以指定降序排序

SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumbe

在这个语句中,ORDER BY中有两个属性列,他是先根据Company列先排序,然后在Company列中属性值相等中的数据根据OrderNumber属性进行排序。

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC

这里是前面的根据降序排,后面那个根据升序排。如(取自W3):

CompanyOrderNumber
W3School2356
W3School6953
IBM3532
Apple4698

TOP

SELECT TOP 2 * FROM Persons:取前两条数据

SELECT TOP 50 PERCENT * FROM Persons:取前50%的数据

  • 通配符

通配符描述
%替代一个或多个字符
_仅替代一个字符
[charlist]字符列表中的任何单一字符
[^charlist] 或者 [!charlist]不在字符列表中的任何单一字符

 

 

 

 

 

 

这里要记住的不多,最后两个类似正则里的。除了第一个其他三个都是匹配一个字符串

这里的都要结合LIKE关键词在WHERE子句中使用。

IN

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

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)

Alias(别名)

表的Alias语法

SELECT column_name(s)
FROM table_name AS alias_name

列的Alias语法

SELECT column_name AS alias_name
FROM table_name

例子:

SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p , Product_Orders AS po
WHERE p.LastName='Adams' AND p.FirstName='John'
SELECT LastName AS Family, FirstName AS Name
FROM Persons

列的别名会在展示中的属性名中显示。

JOIN

join用于根据两个或者多个表中的列之间的关系进行查询数据。

这个就是上课学的连接。

FROM Persons INNER JOIN Orders ON Persons.Id_p = Orders.Id_p:将两个表进行自然连接(内连接),在SELECT中选择列需要加上表名.列名

其他连接:

  • JOIN: 如果表中有至少一个匹配,则返回行:等同于INNER JOIN关键字
  • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行:左连接,右边允许空值
  • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行:右连接,左边允许空值
  • FULL JOIN: 只要其中一个表中存在匹配,就返回行:全连接。

 

UNION

用于合并两个或多个SELECT语句的结果集。

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

默认是去重的,在UNION后加一个ALL就不去重了。纵向合并,列名为第一个select语句中的列名。

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值