数据初级常见关键字

×
 
 
一、select语句(单个表)

1.最简单的查询:

select * from [where ]

select column1,column2....from [where]

这里需要注意的是where子句中条件过滤使用到的关键字,比如用到逻辑运算符like 中的’%‘(匹配一个或多个字符)和’_‘(仅匹配一个)等。这个在新闻发布系统中也有用到。

例如:按标题搜索:

?
1
2
3
Select top 10 n.id,n.title,n.createtime,c.[ name ]  
from news n inner join category c on c.caid=c.id  
where n.title like '%' + @title + '%'

当然还有很多,例如between,not ,in等关键字的使用也很重要。

2.DISTINCT关键字

这个关键字,主要用来取出列中唯一的值,比如:记录中的一个字段值(city)如果有重复(廊坊,北京,廊坊,北京),那么利用DISTINCT关键字取出唯一值,即任何重复的值只计数一次,结果为为:(廊坊,北京)。

?
1
select DISTINCT city from [ table ]

3.使用别名

利用别名可以显示我们想要的名字,方便阅读。select city as 城市 from ...

4.group by 和having子句

group by 用来对查询到的结果集进行分组,必须位于select语句中的from子句或where子句之后。

having子句类似于where子句,紧跟在group by子后,作为一个查询条件。

与where子句的区别:where子句作用于一条记录中的查询条件,而having子句则作用于一列的查询条件

例如:

?
1
2
select  location from citytable  where city= '北京'  --查询城市名为‘北京’的城市的位置
select city group by city having count (memberId)>=3 --查询城市成员总数大于等于3的城市,同时按城市名分组

二、多表查询

1、inner join

要求,查询的多张表中必须具有相同的匹配项。其中on表示作用的表的条件,n,c 为别名

?
1
2
3
4
Select
From news n 
Inner join category c 
  on c.caid=c.id

要执行的查询结果必须是在两张表中同时含有相同的类别号的记录才会被查询出来。

例如:以牛腩视频中例子为例:

category表中id表示新闻类别的id ,而news表中的caid则表示该新闻属于具体哪个类别

\

\

那么执行上面查询语句后的结果:

inner join表

\

可以看到结果为类别号在两张表中均存在的项。inner join还包括等值联合和不等值,这主要由on后面的条件决定

2.left join

左外连接:连接时,on条件左边表所有项均查询出来,而右边表中若无匹配项,则以null代替

上面两张表,执行

?
1
select * from category c left join news n on  c.id=n.caid

结果为:

\

3.right join

顾名思义,右外连接结果与left join相反,将右边表所有项查询出来,而左边表中无匹配项的则以null代替。

4.full join

无论左边还是右边所有项均返回结果。无对应项以null代替。

三、其它

除了以上涉及到的查询关键字外,还涉及到了嵌套查询,in关键字的使用,对sql记录进行编号排序后按顺序查询等。利用

?
1
SELECT ROW_NUMBER() OVER ( ORDER BY id desc ) AS Row --Row为别名
以上只是涉及到了一部分的查询关键字的总结,也是经常用到的,逐渐学习,才发现原来的知识还是应该不断的回忆和应用才能发现它更深一层应用的含义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值