数据库

来源:互联网 发布:网络直播的看法与态度 编辑:程序博客网 时间:2024/06/01 09:16

数据库

关系型数据库

概念:关系模型把世界看作是由实体和联系组成的。而关系型数据库是将数据库表作为实体,以数据库表的主键和外键的关联关系描述联系的一种数据库结构。

  • 一对一:一条主表记录对应一条从表记录,同时一条从表记录也对应一条主表记录。
  • 一对多:一条主表记录对应多条从表记录,同时一条从表记录对应一条主表记录。
  • 多对多:一条主表记录对应多条从表记录,同时一条从表记录对应多条主表记录。

数据库管理系统

概念:关系型数据库只是一个保存数据的容器,大多数数据库依靠一个称为数据库管理系统(Database Management System,简称DBMS)的软件来管理数据库中数据,管理关系数据库的软件称谓关系型数据管理系统(Relational Database Management System,简称RDBMS)。数据库应用程序通过RDBMS与关系型数据库进行交互。

SQL

概念:SQL是结构化查询语言(Structured Query Language)的英文缩写,是一种用于管理关系型数据库,并与数据库中的数据进行通讯的计算机语言。

  • SQL语句
    • 数据定义语言(DDL)创建,修改,删除数据库的内部数据结构。
    • 数据查询语言(DQL)用于数据库中数据的查询。
    • 数据操作语言(DML)用于数据库中数据的修改,包括添加、删除、修改等。
    • 数据控制语言(DCL)控制数据库访问权限。
  • 数据类型
    • 整型:int
    • 浮点型:float、double、decimal(10,2)
    • 字符型:varchar(20)
    • 日期类型:date
    • count:统计行数量
    • sum:获取单个列的合计值
    • avg:计算某个列的平均值
    • max:计算列的最大值
    • min:计算列的最小值
    • Having 和 where的区别
      二者都是过滤条件,where运行在分组前,Having执行再分组后。
  • 执行顺序
    FROM → WHERE → GROUP BY → SELECT → HAVING → ORDER BY
  • 数据完整性的分类
    • 实体完整性:保证一行数据是有效的
    • 域完整性:保证一列数据是有效的
    • 引用完整性:保证引用编号是有效的
    • 用户自定义完整性;保证自定义规则
  • 实体完整性
    • 为什么要保证实体的完整性?保证每行锁代表的实体能相互区别,不能存在两条一模一样的记录
    • 实现方法:
      • 主键约束:主键是表中 的一到多个列,主键列不能为空,也不能重复。一个表只能有一个主键。
      • 唯一约束:唯一约束是指给定列的所有值唯一值,该列在列表中每一行的值必须唯一,它的主键约束的区别在于该列可以为空,并且可以在一张表中给多个列设置唯一约束。
  • 域完整性
    • 域完整性是指定列的输入有效性
    • 实现方法:非空约束(not null)、默认约束(default)、检查约束(check)
  • 什么是JDBC
    • Java DataBase Connectivity
    • 是一种用于执行SQL语句的Java API,它由一组用Java语言编写的类和接口组成 。
    • 是java连接数据库的一套规范,该规范中定义了一系列的接口,由数据库厂商提供接口实现类,由开发者根据接口,调用实现类的方法。这样开发者就可以屏蔽不同数据库的差异,无论连接声明数据库,对数据库做什么样的操作,都是一套API。
  • Statement 和PreparedStatement的区别
    • Statement 是PreparedStatement父接口
    • Statement在执行SQL语句,只能以拼接字符串方式设置值。由于每次值都不一样,所以在执行SQL语句时,都会将SQL语句重新编译,效率较低。而PreparedStatement提供占位符方式设置值,SQL语句不用每次执行都进行编译,执行效率高。
    • Statement在执行SQL语句时,由于采用拼字符串方式设置值,所以容易造成SQL注入。而PreparedStatement使用占位符方式设置值,无论什么值都当字符串处理。不会造成SQL注入。
      注:SQL注入:在执行sql语句时,如果以拼字符串方式设置值,那么如果在值;。中有SQL语句的关键字或非法字符,可能会造成执行结果不正确或执行失败的情况。这就叫SQL注入。
0 0
原创粉丝点击