SQL嵌套查询

select top 1 1 from...主要是用来判断表是否有记录


TRUNCATE :删除内容、释放空间但不删除定义,保留数据表的结构
删除目标表中所有字段,不影响表结构
派生表:
派生表就是一个由查询结果生成的临时表。他是在外部查询的 FROM 中定义的。派生表的存在范围只是在外部查询中,只要外部查询结束了,派生表也就不存在了。派生表一定要写在 FROM 后面范围内,用()括起来。后面跟着派生表的名称。
select * from(select a,b from table1) as 666
嵌套子查询的用法:
两个 select 的嵌套查询:
select a.GroupInputName from System_GroupInput A where A.GroupInputCode
in (SELECT b.GroupInputCode FROM System_GroupInputList b WHERE b.GroupInputCode='TH_NofityStayList' )

select 的嵌套查询:
假设想知道某产品第一天销售产品的 ID 号。又不知道第一天是什么日期。可以用以下的方法查询 :
select A.saledate,A.saleid from saleorderhead A join saleorderdetail B
on A.saleid=B.saleid
where (select min(saledate) from saleorderdetail )
可以用以下的嵌套查询方法
在代码中加入主键(索引)方法:
1. 在创建列的时候创建完列的时候加入 primary key
2. 在创建完所需列之后。在下面加入
constraint (索引名称) unique (关联列 1 ,关联列 2

HAVING 字句设置 GROUP BY 字句形成分组的条件! HAVING GROUP BY 后面,在 ORDER BY 前面。
创建外键的方式: constraint 外键名 foreign key (需要放数据的列) references 数据来源表(数据来源表的列明)

TOP 字句
select top 1 ( 列名 ) from (表名) where order by (列名)(顺序或逆序)
decimal(18,0)
18 是定点精度, 0 是小数位数。
compute by 计算语句。允许在结果集内产生控制中断和小计,得到更为详尽的记录
实用实例{ compute avg|count|max|min|sum }(表达式)
by (表达式)
自然连接:一种特殊的等值连接,要求需要连接的两个关系需比较的分列是属性完全相同的项,并且将重复属性列去掉。
谓词 IN
在嵌套查询的结果往往是一个结果集。查询结果集就是用 IN 可以理解为 ’=‘
AS 用法:
一: as 可以作为别名的标志。
sql select name as username form tablename;
解释:上面语句的意思就是查询出 tablename 表中字段 name 的所有记录,并且给 name 别名为 username
    

SQL CTE( 公用表表达式 )
定义语法: with 公用表表达式名称
所涉及的列(非全选)
一个 SELECT 语句,在 AS 之后紧跟。
按照是否递归,可以将公用表( CTE )表达式分为递归公用表表达式和非递归公用表表达式 .
非递归公用表表达式:
   非递归公用表表达式( CTE )是查询结果仅仅一次性返回一个结果集用于外部查询调用。并不在其定义的语句中调用其自身的 CTE
   非递归公用表表达式( CTE )的使用方式和 视图 以及 子查询 一致

递归公用表表达式:


扫描二维码关注公众号,回复: 1530998 查看本文章

流程控制语句
BEGIN……END语句
格式:BEGIN
语句
~~~
END
IF......ELSE语句
格式:IF
语句
[ELSE[IF条件表达式]
语句
具体用法:

WHILE 循环语句
用法: WHILE 逻辑表达式
语句

GOTO 语句
GOTO 语句可以使 SQL 语句的执行流程无条件转移到指定的标号位置。常用于 WHILE IF 语句中,做跳出循环用。
GOTO lable
...
lable,
WAITFOR 语句
WAITFOR 语句可以在某一个时间或某一时间间隔之后执行 SQL 语句,语句块,存储过程等。
WAITFOR{DELAY ' 时间 '|TIME ' 时间 '}
waitfor delay '00:00:10'
select * from test01;
waitfor time '16:00:00'
select * from test01;
case 语句
语法: case< 表达式 >
when< 条件表达式 1>then< 表达式 1>
when< 条件表达式 2>then< 表达式 2>
......
else< 表达式 n>
-- 简单 Case 函数 CASE sex WHEN '1' THEN ' ' WHEN '2' THEN ' ' ELSE ' 其他 ' END --Case 搜索函数 CASE WHEN sex = '1' THEN ' ' WHEN sex = '2' THEN ' ' ELSE ' 其他 ' END

return 语句
return 语句可以使程序从程序或存储过程中返回。并且之后的语句不再执行。
return 整型表达式
变量
变量分局部变量和全局变量,全局变量是用来跟踪服务器作用范围和特定的交互过程的,不能由用户自己定义也不能被显式的赋值或生命,其名称是由 @@ 组成的。局部变量是由用户自己定义和赋值的。由 declare 声明。局部变量只能在声明变量的批处理语句或过程体中存在,且首字符为 @
declare @aa 数据类型;或 set @aa= 表达式;


猜你喜欢

转载自blog.csdn.net/qq_36750158/article/details/79821485