1.良好的数据库设计: 数据库设计的缺点:
1.节省数据的存储空间 1.数据冗余,存储及空间浪费
2.能够确保数据的完整性 2.内存空间的浪费
3.方便进行数据库应用系统的开发 3.数据更新和插入异常
2.数据库设计的步骤:
1.收集信息[充分了解设计需求]
2.标识实体(Entity)[标识数据库要管理的关键对象或实体,一般为名称]
3.标识每个实体的属性[Attribute]
4.标识实体之间的关系[Relationship]
3.E(实体)-R(属性)图
符号 |
含义 |
|
实体,一般为名词 |
|
属性,一般为名词 |
|
关系,一般为动词 |
4.绘制E-R模型图:
1.Visio
2.亿图图示
3.在线制图:https://www.processon.com
4.脑图:xmind
5.关系模式
概念: 用二维图的形式标识实体和实体之间联系的数据模型
E-R图转换为关系模式的步骤
1.把每个实体都转化为关系模式R(U)形式
2.建立实体间联系的转换
6.数据规范化:
概念 : 是指将被挖掘对象的属性数据按比例缩放,使其落入一个小的特定区间(就是对表中的属性来做设计,防止数据冗余,存储空间浪费,内存空间浪费,数据更新和异常)
一般使用三大范式进行数据规范化
三大范式:
1.第一范式:的目的是确保每列的原子性
2.第二范式要求每个表只描述一件事情
3.如果一个关系满足第二范式,并且除了主键以外的其他列都不依赖于主键列,则满足第三范式
7.mysql的优势
运行速度快 使用成本低 可移植性强 使用用户广
8.mysql的运行机制:
9.Dos命令
1.命令行连接mysql:
mysql-h 服务器主机地址-u 用户名-p 密码
2.创建数据库
create database 数据库名 ;
3.查看数据库列表:
show database;
4.选择数据库
use 数据库名;
5.删除数据库
drop database 数据库名;
10.数值类型
unsigned属性; 标识为无符号数
zerofill 属性: 宽度位数不足以0填充(若某数值字段指定了zerofill属性,将自动添加unsigned)
11.数据类型:
1.字符串
char: 定长字符串
varchar:可变字符串
tinytext: 微型文本串
text : 文本串
2.日期类型
date : 日期(年月日 YYYY-MM--DD)[不需要设置长度 ]
datetime: 日期(年月日 YYYY-MM-DD hh-mm-ss)[不需要设置长度]
times tamp : 某段时间精确到1s(若某日期字段默认值为当前日期,一般设置为times tamp类型)
time : 时间 (hh-mm-ss)
year : YYYY格式的年份(1901-2155)
12.创建表:
语法:
create table ‘ 表名 ‘(
‘ 列名1 ‘ 类型(长度) 各类约束 非空 注释 ,
)comment=‘ 注释 ‘;
eg:
CREATE TABLE `student`(
`studentNo` INT(4) NOT NULL COMMENT ‘学号‘ PRIMARY KEY,
`loginPwd` VARCHAR(20) NOT NULL COMMENT ‘密码‘,
`studentName` VARCHAR(50) NOT NULL COMMENT ‘学生姓名‘,
`sex` CHAR(2) DEFAULT ‘男‘ NOT NULL COMMENT ‘性别‘,
`gradeId` INT(4) UNSIGNED COMMENT ‘年级编号‘,
`phone` VARCHAR(50) COMMENT ‘联系电话‘,
`address` VARCHAR(255) DEFAULT ‘地址不详‘COMMENT ‘地址‘,
`bornDate` DATETIME COMMENT ‘出生时间‘,
`email` VARCHAR(50) COMMENT‘邮件账号‘,
` identityCard ` VARCHAR(18) UNIQUE KEY COMMENT ‘身份证号‘ ) COMMENT=‘学生表‘;
注 : 1.多字段使用‘ , ‘隔开
2.保留字用 ‘ ‘ 括起来
3.单行注释 : # ......
多行注释 : /*.......*/
13. 字段的约束及属性
名称 关键字 说明
非空约束 not null 不允许为空值
默认约束 default 默认值
唯一约束 unique key(uk) 只有唯一的一个值
主键约束 primary key(pk) 主键
外键约束 foreign key(fk) 用于建立关系
自动增值 auto_increment 用于主键 ,自增1
14.删除表:
drop table [ if exists ] 表名 ;
在删除表之前 , 先试用 if exists 语句验证表是否存在
15.存储引擎
1.mysql的存储引擎: (查看当前默认存储引擎)
show variables like ‘ storage_engine% ‘
修改存储引擎: (修改my,ini配置文件)
default-storage-engine=InnoDB --> 改为其他存储存储
2.设置表的存储引擎:
create table 表名(
#省略代码
) engine = 存储对象 / myisam
3.myisam 与 innodb类型的适用场景
1.使用myisam : 不需事务 , 空间小 , 以查询访问为主
2.使用innodb : 多删除 , 更新操作 , 安全性高 , 事务处理及并发控制
4.myisam类型表文件: innod类型表文件
.frm: 表结构定义文件 .frm : 表结构定义文件
.myd: 数据文件 ibdata1 文件
.myi: 索引文件
5.mysql系统帮助 : help 查询内容 ;