网站首页 > 基础教程 正文
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)
#数据库# #程序员# #编程# #计算机#
猜你喜欢
- 2024-10-10 Linux系统常用命令大全 linux系统常用命令大全详解
- 2024-10-10 Redis数据类型与常用指令示例 redis数据类型和用法
- 2024-10-10 深入理解Redis原理与应用,总结10个必定掌握要点,5分钟彻底看懂
- 2024-10-10 程序员的福音 - Apache Commons Exec
- 2024-10-10 Linux常用命令分类详解|文件搜索 linux命令分类总结
- 2024-10-10 linux性能工具perf工作原理简析 linux perl
- 2024-10-10 Python-调用系统命令或脚本,快速完成任务
- 2024-10-10 「Docker」命令使用大全,全集一览
- 2024-10-10 DOS常用命令集合 dos所有命令的命令格式
- 2024-10-10 系统小技巧:安装程序不能安装为哪般
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)