MySQL数据库基础(2)表结构管理
目录
一、关系模型与数据表
- 概念
①关系模型:是由若干个关系模式组成的集合,关系模式的实例称为关系,每个关系实际上是一张二维表格
②关系数据库:是以关系模型为基础的数据库,是一种根据表、元组(记录)以及字段(列)之间的关系进行组织和访问数据的数据库,其通过若干个表来存取数据,并且通过关系将这些表联系在一起
③关系模型中的术语:
- 关系(Relation):对应通常所说的一张表,如订单表。
- 元组(Tuple):表中的一行即为一个元组,它可以标识实体集中的一个实体,元组亦可称作“记录(Record)”。表中任意两行(元组)不能相同。
- 属性(Attribute):表中的一列即为一个属性,给每个属性起一个名称即属性名,属性亦可称作列(Column),表中的属性名(列名)不能相同,每个属性都有值。
- 主键(Key):表中的某个属性组,它可以唯一确定一个元组,属性组可以有一个或多个属性。
- 关系模式:对关系的描述,可表示为关系名。
二、MySQL数据类型
- 常见类型
类型分类 |
类型 |
取值范围或描述 |
示例 |
||
整数类型 |
tinyint |
0 ~255 |
员工年龄:32 |
||
smallint |
-32768~32767 |
员工数:2540 |
|||
int |
-2147483648~2147483647 |
中国人口数:1354040000 |
|||
小数类型 |
decimal |
decimal(5,2)表示小数的取值范围是-999.99~999.99 |
商品单价:892.35 |
||
定长字符串类型 |
char |
char(10) 表示字符串存储 10 个字符,即便该字符串只有一个字符, 它所占用的存储空间也是 10 个字符空间大小 |
公司名:HUAWEI |
||
变长字符串类型 |
varchar |
varchar(10) 表示字符串最多存储10 个字符,如果该字符串仅包含一个字“中”,那么它所占用的存储空间也只是一个字符空间大小。定义 varchar 类型可节省存储空间 |
公司地址:武汉洪山区珞瑜路 546 路光谷科技会展中心 |
||
日期类型 |
date |
格式:YYYY-MM-DD(年 - 月- 日)取值范围:1000-01-01 ~ 9999-12-31 |
出生日期:1982-03-24 |
||
日期类型 |
time |
格式:HH:MM:SS(时 : 分钟 : 秒)取值范围:-838:59:59 ~ 838:59:59 注意:时间不限当天 |
早晨上班时间:08:30:00 |
||
datetime |
格式:YYYY-MM-DD HH:MM:SS 取 值 范 围:1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 |
登 机 时 间:2015-05-1214:35:0 |
三、数据完整性约束
1、数据完整性:为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改以及删除等操作时,DBMS 自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容
2、作用:保证数据库中的数据在逻辑上的一致性、正确性和可靠性
3、数据完整性:
(1)实体完整性:规定表的每一行记录在表中是唯一的
1)主键约束:非空,唯一,递增
2)唯一约束:唯一,可以为空
(2)域完整性
1)非空约束:不能有空值
2)默认值约束:给指定列设置默认的数据,也可以更改
(3)参照完整性
四、参照完整性约束
最新文章
- 基于注解的bean配置
- Spring常用注解,自动扫描装配Bean
- gradle大体内容
- 10、会话管理/编程实战分析/Jsp
- Redo日志
- Linux Weblogic 数据源 TimesTen配置
- php常用mysql函数
- iOS 面试题:OC标题的基本概念&;lt;延续&;gt;
- WebRTC系列(1)-手把手教你实现一个浏览器拍照室Demo
- odoo Model字段的参数
- redis安装,windows,linux版本并部署服务
- 深度学习原理与框架-Tfrecord数据集的制作 1.tf.train.Examples(数据转换为二进制) 3.tf.image.encode_jpeg(解码图片加码成jpeg) 4.tf.train.Coordinator(构建多线程通道) 5.threading.Thread(建立单线程) 6.tf.python_io.TFR(TFR读入器)
- Linux 学习手记(1):命令行BASH的基本操作
- 【Socket】linux网络扫描程序开发
- scala编程第19章学习笔记(1)——类型参数化
- PHP的内存泄露问题与垃圾回收
- 尽量不要使用using namespace std
- TensorFlow支持GPU配置问题
- [javaEE] javaweb的mvc设计思想
- Maven面试宝典