美文网首页
MySQL+Django

MySQL+Django

作者: 随风摇摆的樱桃 | 来源:发表于2018-05-31 16:40 被阅读0次

    MySQL是当前应用非常广泛的一款 关系型 数据库


    image.png

    数据库的主要操作包括:
    数据库的操作:创建、删除
    表的操作:创建、修改、删除
    数据的操作:增加、修改、删除、查询 (简称crud)

    数据库系统解决的问题:持久化储存,优化读写,保证数据的有效性。

    当前使用的数据库主要分为两类:
    文档型:
    如sqlite 就是一个文件,通过对文件的复制完成数据库的复制
    服务型:
    如mysql、postgre,数据储存在一个物理文件中,但是需要使用终端以tcp/ip协议连接,进行数据库的读写操作

    E-R模型
    当前物理数据库都是按照E-R模型设计的
    E表示entry 实体; 一个实体转化为数据库中的一个表
    R表示relationship 关系;关系描述两个实体之间的对应规则,包括 一对一、一对多、多对多;关系转化为数据库中的列(在关系数据库中一行就是一个对象)

    三范式
    对于设计数据库提出了一些规范,这些规范被称为范式
    第一范式:列不可拆分
    第二范式:唯一标识
    第三范式:引用主键
    (后一个范式都是在前一个基础上建立的)

    数据的完整性
    一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中;
    在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束

    字段类型
    在mysql中包含的数据类型很多,这里主要列出来常用的几种

    *数字:tinyint,int,decimal
    类型名称 说明 存储需求
    TINYINT 很小的整数 1个字节
    INT(INTEGER) 普通大小的整数 4个字节
    DECIMAL(M,D) 压缩的“严格”定点数 如果M>D为M+2个字节,否则为D+2

    *字符串:char,varchar,text
    类型名称 说明 存储需求
    CHAR(M) 固定长度非二进制字符串 M字节,1<=M<=255
    VARCHAR(L) 变长非二进制字符串 L+1字节
    TEXT 小的非二进制字符串 L+2字节,在此L<2^16
    (注意:VARCHAR(10)列能保存的最大长度为10个字符的一个字符串,例如对于字符’ abcd’,length是4而存储要求是5个字节。
    CHAR(M)为固定长度字符串,在定义时指定字符串列长,M表示指定长度,M的取值范围是0~255个字符,CHAR(4)定义了一个固定长度的字符串列。其包含的字符串个数最大为4.当检索到CHAR值时,尾部的空格将被删除掉。)

    • 日期:datetime
    • 布尔:bit (Bit称为位数据类型,其数据有两种取值:0和1 ,长度为1位。在输入0以外的其他值时,系统均把它们当1看待。这种数据类型常作为逻辑变量使用,用来表示真、假或是、否等二值选择。)

    约束
    主键primary key
    主键约束要求主键列的数据唯一,并且不允许为空。主键能够唯一地标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度,键分为两种类型:单字段主键和多字段联合主键。

    非空not null
    非空约束指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错。

    惟一unique
    唯一性约束要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。

    默认default
    默认约束指定某列的默认值。如男性同学较多,性别就可以默认为‘男’。如果插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为‘男’

    外键foreign key
    如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的。

    相关文章

      网友评论

          本文标题:MySQL+Django

          本文链接:https://www.haomeiwen.com/subject/xvgtsftx.html