sql server 查询语句基础

SELECT 查询语句基础

查询语法如下:
SELECT  [  ALL  |  DISTINCT  ]   [  TOP  (<表达式>)  [  PERCENT  ]  [  WITH  TIES  ]  ] < 列名... >
[  FROM  <数据来源的表名 > ]
[  WHERE <  限制条件 > ]
[  GROUP BY  <  列名... > ]
[  HAVING < 基于 “ 聚合 ” 的限制条件 > ]
[  ORDER BY < 列名... >]
[  [ FOR XML  {RAW  |  AUTO  |  EXPLICIT |  PATH   [  ( < 元素 > )  ]  }  ]  [ ,  XMLDATA ][, ELEMENTS  ]  [  ,   BINARY base  64] ]  
[  OPTION (< 查询提示>,  [ , ...n] )  ]

现在看不懂语法没有关系,等到慢慢学习后逐渐就会明白了。

SELECT(查询)

FROM *
SELECT [表名]
--或者是
FROM [列名...]
SELECT [表名]
“ * ”号表示所有列

WHERE(条件)

查询满足条件的数据
SELECT [表的列名]
FROM [表名]
WHERE [列名]=[值]

LIKE(相似)运算符

WHERE c_name LIKE '王%'
“%”号表示任意字符串
使用该语句就可以查询到所有姓王的人

IN (匹配) 运算符

WHERE name IN('张三','李四','王五')
姓名name与括号内任意一项相同都可以被查询到

BETWEEN 运算符

WHERE price BETWEEN 100 AND 200
价格在100和200之间的所有数据项都可以被查询到

ORDER BY (排序规则)

SELECT *
FROM tablename
ORDER BY name DESC,price ASC  --先按照name降序排列,如果name相同再按照price升序排列,依次类推(默认升序排列)
DESC:降序排列
ASC:升序排列
如果有WHERE语句,ORDER BY 语句应该放在其后面。

GROUP BY (聚合)

SELECT c_name,SUM(score)
FROM scores
GROUP BY c_name
以上表示查询name相同的score和,即每个人的总分,要聚合显示的列必须跟在GROUP BY 后面
使用GROUP BY 子句时,必须要使用聚合函数

聚合函数

聚合函数一般和GROUP BY 子句配合使用
SUM(求和),AVG(平均值),MIN(最小值),MAX(最大值)

COUNT(*)
SELECT g_Discount, COUNT(*)
FROM Goods
GROUP BY g_Discount
查询g_Discount列相同值得总数
聚合函数会忽略null值,如果使用聚合函数的那列有null值,那么那一项数据就不会加以计算,
大家一定要小心哟,只有下列情况不会忽略
SELECT COUNT(*)
FROM tablename
返回这个表总共有多少条数据

HAVING

SELECT c_name, SUM(score)
FROM tablename
GROUP BY c_name
HAVING COUNT(*)>=200
当你条件中想使用“聚合”的结果时就必须使用该子句
比如你想查询总分大于等于200的学生的姓名

DISTINCT

SELECT DISTINCT c_name 
FROM tablename

去除重复行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值