再次认识mysql(四)

原创 2016年08月31日 22:53:57

视图  view 虚拟表(sql的查询结果)

创建  create view vuser as  select cat_id,avg(shop_price) as pj  from goods group by cat_id;

删除  

视图其实是物理表的投影   

作用:权限控制  通过视图开放一列或者几列  

            简化复杂查询

如果视图的每一行与物理表是一一对应的则可以互相更新

视图的一行是由物理表进行计算得到的结果 则视图不能够更新

视图的算法 

merge 存储视图语句  合并

temptable     视图本身比较复杂  执行视图创建语句 结果集形成内存中的临时表  然后查临时表      

create algorithm =merge view goods.v1 as select goods_id,avg(shop_price) as pj,avg(market_price) as mpj from goods;

            algorithm=temptable

 alter view 

 drop view  v1;

 show create view v1;


查看表  desc  goods;

删除表  drop  table  goods;

查看建表过程  show create table goods;

查看表信息   show table  status ;

查看具体表的详细信息  show table status where name='goods';

修改表名称 rename table old to new;

初始化表数据  truncate table;    相当于drop和create 

 

存储引擎  数据库对同样的数据 有着不同的存储方式和管理方式

 默认引擎:InnoDB

Myisam  批量插入速度 高   

InnoDB                            低      支持事务安全    日志系统健全 不易丢失  

 

字符集  UTF8 



查看支持的编码  show character set;

查看支持的校验规则 show collation;

编码校验规则:用于排序和比较使用   _ci不区分大小写的比对 

字段指定编码格式未指定校对规则,会采用该编码默认校对规则

字符集mysql环境  show variables like "%character%";

设置mysql字符集环境 client connection database filesystem  results  server  system

set character_set_client=utf-8; 设置为utf-8


索引 index

作用:数据的目录,能快速定位行数据的位置。

代价:提高了查询速度,降低了增删改的速度(索引也会发生变化)

一般在查询频率高的列上加,而且列重复度低的列上 效果更好

普通索引 key

唯一索引 unique key  便于查询和约束数据  email char(20)   unique key email(email(10))  针对email列的前10个字符  建立索引 email

主键索引 primary key    id int     primary key(id)  

全文索引  fulltext  中文环境下无效果  (分词+索引   sphinx)

多列索引  把多列的值看成一个整体   

create table t1(xing char(2),ming(char(10),key xm(xing,ming));

explain select * from t1 where xing=‘你’ and ming=‘真是’ \G;          查看如何利用索引来处理这条语句执行情况    \G将字段打印到单独的行      使用到了索引

explain select * from t1 where xing=‘你’     使用到了索引

explain select * from t1 where ming=‘真是’  没用使用索引            左前缀 从左往右    由左可以确定   由右不可以确定

冗余索引 某一个列上可能有多个索引   

create table  t1 (xing char(2),ming char(10),key xm(xing,ming),key m(ming));

show index from t1; 查看索引

alter table t1 drop index ming   删除索引

drop index ming on t1 删除索引

alter table t1 add index xm(xing,ming) 增加索引

alter table t1 add unique m(ming);增加索引





版权声明:本文为博主原创文章,转载请注明出处,谢谢!

再次认识mysql(二)

group 分组与统计函数 max()求最大  min()求最小   sum()求总和  avg()求平均   count()求行数 select sum(goods_num*shop_price...

再次认识Struts2(四)

ognl object-graph navigation  功能强大的表达式语言 struts2默认表达式语言 valueStack 值栈 作用:将action中的数据携带到jsp页面上进行展示...

zhphp framework (十二) 数据链接层,首先pdo,其次mysqli,再次mysql接口

linux下完全删除mysql并再次安装

http://wuyanzan60688.blog.163.com/blog/static/12777616320122921232402/ 与很多软件安装一样,如果是第二次安装,比第一...
  • llwan
  • llwan
  • 2014年11月25日 21:42
  • 3403

HIVE再次尝试 用 Mysql 环境搭建 以及 mysql中文乱码完美解决

上文说道hive用默认的Derby作为metadata的存放处,但是这个缺点比较多,只能同时让一个用户登陆,不能用于真正的集群,下面讲解用mysql作为数据的搭建方法。 第一步:安装mysql 因...
  • on_way_
  • on_way_
  • 2013年09月17日 18:10
  • 2403

mysql root用户没有超级权限或忘记密码 【为root设置密码后,再次登录,就看不到mysql数据库了,原来】

为root用户设置密码这样才正确: pdate user set password = password('111111') where user='root'; 文章来源:http://liangf...

mysql 的卸载后再次安装,以前的mysql服务还在的问题原因和解决办法

我是mysql的初学者,在第一次安装mysql时因为配置不对的问题,我把mysql卸载后再次安装后,安装到要输入服务器名字时,使用默认名字会出错,我就随便改了个名字就可以继续安装,安装完成后。我打开服...

对你的再次认识——机房的整体分析

从开始机房到现在已经过去了不少时间,可我的进度始终很慢,感觉自己对机房的了解还不够,师傅也一再强带这一点,我觉得是时候再次总结总结了。(个人总结,有问题谢谢指出!)      先来看看三大块中每个操...

再次认识java的序列化

首先是我们为什么要序列化? 我们可以来想想游戏的场景,一个游戏有很多关卡,并不是一次性能够打完的。如果我们打完一关,这时候需要退出游戏休息了。当我们再次进入游戏之后发现这个游戏竟然需要重新打起,我们接...

再次认识Hibernate(三)

Hibernate
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:再次认识mysql(四)
举报原因:
原因补充:

(最多只允许输入30个字)