数据库 分两大类 关系型数据库 暂时不管 非关系数据库
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 '%红花油%'
-----可查出两条数据