Python | 数据库中的表

问题描述

表(TABLE)是数据库中用来存储数据的对象,是有结构的数据的集合,是整个数据库系统的基础。SQL数据库中用于存储数据的工具。

表是包含数据库中所有数据的数据库对象。

表定义为列的集合。与电子表格相似,数据在表中式按行和列的格式组织排列的。表中的每一列都设计为存储某种类型的信息(例如日期、名称、美元金额或数字)。表上有几种控制(约束、规则、默认值和自定义用户数据类型)用于确保数据的有效性。

解决方案

1 三大范式

第一范式:强调的是表中列的原子性(原子性:指事务的不可分割性,一个事务的所有操作要么不间断地全部被执行,要么一个也没有执行),可以理解为该列不能够分成其他的几列。

第二范式:保证表中必须有一个主键;表的每一列都必须和该表的主键相关(主键的所有部分,不能是主键的一部分)。

第三范式:确保表中的每一列都直接和主键相关联,即不能存在传递依赖(非主键列1依赖于非主键列2,非主键列2依赖于主键)的情况)。

2 主键与外键

(1) 主键:主键是指在表中可以唯一表示表中每一行的一列(或列的组合)。其特点是:不可以重复,不可以为空,一个表只能有一个主键。

例如:表(账号,昵称,密码)中账号列就满足其特点可以充当表的主键。

(2) 外键:外键是将两个表连接在一起的键,一个表的主键可以在另一个表中当作这个表的外键,进而将两个表连接在一起。其特点是:可以重复,可以为空,一个表可以有多个外键。

例如:表1(账号,昵称,密码)中的账号列(主键)就可以在表2(身份证id,名字,性别,生日,住址,账号)中的外键,从而将表1和表2关联起来。

结语

在数据库的建立中满足三大范式可以很大程度上的减小数据库的冗余,提升数据库的性能;主键的正确建立可以保证数据的唯一性,外键的正确建立可以保证数据的完整性和一致性,同时将不同的表关联在一起。

实习编辑:李欣容

稿件来源:深度学习与文旅应用实验室(DLETA)

(0)

相关推荐

  • 手把手教 | 如何设计高性能数据库表

    回复"面试"获取全套面试资料 如何斩获offer?如何提升技术?看看我的案例吧 尽管我们不是DBA,但我们平时都会涉及到数据库表的设计,那么我们该怎么设计呢?,表名怎么取?字段名怎 ...

  • 数据库三范式和反三范式

    要说数据库什么最抽象,我觉得就是这个三范式,不是很好理解,但是表在设计的时候又必须要知道这么一个规则. 首先使用最简洁的话说说这三范式: 第一范式(1NF:The First Normal Form) ...

  • 数据库设计

    关系型数据库建议在E-R模型的基础上,我们需要根据产品经理的设计策划,抽取出来模型与关系,制定出表结构,这是项目开始的第一步. 在开发中有很多设计数据库的软件,常用的如power designer,d ...

  • Mysql中查询某个数据库中所有表的字段信息

    前言有时候,需要在数据库中查询一些字段的具体信息,而这些字段又存在于不同的表中,那么我们如何来查询呢?在每一个数据库链接的information_schema数据库中,存在这样一张表--COLUMNS ...

  • 获取数据库中用户表所有列和列的数据类型

    获取数据库中,所有用户表中每一列名和其数据类型. SELECT OBJECT_NAME(c.OBJECT_ID) AS [Table_Name], c.[name] AS [Column_Name] ...

  • 如何在vb程序中实现对access数据库的msysobjects表的读取操作?

    各种基于SEIR模型的改进算法代码.Python代码,还包含Si,sir,sis的代码,是做数学建模比赛整理的资料,具全,带论文.研究COVID-19的传播过程和受感染人数的变化规律,是探索如何制止C ...

  • 菜鸟记329-从数据库中提取所需数据制作建表的思路

    万一您身边的朋友用得着呢? 截止今日小菜已分享350+篇经验之谈,可以文章编号或关键词进行搜索 以下才是今天的正式内容-- 摘要:本文介绍从数据表中提取所需字段数据的若干种方法 关键词: EXCEL2 ...

  • python爬虫30 | scrapy后续,把「糗事百科」的段子爬下来然后存到数据库中

    上回我们说到 WOW!! scrapy awesome!! 怎么会有这么牛逼的框架 wow!! awesome!! 用 scrapy 来爬取数据 岂!不!是!非!常!爽! wow!! 接下来就是我独享 ...

  • Python|字符串中第二大的数字

    问题描述给你一个混合字符串s,请你返回s中第二大的数字,如果不存在第二大的数字,请你返回-1.混合字符串由小写英文字母和数字组成.示例:输入:s = 'dfa12321afd'输出:2解决方案这是一道 ...

  • (46条消息) Sqlite3小结(小型数据库中增删改查的操作)

    Sqlite3小结(小型数据库中增删改查的操作) nan_lei 2018-11-22 16:31:32 26249 收藏 122 分类专栏: Linux 文章标签: SQLite 版权声明:本文为博 ...

  • python lxml中etree的简单应用

    这篇文章主要介绍了python lxml中etree的简单应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧我一般都是通过xpa ...

  • 数据库中的字符串拼接

    日常工作中,时常需要将两个或多个字符串拼接在一起,组合成一个新的字符串.而字符串拼接地实现在各个关系型数据库中略有差异. 1.Oracle中,使用 "||"拼接符或concat函数 ...