首页 > 数据库 >MySQL 视图 View

MySQL 视图 View

时间:2022-10-22 10:32:49浏览次数:51  
标签:index name -- 视图 索引 MySQL select View

视图 View

视图是一个虚拟表,是sql的查询结果,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成。视图的数据变化会影响到基表,基表的数据变化也会影响到视图[insert update delete ] ; 创建视图需要create view 权限,并且对于查询涉及的列有select权限;使用create or replace 或者 alter修改视图,那么还需要改视图的drop权限。

select * from stu;
-- 建立视图
create view v_li as
    select id,name,score from stu where name like '李%'

--
show tables;
select * from v_li limit 5;

-- 建立账号,并授权
create user vu identified by 'vu';
grant select(id,name) on wxdb.v_li to vu;
grant select on wxdb.v_li to vu;


create view v_member as
    select m.nickname,m.sex,m.mobile  from hbcf.cf_member m;

grant select on v_member to vu;


-- 删除视图
drop view v_member;


-- 查看系统所有账号信息
select user,host,u.authentication_string,u.plugin from mysql.user u;

image-20210525174708958

索引 index

MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。

打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。

拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。

索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。

创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。

实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。

上面都在说使用索引的好处,但过多的使用索引将会造成滥用。因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。

建立索引会占用磁盘空间的索引文件。

image-20210526094947450

select user(),database();
select user(),database() from dual;

-- 建立索引
-- 每一个约束,自带索引 pk uk uk
create index name_index on stu(name asc);

-- 修改表建立索引
-- ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。
-- ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。
-- ALTER TABLE tbl_name ADD INDEX index_name (column_list): 添加普通索引,索引值可出现多次。
-- ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):该语句指定了索引为 FULLTEXT ,用于全文索引。


-- 建立表时指定索引,
create table t(t varchar(30),key(t desc))
show index from t;
-- 删除索引
drop index t on t;

alter table t add index index1 (t desc);
alter table t drop index index1;

-- 使用索引
select * from stu where name = '李丽';

-- 建立唯一索引
create unique index  name_index on stu(name asc);

create index namegi on stu(name asc,gender desc);

-- 删除索引
drop index name_index on stu;
drop index namegi on stu;

-- 查看表中所有索引
show index from stu;

-- 索引缺点  1 50mb 100mb 2 降低数据的插入,修改速度


标签:index,name,--,视图,索引,MySQL,select,View
From: https://blog.51cto.com/lianghecai/5785689

相关文章

  • 101-mysql left join 一对多,取右表最新一条记录
    SELECTa.*,e.userNameaschatUser,e.contentascontent,e.chatTimeaschatTimeFROM......
  • 二叉树的右视图
    给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 publicList<Integer>rightSideView(TreeNoderoot){......
  • mysql 中datetime类型相减结果是多少秒
    1.mysql中datetime类型相减  结果是多少秒  2.java中java.util.date类型相减是毫秒  ......
  • Kotlin实现ScrollView和RecyclerView的嵌套滚
    此篇文章给出在Android上用Kotlin实现ScrollView和RecyclerView的嵌套滚动。首先看一下实现后的效果:我们需要了解的是Android已为我们实现了ScrollView的嵌套类NestedSc......
  • mysql for linux :安装及删除
    官网:https://downloads.mysql.com/archives/community/在官网找到适合自己版本的mysql,个人选择的是5.7.27、Redhat操作系统、操作系统版本7,X86平台64位。可以直接下载,也......
  • GAMES 201 Lecture 2&3 Lagrangian View
    Lecture2&3LagrangianView目录->我的GAMES201学习笔记——————————————施工中————————————————提醒自己明天上完整理笔记......
  • 安装MySQL数据库
    安装1.使用wget命令安装MySQL:https://www.cnblogs.com/zull123/p/10038299.html#yum安装出现"nomoremirrorstotry"时解决方法:yumcleanall;yummakecache;yum......
  • 怎样将控制层的数据传回到视图
    怎么将控制层的数据传回到视图ModelModelMapMapModelAndView默认都是存入request域中1.通过Model存入存入//方式1存入model@RequestMapping("/selectUser")......
  • 怎样将控制层数据传到视图
    怎么将控制层的数据传回到视图ModelModelMapMapModelAndView默认都是存入request域中1.通过Model存入存入//方式1存入model@RequestMapping("/selectUser")publicStr......
  • 解决MySQL报错: Cannot add or update a child row: a foreign key constraint fails…
    今天在做数据库项目时,给表添加外键,但是怎么运行都会报这个错误,Cannotaddorupdateachildrow:aforeignkeyconstraintfails(rongyao.news_detail,CONSTRAINTnew......