再次认识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);增加索引





版权声明:本文为博主原创文章,转载请注明出处,谢谢! https://blog.csdn.net/u010094934/article/details/52384011

再次认识Struts2(四)

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

再次认识Hibernate(四)

Hibernate的二级缓存 对类/对象的缓存   类缓存区  缓存的是对象的散装数据   集合缓存区  缓存的是对象的id    二级缓存会缓存到硬盘 Hibernate的查询缓存  对类中属性的缓...
  • u010094934
  • u010094934
  • 2016-10-26 00:23:29
  • 82

再次认识mysql(二)

group 分组与统计函数 max()求最大  min()求最小   sum()求总和  avg()求平均   count()求行数 select sum(goods_num*shop_price...
  • u010094934
  • u010094934
  • 2016-08-29 17:35:12
  • 308

再次认识mysql(一)

mysql:管理数据的软件 mysqld.exe:服务器端 mysql.exe:客户端 sql:structured query language  结构化查询语言  分为三个部分 dml dd...
  • u010094934
  • u010094934
  • 2016-08-29 17:03:02
  • 320

再次认识mysql(三)

创建表
  • u010094934
  • u010094934
  • 2016-08-31 13:19:33
  • 185

再次认识mysql(五)

mysql常用函数 floor(x) 返回小于x的最大整数值 rand(x) 返回0到1之间的随机数 position(substr in str)  返回substr的位置 now() 返回...
  • u010094934
  • u010094934
  • 2016-08-31 23:29:37
  • 99

认识MySQL数据库

1.       mysql的简介   MySQL 是一个真正的多用户、多线程SQL数据库服务器,它是一个客户机/服务器?CS,BS?结构的实现。MySQL是现在流行的关系数据库中其中的一种,相比其...
  • u010880613
  • u010880613
  • 2014-05-29 23:37:54
  • 1343

《mysql学习》-- mysql基本认识

MySQLMySQL MySQL基本认识 表结构 常用指令 数据类型 语句 mysql执行流程 MySQL基本认识 mysql是单进程多线程,每个进程在电脑上能使用的内存最大是有限制的,32位系统...
  • lizhi_java
  • lizhi_java
  • 2017-04-04 20:50:49
  • 281

初步认识mysql

一:安装mysql-5.6.22-winx64(简单介绍)         windows下mysql免安装配置       1、 下载mysql免安装压缩包                 ...
  • jrdgogo
  • jrdgogo
  • 2016-08-05 17:07:35
  • 448

四阶魔方玩法总结V1.0

四阶魔方玩法总结V1.0 1.引言今写此文,我主要是为了方便自己再次玩其魔方的时候,可以快速的想起,避免又从头学起。毕竟自己学会的,理解的,写出来的东西,再次玩魔方的时候,仅仅是回顾和追忆的过程,不存...
  • littletigerat
  • littletigerat
  • 2013-12-29 16:11:55
  • 2457
收藏助手
不良信息举报
您举报文章:再次认识mysql(四)
举报原因:
原因补充:

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