2017.11.16
 
5.11 .认识索引

1.索引的概念:
   -(1)加快数据检索速度
   -(2)加快表与表之间的连接速度
   -(3)在使用order by 和 group by子句检索时,可以显著地减少查询分组的
   -(4)
 2.索引的类型:
   唯一索引:不会有两行记录相同
   单列索引:索引不唯一
   复合索引:根据多列组合创建的
   主键索引:为表定义一个主键,将会自动地在主键所在列上创建的唯一索引

根据索引的顺序与数据表的物理顺序是否相同分: 
   聚集索引:是根据数据行的键值,在表或视图中排序和存储数据行,每个数据库中的每个表只能有一个聚集索引.
   非聚集索引:
    特点:1.表的物理存储顺序与索引顺序不同,即表的数据并不是按照索引排列.
         2.不会影响数据表中的记录实际存储顺序
         3.一个表最多可以创建249个非聚集簇索引
 
  例1:按'姓名'创建聚集索引:

3.创建唯一索引:
  特征:不允许具有相同的索引值
 4.复合索引:
  特征:可以为唯一索引,也可以为不唯一索引
  最多可以有16个字段组合到一个复合索引

索引的使用:
  1.考虑创建索引的列:
   -(1).主键列
   -(2).经常用在连接的列
   -(3).经常进行范围查询的列
   -(4).经常需要排序的列上

2.不考虑创建索引的列:
   -(1).很少或从来不在查询中引用的列
   -(2).选择性低(重复值多)的列
   -(3).小表(记录数据很少的表)
   -(4).更新操作比较频繁的列

创建索引:
  索引名字以'IX_'开始

语法:
   create [unique][clustered|nonclustered] index 索引名 on {表名|视图名} (列{asc|desc}[,...n])

unique:表示索引的列必须唯一
   clustered:表示索引为聚集索引
   nonclustered:表示索引为非聚集索引,默认
   
  创建聚集索引:
   create unique clustered index IX_sno on student(sno)

创建非聚集索引:
   create unique nonclustered index IX_sname on student(sname)  --nonslustered可省略
  
  创建组合索引:
   create clustered index IX_sc_sno_cno on sc (sno,cno)
 
 对索引的管理:
   使用系统存储过程:sp_helpindex表名:查看索引信息

1.查看索引
   例:查看学生表创建的索引信息:
    sp_helpindex student
  2.删除索引
   dropindex {表名.索引名|视图名.索引名}[,...n]

例:删除学生表姓名列上的索引:
    dropindex student.IX_sname 
5.31.认识视图

视图的概念:是由一个或多个数据表或视图到处的虚拟表或查询表,是关系数据库系统提供给用户以多种角度...

视图的优点:

创建视图: 
   create view 视图名[(列名1,列名2[,...n])] as <select语句>
 
  例:创建女同学的视图,包括学号,姓名,性别和系部信息
   create view gril_view as select sno,sname,ssex,sdept from student where ssex='女'
 管理视图:
  查看 select * from 视图名

1.修改视图:
   alter view 视图名[(列名1,列名2[,...n])] as <select语句>
    alter view gril_view as select sno,sname,ssex,sdept from student where ssex='女' and sdept='计算机'
  2.视图更名:
   sp_rename 旧名字,姓名字
  
  3.删除视图:
   drop view 删除视图名
  
  4.使用视图:
   select * from 视图名

    练习:

use student
go
--1、在学生表的姓名列上创建唯一的非聚集索引。
create unique nonclustered index IX_sname on student(sname)

--2、在学生成绩表的学生编号列和课程编号列上创建组合的聚集索引。
create clustered index IX_sc_sno_cno on sc (sno,cno)

--3、查看学生表上的索引信息。
sp_helpindex student

--4、删除学生表姓名列上的索引。
dropindex student.IX_sname

--5、创建女同学的视图(girl_view),包括学号、姓名、性别和专业等信息。
create view gril_view as select sno,sname,ssex,sdept from student where ssex='女'

--6、修改任务5创建的“girl_view”视图的定义信息,将其改为显示所有电子专业的女生信息。
alter view gril_view as select sno,sname,ssex,sdept from student where ssex='女' and sdept='计算机'

--7、使用系统存储过程SP_RENAME将视图“GIRL_VIEW”改为“VIEW_GIRL”。
sp_rename GRIL_VIEW,VIEW_GILE

--8、查询视图VIEW_GIRL的所有信息。
select * from VIEW_GIRL

--9、删除视图VIEW_GIRL。
drop view VIEW_GIRL

use job
go
--2 使用create index语句为name字段创建索引index_name。
create index index_name on workInfo(name)

--3 、使用create index语句在type和address上创建名为index_t的索引。
create index index_t on workInfo(type,adress)

--4、删除workInfo表的唯一性索引index_id。
dropindex workIfon.index_id

use example
go

--2、 在College表上创建视图college_view。视图的字段包括College_num、Colleget_name、College_age和department。
create view college_view as select number,name,age,department from college

--3、 查看视图college_view的详细结构。
select * from college_view
 
--4 、修改college_view视图,使其显示专业为计算机的信息,其他条件不变。
alter view college_view as select number,name,age,major from college where major='计算机'

--5 、删除视图college_view。
drop view collage_view

转载于:https://www.cnblogs.com/TuringShine/p/7843739.html

SQL课堂笔记--索引和视图相关推荐

  1. SQL基础(3)-索引/触发器/视图操作

    本文只列出索引,触发器,视图的简单操作语句 1.索引 a.创建 create index idx_name on fdh_client_info(name); --普通索引(单列索引) create ...

  2. 数据库原理与应用(SQL Server)笔记 第五章 索引和视图

    目录 前言 一.索引 (一)索引的概念 (二)索引的分类 (三)索引的操作 1.创建 2.查看 2.修改 3.删除 二.视图 (一)视图的概念 (二)视图的分类 (三)视图的操作 1.创建 2.查询 ...

  3. access 导入 txt sql语句_从零开始学习 MySQL 系列索引、视图、导入和导出

    阅读本文大概需要 8 分钟 前言上篇文章我们学习了数据库和数据表操作语句,今天我们学习下数据库索引,视图,导入和导出的知识.作为基础篇,不会涉及到关于索引和视图的高级应用和核心概念,但是基本操作大家会 ...

  4. 使用 SQL Server 2000 索引视图提高性能1

    什么是索引视图? 许多年来,Microsoft SQL Server" 一直都提供创建虚拟表(称为视图)的功能.在过去,这些视图主要有两种用途: 提供安全机制,将用户限制在一个或多个基表中的 ...

  5. oracle图书操作、sql语句查询+授权、视图、索引、表操作

    oracle图书操作.sql语句查询+授权.视图.索引.表操作 一.创建一张表book,表结构为(总编号,分类号,书名,作者,出版单位,单价),插入若干记录 二.创建一张表reader,表结构为(借书 ...

  6. SQL Server基础操作(此随笔仅作为本人学习进度记录四 !--索引和视图)

    约束.索引.视图.约束:(要求字段不能为空,必须填写内容,就是非空约束)not null(非空约束).unique(唯一性约束).primary key(主键约束).foreign(外键约束).che ...

  7. SQL server学习(四)T-SQL编程之事务、索引和视图

    今天来分享下T-SQL高级编程中的事务.索引.视图,可以和之前的SQL server系列文章结合起来. 一.事务 事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作,这些操作作为一个 ...

  8. web漏洞“小迪安全课堂笔记”SQL注入

    文章目录 前言 SQL注入是什么? 注入原理 数据库结构 mysql数据库 参数类型 请求方法 如何判断注入点? 判断注入 1.信息收集 2.数据注入 3.高权限注入 魔术引号开关 跨库注入 获取所有 ...

  9. Hibernate课堂笔记

    Hibernate课堂笔记 Hibernate第一天 一:hibernate的基础知识 Hibernate的整体思想就是"操作对象的过程,就是操作数据库表的过程".如图: 1:Hi ...

  10. (B站动力节点老杜MySQL教程)MySQL课堂笔记-day03.txt

    文章目录 文件来源/资料下载: MySQL课堂笔记-day03.txt 1.约束 1.1.唯一性约束(unique) 1.2.主键约束 1.3.外键约束 2.存储引擎?(整个内容属于了解内容) 2.1 ...

最新文章

  1. 苹果手表可以运行 ruby 脚本了
  2. CES Asia专题|微鹅展示无线充电,智能手机的无线充电时代何时来临?
  3. Spring IOC快速入门
  4. hdu 4588 Count The Carries 南京邀请赛
  5. aspnetcore源码学习(一)
  6. QT 应用程序关闭某个窗口时,关闭打开的所有其他窗口并退出程序 【转】
  7. bzoj2431:[HAOI2009]逆序对数列
  8. 为什么设置二级路由器要断开WAN?
  9. 如何用 RFM 模型扒出 B 站优质 UP 主?| 附实战代码
  10. @程序媛,为什么到今天女性薪资依然不如男?
  11. 服务器需不需要虚拟内存,服务器要不要虚拟内存
  12. 小米手机微信指纹支付上传服务器吗,为什么小米手机不支持微信指纹支付,客服这样回答...
  13. 你的第一个 iOS 应用程序: 100% 的编程方式
  14. UVA - 10129 Play on Words(欧拉回路)
  15. CPU指令执行及流水线(超标量、多发射、乱序执行)
  16. 文章重复率很高,4个快速修改的小技巧,赶快用起来
  17. pythonmsgbox怎么使用_弹出MsgBox后Python是否继续执行代码?
  18. 学习HTML+CSS知识点
  19. Ubuntu16.04 64位系统下面安装JDK1.7
  20. sql自动生成汉语拼音和首字母函数[转载]

热门文章

  1. 在 Linux 平台中调试 C/C++ 内存泄漏方法
  2. js 跨域访问 找了好长时间
  3. 【转】三层架构的业务逻辑层存在的意义
  4. 如何解决第三方JavaScript引入工程后报错
  5. 06. Explicitly disallow the use of compiler-generated functions you do not want
  6. docker学习记录 docker 脚本(一)
  7. 数据结构——>单向环形链表
  8. numpy常用函数总结 | 菜鸟教程
  9. mysql 并发 加锁_MySQL的并发控制与加锁分析
  10. python使用pip安装_Python pip 安装与使用