数据库设计三范式

数据库设计三范式

1NF:要求一张表只描述一件事。比如学生表只能保存学生信息,和学生无关的信息不得保存;

2NF:要求保证表中每一行数据的原子性。即表中不得存在完全相同的数据行,存在完全相同的数据行叫数据冗余(或叫数据副本),这是一种错误,要尽量的减少和避免,无法完全完全消除。解决方案主键或标识,一般的是主键配合标识去用的。

3NF:(外键)表中其他的(外)键要依赖于主(键表)(主键)键而存在。

 

create table StudentCode(

scID int primary key auto_increment,

sCode varchar(18)

);

 

create table Student(

sID int primary key auto_increment,

sName varchar(16),

sAge int,

scID int,#外键列数据来自于主键表主键列

foreign key(scID) references StudentCode(scID)

);

 

insert into StudentCode values(null,'123');

insert into StudentCode values(null,'456');

insert into Student values(null,'zs',18,1);

insert into Student values(null,'ls',19,2);

 

Select sname,sage,scode from student,studentcode

Where student.scid=studentcode.scid;

TIPS:

    • 主键列的一列所有数据行,不得为空并且不得相同,并且一张表中最多只有一个主键,万级数据查询有主键速度更快;
    • 标识列的数据类型只能是整型,在MYSQL中必须是主键才能设置;
    • 使用truncate table 表名; 可以删除标识,但是不能加条件,只能删除所有数据;
    • 标识种子:默认标识种子就是1,可以自由指定,插入时指定后续用null即可。只能改一次不能比原来的数据小。
    • 先建主表设置主键列,再建外键表添加外键列;先插入主表数据,再根据主表数据添加外键列数据;先删除外键表数据,再删除主键表数据;
    • 三范式越标准越规范,但是效率越低,一般人为的违背第三大范式只会遵循1、2范式。

    其他规则

    • 字符串的长度一般最优化,然后再为2的N次方;
    • 在写SQL指令时,看看系统大小写,对应大小写,执行速度还要块;
    • 使用关键字: 用定界符 `` ;
    • 数据名、表名一般情况不用复数。比如Student。

     

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/2924.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚的头像重蔚管理团队
上一篇 2017年10月21日 08:45
下一篇 2017年10月22日 22:28

相关推荐

  • 经验分享jdbc怎么连接mysql数据库。

    要使用JDBC连接MySQL数据库,您需要下载并安装MySQL的JDBC驱动程序。您可以使用Java代码和JDBC驱动类连接到MySQL数据库。以下是一些步骤:,,1. 下载MySQL JDBC驱动程序。,2. 将JDBC驱动程序添加到Java项目的类路…

    2024年7月14日
    00
  • 小编教你html 如何用mysql数据库数据类型。

    在HTML中,我们无法直接使用MySQL数据库的数据类型,我们可以使用PHP、JavaScript等后端语言来连接MySQL数据库,并将数据类型转换为HTML所需的格式,下面我将详细介绍如何使用PHP和MySQL数据库数据类型。 (图片来…

    2024年6月24日
    00
  • 经验分享sql2000怎么导入mysql。

    在将SQL Server 2000数据库导入到MySQL数据库时,可以采用以下步骤: 1. 导出SQL Server 2000数据库:需要在SQL Server 2000中导出要导入的数据库,可以使用SQL Server Management Studio (SSMS)来执行此操作,打开…

    2024年6月28日
    00
  • 我来说说MySQL实现自动备份怎么设置。

    MySQL自动备份可以通过设置定时任务实现。 MySQL实现自动备份怎么设置 在数据库管理中,数据备份是一项非常重要的任务,它可以帮助我们在数据丢失或损坏的情况下恢复数据,MySQL作为一款广泛使用的数据库管理系统,…

    2024年7月14日
    00
  • mysql的数据操作_删除数据

    语句:delete from 表名 where条件 [order排序] [limit限定]; Where条件必须添加,否则删除所有数据,建议id,原因id唯一性 删除大范围的数据。 Order:当前表倒序还是正序,不用添加,默认就可以了 Limit:限定范…

    2017年11月24日
    0200
  • 经验分享如何搭建mysql服务器。

    本文将详细介绍如何搭建MySQL服务器,包括安装、配置和启动等步骤。 搭建MySQL服务器 MySQL是一个开源的关系型数据库管理系统,广泛应用于各种应用场景中,搭建一个稳定可靠的MySQL服务器对于数据管理和应用程序开…

    2024年7月21日
    00
  • 实现PHP+Mysql无限分类的方法

    无限分类是个老话题了,来看看PHP结合Mysql如何实现。【

    2022年6月17日
    0132
  • 数据库的库操作

    库:存储数据的仓库--起名称 表:存储数据的表,一个库可以创建多个表--起名称 字段:给表中的数据起名称 记录:具体一条数据 1.创建数据库 语句:create database 数据库名 库选项; 库选项:字符集、校对集 2.查询…

    2017年11月21日 MySQL自学教程
    0175

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息