发布网友 发布时间:2022-05-01 04:32
共2个回答
懂视网 时间:2022-05-01 08:54
表连接:
将多个表的数据一次性查询出来,共同显示
子查询方式:
select 列名1,列名1,(select 列名2 from 表名2 where 表名2.共同列名=表名1.共同列名) from 表名1 -- .就是的意思
笛卡尔积:有点像穷举
select 列名1,列名2 from 表名1,表名2 --把第一个表的数据挨个拿出来跟第二个表所有数据进行对比一下,得出来是两个表数量的相乘
where 表名2.共同列名=表名1.共同列名
join on:
select 列名1,列名2 from 表名1 join 表名2 on 表名2.共同列名=表名1.共同列名 --join 后加上一个表,on后面是什么条件上加上
join前可以有三个修饰符
inner join:内连接,就是默认,所有能对起来的可能都连接上
left join:以左边表为主,把左边表数据显示完整,再拼接上右边数据
right join:以右边表为主,把右边表数据显示完整,再拼接上左边数据,
注意:必须添加where条件或on后面跟条件,两个表的关系列
纵连接:先把上面的显示完然后接上下面的
union
select 列名1 from 表名1
union
select 列名2 from 表名2
注意:纵连接的表,列数必须一样,对应列的数据类型要一样
TSQL基本编程:
定义变量:
declare @a int;--declare声明变量的意思,变量名字前一定加@
declare @b int;
赋值:
set @a=10; --赋值
select @b =9; --赋值
打印在消息框中:
print @b --映射在消息框
映射在结果集中:
select @a ;--映射,显示在结果集
分支语句写法:
declare @aa int;
select @aa=10;
declare @bb int;
select @bb=9;
declare @cc int;
if @aa>@bb --没有小括号,空格就行
begin --没有花括号,是用begin,end 代替
select @cc=@aa+@bb;--成立走这
end
else
begin
select @cc=@aa-@bb;
end
select @cc;
注意:执行要从头开始选中
循环语句写法:
declare @aaa int;
select @aaa=1; --初始条件
while @aaa<=10; --循环条件
begin
select @aaa; --循环体
select @aaa+=1; --状态改变
end
存储过程:就是函数
定义:ps:
create proc jiafa --创建存储过程
@a int, --参数,可以有多个,用逗号隔开,最后一个可以不用加逗号
@b int
as --花括号下面就是函数体,用as
declare @c int; --函数体
select @c=@a+@b
return @c
go --执行接下来代码,也可以不用写
保存:
保存在数据库里可编程性的存储过程的系统存储过程里
修改:
在系统存储过程的表名那右键修改
alter 修改列,添加列
proc 存储过程
dbo 不用管,表名前面基本都有
改完函数体执行一遍就行
使用:
declare @ab int;
exec @ab=jiafa 5,10; --exec 执行函数,
select @ab;
表连接、Tsql基本编程和存储过程
标签:
热心网友 时间:2022-05-01 06:02
存储过程在数据量大时使用会很方便,易操作,属于数据库编程。