ER 实体数据关系 六大范式
第一范式 确保第一范式1NF 不可继续分割的数据
第二范式 要求每一个表只描述一件事情除了主键以外的列,都依赖该主键2NF
如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,消除对该表影响为零的数据部分;则满足第三范式 3NF 消除冗余数据 有关系,
表中包含大量的冗余,可能会导致数据异常
更新异常
添加异常
删除异常
加快数据的读取与运算
create table 表名
(
字段名数据类型 约束
foreign key(本表字段名) references 外表 (字段 )constraint
check(gender in('男' ,'女'))
)
drop table 表名
insert into 表名(字段列表) values(值列表)
update 表名 set 字段名 = 新值, 字段名 = 新值 where 条件
delete from 表名 where 条件
truncate table 表名
drop table 表名
查询语句expression
select 字段列表 from 表名 where 条件
select count (*)from 表名 where 条件
count(字段名 只算不为空的记录 不排重) (distinct 字段名只算不为空的记录并且排重)
select sum /avg(数组类型字段) from 表名 where 条件
分组查询
select 字段名 count (*) from 表名 where 条件
group by 字段名
having 过滤条件
ISNULL () rollup()分组汇总
查询中嵌套一个查询
select * from 表名 where 条件 in(select 一个字段名 from 表名 where 条件)
相关子查询 非相关子查询
在两个查询结果范围内。并且查询结果的字段数和数据类型相同
UNION UNION ALL 保留重复行
EXCEPT 差集 允许返回一个查询中出现但不在另一个查询中出现的行
INEXCEPT 交集
select*from 表1 inner join 表2 on表1.字段名 =表2. 字段名
DAO Data Access Object 数据访问对象 业务逻辑的分割
类的构造函数添加对数据库数据的处理
持久层 数据底层实现的封装不断的封装Jdbc的底层操作 提高代码的可重用性
视图层 控制层
业务代码与数据库操作底层代码隔离 以DAO类为封装工具