易截截图软件、单文件、免安装、纯绿色、仅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删除指定行

mysql> select * from tx;
+------+
| id   |
+------+
|    4 |
|    7 |
|    3 |
|    9 |
|    5 |
+------+
5 rows in set (0.05 sec)
mysql> delete a from tx a inner join (select * from tx limit 2,2) b ......

Linux C MySQL数据库函数

1. 初始化一个连接句柄
    MYSQL *mysql_init(MYSQL *);
    正确:返回一个指向新分配的链接句柄结构的指针
    错误:NULL
    注:该函数的传入参数通常为NULL即可。
2. 建立物理连接
    MYSQL *mysql_real_connect(MYSQL *connect ......

JAVA和PHP获取mysql最后插入的自增id值

php和java通用sql语句法
SELECT max(id) from table
该方法在多线程等情况下可能会造成不正确。
java三种方法
1、根据ps的getGeneratedKeys
PreparedStatement ps = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); //红色是关键
ps.executeUpdate(); //执行后
ResultSet rs = ps.getGeneratedKeys ......

MySQL 编码机制

一般在MYSQL使用中文查询
都是用 set NAMES character
character_set_client ,这是用户告诉MySQL查询是用的什么字符集。
character_set_connection ,MySQL接受到用户查询后,按照character_set_client将其转化为character_set_connection设定的字符集。
character_set_results , MySQL将存储的数据转换成charact ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号