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函数,索引,子查询,分页查询,视图,存储过程的更多相关文章

  1. SQL Server -- 回忆笔记(五):T-SQL编程,系统变量,事务,游标,触发器

    SQL Server -- 回忆笔记(五):T-SQL编程,系统变量,事务,游标,触发器 1. T-SQL编程 (1)声明变量 declare @age int (2)为变量赋值 (3)while循环 ...

  2. SQL Server -- 回忆笔记(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询

    SQL Server知识点回忆篇(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询 1. insert 如果sql server设置的排序规则不是简体中文,必须在简体中文字符串前加N, ...

  3. SQL Server -- 回忆笔记(三):ADO.NET之C#操作数据库

    SQL Server知识点回忆篇(三):ADO.NET之C#操作数据库 1.连接数据库 (1)创建连接字符串: 使用windows身份验证时的连接字符串: private string conStr= ...

  4. SQL Server -- 回忆笔记(一):初见数据库

    SQL Server知识点回忆篇(一):初见数据库 1.  主键 primary key    唯一标识, 不会重复的值才会用来当做主键使用. 表可以没有主键,但建议每张表都有主键. 2.  数据冗余 ...

  5. SQL SERVER 读书笔记:非聚集索引

    对于有聚集索引的表,数据存储在聚集索引的叶子节点,而非聚集索引则存储 索引键值 和 聚集索引键值.对于非聚集索引,如果查找的字段没有包含在索引键值,则还要根据聚集索引键值来查找详细数据,此谓 Book ...

  6. SQL Server 2005 中的分区表和索引

    SQL Server 2005 中的分区表和索引 SQL Server 2005          69(共 83)对本文的评价是有帮助 - 评价此主题   发布日期 : 3/24/2005 | 更新 ...

  7. SQL SERVER中用户定义标量函数(scalar user defined function)的性能问题

    用户定义函数(UDF)分类  SQL SERVER中的用户定义函数(User Defined Functions 简称UDF)分为标量函数(Scalar-Valued Function)和表值函数(T ...

  8. (转载)MS SQL Server 未公开的加密函数有哪些?

    MS SQL Server 未公开的加密函数有哪些? 以下的文章是对MS SQL Server 未公开的加密函数的具体操作,如果你对其相关的实际操作有兴趣的话,你就可以点击了. MS SQL Serv ...

  9. SQL Server如何定位自定义标量函数被那个SQL调用次数最多浅析

    前阵子遇到一个很是棘手的问题,监控系统DPA发现某个自定义标量函数被调用的次数非常高,高到一个离谱的程度.然后在Troubleshooting这个问题的时候,确实遇到了一些问题让我很是纠结,下文是解决 ...

随机推荐

  1. SpringBoot启动如何加载application.yml配置文件

    一.前言 在spring时代配置文件的加载都是通过web.xml配置加载的(Servlet3.0之前),可能配置方式有所不同,但是大多数都是通过指定路径的文件名的形式去告诉spring该加载哪个文件: ...

  2. Yarn篇--搭建yarn集群

    一.前述 有了上次hadoop集群的搭建,搭建yarn就简单多了.废话不多说,直接来 二.规划 三.配置如下 yarn-site.xml配置 <property>        <n ...

  3. 让 CDN 更省流量的 Brotli 算法详解

    早年,我还是学生的时候,时常会鼓捣自己的个人网站,其中最困扰我的问题就是源站服务器易崩溃.作为学生,一方面我没有足够的钱购买高质量的服务器,另一方面一年的流量费用算下来也挺贵的,要花掉我不少的生活费. ...

  4. java代码之美(10)---Java8 Map中的computeIfAbsent方法

    Map中的computeIfAbsent方法 Map接口的实现类如HashMap,ConcurrentHashMap,HashTable等继承了此方法,通过此方法可以在特定需求下,让你的代码更加简洁. ...

  5. ECMAScript5.1的运算符、类型转换总结

    一.运算符优先级 从高到低 运算符 说明 () 圆括号 . [] new(带参数列表) 字段访问.数组索引.new(带参数列表) () new(无参数列表) 函数调用,无参数列表 ++(后置递增) - ...

  6. How does the vuejs add the query and walk the object?

    让这个老实返回的页面添加特殊路由,这个页面常常都是登录注册.这次我们根据登录举例. 省略 { path:'/login?url=:url', name:'loginfirst', component: ...

  7. BitmapToASCii

    using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using Syste ...

  8. [开发技巧]·TensorFlow中numpy与tensor数据相互转化

    [开发技巧]·TensorFlow中numpy与tensor数据相互转化 个人主页–> https://xiaosongshine.github.io/ - 问题描述 在我们使用TensorFl ...

  9. 模拟实现 DBUtils 工具 , 技术原理浅析

    申明:本文采用自己 C3P0 连接池工具进行测试 自定义的 JDBCUtils 可以获取 Connection: package com.test.utils; import java.sql.Con ...

  10. 设计模式总结篇系列:建造者模式(Builder)

    关于建造者模式网上有很多文章,也有些不同的理解.在此结合网上其他文章对建造者模式进行总结. 总体说来,建造者模式适合于一个具有较多的零件(属性)的产品(对象)的创建过程.根据产品创建过程中零件的构造是 ...