学习笔记整理-数据库系统原理复习3-数据更新、表的查询、视图、索引

文章介绍了数据库中的数据操作,包括添加、修改和删除数据的SQL语句,以及查询技巧,如单表查询、分组排序、分页和连接查询。此外,还涉及到了子查询和视图的创建与使用,以及索引的作用和类型,强调了索引对查询速度的影响和创建原则。
摘要由CSDN通过智能技术生成

以下内容为个人的学习笔记整理,如有错误,请指出,谢谢~


一、数据更新

1、添加数据(insert):
①添加一行新记录:insert into 表名 (列名1,列名2,列名3....) values(值1,值2,值3....)
如果值是字符串要用""/'',并且列名和值要一一对应。
②添加多行记录:1c26a65adf8d4465be5871a1da72c9b6.png

2、修改数据(update):
①修改一行:update 表名 set 列名1=表达式1,列名2=表达式2.... where 条件
②修改多行:update S set age=age+2

3、删除数据(delete):
①一行一行删除:delete from 表名 where 条件
②清空表,保留表的结构并且不能撤销还原:truncate table 表名

二、表的查询

1、单表查询:
查询全部select * from 表名
查询部分:select 列名1,列名2... from 表名 where 条件
分组+排序查询group by 列名+order by 列名 asc升序/desc降序):
例子:查询学生表(s)中学生的年龄以及各年龄人数,并且按照年龄的降序排序:
select count(*) from s group by age order by age desc;
分页技术:limit后面接整数
select * from s limit 5;只出现前五条数据
select * from s limit 1,5;检测1-5的数据(从0开始是第一条)

2、常用的比较运算符
5de294d9f06b4757aa62f30524fa66e8.png

 还可以:not between 10 and 100、not in、is not null

3、常用库函数以及统计汇总查询
b167c828cc674a8fa5b42533656dd7af.png

 ①求学号为S1的学生的总分和平均分:
select sum(score) as sumscore,avg(score) as avgscore from sc where son="S1";
②求选修课C1课程最高分和最低分以及之间相差的分数:
select max(score) as maxscore,min(scoce) as minscoce,max(score)-min(scoce) as diff from sc where sno="C1";
③求学校中共有多少个系:
select count(distinct dept) as deptnum from s;
distinct是去除重复行
④统计有成绩同学的人数:
select count(scoce) from sc where scoce is not null;
select count(scoce) from sc;

4、连接查询
①表之间满足一定条件的行进行连接时,from子句表明进行连接的表名,where子句表名连接的列名及其连接条件。
②利用关键字join进行连接,当join关键字放在from子句中应有关键字on与之对应,表明连接条件。
③inner join:显示复合条件的记录,此为默认值。
④left join:左(外)连接,用于显示符合条件的数据以及左边不符合的数据行,此时右边的数据行会null来显示。
⑤right join:右(内)连接,用于显示符合条件的数据以及右边不符合的数据行,此时左边的数据行会null来显示。
0bec275d78ae4752a51084331607eeeb.png

 5、子查询:WHERE子句中包含一个形如SELECT-FROM-WHERE的查询块,此查询块称为子查询或嵌套查询。
例:查询与“刘伟”老师职称相同的教师号、姓名:
select sno name from t where prof=(select prof from t where name="刘伟");
①返回一个值的用=
②返回一组的话用:=any(子查询)、>any子查询......in(子查询)37d1985e291547d1a0731a1b76882eaa.png

三、视图的创建和使用

1、视图是虚表,其数据不进行存储,其记录来自于基本表,只在数据库中存储其定义。
对视图的操作会影响到原表数据!!

2、视图创建:
例:创建一学生情况视图S_SC_C(包括学号、姓名、课程名及成绩)
create view s_sc_c(sno,sn,cn,scoce) as select s.sno,sn,cn,scoce from s,c,sc where s.sno=sc.sno and sc.cno=c.cno;

3、视图的修改:
alter view 视图名(视图列表) as 子查询

4、删除视图:删除视图,不会删除数据,但是删除视图的数据,会删除掉原表的数据
drop view 视图名

5、视图的查询、更新跟基本表的操作是一样的,视图的建立简化了查询的操作

四、索引

1、索引的作用:加快查询速度,保证行的惟一性

2、索引的分类:
①普通索引:create index ind_name on customer(cname)
②唯一索引(unique):create unique index o_index1 on oders(cid,gid)
③复合索引
④主键
⑤全文索引
⑥空间索引
注意:改变表的数据时候,索引将自动更新;索引建立之后,在查询使用该列时,系统自动使用索引进行查询;索引的数目无限,但索引越多更新数据的速度越慢。数据库引擎优化顾问检查指定查询的处理方式。

3、创建索引的指导原则:
①索引主要是用于提高查询效率,如果查询操作比较少,而数据更新操作比较多,应该较少创建索引。
②对数据量少的表,无须创建索引
数据量更大的表,并且经常使用某个字段作为查询的条件,或者经常用该字段进行排序,则可以通过创建索引提高查询速度。
④若字段中包含几个不同的值,大部分为重复值,则不需要创建索引

4、删除索引:
drop index 索引名 on 数据表名

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aure_xl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值