-
数据库设置三大范式
1、第一范式(确保每列保持原子性)
第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库满足第一范式。
第一范式的合理遵循需要根据系统给的实际需求来确定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成为一个数据库表的字段就行,但是如果系统经常访问“地址”属性中的“城市”部分,那么一定要把“地址”这个属性重新拆分为省份、城市、详细地址等多个部分来进行存储,这样对地址中某一个部分操作的时候将非常方便,这样设计才算满足数据库的第一范式。
2、第二范式(确保表中的每列都和主键相关)
第二范式在第一范式的基础上更进一层,第二范式需要确保数据库表中每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
比如要设计一个订单信息表,因为订单中可能会有多种商品,所以要将订单编号和商品编号作为数据库表的联合主键,
3、第三范式(确保每列都和主键列直接相关,而不是间接相关)
第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
比如在设计一个订单数据表的时候,可以将客户编号作为一个外键和订单表建立相应的关系,而不可以在订单表中添加关于客户其他信息(比如姓名、所属公司)的字段,如下面这两个表所示的设计就是一个满足第三范式的数据库表。
-
【数据库五大约束】
- primary KEY: 设置主键约束;
- UNIQUE:设置唯一性约束,不能有重复值;
- DEFAULT 默认值约束,height DOUBLE(3,2)DEFAULT 1.2 height不输入是默认为1,2
- NOT NULL:设置非空约束,该字段不能为空;
- FOREIGN key : 设置外键约束。
mysql 就是一个基于cs 架构的软件, 管理文件
-
开启服务端
mysqld
-
开启客户端
mysql -uroot -p
-
数据库概念
数据库服务器: 运行数据库管理软件的 机器
数据库管理软件: mysql
文件夹: -->> 数据库
文件: -->> 数据表
数据: -->> 记录
系统命令:
- 模糊查询运行的进程:
tasklist |findstr mysql
- 端口号终止进程:
taskkill /F /PID 端口号
- 安装windows 服务
mysqld --install
- 移除windows 服务
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