数据库

Posted 火线速递

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库相关的知识,希望对你有一定的参考价值。

数据库 分两大类 关系型数据库 暂时不管 非关系数据库

DB2
Oracle 比较重量级 收费的 目前来说 银行金融系统用的比较多
mysql 轻量级 开源 可以基于源码进行改造开发 安装容易适合学习和开发

一、
mysql:使用图形化客户端 Navicat

主键约束 代表唯一的一条数据 唯一 非空
外键约束 可以确保关联表的数据的正确性

唯一约束
非空约束 不能为空


存储引擎:
innoDB:凡是涉及修改的,使用最常用的引擎innoDB
MyISAM:不支持事物,只读的数据

SQL优化:
索引:查询上千万数据需要考虑优化,是否有索引;索引方法:BTREE
索引的引导:多列索引,创建联合索引;id,name 。
若没有id索引的引导,name索引没用效率还是低

二、Java Database Connection
实现自动化,就需要用程序来控制数据的自动化,程序需要连接数据库(JDBC驱动)。

连接池:系统启动后,开辟连接池。使用时就调用,不需要关闭连接池。(DBCP C3P0 durid)

 

 

 

三、查询select from 两个表与left join on的区别

表a 记录 有 a1 a2
表b 记录 a1
from多表,显示 a1
a left join b
会显示 a1 a2
left join 2个表 即使 左边的那个表里有 而右边的表里没有 也显示出来

 

在mysql中使用FROM查询多表和使用JOIN连接(LEFT JOIN,RIGHT JOIN除外),查询结果,查询效率是一样的

 

如:

from多表:

select b.ypmc,b.ypgg,b.ypbzdw,
c.zbmc,
d.ypbm,b.xkjywxj
from GY_YPCDJG a,GY_YPMCGGZD b,yk_zblb c,gy_ypbmk d where a.ypxh=b.ypxh and b.zblb=c.zblb and
b.flxh= d.xh and b.ypmc like \'%红花油%\'   

-----数据为空

left join 多表
select a.ypxh, a.ypmc,a.ypgg,a.ypbzdw,b.zbmc, c.ypbm,a.xkjywxj
from GY_YPMCGGZD a left join yk_zblb b on a.zblb=b.zblb
left join gy_ypbmk c on a.flxh= c.xh
where a.ypmc like \'%红花油%\'

-----可查出两条数据

 

以上是关于数据库的主要内容,如果未能解决你的问题,请参考以下文章

数据库类型——系统数据库/用户数据库

关系型数据库与文档型数据库的差别?

数据库数据库管理系统数据库系统

mysql数据库的基本操作:创建数据库查看数据库修改数据库删除数据库

如何清理mysql数据库缓存数据?

JDBC访问数据库的步骤