一、第一范式(确保每列保持原子性)html
第一范式是最基本的范式。若是数据库表中的全部字段值都是不可分解的原子值,就说明该数据库知足第一范式。mysql
第一范式的合理遵循须要根据系统给的实际需求来肯定。好比某些数据库系统中须要用到“地址”这个属性,原本直接将“地址”属性设计成为一个数据库表的字段就行,可是若是系统常常访问“地址”属性中的“城市”部分,那么必定要把“地址”这个属性从新拆分为省份、城市、详细地址等多个部分来进行存储,这样对地址中某一个部分操做的时候将很是方便,这样设计才算知足数据库的第一范式。sql
二、第二范式(确保表中的每列都和主键相关)数据库
第二范式在第一范式的基础上更进一层,第二范式须要确保数据库表中每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不能够把多种数据保存在同一张数据库表中。windows
好比要设计一个订单信息表,由于订单中可能会有多种商品,因此要将订单编号和商品编号做为数据库表的联合主键,bash
三、第三范式(确保每列都和主键列直接相关,而不是间接相关)服务器
第三范式须要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。架构
好比在设计一个订单数据表的时候,能够将客户编号做为一个外键和订单表创建相应的关系,而不能够在订单表中添加关于客户其余信息(好比姓名、所属公司)的字段,以下面这两个表所示的设计就是一个知足第三范式的数据库表。设计
mysql 就是一个基于cs 架构的软件, 管理文件code
开启服务端
mysqld
开启客户端
mysql -uroot -p
数据库概念
数据库服务器: 运行数据库管理软件的 机器
数据库管理软件: mysql
文件夹: -->> 数据库
文件: -->> 数据表
数据: -->> 记录
tasklist |findstr mysql
taskkill /F /PID 端口号
mysqld --install
mysqld --remove
net start mysql
net stop mysql
关闭以前的 mysql 进程
跳过受权表开启mysql 服务器
mysql --skip -grant -tables
跳过 格兰特 表格
进入客户端
mysql -uroot -p
update mysql.user set password("") where user='root' and host='localhost';
flush privileges;
[mysqld] # 设置mysql的安祖目录, **后面的路径必定是安装sql的目录*** basedir=D:\mysql56 # 设置mysql数据库的数据存放路径, 必须是data datadir=D:\mysql56\data sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES slow_query_log =1 slow_query_log_file=C:\mysql-5.6.40-winx64\data\localhost-slow.log long_query_time = 1 # mysql端口 port=3306 # 字符集 #服务器 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci # 客户端链接 [client] default-character-set=utf8 [mysql] # 本地 default-character-set=utf8 # 设置密码 # user=root # password=123