当前位置:   article > 正文

msql--基础使用

msql

数据库背景

数据在人类文明发展过程中,很重要。
1.记忆
2.甲骨。Oracle甲骨文。
3.结绳记事。
4.纸张。西方:羊皮
5.计算机。电子文稿,文件。
6.网络,大型应用,可以储存大量的数据,查询索引方便,通过组合,可以创建全新的数据。
7.云、集群数据库

数据库类型:

1.面向关系的数据库:重量级Oracle、sqlsever、db2、轻量级mysql。使用二维表来存储数据。需要对数据库懂的程序员才能操作。

2.面向对象的数据库:mongoDD、postgreSql、MemecacheDb。一般使用键值对来存储数据,或者使用json文档来存储数据。性能弱,检索不便,复杂,效率慢。

mysql:被Oracle收购。发明人又开发了mariaDB,开源免费。

数据库的操作:

1、命令行操作方式:用户体验不好。维护,开发,应用程序
2、使用图形界面操作:操作简单,用户体验好,效率高

数据库对象:
1.表:95%以上使用
2.试图:查询后的结果集。使用率一般。
3.函数:局限性很大。仅限于使用,无法修改。不同数据库的函数并不通用。不建议使用。
4.触发器:表示在数据插入,修改,删除等,可以前置操作,或者后置操作。缺点:数据库之间不兼容,不通用。建议使用语言来实现。
5.存储过程:一个编写具有特定功能的代码片段,可能会涉及比较多的数据操作。缺点:数据库之间不兼容。不建议使用。

关系型数据库使用二维表来存储数据
1.表设计的三范式
第一范式:任何一个字段的数据,具备原子性,不可分。相对而言

第二范式:任何一个字段都要完整的依赖于主键,而非部分主键(或字段)。一张表只存储一个实体的数据。行业里也有例外。

第三范式:任何一个字段不应该有其他字段计算或者统计出来。冗余。
但是实际上,允许存在一定冗余。

三范式是完全建立在对数据的完整性,安全性,一致性上而言的,但是并没有站在应用程序的角度上。

数据完整性:数据库可以保证数据的完整性,安全性,一致性
1.实体完整性:
**主键约束:**一个实体要有唯一的字段进行标识。primary key
例如:学号,身份证号,股票代码,商品编号。如果两个主键相同,可以认为是一个实体。
一个表只有唯一的主键,但是一个主键可以使用多个字段,称之为来联合主键。
主键不允许为空,空字符串不等值于空

主键分为逻辑主键和业务主键,和实体没有什么明显关系的,称之为逻辑主键,业务主键和实体是有明显关系的

一个表可以没有主键.但是强烈建议每一个表都设置主键,如果没有合适的与业务主键则设置一个逻辑主键.

唯一键约束:mysql不直接拥有唯一键。使用唯一索引来替代此功能。创建唯一索引列,
列可以多个。

自增长列:自动增长,只能选择整数。在没有业务主键的情况下,可选使用自增长列作
为逻辑主键。

**域完整性:**字段完整性

  1. 数据类型约束:每一个字段,可以设置数据类型。
    bit:0和1,往往用作boolean值
    tinyint:-128 ~127,1个字节。无符号的tinyint。
    smallint:2个字节
    mediamint:3个字节
    int:4个字节,频率高
    bigint:8个字节
    float:单精度浮点型
    double:双精度浮点型,频率高
    decimal:定点小数
    date:纯日期格式
    time:纯时间格式
    datetime:日期时间格式
    timpestamp:时间戳
    char:定长字符串
    varchar:不定长字符串
    blob:大的二进制字段,用于存储图片、音频、视频、文件等等,建议存储路径,而真
    正的文件存储在文件系统中。非结构化数据,不能检索。
    text:大的文本。查询和检索性能相对较低。
  2. 非空约束:指定一列内容不允许为空。必须有值。
  3. 默认值约束:可以为一列指定默认值。
  4. 检查约束:mysql没有,只能通过触发器来实现。

其他完整性
1.外键约束:mysql直接设计外键,如果删错了一个部门,可能会把部门下的所有员工删除了。风险太大。一般都不设计,都在java中设置。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/274197
推荐阅读
相关标签
  

闽ICP备14008679号