关系型数据库

来源:互联网 发布:j2直播软件 编辑:程序博客网 时间:2024/06/09 15:41

关系型数据库

  1. 定义:关系模型把世界看作是由实体和联系组成的,而关系型数据库是将数据库表作为实体,以数据库表的主键和外键的关联关系描述联系的一种数据库结构;
  2. 一对一:一条主表记录对应一条从表记录,同时一条从表记录对于一条主表记录;
  3. 一对多:一条主表记录对应多条从表记录,同时一条从表记录只对应一条主表记录;
  4. 多对多:一条主表记录对应多条从表记录,同时一条从表记录对应多条主表记录;

数据库管理系统DBMS

  1. database management system
  2. RDMS;
  3. 分类:本地数据管理系统;数据库服务器管理系统;

结构化查询语言 SQL

  1. Structured Query Language
  2. 定义:是一种用于管理关系型数据库,并与数据库中的数据进行通讯的计算机语言;
  3. DDL数据定义语言,创建,修改,删除数据库的内部数据结构
  4. DQL数据查询语言,用于数据库中数据查询
  5. DML数据操作语言,用于数据库中数据的增删改等
  6. DCL数据控制语言,控制数据的访问权限;

MYSQL数据类型

  1. 整型: int;
  2. 浮点型:float,double ,decimal(10,2);
  3. 字符型:char(20),varchar(20);
  4. date: date;

建表

  1. primary key 定义当前列为主键,主键特点,非空,不能重复;
  2. AUTO_INCREMENT 设置当前列为自动增长列,有DBMS为该例分配值,确保该例的值不重复;

case when

  1. case when

truncate table

  1. delete 会记录日志,意味着删除后可以恢复,但是效率低;
  2. truncate 不会记录日志,不能恢复,效率高;

having 和 where的区别

  1. where运行在分组前,因此不能执行聚合函数,having 是运行在分组之后,只能用作聚合函数的过滤;

执行顺序

  1. from
  2. where过滤
  3. group by 分组
  4. select 投影例
  5. having 过滤
  6. order by 排序

结论

  1. 在分组查询中,能够查询的字段,只能是分组字段和聚合函数;

可靠性+准确性=数据完整

  1. 数据完整:为了防止垃圾数据的产生,影响数据库的执行效率;
  2. 分类;实体完整性,保证一行数据是有效的,同行代表实体互不同,能区别;
  3. 实现方法:主键约束,primary key ,主键是表中的一个到多个例,不能重复,不能为空,一个表中只有一个主键;唯一约束:给定例的所有值必须唯一,该例在表中的每一行的值必须唯一;
  4. 分类:域完整性,保证一例数据是有效的;
  5. 实现方法:非空约束,not null ;默认约束 default ;检查约束 check,MySQL不支持;
  6. 分类:引用完整性,保证引用的编号是有效的;外键中出现的数据,主键中必须出现;
  7. 分类:用户自定义完整性,保证自定义规则;

两个表之间如果存在外键约束,那么删除主表记录时,由于外键约束存在,无法删除有从表记录引用的主表记录

  1. 级联删除:将主表记录对应的从表记录先删除,再删除主表记录

  2. 外键设为空:将主表记录对应的从表记录设置为null,在删除主表记录

外键与外键约束的区别

  1. 外键是指从表的某列与主表某列存在依附关系
  2. 外键约束是指在外键关联主键上强制加上的一个约束,如果违反约束,则不允许修改
  3. 注意:没有建立外键约束不等于没有外键;

between

  1. >= <=

开闭原则

软件实体应该面向修改关闭,面向扩展开放,其实现核心就是抽象,将相同的代码抽象出来,便于代码重用,这就是闭,便于功能的扩展,这就是开

三层架构

  1. 持久层 :完成数据库操作。采用DAO模式,建立实体类和数据库进行映射,也就是那个类对应那个表,那个属性对应那个例。而持久层的目的就是完成关系数据和对象数据的转换;
  2. 业务层 :完成业务处理。采用事物脚本模式。将一个业务中所有的业务操作封装成一个方法;保证该方法中所有数据库更新操作同时成功,或同时失败;
  3. 表现层 : 完成数据的展示,采用MVC模式;
  4. Model:模型,实体类;完成数据的封装和传输;
  5. Version:视图,也就是GUI窗体,完成数据的展示;
  6. Control:控制,也就是事件,完成业务方法的调用和业务流程的控制;
  7. 层与层之间采用接口做耦合,这样,当一个层的组件发生更改或替换时,不会影响别的层组件的使用;
  8. 用户—》 表现层–接口–》业务层–接口–》持久层—》DB
0 0
原创粉丝点击