zoukankan      html  css  js  c++  java
  • 数据库之应用理论

    一、聚合函数

    count:统计行数量

    sum:获取单个列的合计值

    avg:计算某个列的平均值

    max:计算列的最大值

    min:计算列的最小值

     

    二、having和where区别

      二者都是过滤条件,where运行在分组之前,因此不能执行任何聚合函数,having是运行在分组后,只能用作聚合函数的过滤。

     

    三、为什么要保证数据库完整性

      为了防止垃圾数据的产生,从而影响数据库的执行效率

     

    四、SQL语句执行顺序

    1.执行from

    2.where条件过滤

    3.group by 分组

    4.select 投影列

    5.having条件过滤

    6.执行order by顺序

     

    五、外键与外键约束

      外键是指从表的某列与主表的某列存在依附关系。外键约束是指在外键关联主键上强制加上一个约束,如果违反该约束,则不允许该条数据的修改。没有外键约束不等于没有外键。

      添加外键约束的语句:Alter table 从表 add constraint 外键名 foreign key(外键) reference 主表名(主键)

     

    六、JDBC(Java Database Connection)

      是java连接数据库的一套规范,该规范中定义了一系列接口,这些接口由数据库厂商根据自身数据库 的特点提供实现类,由用户根据接口调用实现类相关的方法。这样用户可以屏蔽不同数据库的差异,无论连接什么数据库都是一套API

     

    七、DAO模式

      建立实体类和数据库表做映射,也就是那个类对应哪个表,哪个属性对应哪个列。而jdbc操作的目的,就是完成对象数据和关系数据的转换。

     

    八、DAO操作流程

    1.加载驱动,建立连接(Class.forName + DriverManager.Connection)

    2.执行SQL语句(PrepareStatement)

    3.关闭连接(ps.close()   con.close())

     

    九、Statement和PreparedStatement的区别

    1.Statement是PreparedStatement的父接口,他们都是sql语句执行的接口。

    2.Statement在执行sql语句时,由于sql语句的数据由用户提供,所以只能用拼接字符串的方式将数据库加入sql语句。执行效率低,而且会引起sql注入。

    3.PreparedStatement支持占位符的方式天聪数据,无论是什么值都只会编译一次,效率较高。而且无论值是什么,都会当字符串处理,不会引起sql注入

     

    sql注入:如果执行sql语句采用拼接字符串的方式进行,那么一旦数据库中含有非法字符,或者sql语句的关键字时,会导致sql语句执行结果不正确或执行失败的情况。

     

    十、三层架构

    1.持久层:完成数据库相关操作

      采用DAO模式,建立实体类和数据库做映射,也就是说那个表对应哪个类,哪个列对应哪个属性。而持久层的目的就是完成对象数据和关系数据的转换。

    2.业务层:完成处理从表现层中得到的数据,和相关的业务操作

      采用实物脚本模式,将当前业务中所有的操作封装成一个方法,保证这些操作同时成功或同时失败。不允许出现部分成功或部分失败,这样引起数据混乱的操作。

    3.表现层:完成数据的战士和数据的收集

      采用VMC模式

      M(Model):模式。也就是实体类,用于封装和传输数据

      V:(View):视图。也就是GUI窗体,用于数据库的战士。

      C:(Contral):控制。也就是时间,用于控制业务流程。

     

      层与层之间采用接口做耦合,这样当其中一个层的组件需要更换不会影响其他层的组件。

    十一、

      当两个表之间,建立了主外键约束时,删除主表记录时,如果该记录有从表记录引用,那么忧郁有外键约束存在,会报错,无法删除。解决方法:

      1.将从表中引用该主键的记录全部删除,然后再删除主表记录

      2.将从表中引用该主键的记录外键全部设置为null,然后再删除主表记录

     

  • 相关阅读:
    __type_traits(traits思想)--萃取型别
    traits编程技巧
    SGI空间分配器之第二级配置器剖析
    SGI空间分配器之第一级配置器剖析
    枚举类型与联合类型
    函数指针
    c++中的placement new操作符学习
    第十六章:模板与泛型编程
    第十五章:面向对象编程
    第十五章:面向对象编程
  • 原文地址:https://www.cnblogs.com/fengxiaopiaoer/p/5447874.html
Copyright © 2011-2022 走看看