随笔分类 - 数据库
摘要:oracle对无order by的语句返回的结果不进行排序,oracle此时的处理方式是按照数据的物理存储顺序来读取数据。因为rowid是每行数据的地址,所以有时候看起来会像是使用rowid排序的。但这个顺序是可能被打乱的,在表的数据被删除后,rowid会被新插入的数据占用。所以一个无order by查询结果看起来也可能是个杂乱无章的。Select 语句如果不加 “Order By”, MySQL会怎么排序呢?* 不能依赖 MySQL 的默认排序* 如果你想排序,总是加上 Order By* GROUP BY 强加了 Order By,对于 MyISAM 表MySQL Select 默认排序是
阅读全文
摘要:今天使用sql在oracle直接insert update一个表时,出现ORA-01704: string literal too long的错误,我们的sql是update mall_config a set a.category_info='|标准件:1040140,1035382,1036586,1035383,1032451,1032469,141903,1036587,1044047,1035380,1035385,1455,1035379,1035376,1035464,141906,1046869,1035386,141909,1035377,141901,1046875
阅读全文
摘要:jetty7对sessionId的处理,首先入口在SessionHandler.java的doScope方法,jetty的源码分析可以参考这篇http://zhwj184.iteye.com/admin/blogs/1161542。 /* ------------------------------------------------------------ */ /* * @see org.eclipse.jetty.server.Handler#handle(javax.servlet.http.HttpServletRequest, javax.servlet.http...
阅读全文
摘要:第二章:乱穿马路 2.1 目标:存储多值属性 2.2 反模式:格式化的逗号分隔列表 模糊匹配无法使用索引,影响性能;多表关联麻烦,却极大影响性能;执行聚合查询不方便开发和调试;更新某个字段值必须执行两次;字段内容出错数据很难恢复修正;选择一个用不用到的分隔符,无法确认不适用;列表长度限制; 2.3 解决方案:创建一张交叉表,实现两张表的多对多的关联第三章:单纯的树 目标:分层存储和查询 案例:文章和评论 每篇文章有多篇评论,每个评论可以引用另外的评论。 反模式: 最简单的解决方案就是在同一张表中存储该评论id的父节点id(parent_id) 邻接表的使用查询:select c1....
阅读全文
摘要:表结构:create table view(id int unsigned NOT NULL AUTO_INCREMENT, catid int,title varchar(256),picture MEDIUMBLOB, content TEXT,PRIMARY KEY (id));java类操作:import java.awt.Image;
import java.io.*;
import java.nio.ByteBuffer;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQ
阅读全文
摘要:oracle里面要获取每个分组里面的topN可以采用:select *
from (select emp_id, name, occupation, rank() over ( partition by occupation order by emp_id) rank from employee)
where rank <= 3 select * from (select emp_id, name, occupation,rank() over ( partition by occupation order by emp_id,RowNum) ...
阅读全文
摘要:mysql> show table status like 'mytable' \G;*************************** 1. row *************************** Name: mytable 表名 Engine: InnoDB 存储引擎伟InnoDB Version: 10 mysql版本 Row_format: Compact 行格式。有Dynamic,fixed,Compact等格式。Dynamic是动态行,表字段里面宝航varchar,BloB等不定长字段。fixed是定长行。Compact是行压缩。 Ro...
阅读全文
摘要:1.避免在where子句中对字段施加函数,这样将导致索引失效,比如:select * from user where to_char(create_time,'yyyymmdd')='20090101';原因:在建立index的时候是根据字段来建立的,也就是说oracle在inidex的时候是索引的字段的值,如果提供给oracle的是一个需要经过函数处理的比较,oracle就没办法通过索引中的索引键值来进行相应的比较,所以就不会走到索引上2.避免在SQL中发生隐式类型转换如:select * from user where id='123'; -
阅读全文
摘要:编译和连接程序 MySQL中有一个特殊的脚本,叫做mysql_config. 它会为你编译MySQL客户端,并连接到MySQL服务器提供有用的信息.你需要使用下面两个选项. 1. --libs 选项 - 连接MySQL客户端函数库所需要的库和选项. $ mysql_config --libs 2. --cflags 选项 - 使用必要的include文件的选项等等. $ mysql_config --cflags 你需要将上面两个选项加入到对源文件的编译命令中. 所以,要编译上面的程序,要使用下面的命令: $ g++ -o output-file $(mysql_config ...
阅读全文
摘要:1.在创建表的同时创建索引 CREATE TABLE material(id INT NOT NULL, name char(40) NOT NULL, resistance INT, INDEX index1(id,name), UNIQUE INDEX index2(name)) 第一个索引,名为index1,由id和name两个字段组成。第二个索引只包含name,并指明name字段的值必须是唯一的。2.插入数据,可以通过其他某个表中的数据填充新表以插入新数据 INSERT INTO foods(name,fat) SELECT food_name, fat_grams FROM reci
阅读全文
浙公网安备 33010602011771号