数据库三大范式
来源:互联网 发布:淘宝stefano ricci皮带 编辑:程序博客网 时间:2024/05/17 09:25
三大泛式——数据库设计规范
1.引入目的: (1)保证数据库设计的合理性 1.数据库设计关系整个系统的架构,关系到后续的开发率 2.主要包含设计表结构和表的关系 (2)合理数据库 结构合理 冗余较小 尽量避免插入删除的异常 (3)如何保证数据库设计水平 范式,质量越高的范式,设计水平越高 (4)什么是范式 数据库设计规范是符合某一种级别的关系模式的集合 2.分类 (1)第一范式 最基本的范式 数据表每一列都是不可分割的基本数据项,同一列中不能有多个值(唯一性) 确保每列保持原子性(不可分) 根据实际需求合理设计 字段不能再分 (2)第二范式 确保数据表中每一列都和主键相关,而不是主键的一部分(联合主键) 不存在局部依赖 (3)第三范式 确保数据表中的每一列数据都和主键直接相关,而不是间接相关 属性不依赖于其他非主属性 不含传递依赖(间接依赖) (4)第四范式 (5)第五范式 各个范式依次嵌套(从里到外,从小到大) 范式越高质量越高,越难实现,一般达到第三层就可避免出错 3.优缺点 优点 结构要合理 冗余较小 尽量避免插入删除修改异常 缺点 性能降低:多表查询速度慢 根据实际灵活处理 必要情况可以增加冗余提高效率 4.数据表之间的关系 一对一:学生和学生证 一对多:学生和班级 多对多:学生和课程 5.如何使用数据表之间的关系 使用外键 一对多 外键+唯一 一对一 引入中间表 多对多表示为俩个一对多 6.Mysql的远程管理工具 1.Mysql-font自带 2.Mysql-font 3.SQLyog 4.Navicat Premium 5.phpMyAdmin(B/S) #####7.表记录操作
1.添加数据(记录)
- 格式一:insert into 表名[(字段名1,字段名2,。。。)] values(值1,值2,。。。)
- 注意:字段名可以省略不写,但value值必须表中都写;如果需要添加某个特定的值,在前面表名后写上相应的字段名
- 格式二:insert into 表名 set 字段名1=值1[,字段名2=值2,。。。字段名n=值n] 例:insert into t1 id=1,name=‘qwe’;
- 同时添加多条记录:insert into 表名[(字段名1,字段名2,。。。)] values(值1,值2,。。。值n)(值1,值2,值3…值n)
2.记录删除
- delete from 表名; 删除所有记录
- delete from 表名 where 字段名1=值1 and|or 字段名n=n值; 删除一或几条
- truncate [table] 表名;
3.记录查询
基本查询语法 1.所有字段 select * from 表名 注意:*表示所有字段。除非需要表中所有字段的数据,否则不要使用通配符*,它会降低查询效率 2.指定字段 select 字段名1,字段名2,......字段名n from 表名 3.条件字段 关系运算符:>,<,=,!=\<>, select 字段名1,字段名2,......字段名n from 表名 where 关系表达式 如果字符串类型是字符串关系运算符按照字符串进行比较 4.带IN关键字查询(sql特有)(包含 or也可实现) select *|字段1,字段2...字段n from 表名 where 字段名 [not] in(元素1,元素2,元素3......) 5.带between和and的关键字查询(范围 in或and也可实现) select *{字段名1,字段名2......字段名n} from where 字段名 [not] between 值1 and 值2; 6.空值查询 select *{字段名1,字段名2......字段名n} from where 字段名 is [not] null 值1; 7.带distincs关键字的查询(去重) select distinct 字段名 from 表名 select distinct 字段名1,字段名2...字段名n from 表名 8.带like关键字的查询(模糊查询) select *|字段1,字段2...字段n from 表名 where 字段名 [not] like ‘匹配字符串’; 9.匹配符:%和下换线_ (1)%: %可以匹配任意长度的字符串,包括空字符串 可以匹配任意位置:蒙A%2 匹配包含中间部分的字符串 :%...% (2)_:匹配单个字符 可以和%组合使用 如果要查询%或_需要用/转义字符来实现:‘/%’,‘/_’ 10.带and关键字多条件查询 例:select * from 表名 on 字段名 and like ‘匹配字符串’ 11.带or关键字的多条件查询满足一个条件就都可以查询到 12.or和and关用and优先级高于or
4.更新记录(修改记录)
- 格式一(全部记录): UPDATE 表名 SET 字段名=值1,字段名2=值2…
- 格式二(特定记录):update 表名 set 字段名=值1,字段名2=值2… where id=原值
- 格式三(符合条件记录):update 表名 set 字段名=值 where 某字段的条件表达式
阅读全文
0 0
- 数据库三大范式
- 数据库三大范式
- 数据库三大范式
- 数据库三大范式
- 数据库三大范式
- 数据库三大范式
- 数据库三大范式
- 数据库三大范式
- 数据库三大范式
- 数据库三大范式
- 数据库三大范式
- 数据库三大范式
- 数据库三大范式
- 数据库三大范式
- 数据库三大范式
- 数据库三大范式
- 数据库三大范式
- 数据库三大范式
- 深入Java核心
- java基础知识0712
- ubantu(linux)下如何安装pycharm(下载)配置
- JDK proxy InvocationHandler
- 微信自定义分享好友/朋友圈信息失败
- 数据库三大范式
- 封装方法:只能输入 数字
- C++实现局域网双向通信(socket)
- Python学习笔记之os模块
- 暑假集训 安迪的字典
- CodeForces Round#423 Div2D&Div1B(827B) Solution
- tensorflow安装错误
- 联机算法——最大子数组问题
- js: 0.1+0.2