MySQL 数据库(一)—— MySQL 介绍、安装、基本操作指令、数据类型、约束条件、范式等

一、数据库概述

1、数据库介绍
(1)数据库模型

  • 层次模型
    所有的数据是有一个层次结构的,数据与数据之间是通过父子的层次关系进行链接的。
  • 网状模型
    比层次模型更为复杂,而且每一个数据之间会存在多个关系。
  • 关系对象模型
  • 关系模型数据库
    将世界看成实体与实体之间的联系,以二维表的形式存储数据,只要是使用的关系型数据库,那么一定遵循的是关系模型。

(2)分类
常见关系型数据库

  • MySQL
  • oracle
  • access
  • sqlite
  • DB2
  • sql server

按大小分类

  • 小型:access,sqlite
  • 中型:MySQL,sql server
  • 大型:oracle,DB2

2、MySQL 基本命令提示符

  • mysqld -install:安装免安装版数据库(从bin目录下以管理员方式运行cmd进入命令行);
  • net start mysql:开启数据库的服务,另外关闭服务命令是net stop mysql;
  • mysql -h主机地址 -P端口号 -u用户名 -p用户密码,如:mysql -h127.0.0.1 -P3306 -uroot - padmin 使用客户端进入MySQL连接(-h远程管理),端口号默认3306。如果是连接本机,且默认端口时,可以直接使用mysql -u root-p 登录到MySQL数据库;
  • mysqladmin -uroot -p12345 passworld "admin":修改root用户的密码从12345为admin;
  • use mysql:切换到MySQL核心数据库;
  • select Host,User,Password from user:查询MySQL数据库中的user表的三列数据;
  • exit:退出操作。

3、MySQL与SQL
(1)MySQL: DataBase Manager System
MySQL是关系型数据库管理系统(DBMS),一共分为四层:

  • 第一层:数据库管理系统
  • 第二层:库结构
  • 第三层:表结构(二维表)
  • 第四层:字段结构

(2)SQL
SQL是结构化查询(编程)语言,是制定数据库语言的标准,一共分为五类

  • DQL:数据查询语言 Data Query Language
    包括简单查询、条件查询、子查询、连接查询、联合查询。
    关键字:
select
from
where
group by
having
order by
distinct
limit
jion on
  • DDL:数据定义语言 Data Definition Language
    用于创建库、删除库、设置编码和校验,创建表、删除表、修改表、显示表、显示库。
  • DML:数据操作语言 Data Manipulation Language
    包括新增数据,修改数据,删除数据。
    关键字:
insert into
update
delete
  • DCL:数据控制语言 Data Control Language
    用于权限的控制。
    关键字:
grant
revoke
  • TPL:数据事务管理语言 Transaction Processing Language
    用于事务的操作。
    关键字:
transaction
commit
rollback
savepoint

二、数据库的数据类型

1、整形

tinyint  迷你整形  1个字节  数据范围 -128137
smallint  小整形  2个字节
mediumint  中整形
int  整形
bigint  大整形

2、小数(浮点数)

float  单精度浮点数  7位小数
double  双精度浮点数  15位小数
decimal(M,D)  大浮点数  30位小数,M是总位数,D是小数的位数,D必须小于M,decimal误差最小

3、字符串

char  定长字符型(定长255varchar(长度)  可变字符型(边长065535)
tinytext  文本型
text  文本型(无默认值)
binary  0—M变长字符串
varbinary  0—M边长字符串

char和varchar区别:

  • char 定长,只要在255范围以内,不管存多少个数据,都分配255个内存空间,会造成空间浪费;varchar是变长的,在65535以内,系统会根据存入的数据所需内存大小分配,节约空间。
  • char 在存入数据的时候只要在255以内,就直接存储,效率较快;varchar在存储的时候会运行两次,第一次获取长度,第二层才存入数据,效率较慢。

4、二进制

tinyblob  二进制大对象
blob  二进制大对象
mediumblob  二进制大对象
longblob  二进制大对象

5、日期和时间

year  格式YYYY  记录年份
date  格式YYYY-MM-DD  记录当前年月日
time  格式HH-MM-SS  记录当前时间
timestamp  格式YYYY-MM-DD HH:MM:SS  记录日期+时间
datetime  格式YYYY-MM-DD HH:MM:SS  记录日期+时间,按照计算机元年开始,误差小一点

特别的: MySQL中无布尔值,可以使用tinyint(1)构造。

三、数据库的七大约束

1、 检查约束

  • 以数据类型以及数据的长度进行约束,在一个表中, 所插入的数据,必须和数据类型匹配,并且范围不能超过指定的长度。

2、非空约束 not null

  • 非空约束用于确保当前列的值不为空值,非空约束只能出现在表对象的列上。
  • 如果有非空约束,那么在插入插入数据时,必须插入一条数据,非空约束一般用于收集并存储的字段数据。
  • 所有的类型的值都可以是null,包括int、float 等数据类型。

3、默认值约束 default

  • 创建列时可以指定默认值,当插入数据时如果未主动设置数据,则自动添加该默认值。

4、主键约束 primary key

  • 确保每一行唯一,主键约束相当于唯一约束 + 非空约束的组合,是用于唯一识别一个实体的字段,不允许有空值,当创建主键的约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。
  • 如果主键使用单个列,则它的值必须唯一,如果是多列,则其组合必须唯一。

5、唯一约束 unique

  • 保证每一行的数据是唯一的,没有重复的数据,保证数据的唯一性。
  • 唯一约束不允许出现重复的值,但是可以为多个null。
  • 同一个表可以有多个唯一约束,多个列组合的约束。
  • 在创建唯一约束时,如果不给唯一约束名称,就默认和列名相同。
  • 唯一约束不仅可以在一个表内创建,而且可以同时多表创建组合唯一约束。

6、外键约束 foreign key

  • 用于表与表之间的关联,一张表中的外键一般都是另一张表中的主键, 并且加上外键约束之后,插入的数据就必须是该主键存在的值。

7、自增长约束

  • 如果为某列设置自增列,插入数据时无需设置此列,默认将自增(一个表只能有一个自增列)。

8、自定义约束

  • 自定义约束是使用存储过程或者触发器来进行约束。

四、数据库的范式

1、确保每列保持原子性(不可拆分性)

  • 确保一列只存放一个数据,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。
  • 如果实体中的某个属性有多个值时,必须拆分为不同的属性。

2、确保每一行的唯一性

  • 满足第一范式的基础上,确保每一行数据的唯一,能够唯一区分一个实体,实现的方式可以是主键。

3、确保每列都和主键列直接相关,而不是间接相关

  • 第三范式需要确保数据表除外键外,其他非主键属性不得重复出现在第二张表上。

五、表与表之间的关系

1、一对一

  • 从实体看,一张表中的一个实体,唯一对应另一张表中的一个实体。

2、一对多

  • 从实体看,一张表中的一个实体,对应另一张表中的多个实体。如一个课程可以被多个学生选择。

3、 多对多

  • 一张表中的一个实体,对应另一张表中的多个实体,反过来,另一张表中的一个实体对应这张表中的多个实体。如果是多对多的关系,最好生成第三张表作为中间表用于关联。

六、E-R图

1、概念

  • 用于表示实体的属性,以及实体与实体之间的关系图

2、画法
(1)矩形:表示实体,在框中记入实体名。
(2)椭圆:表示实体所具备的属性(字段),将属性名记入框中。对于主属性名,则在其名称下划一下划线。
(3)菱形:表示实体与实体联系,在框中记入联系名.
(4)连线:实体与属性之间、实体与联系之间、联系与属性之间用直线相连,并在直线上标注联系的类型。

  • 对于一对一联系,要在两个实体连线方向各写1;
  • 对于一对多联系,要在一的一方写1,多的一方写N;
  • 对于多对多关系,则要在两个实体连线方向各写N,M。
发布了29 篇原创文章 · 获赞 0 · 访问量 207

猜你喜欢

转载自blog.csdn.net/baidu_27414099/article/details/104432615
今日推荐