复习sqlserver中的一些知识点

/*
左外联接
1.首先列出内联接数据
2.看左表是否还有没匹配的,有的话原样列出,右表部分用NULL补齐
总结:左外联接要显示左表的所有数据
*/
 
/*
当我们在一个结果集中显示多张表数据的情况下,只能使用联
结(子查询做不到,因为子查询只能显示一张表的数据)
*/
 
 
/*
T-SQL : sqlserver特有
PL/SQL :Oracle特有
*/
 
/*
交叉联接(基本不用)
一般不使用,返回数据的行数=左表行数 * 右表数据行数
*/
 
 
/*
复习一些知识
CONVERT()函数,CAST()函数都是数据类型转换函数
CONVERT(数据类型(长度), 变量或列名)
CAST(变量或列名 AS 数据类型(长度))
*/
 
/*
变量知识复习
变量:
局部变量:
用户自定义的变量,变量名以@开头,可以读写
语法定义:DECLARE @变量名 数据类型(长度)
赋值有2中方式:第一种 set @变量名 = 值
第二种 以查询结果为值
全局变量:系统提供,以@@开头,只读的,也就是说由系
统赋值,我们取值
全局变量由系统定义和维护,我们只能读取,不能修改全
局变量的值
*/
 
 
DECLARE @myName VARCHAR(20)
SET @myName = '令狐冲'
PRINT @myName
 
DECLARE @myAge INT
SET @myAge = 19
SELECT @myAge AS '年龄'
--PRINT '年龄' + @myAge
--这里使用CONVERT()函数
PRINT 'my年龄' + CONVERT(VARCHAR(3), @myAge)
--也可以使用CAST()函数
PRINT '我的年龄' + CAST(@myAge AS VARCHAR(3))
--
SELECT stuName, * FROM student
SELECT stuName FROM student
--
DECLARE @stuName VARCHAR(20)
SET @stuName = 'jack'
SELECT @stuName AS '英文名'
SET @stuName = 'tom'
PRINT @stuName
PRINT '**************'
SELECT @stuName = stuName FROM student WHERE stuId = '33'
SELECT @stuName AS '英文名'
 
/*
以下看起来像是声明了全部变量,实际上还是局部变量,只不过变量名叫作@testName这个名字了
*/
DECLARE @@testName VARCHAR(20)
SET @@testName = '张无忌'
PRINT @@testName
 
 
/*
SELECT在网格窗口显示结果
PRINT在消息窗口显示结果
*/
 
/*
全局变量
*/
--最后一个T-SQL错误的错误号
SELECT @@ERROR
--最后一次插入的标识值
SELECT @@IDENTITY
--当前使用的语言的名称
SELECT @@LANGUAGE
--sqlserver的版本信息
SELECT @@VERSION
--可以创建的同时连接的最大数目
SELECT @@MAX_CONNECTIONS
--受上一个sql语句影响的行数
SELECT @@ROWCOUNT
--本地服务器的名称
SELECT @@SERVERNAME
--服务名称
SELECT @@SERVICENAME
--当前连接打开的事务数
SELECT @@TRANCOUNT
 
/*
sql中的流程控制
把{}改成BEGIN AND
*/
--
SELECT  * FROM exam
--
SELECT  *, '等级' =  
	CASE 
		WHEN labExam < 60 THEN 'E'
		WHEN labExam > 60  AND labExam <= 69 THEN 'D'
		WHEN labExam BETWEEN 70 AND 79 THEN 'C'
		WHEN labExam BETWEEN 80 AND 89 THEN 'B'
		ELSE 'A'
	END
FROM exam
 
/*
回顾下以前的知识
流程控制,分支判断
多重判断:嵌套if,阶梯式if(可以是区间范围,可以是定值),switch(只能是某个定值)
*/
 
/*
WHILE循环
*/
DECLARE @testIndex int
SET @testIndex = 0
WHILE(@testIndex < 10)
	BEGIN
		PRINT '第' + CAST((@testIndex + 1 ) AS VARCHAR(3))+ '次打印hello'
		SET @testIndex = @testIndex + 1
	END
发布了622 篇原创文章 · 获赞 581 · 访问量 124万+

猜你喜欢

转载自blog.csdn.net/czh500/article/details/103894184