数据库的数据操作,视图及索引详细笔记

数据操纵

插入数据

第一种插入方式

insert into 表名【属性列,属性列】
values (值1,值2);
insert into 表名
values(值);

此时这个值必须对应表中属性列所对应的数据类型

若有些属性列未能赋值,则DBMS会为省略的属性列自动赋值

第二种插入方式可以插入多个元组

insert into 表名(列名)
子查询

**例题 **对每一个系,求学生的平均年龄,并把结果存入数据库

第一步:建表

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改数据

update <表名>
set <列名>=<表达式>
[where <条件>]

set子句指定要修改的列;及修改后的取值

where指定要修改的元组;缺省则表示要修改表中的所有元组

update St
set Sage=22
where Sno=200215121

带有子查询的修改语句

删除数据

基本语法

delete from 表名
[where ]

where缺省则表示删除所有数据;

视图

视图特点:

  • 视图是一个虚表,是从一个或几个基本表导出的表
  • 数据字典中只存放视图的定义不存放视图对应的数据
  • 基表中的数据发生变化,从视图中查询出的数据也随之改变

视图的操作

创建视图

create view <视图名>[列名...]
as <子查询>
[with check option];
  • 按视图定义的数据从基本表中查到
基于单表创建的视图

例题创建一个计算机系教师情况的视图Sub_T

create view Sub_T
as select T.no,tN,Prof
from T
where Dept='计算机'

创建好后可在sql_server中查看到如下

基于多个基本表创建的视图

例题创建一个学生情况视图S_SC_C(包括学号,姓名,课程名,成绩)。

基于视图的视图

基于分组的视图

修改视图

alter view 表名
as 子查询

删除视图

drop view 视图名

查询视图

与查询基本表的操作相同

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-53Q0Wdvy-1650099255151)(../%E5%9B%BE%E7%89%87/image-20220416154322475.png)]

视图消解法:简化了查询的操作

更新视图

  • 由于视图是一张虚表,所以对视图的更新最终转为对基本表的更新
  • 其语法格式如同对基本表的更新一样

例如修改视图Sub_T刘伟的职称为副教授

视图Sub_T的创建语句:
CREATE   VIEW   Sub_T   AS    
SELECT    TNO, TN, Prof    FROM       T 
WHERE     DEPT = '计算机';

UPDATE  Sub_T   SET   Prof='副教授'   WHERE  TN='刘伟';
/*视图消解转换后的更新语句为:*/
UPDATE  T  SET  Prof='副教授'   
WHERE  TN='刘伟'  AND  Dept = '计算机';
SELECT   *   FROM   T;        SELECT   *   FROM   Sub_T;


在这里插入图片描述

视图的作用

  • (1)视图能够简化用户的操作
  • (2)视图使用户能以多种角度看待同一数据
  • (3)视图对重构数据库提供了一定程度的逻辑独立性
  • (4)视图能够对机密数据提供安全保护
  • (5)适当的利用视图可以更清晰的表达查询

索引

使用索引的目的

可提高查询效率

索引类型

从物理结构分:

聚集索引和非聚集索引

聚集索引:索引的键值的逻辑顺序决定了表中相应行的物理顺序。一个表中只能有一个聚集索引

​ 例如,以学号为索引字段为学生表S建立非聚集索引,
索引的顺序取决于记录地址的顺序。字典的笔画目录就属于非聚集索引。

从应用上分

​ 可分为:主键索引、唯一索引、组合索引和全文索引。

主键索引:

​ 当为一个表创建主键的时候,Sql Server会自动为主键列创建一个索引,且该索引是聚集索引。

唯一索引:

​ 唯一索引可以是聚集索引,也可以是非聚集索引。它要求在唯一索引所限制的列中,不允许有重复的
键值。并且具有唯一约束的列,Sql Server会自动的给他创建一个唯一索引。

组合索引:

​ 表示这个索引的索引列可以有多个。

比如学生成绩表 SC中,我们可以把学号和课程号组合在一起建立索引。
它的使用范围是多个列经常在一起作为查询条件。

全文索引:

​ 是一种特性类型的基于标记的功能性索引。

一般情况下,为Sql Server中的文本数据创建索引。全文索引主要用于在大量文本文字中搜索字符串,

我们可以使用 SQL中的like关键字进行字符串检索,但是在大量文本
中使用like关键字效率远低于全文索引。

创建索引

基本语法:
	CREATE   [索引类型]   INDEX    索引名称    ON   表名(列名)

例:根据成员表MEMBER ,以NAME字段建立非聚集索引。
CREATE NONCLUSTERED INDEX N_NAME
ON MEMBER(NAME);
例:根据成员表MEMBER ,以MAJOR字段建立唯一索引。
CREATE UNIQUE INDEX U_MAJOR ON MEMBER(MAJOR);
EXEC SP_HELPINDEX MEMBER;

>

查看和删除索引

​ 查看索引 – EXEC SP_HELPINDEX 数据表名
​ 删除索引 – DROP INDEX 数据表名.索引名称

EXEC    SP_HELPINDEX     数据表名 
DROP     INDEX     数据表名.索引名称

总结

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值