数据库术语清单:了解数据库的基本概念和相关术语(必备的基础),从而深入学习Mysql和SQL。
1. 什么数据库(database)?
数据库(database):顾名思义,就是以某种有组织的方式存储数据的repository。
2.为什么要用数据库存数据?
主要有三个原因:
1.可以持久性存储:相对于以前的数据存储技术来说用数据库来存储时间更久。
2.数据读写优化:这是数据库最显著的特点,即增删改查(CURD)相对于传统的数据存储技术要快的多
3.保证了数据的有效性:数据库管理系统(DBMS)可以对数据进行有效性检查。
3.什么是表(table)?
额。。。。这个东西用术语来定义有点难理解。不妨用一个通俗的例子来简单的理解:
大家都见过中医抓药吧!整个中医的中药柜就相当于一个database,而每个抽屉就相当于一个table,而抽屉上中药的名字相当于表名(table name),而且这个表名基本上都是唯一的。
table:某种特定类型的数据的结构化表格。
4.为什么要有表(table)
试想一下中医店的中药柜如果没有一个一个带有名字的抽屉,那么大夫怎么找到自己想要的中药呢??没有的话,他不得在中药柜一里个一个得去找哪一个是他想要的中药,这样找太麻烦了。而有个table,大夫只用看到表名就知道了我要找的药在哪。
所以table的作用就是:数据的优化读写,即CURD变快
5.列、行、主键、数据类型
列、行、主键、数据类型:都是表的相关术语
列(column):表中的一个字段,列(字段)代表实体(entity)的属性(attribute)。比如学生表有:姓名、年龄、性别等attribute。这些attribute都是column。
行(row):每一行代表一个实体(entity)。比如学生表中每一行代表一个学生实体(entity)。
主键(primary key):每一行都要有一个主键来唯一标识自己。这个东西有点像每一行的ID,独一无二。学生表中可以用学生ID(即学生学号)做
primary key。
primary key 的作用:没有主键更新和删除表中的特定row是很困难的。应为你其他的column可能有重复,比如说姓名,如果你以姓名来删除某个人很有可能删错数据,但是如果你以primary key来删除绝对不会出错,因为primary key 是唯一的标识(主键不能重复),且没有哪一行没有primary key (每一行主键不能为NULL)
所以应该总是设置primary key,虽然有时候并不需要但是primary key ,但是数据库设计人员应该保证他们创建的每一表都应该具有一个主键,便于以后的管理,这已经约定俗称。
设定主键column的三个原则:
1.不更新primary key 的值
2.不重用primary key
3.确保primary key 不被修改,不使用可能被修改的列作为主键列
数据类型 (database):表中每个列中数据的数据类型,它限制了该列存储的数据(例如,防止数值列录入字符列)