随机函数

  select rand()

    declare @age int

    set @age = rand()*100

    select @age

数据类型转换

  declare @birthday datatime

  set @birthday = getdate()

  select convert (varchar,@birthday)

时间函数

  select getdate()

  select convert(varchar(4),Year(getdate()))

  select dateadd(dd,2(getdate())) 日

  select dateadd(mm,2(getdate())) 月

select dateadd(yy,2(getdate()))   年

  select datediff(day,'2005-3-4',(getdate()))  计算给定日期和现在日期相差天数

流程控制语句

  判断语句

  if 条件…… else……

  case  条件  when  5  then ……

       when 6 then……

          else …… end

  case when @scroe<60 then ....

  循环 while (条件)

    begin

    ……

    end

实例:

declare @time int, @a varchar(100) set @time=0 set @a='*' while (@time<20) begin print @a set @a+='*' set @time+=1 end

动态构造SQL语句

  declare @tableName nvarchar(20)

  set @tableName='T'+convert(varchar(4),Year(getdate()))+'年'+convert(varchar(2),Month(getdate()))+'月'+convert(varchar(2),day(getdate()))+'日'

  execute (' create table ' +@tablename+' (studentid int, studentName nvarchar(10)) ')

过滤数据

  使用比较操作符 = > < >= <= <>

  使用字符比较符 like

  % 0个或多个字符串

  —任何单个的字符

  【】在指定区域或集合内的任何单个字符

  【^】不在指定区域或集合内的任何单个字符

  select * from tsudent where sname like '高%'

  select * from tstudent where sname like '_[明,宇]_'

查询未知的值

  select * from tstudent where class is null     --查找班级为空的学生

  select * from tstudent where class is not null   --查找班级不为空的学生

格式化结果集

  排序

  asc  升序   desc降序

实例: select * from tscore order by mark desc

去重  distinct

   select distinct class from tstudent

多表查询

  内连接  select a.*,b.* from student a join score b on a.studentid=b.studentid

左右连接   select a.*,b.* from student a left (right)join score b on a.studentid=b.studentid

数据分组和汇总

TOP n 列出前n行记录

  select top 5 * from tstudent order by Birthday

使用聚集函数

count(*) count(列) sum min max avg

  select count(*) from tstudent

  统计表中class列不为空的记录数量   select count(class) from tstudent

  select avg(mark) from tscore where subjectid=1

group by 使用例子

  select Class,count(*) from tstudent group by Class

select sname,avg(mark) from tscore a join tstudent b on a.studentid=b.studentid group by sname having avg(mark)>77    --having 相当于条件

  多列汇总

  select subjectname,class,sum(mark) from tstudent a join tscore b on a.studentid=b.studentid join tsubject c on b.subjectid=c.subjectid group by subjectname,class with rollup  -- 联合使用group by 子句和操作符rollup,将两列的详细信息和分组汇总

      联合使用cube,将对列出subject那么,class两列进行汇总

  select subjectname,class,sum(mark) from tstudent a join tscore b on a.studentid=b.studentid join tsubject c on b.subjectid=c.subjectid group by     subjectname,class with cube

查找网络管理课程的学生成绩

   select studentid,subjectname, mark from tscore a join tsubject b on a.subjectid=b.subjectid where subjectname='网络管理'

         另一种写法
   
select studentid, sname from tstudent where studentid in (select studentid from
   (select studentid,avg(mark) trt  from tscore group by studentid having avg(mark)<60) as t1)

数据增删改

插入

  insert tstudent values('0000001902','hanligang','男','1414121548554236565','1984-5-12','3234@qq.com','网络班',getdate())

  insert tstudent (studentid,sex,name) values ('454514545','man','jkjdkf')   -- 插入部分数据

  insert tnetwork select * from tstudent where class='网络班'   --将查询的数据插入现有表中

  select studentid,sname,sex,email into TDev from tstudent where calss='网络班'    --将查询的记录创建新的表

删除

  delete tstudent where studentid='24234234'

  delete tstudent where birthday <'1982-1-1'

  delete tstudent where studentid in (select distinct studentid from tscore where mark<60)

  delete tstudent where studentid in (select distinct a.tstudentid  from tstudent a join tscore  b on a.studentid=b.studentid where mark<60)

等价于    delete tstudent from tstudent a join tscore b on a.studentid=b.studentid where mark<60

更新

  update tstudent set sname='hanlignag' where studentid='000000569'

  update tscore set mark=mark+5 from tscore a join tsubject b on a.subjectid=b.subjectid where b.subjectname='软件测试‘ and mark<80

  

SqlServer 学习笔记的更多相关文章

  1. SQLServer学习笔记系列6

    一.写在前面的话 时间是我们每个人都特别熟悉的,但是到底它是什么,用什么来衡量,可能很多人会愣在那里.时间可以见证一切,也可以消磨一切,那些过往的点点滴滴可思可忆.回想往年清明节过后,在家乡的晚上总能 ...

  2. SQLServer学习笔记系列5

    一.写在前面的话 转眼又是一年清明节,话说“清明时节雨纷纷”,武汉的天气伴随着这个清明节下了一场暴雨,整个城市如海一样,朋友圈渗透着清明节武汉看海的节奏.今年又没有回老家祭祖,但是心里依然是怀念着那些 ...

  3. SQLServer学习笔记系列3

    一.写在前面的话 今天又是双休啦!生活依然再继续,当你停下来的时候,或许会突然显得不自在.有时候,看到一种东西,你会发现原来在这个社会上,优秀的人很多,默默 吃苦努力奋斗的人也多!星期五早上按时上班, ...

  4. SQLServer学习笔记系列2

    一.写在前面的话 继上一次SQLServer学习笔记系列1http://www.cnblogs.com/liupeng61624/p/4354983.html以后,继续学习Sqlserver,一步一步 ...

  5. SQLServer学习笔记<>相关子查询及复杂查询

    二.查询缺少值的查询 在这里我们加入要查询2008年每一天的订单有多少?首先我们可以查询下订单表的订单日期在2008年的所有订单信息. 1 select distinct orderdate,coun ...

  6. SQLServer 学习笔记之超详细基础SQL语句 Part 12(The End)

    Sqlserver 学习笔记 by:授客 QQ:1033553122 -----------------------接Part 11------------------- 现在,我们希望从 " ...

  7. SQLServer 学习笔记之超详细基础SQL语句 Part 11

    Sqlserver 学习笔记 by:授客 QQ:1033553122 -----------------------接Part 10------------------- DECLARE @myavg ...

  8. SQLServer 学习笔记之超详细基础SQL语句 Part 10

    Sqlserver 学习笔记 by:授客 QQ:1033553122 -----------------------接Part 9------------------- 删除约束的语法 ALTER T ...

  9. SQLServer 学习笔记之超详细基础SQL语句 Part 9

    Sqlserver 学习笔记 by:授客 QQ:1033553122 -----------------------接Part 8------------------- 3 范式的概念 第一范式的目标 ...

  10. SQLServer 学习笔记之超详细基础SQL语句 Part 8

    Sqlserver 学习笔记 by:授客 QQ:1033553122 -----------------------接Part 7------------------- --触发器str_trigge ...

随机推荐

  1. hdu3078(lca / RMQ在线)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3078 题意: 给出一棵 n 个点的带点权值的树, 接下来有 q 组形如 k, x, y 的输入, 若 ...

  2. loj#6517. 「雅礼集训 2018 Day11」字符串(回滚莫队)

    传送门 模拟赛的时候纯暴力竟然骗了\(70\)分-- 首先对于一堆\(g\)怎么计算概率应该很好想,用总的区间数减去不合法的区间数就行了,简而言之对\(g\)排个序,每一段长为\(d\)的连续序列的区 ...

  3. java整理(三)

    1.继承性:继承已有的功能.使用extends关键字.class  子类   extends  父类{} 子类又被称为派生类,父类又被称为超类. 继承的限制: 1.java中,不允许多重继承,即一个子 ...

  4. WebAPI学习及Swagger使用

    本文用来保存自己学习WebAPI和Swagger使用过程中参考的文章,以及对WebAPI的初步了解. 1.RESTful风格 WebAPI只支持Http协议: 1.1.WebAPI与MVC的区别 Va ...

  5. iOS通过SocketRocket实现websocket的即时聊天

    之前公司的即时聊天用的是常轮循,一直都觉得很不科学,最近后台说配置好了socket服务器,我高兴地准备用asyncsocket,但是告诉我要用websocket,基于HTML5的,HTML5中提出了一 ...

  6. 退役or延期退役

    究竟是\(150\)天后退役,还是能继续续命呢? 一切看自己了!加油!\(cyh\)!千万不要败在别人的只言片语之下啊!

  7. 微信小程序在sublime开发代码高亮显示

    问题:xxx.wxml 和xxx.wxss在subline中不高亮不显示 如下图,开发起来非常的不方便 解决办法:右下角将Plain Text改为Html,问题解决,可高亮,提高代码可读性,可提示,提 ...

  8. webpack配置Jquery全局包及全局包插件

    一:在配置文件配置: plugins: [ //将来以template为模版,生成一个index.html并且发布到webpack-dev-server开启的node服务器上面去 new HtmlWe ...

  9. ubuntu16.0.4下修改MySQL的data目录之mysqld启动报错

    由于需要更换MySQL的data目录,更改完成后启动报错如下: apparmor="DENIED" operation="mknod" profile=&quo ...

  10. 1093 Count PAT's(25 分)

    The string APPAPT contains two PAT's as substrings. The first one is formed by the 2nd, the 4th, and ...