设为首页 收藏本站
查看: 2385|回复: 6

[经验分享] SQL基础2

[复制链接]
累计签到:315 天
连续签到:1 天
发表于 2012-9-6 14:18:20 | 显示全部楼层 |阅读模式
  1 --聚合函数MAX(最大值)、MIN(最小值)、AVG (平均值)、SUM (和)、COUNT(数量:记录的条数。)  
2
  
3
--查询数学成绩中最高分是多少分  
4
select max(fMath) as 数学成绩最高分 from MyStudent  
5
  
6
--求总分  
7
select sum(fMath) as 总分 from MyStudent
8
  
9
--求平均分(对空值不处理)
10
select avg(fMath) as 平均分 from MyStudent
11

12
--求班级中总的记录条数(总人数)也不考虑空值
13
select count(*) as 总人数 from MyStudent
14

15
16
-----------多条件查询----------
17

18
--查询年龄在20--30岁之间的男学生
19
select
20
*
21
from MyStudent
22
where age between 18 and 30 and gender=''
23
---between 18 and 30 也相当于是>=18 and <=30
24

25
--查询班级id为1 2 3的所有学生
26
   select * from Student
27
   where ClassId=1 or ClassId=2 or ClassId=3
28
--可以用in()替代多个or
29
   select * from Student
30
   where ClassId in(1,2,3)
31
   
32
------------模糊查询------------
33

34 --查询出所有姓‘赵’的同学
35
--通配符%表示;任意多个任意字符
36
select * from MyStudent where name like '赵%'
37

38 --查询出姓名中包含‘敏’字的同学
39
select * from MyStudent where name like '%敏%'
40

41
--查询出所有姓‘赵’的同学,并且姓名是三个字的
42
--通配符_ 表示任意的单个字符
43
select * from MyStudent where name like '赵__'
44

45
--查询出姓名中包含‘赵’或‘云’的人的姓名
46
--通配符[]表示括号中的任一个字符 只选一个匹配
47
select * from MyStudent where name like '[赵云]'
48

49
--表示X与Y之间只要不是'赵'或‘云’的任意单个字
50
--[^]表示除了中括号中的任意单个字符
51
select * from MyStudent where name like '[^赵云]'
52

53 --查询姓名中包含%的
54
--用[]括起来,就表示转义
55
select * from MyStudent where name like '[%]'  
56

57
--查询出所有不姓赵的同学
58
select * from MyStudent where name not like '赵%'
59

60 --查询出学生成绩中数学成绩为空的人
61
--null在数据库中表示unkonw(不知道),判断一个值是否为null,也就不能用=或者<>来判断
62
select * from MyStudet where Math=null
63

64
--null与null比较结果还是null(null就表示不知道,"不知道"在where中就认为是false,所以不返回任何数据)
65
select * from MyStudent where Math<>null  
66

67
--查询所有math为非null的值
68
select * from MyStudent where Math id not null
69

70
71
select * from tblstudent group by TSGENDER
72
--请从学生表中查询出每个班的班级Id和班级中男同学的人数:
73
select
74
   tsclassid as 班级id,
75
   count(*) as 班级人数
76
from TblStudent
77
where tsgender=''
78
group by tsclassid
79
--一般分组语句group by 都要与聚合函数配合使用,如果没有聚合函数,分组的意义不大。
80

81 --当在select查询语句中出现聚合函数时,这时不能在select查询中再出现其他列,除非:该列也在group子句中出现或者也在聚合函数中出现。
82

83

84
85
--请从学生表中查询出每个班的班级Id和班级中男同学的人数并且班级人数大于2:
86
select
87
   tsclassid as 班级id,
88
   count(*) as 班级人数
89
from TblStudent
90
where tsgender=''
91
group by tsclassid
92
having count(*)>2
93

94
  --having语句后能跟什么列,主要看:分组后得到的结果集中包含什么列。
95
  
96
---------执行的顺序------
97
select
98
     --distinct / top 之类的关键字(这些都是一些现实的选项)
99
     fgender as 性别,  --5>选择列
100
     count(*) as 人数
101
from MyStudent --1>先从MyStudent表中拿到数据(全部数据的一个结果集)
102
where fage>30  --2>从MyStudent的数据中筛选出所有年龄大于30岁的人的信息(新结果集,都是年龄大于30的)
103
group by fgender --3>按照性别分组,分完组以后又得到一个新结果集(分组后的结果)
104
having count(*)>355 --4>基于分组以后的结果集,然后在筛选,筛选出那些组中记录大于500的组。
105
order by  人数 desc--6>最后把显示出来的结果排序
106

107
108
--------------类型转换---------------
109
--select 100+'hello'
110 select cast(100 as varchar(10))+'hello'
111
112 select convert(varchar(10),100)+'hello'
113
114
select convert(varchar(50),getdate())
115
select convert(varchar(50),getdate(),101)
116
select convert(varchar(50),getdate(),100)
117 select convert(varchar(50),getdate(),111)
118
select convert(varchar(10),getdate(),126)
119

120

121
122
----------------联合----------------------
123
--union 的作用就是将多个结果集并到了一起
124 select tsName,tsAge from tblstudent
125 union all
126
select TTName,tTAge from DATA.dbo.TblTeacher
127

128
--联合要注意的地方
129
--1.多个结果集中的列的数据类型必须一一对应
130
--2.列的个数必须一样
131 --联合的时候如果只写union 则会去除重复数据,如果写unoin all 则不会去除重复的数据
132
133

134
--假设有个销售表,请查询出每个销售员的销售总金额以及总的销售金额
135
--要求:总的销售金额显示在表的底部
136
select
137
    销售员,
138
     销售金额=sum(销售数量*销售价格)
139
from MyOrders
140
group by 销售员
141
union all
142
select '总销售额:',sum(销售价格*销售数量)
143
from MyOrders
144

145

146

147
-----------字符串函数----------------
148
select len('长度abc') --返回字符的个数   5
149
select datalength('长度abc')  --返回是字节的个数 7
150
select lower('Abc')  --返回abc
151
select upper('Abc')  --返回ABC
152

153
--LTRIM():字符串左侧的空格去掉
154
--RTRIM () :字符串右侧的空格去掉
155

156
select '==========='+rtrim(ltrim('     aaa       '))+'==============='
157
--返回===========aaa===============
158

159
--LEFT()、RIGHT()  截取取字符串
160
select left('abcdefg',2)  --返回ab
161
select right('abcdefg',2) --返回fg
162

163
--SUBSTRING(string,start_position,length),索引从1开始。
164
select substring('abcdefg',2,3)  --返回bcd
165

166

167
168
---------- 日期函数------------
169 --getdate 取得当前日期时间
170
select getdate() --2012-08-23 18:09:00.540
171
--DATEADD (datepart , number, date ),计算增加以后的日期。参数date为待计算的日期;参数number为增量
172 --参数datepart为计量单位
173

174 select dateadd(month,2,getdate())--2012-10-23 18:09:13.527
175

176
--DATEDIFF ( datepart , startdate , enddate ) :计算两个日期之间的差额。 datepart 为计量单位
177 select datediff(second,'2012-08-23 18:09:00.540','2012-8-23 18:09:17.527') --17 minute 分
178

179
--DATEPART (datepart,date):返回一个日期的特定部分
180 --Month()、year()、day()来代替
181 select year(getdate())  --2012

ps:
   此文为转载文档,仅供本姑娘学习之用。





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-1089-1-1.html 上篇帖子: SQL基础 下篇帖子: SQL基础3——子查询 查询 between 平均值 最大值
累计签到:315 天
连续签到:1 天
 楼主| 发表于 2012-9-6 14:27:07 | 显示全部楼层

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-15 17:45:48 | 显示全部楼层
走过了年少,脚起了水泡

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-17 06:33:03 | 显示全部楼层
找不到恐龙,就用蜥蜴顶

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-18 13:39:07 | 显示全部楼层
所有的男人生来平等,结婚的除外。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-19 20:44:09 | 显示全部楼层
有事秘书干,没事干秘书!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-21 09:41:40 | 显示全部楼层
在一辆拥挤的公车上,一位女郎忽然叫了起来:别挤啦!别挤啦!把人家的奶都挤出来啦!(她拿着酸奶呢)。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表