sql语法小记
1.switch case 值1 then '显示1' case 值2 then '显示2' end 2.if-else if case when 关于字段的表达式 then 显示 when 关于字段的表达式 then 显示 else 显示什么 end 3.子查询 1)将子查询写出来,然后用括号括起来 2)写外查询,写条件,并将子查询连同括号一并当做一个值使用
4.多值查询 就是内部查询(用括号括起来的查询)可以返回一列数据 在外部查询中使用in即可 5.表连接(交叉连接,笛卡尔积) create table tb1Num1 ( num int ); create table tb1Num12 ( num int ); 6.内连接inner join 首先进行交叉连接,然后进行筛选(on), 然后检查是否有为null的数据, 如果有为null的数据将删除这一行数据 7.外连接(左外连接、右外连接), 先执行笛卡尔积(cross join), 利用条件筛选, 依据连接属性(以哪一张表外主表), 将主表中有的数据而另一张表中没有的数据加进来, 没数据的项默认为null 8.所有连接操作都是在from级别的操作 语法均是 from 表名 as t1 连接类型 表名 as t2 on 条件 9.派生表 就是将一个select查询语句查出的表值结果集作为数据源进行第二次查询 作为数据源的查询语句,绝对不能包含order by语句(除非有top语句) 作为数据源的查询语句,一定得包含列名
第二个问题 如果做连接的表也是一张派生表 希望在学生完整信息表中用学生的名字查询学生的信息 就是说派生表中还有派生表
发现派生表嵌套查询,比较混乱 一般将表定义在外边,其后直接引用 公共表表达式(CTE) with 表名 as ( 查询语句 ) 使用该表名的查询语句 10.分页 找规律 第一页 1 10 (1-1)*@count+1 @count 第二页 11 20 (2-1)*@count+1 2*@count
11.存储过程 create proc usp_存储过程名字 as begin T-SQL语句 end 12.带返回值的存储过程
create proc usp_存储过程名字 @count int output as select @count = COUNT(*) from 表名
13.视图
create view vw_视图名