zoukankan      html  css  js  c++  java
  • SQL基础3子查询 Carl

      1 --执行插入语句返回刚刚生成的自动编号
      2 insert into TblClass output inserted.ClsId values('大一一班','11',18)
      3 
      4 ------------CASE函数用法------------
      5 --相当于switch 注意then后面的数据类型要一样
      6 select * from Tblscore
      7 select 
      8 tScoreid,
      9 tenglish,
     10 评分=
     11 case
     12     when tenglish>=95 then '优秀'
     13     when tenglish>=90 then '良好'
     14     when tenglish>80 then ''
     15     when tenglish is null then '101'
     16     else '乔布斯'
     17 end
     18 from TblScore
     19 
     20 --等值判断
     21 select 
     22 tScoreid,
     23 tenglish,
     24 评分=
     25 case tenglish
     26     when 95 then '优秀'
     27     when 90 then '良好'
     28     when 80 then ''
     29     when  null then '101'
     30     else '乔布斯'
     31 end
     32 from TblScore
     33 
     34 
     35 
     36 --聚集索引(聚簇索引):
     37 -------当数据实际的存储顺序,与索引的顺序一致就把该索引叫聚集索引
     38 --非聚集索引(非聚簇索引)
     39 -------当索引中数据的顺序与,数据实际存储的顺序不一致的时候,该索引叫非聚集索引。
     40 =======非聚集索引=============
     41 --在表Sales.SalesPerson中给SalesQuota, SalesYTD这两列创建非聚集索引
     42 CREATE NONCLUSTERED INDEX IX_SalesPerson_SalesQuota_SalesYTD ON Sales.SalesPerson (SalesQuota, SalesYTD); GO 
     43 ====创建唯一非聚集索引=============
     44 CREATE UNIQUE INDEX AK_UnitMeasure_Name ON Production.UnitMeasure(Name); GO 
     45 =======创建聚集索引=================
     46 CREATE TABLE t1 (a int, b int, c AS a/b); 
     47 --创建唯一的聚集索引
     48 CREATE UNIQUE CLUSTERED INDEX Idx1 ON t1(c); INSERT INTO t1 VALUES (1, 0);
     49 --删除索引
     50 drop index T8.IX_T8_tage
     51 
     52 
     53 
     54 ----------------子查询--------------------
     55 --把一个查询结果作为另一个查询的查询源
     56 
     57 select * from 
     58 (select fname,fage,fgender from MyStudent
     59 where fage between 18 and 24 and fgender='') as tbl
     60 where fname like '赵%'
     61 
     62 --把另外一个查询的结果作为当前查询的where条件来使用。
     63 
     64 
     65 select * from tblstudent where tsclassid=
     66 (select tclassid from tblclass where tclassname='高二二班')
     67 
     68 ---exists-----
     69 --如果exists包含了的查询,能查到结果,就返回true,否则返回false
     70 if(exists(select * from tblstudent where tsid<>1))
     71 begin
     72   print '有数据'
     73 end
     74 else
     75 begin
     76    print '无查询结果'
     77 end
     78 
     79 
     80 --查询所有'高二二班''高二一班'的学生的信息
     81 --子查询中=、!=、<、<=、>、>= 之后只能返回单个值,如果多个值就报错了。
     82 
     83 --这个写法是错误的
     84 select * from tblstudent where tsclassid=
     85 (
     86 select tclassid from tblclass where tclassname='高二二班' or tclassname='高二一班'
     87 )
     88 ---这个写法是正确的
     89 select * from tblstudent where tsclassid in
     90 (
     91 select tclassid from tblclass where tclassname='高二二班' or tclassname='高二一班'
     92 )
     93 
     94 
     95 ------------------分页----------------
     96 ------desc   降序排序从高到底  asc升序排序(默认)
     97 
     98 -------第一种分页----------------
     99 -----每页5条数据,找第二页
    100 select top 5 * from tblstudent where tsid not in
    101 (
    102 select top((2-1)*5) tsid from tblstudent order by tsid
    103 ) order by tsid
    104 
    105 ---第二种分页--
    106 select * from
    107 (
    108 select *, row_number() over(order by tsid) as number from tblstudent
    109 ) as T
    110  where T.number between 6 and 10
    111  
    112  
    113  
    114  --开窗函数与聚合函数一起使用,可以让聚合函数对每一条数据都计算一次。
    115 select * ,count(*) over() as '总条数' from tblstudent 
    116 
    117 
    118 --------------连接join-----------------
    119 --案例3:查询学生姓名、年龄、班级及成绩
    120 select 
    121 ts.tsname as '学生姓名',
    122 ts.tsage as '年龄',
    123 tc.tclassname '班级',
    124 tb.tenglish '英语成绩',
    125 tb.tmath '数学成绩'
    126 
    127 from tblstudent as ts
    128 inner join tblscore as tb on ts.tsid=tb.tsid
    129 inner join tblclass as tc on tc.tclassid=ts.tsclassid
    130 
    131 
    132 --请查询出所有没有参加考试(在成绩表中不存在的学生)的学生的姓名。
    133 select ts.tsname
    134 from tblstudent as ts
    135 left join tblscore as tb on ts.tsid=tb.tsid
    136 where tb.tenglish is null and tb.tmath is null
  • 相关阅读:
    Git 常用命令大全-转载
    Powershell重命名文件夹
    C#使用qq邮箱发送邮件
    iOS开发-YUV颜色格式
    iOS开发小记(十一)
    iOS开发-AFNetworking
    iOS开发-NSURLSession
    iOS开发-类的加载load函数和initialize函数
    iOS开发-调试(debug)
    iOS开发-graphics
  • 原文地址:https://www.cnblogs.com/sc0791/p/2655579.html
Copyright © 2011-2022 走看看