一.基本操作

1.left join

根据左表全部显示,右表空显示null

2.right join

右表全部显示,左表不能对应显示null

3.inner join

俩个表共同有才显示

 

select a.* ,AVG(Rawdata) as Avg,a.Value/b.Value as Ratio from vwMTT a inner join vwTemp b on a.guid=b.guid where Probe='11' group by a.id;

二.添加索引

1.索引

Alter Table 'tableName' ADD INDEX indexName ('column','column1')

2.主键索引

ALTER TABLE 'tableName' ADD PRIMARY KEY ('column')

在表中定义主键将自动创建主键索引,是唯一索引的特定类型

3.唯一索引

ALTER TABLE 'tableName' ADD UNIQUE('column')

不允许其中任何俩行具有相同索引值的索引,列如在员工表中姓上创建唯一索引,则任何俩个员工不能同姓

4.全文索引

ALTER TABLE 'tableName' ADD FULLTEXT('column')

 

create index index_name1_name2 on tableName(column...)

索引作用

用来定位,提高表的搜索效率而对某些字段中的值建立的目录

聚簇索引:按照数据存放物理位置为顺序,提高多行检索的速度

表中物理顺序与键值对的逻辑顺序相同,一个表中只能有一个聚集索引

非聚簇索引:对单行的检索很快

索引有效性

检查查询的where和join语句,在任意子句中每一列都是索引可以选择的对象

最好避免单个表上有很多索引,最好避免包含共享列的重叠索引

索引确定

检查某列中唯一数据值的数量,并将该数量和表中的行数进行比较,确定该列是否合适该列的可选性

索引基本特点

增加数据库的存储空间

插入,修改数据时花费较多的时间

适用

保证每行数据的唯一性,加速表之间的连接,在查询中使用优化隐藏器,加快分组排序

在主键的列上,强制该列的唯一性和组织表中的数据的排列结构

经常需要搜索

经常用在连接的列上,主要是外键

经常需要根据范围进行搜索的列上,因为索引已经排序,指定的范围是连续的

经常需要排序的列

经常使用where子句中的列,加快判断速度

不适用

查询中很少使用

数据值很少

定义为text,image,bit的数据类型的列,取值要么大要么小

修改性能远大于检索性能