第一篇:
表设计和查询的一些参考
1.合理使用索引
索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。索引的使用要恰到好处,其使用原则如下:
●在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。
●在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引。
●在条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。比如在雇员表的“性别”列上只有“男”与“女”两个不同值,因此就无必要建立索引。如果建立索引不但不会提高查询效率,反而会严重降低更新速度。
...
以前在我的博客上发过文章总结我遇到的数据及网页上中文乱码的处理办法[再谈乱码问题,如何解决MYSQL数据中文乱码问题] [解决jsp,tomcat,MYSQL下中文乱码问题] ,但是,不幸的是,今天又遇到了,用过以前的办法,没能解决,我相信绝对不是网页的问题.因为,我在MYSQL里直接添加中文的数据能在网页上正常显示,可是在网页中操作添加的数据,到MYSQL数据库里一看,全是???问号.我下断点,跟踪进去看了,程序中最后处理到数据库操作时,还是中文,操作到数据库后,就是?问号了.后来找了很多资料,终于把这个问题解决,........
那怎么办呢,只要把那几个的编码改成utf8的,那应该就可以了.
1: 在Mysql的配置文件 my.ini (一般在c:/windows/下面) 里加上服务器的默认编码配置: default-character-set=utf8
2: 修改你的数据库的字符编码:进入Mysql数据库,通过命令修改你的数据库字符编码: ALTER DATABASE `databaseName` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci (修改后需要重启Mysql数据库)
3: 如果你的表以及表里的字段使用了不正确的字符编码,同样需要修正过来:命令:
修改表的编码: ALTER TABLE `tableName` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
修改字段的编码: ALTER TABLE `tableName` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
(做好了时,再跑一下上面那两个查看字符编码的命令,看看是否全部都变成了utf8)
4: 如果还无效的话,再尝试使用这个MYSQL数据库连接字符串: jdbc:mysql://localhost:3306/xxxx?useUnicode=true&characterEncoding=UTF-8 (有时可能需要将符号(&)转码写成(&))......
昨天晚上和网友讨论了一个关于数据库联合查询的效率的问题.说实话,以前我一直没怎么考虑过这个问题,在写SQL时,都没怎么考虑,似乎一切都成了习惯,或者已经懒散贯了,但是,网友和我聊起来了,我也就好好考虑起这个问题了,平时不考虑时不知道,真正好好计较一下,才发现还有很多门道.
.................
根据以上的思考,结果很吓人,经过对比,发现,结果好恐怖,遍历次数差别简直就是.........比比看看:600万--2.3万--1600--800,这种比例实在太恐怖了,我不得不对联合查询产生了动摇,难道我们为联合查询的便利,就付出如此巨大的浪费吗?我们真的应该重新审视一下,我们平时已经习惯的编程习惯,以及那些我们认为理所当然的代码............
以前从来没想过要这种函数,后来公司说,程序里的一些重要的编号都要带一个验证码,要求我使用身份证的校验码方法,我从公司以前的oracle数据库里找到了以下的oracle函数,公布一下,大家共享一下,哈哈.使用了这个函数的朋友记得常来我这里顶顶哦.巴士飞扬 www.busfly.cn 时刻 欢迎你的来访,共同学习进步
-- 生成身份证号码的 校验位 ISO 7064:1983.MOD 11-2校验码计算出来的检验码(公司内部函数,保密,保密~~~~~)
create or replace function getVerify_ISO7064(......
OK了,现在你可以用你的身份证试一下了,你的身份证最后一位就是验证码,把最后一位留下,其它的当参数输入进去查一下就知道了,这个函数不是专门为身份证做的,任意长度的都可以.我公司是用来作为编号的最后一位.
以下是公司里的用法,再写了一个函数,将产生的验证码的X改成0,因为编号里一般只有数字,再连接到原字符串后面,返回:
create or replace function make_Verify_pcard_id (....
昨天安装了oracle,突然发现8080端口被oracle给占了,后来在大学同学乌托邦博客 的帮助了,终于将oracle占用的8080端口给换成了9090,不过,通过9090端口却打不开oracle的那个网页了,不过,我同学说没关系,那个东西oracle其实也没什么用
8080端口解决办法,网上找到很多答案,可是我看到的都似乎不全,都是随便转载的,一句话都被搞成几段了,还是不摘过来了,直接把乌托邦博客的方法摘过来大家看看吧: ......
相信很多人都有过统计某些数据的经历,比如,要统计财务的情况,可能要按每年,每季度,每月,甚至每个星期来分别统计。那在oracle中应该怎么来写sql语句呢,这个时候Oracle的日期函数会给我们很多帮助。 常用日期型函数 1。Sysdate 当前日期和时间 SQL> Select sysdate from dual; SYSDATE ---------- 21-6月 -05 2。Last_day 本月最后一天 SQL> Select last_day(sysdat...