sqlserver数据库中有哪些高级知识点需要程序员掌握的?
1.临时表:
表名前缀是#号,分为本地临时表和全局临时表,全局临时表前缀是2个井号,都存储在tempdb数据库中。
2.变量
sqlserver中的变量分为局部变量(@表示)和全局变量(@@表示),变量在使用前必须声明(declare)
变量的赋值用set或者select,区别就是set只能给一个变量赋值,select可以多个。
DECLARE @name varchar(50)
DECLARE @address varchar(100)
DECLARE @sno INT
SET @name='国内实力派程序员'
SELECT @sno=18,@address='湖北' FROM dbo.Student WHERE Id=157
SELECT @sno,@name,@address
全局变量一般都是系统预定义的一些全局变量,常用的全局变量有:
@@ERROR ——最后一个SQL错误的错误号
@@IDENTITY —–最后一次插入的标识值
@@LANGUAGE —–当前使用的语言的名称
@@MAX_CONNECTIONS – 可以创建的同时连接的最大数目
@@ROWCOUNT —-受上一个SQL语句影响的行数
@@SERVERNAME —-本地服务器的名称
@@TRANSCOUNT —–当前连接打开的事物数
@@VERSION —–SQL Server的版本信息
3.case 函数的2种用法:
第一种:
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
第二种:
CASE WHEN sex = '1' AND age>18 THEN '成年男性'
WHEN sex = '2' AND age>18 THEN '成年女性'
ELSE '其他' END
4.派生表:
派生表可以简化查询,避免使用临时表,比如:
SELECT * FROM (
SELECT * FROM Student WHERE Address='上海'
) Stu
其中Stu就是派生表
5.DBLINK的用法:
当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的DBLINK,
通过DBLINK本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。
6.集合:
SQL Server的集合包括交集(INTERSECT),并集(UNION),差集(EXCEPT)。
SELECT * FROM City1
INTERSECT
SELECT * FROM City2
7.merge的用法
它能将INSERT,UPDATE,DELETE等操作并为一句,根据与源表联接的结果,对目标表执行插入、更新或删除操作。
8.ROW_NUMBER() OVER()的用法,
SELECT *,
ROW_NUMBER() OVER (PARTITION BY 列名 ORDER BY 列名 DESC) 排序,
ROW_NUMBER() OVER (ORDER BY 列名 DESC) AS 总排序
FROM 表名;
9.流程控制语句:
比如:begin end,while,if else 等等
10.动态Sql:
EXEC命令执行,EXECUTE 命令有两个用途,一个是用来执行存储过程,另一个是执行动态SQL
DECLARE @SQL AS VARCHAR(500);
DECLARE @Column AS VARCHAR(50);
SET @Column = 'Cname'
SET @SQL = 'SELECT ' + @Column + ' FROM City1';
EXEC (@SQL)
#数据库# #程序员# #编程# #计算机#