sql server(查询)

限制查询结果为前几行(利用TOP关键字)

'''
SELECT TOP 5 prod_name
FROM Products;
'''

排序(ORDER BY)

order by 必须是select语句中的最后一条语句

'''
SELECT prod_id,prod_price,prod_name
FROM Products
ORDER BY prod_price,prod_name;
'''

按列位置排序

'''
SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY 2,3;
'''

排序方向

'''
SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price DESC*/--按照价格降序排列
'''

注:DESC只作用于位于其前面的列名,若想对多列进行排序,必须每个字段后都指定DESC,ASC为默认,可不进行指定

过滤数据

select语句的where 子句指定的搜索条件

注:在同时使用order by和where语句时,应该让order by 位于where之后

高级过滤数据

--and操作符

'''
select prod_id,prod_price,prod_name
from products
where vend_id='DLL01' AND prod_price<=4;
'''

--or操作符

'''
select prod_name,prod_price
from products
where vend_id='DLL01' OR vend_id='BRS01';
'''

注:求值顺序and>or,所以必要时要加括号

'''
SELECT prod_name,prod_price
FROM products
WHERE (vend_id='DLL01' OR vend_id='BRS01')
AND prod_price>=10;
'''

--IN操作符

注:表示“属于”的含义,圆括号内由逗号分割开来的是范围,若所要搜索的内容在其范围内,则可进行匹配,功能与OR相当

'''
select prod_name,prod_price
from products
where vend_id in('DLL01','BRS01')
ORDER BY prod_name;
'''

--not 操作符(作用于where子句中)

1.not +条件:表示匹配除了这个条件之外的情况

'''
elect prod_name
from products
where not vend_id='DLL01'
order by prod_name;
'''

2.not in:表示“不属于”,不在此范围之内

通配符过滤

--%通配符,可匹配,0个,1个或多个字符,不会匹配产品名称为NULL的行

'''
select prod_id,prod_name
from Products
where prod_name like 'Fish%'
'''
'''
select prod_id,prod_name
from Products
where prod_name like '%bean bag%'
'''
'''
select prod_name
from Products
where prod_name like 'F%y'
'''

“-”下划线通配符:匹配任意单个字符

'''
select prod_id,prod_name
from Products
where prod_name like '___inch teddy bear';
'''

方括号通配符:用来指定一个字符集,他必须匹配指定位置(通配符的位置)的一个字符

'''
select cust_contact
from Customers
where cust_contact like '[JM]%'--表示已J或者M开头的
ORDER BY cust_contact
---若在JM方括号内接一个“^”表示不以JM开头
'''

你可能感兴趣的:(sql server(查询))