优秀的编程知识分享平台

网站首页 > 技术文章 正文

sqlserver数据库中的高级知识点有哪些?

nanyue 2024-07-20 23:52:38 技术文章 7 ℃

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)

#数据库# #程序员# #编程# #计算机#

Tags:

最近发表
标签列表