数据库能做什么
存储大量数据,方便检索和访问
保持数据信息的一致、完整
共享和安全
通过组合分析,产生新的有用的信息
数据库的基本概念
实体
只要是在客观世界存在的,可以被描述出来的都是实体
数据库(DB)
数据库就是数据的仓库,可以存放结构化的数据
数据库管理系统(DBMS)
是一种系统软件,提供操作数据库的环境,可以通过数据库管理系统对数据进行插入,修改,删除和查询等操作
SQL
结构化查询语言,专门用来和数据库进行交流的语言,几乎所有DBMS都支持SQL
SQL规范
- SQL语句不区分大小写,建议SQL关键字大写,表名和列表小写
- 命令用分号结尾
- 命令可以缩进和换行,一种类型的关键字放在一行
- 可以写单行和多行注释,#是单行注释 /***/是多行注释
数据表
- 表是数据库中包含所有数据的数据库对象,也是其他对象的基础
- 表定义是一个列的集合,数据在表中是按行和列的格式组织的,用来存放数据
- 行也称为记录,用于存放一个个实体,列称为字段,用来描述实体的某一个属性
MYSQL简介
MYSQL特点
- 开源免费
- 性能高
- 安装使用简单
数据完整性
- 为了实现数据完整性,需要检验数据库表中的每行和每列数据是否符合要求
- 在创建表的时候,应该保证以后的数据是正确的,错误的数据不允许输入
列类型
整数型
- tinyint (1字节)
- smallint (2自字节)
- mediumint (3字节)
- int (4字节)
- bigint (8字节)
浮点型
- float
- double
定点
- decimal (字符串或数字型数值转换成大浮点数)
日期时间型
- year
- timestamp (时间戳)
- time
- date
- datetime
字符串类型
- set (集合)
- enum (枚举)
- blob (可以存二进制)
- text
- varchar
- char
默认值
默认值是指如果用户没有指定的情况下会记录的此字段之前指定预设的值
非空约束
我们可以约定某个字段不能不输入,必须提供一个非空的值
实例完整性
主键约束
主键
表中一列或者几列组合的值能用来唯一标识表中的每一行,这样的列或者列组合就称为表的主键,主键表的数据不能重复
如果两列或者多列组合起来唯一标识表中的每一行,则该主键又称为组合键
主键选择标准
- 最少性:尽量选择单个键作为主键
- 稳定性: 由于主键是用来在两个表之间建立连接的,所以不能经常更新,最好就不更新
唯一约束
唯一约束是指某个字段值是唯一的,在所有的记录中不能有重复的值
标识列
- 当表中没有合适的列作为主键时,可以考虑增加标识列,标识列是一个无实际业务含义的列,仅仅用来区分每条几率
- 标识列的值是自动生成的,不能再该列上输入数据
外键约束
一个表的外键必须引用另一个表的主键
- 主表没有记录,子表中不能添加对应的记录
- 修改和删除主标记录不能让子表记录孤立,必须相应修改和删除