Java数据库三大范式

三大泛式——数据库设计规范
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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值