SQL Server -- 回忆笔记(四):case函数,索引,子查询,分页查询,视图,存储过程
SQL Server知识点回忆篇(四):case函数,索引,子查询,分页查询,视图,存储过程
1. CASE函数(相当于C#中的Switch)
select UserName,Age,类别=case when Age<18 then '未成年人' else '成年人' end from tbUsers
2. 索引 index
聚集索引(物理):一个表只能有一个。创建一个表时,如果有主键,主键会自动创建聚集索引。
非聚集索引(逻辑):一个表可以有多个。
增加索引后,会增加额外的存储空间开销,降低了增加新纪录、修改、删除的效率。
建索引:索引应该建在经常查询时用到的列上,查询时用到才有意义。数据量大时,使用有索引的列查询,效率会大幅度提高。
语法格式: create index 索引名称 On 表名(列名)
create index Ix_UserName On tbUsers(UserName)
3. 子查询
查询出的结果供外层的查询使用。
select * from tableA where id=(select id from tableB where Name='小胡子')
4. 分页查询
使用row_number()实现分页
思路:比如说要实现每页有10条记录的分页,获取第8页的数据。那么第8页的第一行的行号是前7页的总行数加1,第8页的最后一行的行号是8*10 。
那么每一页的第一行是(n-1)*10+1, 最后一行是n*10。要取第几页的数据,n就传入第几页。
select * from
(select *,iRowNumer=row_number() over(order by id asc) from tbUsers) r
where r.iRowNumer between (8-1)*10+1 and 8*10
5. 视图
视图里只能存查询语句。如果视图查询语句中有重名的列,必须起别名。
创建视图:
create view vw_Users as
select * from tbUsers
从视图查询:
select * from vw_Users
6. 存储过程
数据库中默认存在的以sp_开头的是数据库系统的存储过程。
exec sp_databases: 返回实例中的所有数据库
exec sp_tables: 返回当前数据库下的所有表
exec sp_columns: 用于获取指定表中的所有列(例:exec sp_columns 'tbUsers' )
exec sp_helptext 'sp_databases' :获取sp_databases源代码
创建存储过程:
create proc usp_sayHello
as
begin
print 'Hello World'
end
执行存储过程:
exec usp_sayHello
创建带参数的存储过程:
create proc usp_add
@num1 int,
@num2 int
as
begin
select @num1+@num2
end
执行带参数的存储过程:
exec usp_add @num1=100,@num2=200
SQL Server -- 回忆笔记(四):case函数,索引,子查询,分页查询,视图,存储过程的更多相关文章
- SQL Server -- 回忆笔记(五):T-SQL编程,系统变量,事务,游标,触发器
SQL Server -- 回忆笔记(五):T-SQL编程,系统变量,事务,游标,触发器 1. T-SQL编程 (1)声明变量 declare @age int (2)为变量赋值 (3)while循环 ...
- SQL Server -- 回忆笔记(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询
SQL Server知识点回忆篇(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询 1. insert 如果sql server设置的排序规则不是简体中文,必须在简体中文字符串前加N, ...
- SQL Server -- 回忆笔记(三):ADO.NET之C#操作数据库
SQL Server知识点回忆篇(三):ADO.NET之C#操作数据库 1.连接数据库 (1)创建连接字符串: 使用windows身份验证时的连接字符串: private string conStr= ...
- SQL Server -- 回忆笔记(一):初见数据库
SQL Server知识点回忆篇(一):初见数据库 1. 主键 primary key 唯一标识, 不会重复的值才会用来当做主键使用. 表可以没有主键,但建议每张表都有主键. 2. 数据冗余 ...
- SQL SERVER 读书笔记:非聚集索引
对于有聚集索引的表,数据存储在聚集索引的叶子节点,而非聚集索引则存储 索引键值 和 聚集索引键值.对于非聚集索引,如果查找的字段没有包含在索引键值,则还要根据聚集索引键值来查找详细数据,此谓 Book ...
- SQL Server 2005 中的分区表和索引
SQL Server 2005 中的分区表和索引 SQL Server 2005 69(共 83)对本文的评价是有帮助 - 评价此主题 发布日期 : 3/24/2005 | 更新 ...
- SQL SERVER中用户定义标量函数(scalar user defined function)的性能问题
用户定义函数(UDF)分类 SQL SERVER中的用户定义函数(User Defined Functions 简称UDF)分为标量函数(Scalar-Valued Function)和表值函数(T ...
- (转载)MS SQL Server 未公开的加密函数有哪些?
MS SQL Server 未公开的加密函数有哪些? 以下的文章是对MS SQL Server 未公开的加密函数的具体操作,如果你对其相关的实际操作有兴趣的话,你就可以点击了. MS SQL Serv ...
- SQL Server如何定位自定义标量函数被那个SQL调用次数最多浅析
前阵子遇到一个很是棘手的问题,监控系统DPA发现某个自定义标量函数被调用的次数非常高,高到一个离谱的程度.然后在Troubleshooting这个问题的时候,确实遇到了一些问题让我很是纠结,下文是解决 ...
随机推荐
- zookeeper使用详解(命令、客户端、源码)
1. zookeeper使用详解(命令.客户端.源码) 1.1. 前言 zookeeper我们常用来做分布式协调中间件,很多时候我们都接触不到它的原理和用法,我对他的了解也仅限于知道它可以做分布式 ...
- Hibernate框架笔记04HQL_QBC查询详解_抓取策略优化机制
目录 1. Hibernate的查询方式 1.1 方式一:OID查询 1.2 方式二:对象导航查询 1.3 方式三:HQL方式 1.4 方式四:QBC查询 1.5 方式五:SQL查询 2. 环境搭建 ...
- setData方法修改data中对象或数组的属性值(小程序开发)
今日在开发小程序地图的过程中,遇到一个问题,困扰了我一会 业务如下: 困扰点: 我不知道如何修改data中数组包含的对象是如何修改的:期初的想法还是想共享上面的数据,想的太简单了 正确的解决步骤: 直 ...
- redux-thunk 源码学习记录
redux触发store更新,使用的dispatch(action),在关于createStore的源码解读中可以看到,store.dispatch限制了action必须是一个纯对象.是为了保持red ...
- 隔壁老主精讲web页面性能优化。
首先说一下为什么要进行web页面性能优化,在同样的网络环境下,两个同样能满足你的需求的网站,一个“Biu”的一下就加载出来了,一个卡--卡--卡--卡--卡--才出来,你会选择哪个?研究表明:用户最满 ...
- Spring中你可能不知道的事(二)
在上一节中,我介绍了Spring中极为重要的BeanPostProcessor BeanFactoryPostProcessor Import ImportSelector,还介绍了一些其他的零碎知识 ...
- Python内置函数(50)——print
英文文档: print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) Print objects to the text str ...
- 甘果移动老甘:移动互联网变迁中的App和小程序
2018 年 10 月13 日,由又拍云和知晓云联合主办的 Open Talk 丨2018 小程序开发者沙龙系列活动广州站拉开帷幕,甘果移动的 CEO 路文杰(老甘)在沙龙上做了<移动互联网变迁 ...
- 前端(各种demo)二:左侧导航栏的折叠和打开(不使用js)基础版和升级版
1.给div设置定位. 复习一下—— css中position有五种属性: static:默认值,没有定位 absolute:绝对定位,相对于父级元素进行定位 relative:相对定位 fixed: ...
- SpringCloud(3)---Eureka服务注册与发现
Eureka服务注册与发现 一.Eureka概述 1.Eureka特点 (1) Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移. (2) Eureka 主管服务 ...