数据库三大范式

来源:互联网 发布:淘宝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 某字段的条件表达式
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 机油螺丝滑丝了怎么办 刚滑双板膝盖滑的疼怎么办 lv包真皮弄脏了怎么办 lv包压变形了怎么办 lv的包包被压了怎么办 固态硬盘太小了怎么办 联想笔记本网络连接不可用怎么办 联想g50玩dnf卡怎么办 手机有wifi电脑没有网怎么办 电脑网卡被禁用了怎么办 win8系统装win7蓝屏怎么办 联想笔记本装win7蓝屏怎么办 联想g40-70开机黑屏怎么办 新主机开不了机怎么办 联想720s笔记本闪屏怎么办 华硕k40ie显卡坏了怎么办 开机黑屏进入bois后怎么办 2根内存条不兼容怎么办 联想笔记本r720系统崩溃怎么办 联想天逸310卡怎么办 新买的鼠标没反应怎么办 联想笔记本触屏鼠标失灵怎么办 无线鼠标接收器丢了怎么办 联想笔记本系统重装失败怎么办 联想笔记本屏幕闪屏怎么办 种植牙螺钉掉了怎么办 水管牙断里面了怎么办 水龙头起泡器不起泡怎么办 14mm乘8mm残留怎么办 宝宝吃了螺丝冒怎么办 收割机滚筒皮带轮键槽滚了怎么办 微信界面变小了怎么办 拉杆箱螺丝掉了怎么办 洗衣机应急门锁没有拉绳怎么办? 奔驰glc发动机声音大怎么办 淋膜机模具螺丝拧不动怎么办 一字螺丝滑丝了怎么办 螺丝拧歪卡住了怎么办 车牌螺丝拧歪了怎么办 空心墙打膨胀螺丝打不上怎么办 沉孔内六角螺丝滑丝怎么办