MySQL 查询笔记

 

高级查询

外连接

  左外连

以左边表的数据为主,右边表中无数据匹配用null表示

Select  列名,列名…..  from 主表  left  join  表 on  两表之间关系

  右外连

以右边表的数据为主,左边表中无数据匹配用null表示

Select  列名,列名…..  from 主表  right  join  表 on  两表之间关系

 

MySQL的数据表的类型:

MyISAM、InnoDB 、HEAP、BOB、CSV等

常见的MyISAM与InnoDB类型

适用场合:

  使用MyISAM:   节约空间及相应速度

  使用InnoDB:     安全性,事务处理及多用户操作数据表

 

名称       MyISAM InnoDB

事务处理       不支持  支持

数据行锁定     不支持    支持

外键约束        不支持  支持

全文索引        支持  不支持

表空间大小 较小  较大,约2倍

 

索引:

创建索引

创建表时添加

建表后追加:

语法:  alter table 表名  add index  索引名称(列名);

删除索引

DROP  INDEX 索引名 ON    表名

ALTER TABLE 表名   DROP  INDEX  索引名

ALTER TABLE 表名   DROP  PRIMARY KEY

查看索引

SHOW  INDEX(或KEYS) FROM 表名

show index from student \G  竖行显示

 

索引分类: 主键索引(PRIMARY KEY)唯一索引(UNIQUE)常规索引(INDEX)全文索引(FULLTEXT)

主键索引和唯一索引在添加约束时自动创建

 

常规索引

作用:快速定位特定数据

注意:

index和key关键字都可设置常规索引

应加在查找条件的字段

不宜添加太多常规索引,影响数据的插入、删除和修改操作

创建表时添加:

CREATE TABLE  `result` (

 //省略一些代码

INDEX/KEY   `ind`  (`studentNo`, `subjectNo`)

)

 

创建后追加

 

alter table student add index  ind_gradeid(gradeid);

 

 

全文索引(FULLTEXT)

作用:

快速定位特定数据

注意:

只能用于MyISAM类型的数据表

只能用于 CHAR 、 VARCHAR、TEXT数据列类型

适合大型数据集

创建表时添加:

CREATE TABLE  `student` (

 #省略一些SQL语句

FULLTEXT (`StudentName`)

)ENGINE=MYISAM;

创建后追加

ALTER TABLE employee ADD FULLTEXT (`first_name`);

 

索引不是越多越好

不要对经常变动的数据加索引

小数据量的表建议不要加索引

索引一般应加在查找条件的字段

什么时候添加索引?

having  group by  order by   where  from

在WHERE,ORDER BY 子句中经常使用的字段

字段的值是多个(例如性别字段则不适合)

字段内容不是经常变化的

经常变化的字段,添加索引反而降低性能

不宜过多添加索引

每添加一条索引都会占用磁盘空间

 

举个例子来说,比如你在为某商场做一个会员卡的系统。

 这个系统有一个会员表

 有下列字段:

会员编号 INT

会员姓名 VARCHAR(10)

会员身份证号码 VARCHAR(18)

会员电话 VARCHAR(10)

会员住址 VARCHAR(50)

会员备注信息 TEXT

 

那么这个 会员编号,作为主键,使用 PRIMARY

会员姓名 如果要建索引的话,那么就是普通的 INDEX

会员身份证号码 如果要建索引的话,那么可以选择 UNIQUE (唯一的,不允许重复)

 会员备注信息 , 如果需要建索引的话,可以选择 FULLTEXT,全文搜索。

 

 不过 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。

 用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值