Day14 PythonWeb全栈课程课堂内容

两盒软妹~` 提交于 2021-01-22 12:13:42

文章目录

1. 数据库

  • 介绍:数据库(database)简称DB,实际上就是一个文件集合,是一个存储数据的仓库,本质就是一个文件系统,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查等操作。

    • 在这里插入图片描述
    • 以Excel为例,一整个Excel工作簿为数据库;sheet1工作表为数据表。
    • 行:记录;列:字段。
  • 特点:持久化存储;读写速度极快;保证数据的有效性;对程序支持非常好,容易扩展。

  • 分类:

    • 关系型数据库:可以保存现实生活中的各种关系数据,数据库中存储数据以表为单位;主流关系型数据库:MySQL,Oracle,SQLServer等

    • 非关系型数据库:通常用来解决某些特定的需求,比如高并发访问。主流非关系型数据库:Redis,Mongodb,memacache等

2. MySQL

  • 介绍:MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言——结构化查询语言**(SQL)**进行数据库管理。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。

SQL语句主要分为

  • DDL语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。
  • DML语句:数据操纵语句,用于添加、删除、更新、和查询数据库记录,并检查数据完整性
  • DCL语句:数据控制语句,用于控制不同数据段直接许可和访问级别的语句。

数据完整性

在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束。

数据类型

常用数据类型

  • 数值类型
  • 日期时间类型
  • 字符串类型

数值类型

整数类型 有符号范围 无符号范围
TINYINT(size) -128~127 0~255
SMALLINT(size) -32768~32767 0~65535
MEDIUMINT(size) -8388608~8388607 0~16777215
INT(size) -2147483648~2147483647 0~4294967295
BIGINT(size) -9223372036854775808~9223372036854775807 0~18446744073709551615
  • unsignal 无符号;size显示宽度,默认值 11;够用就好,节省内存
小数类型 描述
FLOAT(size,d) 带有浮动小数点的小数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
DOUBLE(size,d) 带有浮动小数点的大数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
DECIMAL(size,d) 作为字符串存储的 DOUBLE 类型,允许固定的小数点。(定点数类型)
  • float单精度,double双精度,decimal
字符串类型 字节大小 示例
CHAR(size) 0-255 char(3)输入’ab’,实际存储为’ab ‘,输入’abcd’,实际存储为’abc’
VARCHAR(size) 0-65535 varchar(3)输入’ab’,实际存储为’ab’,输入’abcd’,实际存储为’abc’
  • CHAR长度时一定的,VARCHAR长度;VACHAR更加节省内存。
枚举类型
对1255个成员的枚举需要1个字节存储;对于25565535个成员,需要2个字节存储。最多允许65535个成员。创建方式:enum(“M”,“F”);

日期类型

数据类型 描述
DATE() 日期。格式:YYYY-MM-DD注释:支持的范围是从 ‘1000-01-01’ 到 ‘9999-12-31’
DATETIME() 日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS注释:支持的范围是从 ‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’
TIME() 时间。格式:HH:MM:SS 注释:支持的范围是从 ‘-838:59:59’ 到 ‘838:59:59’
YEAR() 2 位或 4 位格式的年。4 位格式:1901 到 2155。2 位格式:70 到 69,表示从 1970 到 2069
TIMESTAMP() 时间戳。格式:YYYY-MM-DD HH:MM:SS注释:支持的范围是从 ‘1970-01-01 00:00:01’ UTC 到 ‘2038-01-09 03:14:07’ UTC

注意

  • decimal表示定点小数,如decimal(5,2)表示共存5位数,小数占2位。不写则默认为decimal(10,0)
  • char表示固定长度的字符串,如char(3),如果填充’ab’时会补一个空格为’ab ’
  • varchar表示可变长度的字符串,如varchar(3),填充’ab’时就会存储’ab’
  • 对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储这个文件的保存路径
  • 枚举类型ENUM不区分大小写

详细数据类型可参考:http://blog.csdn.net/anxpp/article/details/51284106

约束

在这里插入图片描述

  • 主键约束(primary key):它能够唯一确定表中的一条记录,也就是我们通过给某个字段添加约束,就可以使得字段不重复且不为空。
    在这里插入图片描述

    • 当ID列有数字重复时,系统会报错Duplicate entry '2' for key 'PRIMARY',表示数字重复。
      在这里插入图片描述
    • 主键不可以空NULL。
  • 自增约束(auto_increment):自动增加。

  • 惟一约束(unique):此字段的值不允许重复。可以为空(与主键约束的区别)。

  • 非空约束(not Null):此字段不允许填写空值NULL

  • 默认约束(default):当不填写此值时会使用默认值,如果填写时以填写为准。

  • 外键约束(foreign key):对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常。
    在这里插入图片描述

在这里插入图片描述

  • 通过填写ID(Class ID)就可以了解到你的班级。这种联系就是外键约束。
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!