MySQL数据库—视图索引

MySQL数据库—视图索引一.视图概述1.视图是基于某个查询结果的虚表。(根据实际存在的表,经过查询之后,创建出来的一个虚表,被称为视图)2.视图如同真实的表一样,对视图进行增删改(insert,update,delete)操作,原表数据会受影响,同样的道理,对原表进行增删改操作,视图也会受影响。3.视图的作用:方便用户对数据进行操作二.创建视图格式:createview视图的名字asselect查询语句;–创建一个视图view_student,包含计算机系和数学…

大家好,又见面了,我是你们的朋友全栈君。

一.视图概述

1.视图基于某个查询结果的虚。(根据实际存在的表,经过查询之后,创建出来的一个虚表,被称为视图)

2.视图如同真实的表一样,对视图进行增删改(insert,update,delete)操作,原表数据会受影响,同样的道理,对原表进行增删改操作,视图也会受影响。

3.视图的作用:方便用户对数据进行操作

二.创建视图

格式:create   view   视图的名字   as    select查询语句;

— 创建一个视图view_student,包含计算机系和数学系学生的信息

create  view  view_student  as   select  *   from   student  where  sdept  in(‘计算机系’,’数学系’);

— 查询view_student视图中的内容

select *  from  view_student;

— 创建一个视图view_sc,包含修了c02课程的学生学号,姓名,年龄,课程号,成绩

create  view  view_sc  as  select  student.sno,sname,sage,cno,grade  from student,sc  where  student.sno=sc.sno  and  cno=’c02′;

select  *   from  view_sc;

三.修改视图

1.修改视图的结构

alter  view  视图的名字   as    select查询语句;

2.修改视图中的数据

格式:参考修改表数据的语法格式,把表名改成视图名

update  视图名字   set  列名=值   where  条件;

— 修改view_student视图结构(学号,姓名,专业)

alter  view  view_student  as   select  sno,sname,sdept   from  student  where  sdept in (‘计算机系’,’数学系’);

— 把视图view_student中,9512101学生的专业改为软件测试

update  view_student   set  sdept=’软件测试’   where  sno=’9512101′;

select  *  from  student;

— 在view_student,把9512102学生姓名改成刘晨晨

update  view_student  set sname=’刘晨晨’  where  sno=’9512102′;

— 查询view_student视图中的内容

select *  from  view_student;

四.删除视图

1.删除视图中的数据

格式:参考删除表数据的语法格式,把表名改成视图名

delete  from  视图的名字   where   条件;

2.insert语句向视图中插入数据

格式:参考表插入数据的格式

insert  into  视图名字  values(值1,值2…);

3.删除整个视图

格式:drop   view    视图名字;

— 创建一个视图view_student,包含计算机系和数学系学生的信息

create  view  view_student  as   select  *   from   student  where  sdept  in(‘计算机系’,’数学系’);

— 创建一个视图view_sc,包含修了c02课程的学生学号,姓名,年龄,课程号,成绩

create  view  view_sc  as  select  student.sno,sname,sage,cno,grade  from student,sc  where  student.sno=sc.sno  and  cno=’c02′;

select  *   from  view_sc;

— 修改view_student视图结构(学号,姓名,专业)

alter  view  view_student  as   select  sno,sname,sdept   from  student  where  sdept in (‘计算机系’,’数学系’);

— 把视图view_student中,9512101学生的专业改为软件测试

update  view_student   set  sdept=’软件测试’   where  sno=’9512101′;

select  *  from  student;

— 在view_student,把9512102学生姓名改成刘晨晨

update  view_student  set sname=’刘晨晨’  where  sno=’9512102′;

— 查询view_student视图中的内容

select *  from  view_student;

— 向view_student表中插入两条数据

insert into  view_student  values(‘9512106′,’张三’,’计算机系’),(‘9512107′,’李四’,’计算机系’);

—  从view_student视图中,删除张三学生记录

delete  from  view_student  where  sname=’张三’;

— 删除view_student视图

drop  view  view_student;

三.视图

视图—->对实表进行查询得到的一张虚表

一.索引概述

1.索引的定义:索引是针对表中的列来进行设置的,能够快速的查询数据。

例:表(书)     索引(目录)    定位的操作

一个表中索引的设置,不会受到个数限制。

2.索引的作用(优点)—->查询

2.1加快数据的检索(查询)—->最根本的作用

2.2保证数据的唯一性

2.3实现表与表之间的参照完整性

2.4利用索引设置,可以减少分组和排序的时间

二.索引的优缺点

a.索引的缺点:

1.创建索引需要消耗数据空间,并花费一定的时间

2.查询的速度是快了,但是索引会减慢增删改的操作

3.索引的创建也是需要消耗系统性能

4.索引的优势一定在于表中数据越多,查询的速度提升就越明显,对于小表来说,索引可能不会产生优化的效果

b.优先考虑建立索引的列:

1.建立有主键或者外键约束的列

2.查询中频繁使用的列

3.连接过程中频繁使用的列(表连接,子查询)

4.分组和排序用到的列

三.创建索引

1.普通索引的创建:

格式:create   index    索引的名字  on  表名(列名);

2.唯一索引的创建

格式:create  unique   index   索引的名字   on   表名(列名);

四.删除索引

格式:drop   index   索引的名字   on  表名;

— 给student表中sno的列创建一个普通的索引index_sno

create  index  index_sno  on  student(sno);

select  sno  from student;  — 0.063s   0.060s

— 给course表的cno列设置唯一索引 index_cno

create  unique  index  index_cno   on  course(cno);

— 删除course表中的唯一索引

drop  index  index_cno  on  course;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163028.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 正则过滤内网地址和网段不一致_ip地址不是局域网网段的ip

    正则过滤内网地址和网段不一致_ip地址不是局域网网段的ip1.问题描述我要过滤出ABC类内网地址和CIDR格式的内网IP段主要是以下段1.A类地址:10.0.0.0~10.255.255.2552.B类地址:172.16.0.0~172.31.255.2553.C类地址:192.168.0.0~192.168.255.2552.解决问题正则表达式:^(10\.\d{1,3}\.\d{1,3}\.((0\/([89]|1[0-9]|2\d|3[012]))|(\d{1,3})))|(172\.(1[6789]|2\\d|3[01])\.\d{1,3

    2022年9月14日
    0
  • JavaScript高级知识总结(高级篇)[通俗易懂]

    JavaScript高级知识总结(高级篇)[通俗易懂]目录一、深入基础1.1数据类型1.分类:2.判断:3.undefined与null的区别?4.严格区别变量类型与数据类型?1.2数据变量与内存1.什么是数据?2.什么是内存?3.什么是变量?4.内存,数据,变量三者之间的关系5.vara=xxx;a内存中到底保存的是什么?6.关于引用变量的赋值问题:7.在js调用函数时传递变量参数时,是值传递还是引用传递?8.js引擎如何管理内存1.3对象1.什么是对象?2.为什么用对象?

    2025年7月16日
    0
  • Java经典23种设计模式之创造型模式(一)

    Java经典23种设计模式之创造型模式(一)

    2022年1月22日
    35
  • vs 安装包_vs离线安装包

    vs 安装包_vs离线安装包VS安装包注册com组件VS安装包注册com组件1.把你的com组件加入到打包程序。 2.在打包程序中找到该com组件,点击属性。在属性中有Register项,把值选择为vsdrfCOM即可。

    2022年10月13日
    0
  • 零基础学习JAVA其实并不难!不相信?进来看看你就知道了

    零基础学习JAVA其实并不难!不相信?进来看看你就知道了其实Java并没有想象中的那么难,首先想要入这个行,要做好一个心理准备,那就是你想走远点,就得不间断的去学习,去汲取知识,前期不能怕辛苦,不要闲下来就打LOL、吃鸡、王者农药,有空就得多看看各种开源项目的代码,API的设计方式,各大网站的设计架构,理解各个环节的作用。补齐自己的知识视野。  当然这个行业也并不是什么门槛都没有,不要再私信我初中生、高中生、中专生能不能学习Java了。反正我个人是认为不可行的,或许你可以去问问其他大神?或许他们会觉得可以的。  下图是我更新过的自学表,分别分为4个阶段。按

    2022年7月7日
    36
  • 遍历hashmap的三种方式_HashMap

    遍历hashmap的三种方式_HashMappublicstaticvoidmain(String[]args){Map<String,String>map=newHashMap();map.put(“aa”,”11″);map.put(“bb”,”22″);Set<String>set=map.keySet();Iteratoriter=set.iterator();while(iter.

    2025年7月9日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号