1.查询数据
查询指定表或查询指定数据库下的指定表
select * from 数据库名.表名
查询指定数据库下的指定表中的指定数据
select 需要查询的数据名称 from 数据库名.表名
如图所示,每次查询时需要从这个框中选择需要查询的数据库。如果不选择,则系统使用默认数据库。如果默认数据库并非现在需要查找的数据库则会报错。
2.对数据进行排序
select 需要查询的数据名称
from 数据库名.表名
order by 需要排序的数据 desc
order by是按照升序进行排序,desc则是降序,asc也是按升序。这两个单词都需要放在需要查询的数据后面
select first_name,last_name,city
from sales.customers
order by len(first_name)asc
图一为没有使用order by对查询出来的数据进行排序,图二为使用order by,len()函数对名称进行排序的。len()是一个函数,它可以计算出这些数据的长度。asc则是数据按升序进行排序
select first_name,last_name,city
from sales.customers
order by 3,1 asc
可以使用数字代表select后面需要查询的数据
3.限制返回行数
1.Server select Top语句
select top 10 percent first_name,last_name,city
from sales.customers
order by 3,1 asc
添加了percent之后在查询是指查询所有数据的前百分之XX
top指需要查询多少行,percent指百分之多少,查询数据的百分之多少。top 10 with ties拿最后一行的数据去数据库中找相同的数据。
select top 10 first_name,last_name,city
from sales.customers
order by 3,1 asc
以上两张图片分别为查询所有数据的前几行,以及查询数据的前百分之几
2.Server Offset Fetch
offset和fetch子句是order by子句的选项。他们用于限制查询返回的行数。必须将offset和fetch子句与order by子句一起使用,offset和fetch子句比top子句更适合实现查询分页解决方案
select product_name,list_price
from production.products
order by list_price
offset 0 rows (从第几行开始)
fetch next 10 rows only (到第几行结束)
offset指从低几行开始,fetch next指到第几行结束
3.分页查询
select *from production.products
order by product_id
offset (num-1)*pagsize rows
fetch next pagsize rows only
offset(需要查询的页数-1)*需要查询的行数
fetch next需要查询的行数rows only
4.过滤数据
1.Select Distinct子句
select distinct first_name from sales.customers
order by first_name
当需要查询的数据具有多条重复数据,同时你又不需要这些重复的数据时,可以使用distinct对数据进行过滤,distinct需要放在select后面才能起作用。
对比以上两张图片,你会发现图片一中的重复的姓名都只剩下一个。
2.where子句
select * from
sales.customers
where state='CA'and city='Campbell'
where后面跟需要过滤的条件,and作用和逗号一样
where子句中,指定搜索条件可以过滤的from子句返回的行,where子句仅返回导致搜索条件计算为true的行。搜索条件是逻辑表达式或多个逻辑表达式的组合
3.and查找满足两个条件的行
and是一个逻辑运算符,用于组合两个布尔表达式
select * from
production.products
where list_price<=3000
or list_price>=5000 and model_year=2017
以上代码中及使用了and,也使用了or。大概意思为:我想要查找一个价格在3000到5000之间的品牌,并且产品的创建年份为2017年
4.or查找满足任意一个条件的行
or查找满足任意一个满足条件的行
or与and不同的地方在于,and需要全部满足时才会显示,而or只需要满足一个条件就可以显示出来。and的优先级大于or