1.1 数据的存储
数据存储.png更直观的说明:
我们看到的数据库如下:
顾客/消费者看到的数据库如下:
数据库的组成
题外话:excel可以很好的类比于数据库,数据库里有table;excel里有sheet。
数据库:本质是特殊的文件,由多个表组成,是数据表的集合。
描述一类的信息的一列 称为字段;
描述一个事务的信息的一行 称为记录;
能够唯一标识一行记录的字段 叫做主键 。
1.2 关系型数据管理系统(RDBMS)
当前主要使用两种类型的数据库:关系型数据库和非关系型数据库,我们学习的是关系型数据库(relational database management system)。
具体定义:
是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
了解一下关系型数据库的主要产品:
- oracle:在大型项目中使用,银行、电信等。
- mysql(我们所选):web时代使用最广泛的关系型数据库。
- ms sql server:在微软的项目中使用。
*sqlite:轻量级数据库,主要应用在移动平台。
可以根据下图体会一下SQL在客户端与服务器之间的连接作用,SQL是我们学习的重点。
1.3 SQL
即structured query language,结构化查询语言,用于操作关系型数据库。
SQL语句主要分为:
DQL:数据查询语言,用于对数据进行查询,如select
DML:数据操作语言,对数据进行增加、修改、删除,如insert、udpate、delete
TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback
DCL:数据控制语言,进行授权与权限回收,如grant、revoke
DDL:数据定义语言,进行数据库、表的管理等,如create、drop
CCL:指针控制语言,通过控制指针完成表的操作,如declare cursor
对于web程序员来讲,重点是数据的crud(增删改查),必须熟练编写 DQL、DML,能够编写DDL完成数据库、表的操作,其它语言如TPL、DCL、CCL了解即可
学习目标:
- 熟练掌握数据增删改查相关的SQL语句编写
- 在python中通过SQL对数据进行操作
1.4 数据完整性
首先明确:一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中。
其次,可以从字段的类型和约束两方面为表添加一些强制性的验证,以保证数据的正确有效。
下面就从类型和约束两方面进行说明:
-
数据类型
原则:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间
常用数据类型:
整数:int,bit
小数:decimal
字符串:varchar,char
日期时间: date, time, datetime
枚举类型(enum)
其中,- decimal表示浮点数,如decimal(5,2)表示共存5位数,小数占2位
- char表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab '
- varchar表示可变长度的字符串,如varchar(3),填充'ab'时就会存储'ab'
- 字符串text表示存储大文本,当字符大于4000时推荐使用
- 对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储这个文件的保存路径
-
约束
主键primary key:物理上存储的顺序
非空not null:此字段不允许填写空值
惟一unique:此字段的值不允许重复
默认default:当不填写此值时会使用默认值,如果填写时以填写为准
外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常
说明:虽然外键约束可以保证数据的有效性,但是在进行数据的crud(增加、修改、删除、查询)时,都会降低数据库的性能,所以不推荐使用,那么数据的有效性怎么保证呢?答:可以在逻辑层进行控制
网友评论