连接查询,结构、循环语句
1 连接查询:通过连接运算符可以实现多个表查询。
1.1 join on
select name,mark from student join mark on student.id=mark.studentid
左连接-left join
select name,mark from student left join mark on student.id=mark.studentid
右连接-right join
select name,mark from student right join mark on student.id=mark.studentid
全连接-full join
select name,mark from student full join mark on student.id=mark.studentid
1.2 UNION
操作符用于合并两个或多个 SELECT 语句的结果集。
UNION 内部的 SELECT 语句必须拥有相同数量的列。
列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
在SQL语言里面把变量分为局部变量和全局变量,全局变量又称系统变量。
2 局部变量
声明:declare @<变量名> <变量类型>
赋值:set @<变量名>=表达式
需要在打印的字符串中打印出单引号的方法:连打两个单引号。
3 逻辑运算符
ALL 如果一组的比较都为TRUE,则返回TRUE。
AND 如果两个布尔表达式都为TRUE,则返回TRUE。
ANY 如果一组的比较中任何一个为TRUE,则返回TRUE。
>BETWEEN 如果操作数在某个范围之内,则返回TRUE。
EXISTS 如果子查询包含一些行,则返回TRUE。
IN 如果操作数等于表达式列表中的一个,则返回TRUE。
LIKE 如果操作数与一种模式相匹配,则返回TRUE。
NOT 对任何其他布尔运算符的值取反。
OR 如果两个布尔表达式中的一个为TRUE,则返回TRUE。
SOME 如果在一组比较中,有些为TRUE,则返回TRUE。
4 if...else...语句
declare @name varchar(20)
set @name='asdfghjkl'
if LEN(@name)<5
begin
print @name
end
else
print substring(@name,1,4)
5 case ...when ...
select mm =
case substring( cname,1,1)
when '铅' then 'a'
when '本' then 'b'
when '白' then 'c'
when '4' then 'd'
when '5' then 'e'
end
from cang
6 while 语句
declare @cc varchar(10)
set @cc='123'
while LEN(@cc)<6
begin
print @cc
set @cc=@cc+'1'
end
select @cc