易截截图软件、单文件、免安装、纯绿色、仅160KB

mysql使用小记

       最近用mysql写了几个复杂的语句,感觉在关系很复杂的时候先理清关系再选择用的查询方法是很重要的,因为同一个需求可能用不同的方法来查出来,但是复杂度,性能都不一样。
      下面说一下能实现复杂查询的一些一般方法:
一.with语法(首先说明,好像Mysql不支持这个语法,但是sqlserver是支持的),即with tableA as select .... from table B。相当于在数据库中建立了一个临时表。其实我喜欢这种语法,因为看起来像是面向对象的,结构清晰。
二.建立临时表,即create temporary table{...},其他类似了,但是网上说这种方法开销很大,建议考虑性能的应用慎用。
三.嵌套查询,即select a,b from (select a* as a, b* as b from A*) as A...,这是很常用的方法,也很好用,性能应该也不错。
四.各种连接,即select a ,b,c from A inner join B inner join C, 这种结构上倒是也很清晰,但是最大的缺点就是冗余数据太多,增加系统负担,因为表中的列你都给连接过来了,而实际上是根本用不了这么多的(可能只需要每个表中特定的几列),这样造成连接后的表太庞大了,性能应该很差 。 所以在你确定冗余数据不多时,可以用这种方法。
自己的心得,可能也不完全。其实真正用的时候是几种方法结合起来更好,比如
select a,b from (select a* as a from A*) as A inner join (select b* as b from B*) as B on A.some=B.some where a='hello';


相关文档:

Mysql安装版与免安装版的切换使用

如果同意系统中同时存在install mysql和no—install mysql,那么怎样进行两个版本的切换使用呢?又会遇到什么样的问题呢?
首先,install mysql的mysql服务是默认启动的,在任务管理器进程中可以看到几条sql的字眼,如mysqld.exe,sqlbrowser。这是install mysql的服务。那么通过快捷方式或navicat就能启动使用install ......

MySql与Java的时间类型

MySql的时间类型有          Java中与之对应的时间类型
date                                  ......

MySQL 编码机制

一般在MYSQL使用中文查询
都是用 set NAMES character
character_set_client ,这是用户告诉MySQL查询是用的什么字符集。
character_set_connection ,MySQL接受到用户查询后,按照character_set_client将其转化为character_set_connection设定的字符集。
character_set_results , MySQL将存储的数据转换成charact ......

mysql级联删除 Mysql 的 Cascade Restrict

今天遇到数据库的一个问题,就是每当从主表中删除一个主键id时,由于与他相关联的表中有相关的字段数据,所以无法删除。查了一大堆资料,发现我建表关联用的是on Restrict.可能问题就出在这里吧。 
外键约束对子表的含义: 
  如果在父表中找不到候选键,则不允许在子表上进行insert/update 
外键约束 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号