前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据库建表语句的使用及简单实战教程_SQL数据库建立一个表

数据库建表语句的使用及简单实战教程_SQL数据库建立一个表

作者头像
全栈程序员站长
发布于 2022-10-04 13:40:28
发布于 2022-10-04 13:40:28
1.5K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

目录

介绍

本文将用一个简单的tip来简单介绍建表语句,可以作为建表语句的模板使用

需求

采集一个学校中学生的信息,学生具有班级姓名学号等属性

思路

思路1:一张表来表示所有数据(如下图)

缺点:产生大量的数据冗余

思路2:两张表,学生表和班级表(如下图)

优点:优化空间,数据具有条理性

思路2将班级编号cno作为外键,且加上非空,这样子的话一个学生一定对应了一个班级。这个时候,学生表叫做子表,班级表叫做父表。

外键:外键的内容一定要是父表对应字段中存在的内容,如果没有该内容,则会添加数据失败,报错。

代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
drop table if exists t_classes;
create table t_classes(
classes_id	int (3),
classes_name	varchar(30)	not null,
constraint	pk_classes_id	primary key(classes_id) 
)
drop table if exists t_student;
create table t_student(
student_id	int(10),
student_name 	varchar(50) not null,
sex		char(2) not null,
birthday	date not null,
email		varchar(30) unique,
classes_id	int (3) not null,
primary key(student_id),
foreign key(classes_id) references t_classes(classes_id) 
)

扩展

1.数据库设计三范式

1.数据库表中不能出现重复记录,每个字段是原子性的不能再分(不可重复,不可再分)

其中联系方式可以再分,不是原子性

2.第二范式是建立在第一范式基础上的,另外要求所有非主键字段完全依赖主键,不能产生部分依赖

以上虽然确定了主键,但此表会出现大量的冗余,主要涉及到的冗余字段为“学生姓名”和“教师姓名”,出现冗余的原因在于,学生姓名部分依赖了主键的一个字段学生编号,而没有依赖教师编号,而教师姓名部门依赖了主键的一个字段教师编号,这就是第二范式部分依赖。

解决方法:绘制两张表

如果一个表是单一主键,那么它就复合第二范式,部分依赖和主键有关系

以上是一种典型的“多对多”的设计

3.建立在第二范式基础上的,非主键字段不能传递依赖于主键字段。(不要产生传递依赖)

从上表可以看出,班级名称字段存在冗余,因为班级名称字段没有直接依赖于主键,班级名称字段依赖于班级编号,班级编号依赖于学生编号,那么这就是传递依赖,解决的办法是将冗余字段单独拿出来建立表,如下:

以上设计是一种典型的一对多的设计,一存储在一张表中,多存储在一张表中,在多的那张表中添加外键指向一的一方的主键。(外键指向主键)

2.经典的数据库设计框架–er图

E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。

它是描述现实世界关系概念模型的有效方法。是表示概念关系模型的一种方式。用“矩形框”表示实体型,矩形框内写明实体名称;用“椭圆图框”或圆角矩形表示实体的属性,并用“实心线段”将其与相应关系的“实体型”连接起来;

用”菱形框“表示实体型之间的联系成因,在菱形框内写明联系名,并用”实心线段“分别与有关实体型连接起来,同时在”实心线段“旁标上联系的类型

用来表现数据对象与数据对象之间的联系,例如学生的实体和成绩表的实体之间有一定的联系,每个学生都有自己的成绩表,这就是一种关系,关系用菱形来表示。(如下图)

最后,推荐一个优质的mysql课程,我听过的几个课中可以说是讲的最好的老师了。相关链接

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/195955.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月8日 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
plotly-express-12-plotly实现多子图
在很多的实际业务需求中,需要将多个图形集中放置一个figure中,而不是单独显示,在这种情况下我们需要使用子图的概念。本文中讲解如何在plotly中使用plotly.graph_objects绘制各种形式的子图
皮大大
2021/03/01
3.3K0
plotly-express-12-plotly实现多子图
把饼图的位置移到想要的位置就报错了,怎么破?
前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Python画图的问题,一起来看看吧。问题描述:
Python进阶者
2023/12/21
1900
把饼图的位置移到想要的位置就报错了,怎么破?
中国奥运会成绩,知道多少?13张图告诉你
最近奥运会也是非常热门的事件,但是针对本次奥运会有很多值得吐槽的地方,小岛国的骚气操作不想写
Python进阶者
2021/08/20
4990
kaggle-3-Appstore
The ever-changing mobile landscape is a challenging space to navigate. . The percentage of mobile over desktop is only increasing. Android holds about 53.2% of the smartphone market, while iOS is 43%. To get more people to download your app, you need to make sure they can easily find your app. Mobile app analytics is a great way to understand the existing strategy to drive growth and retention of future user.
皮大大
2021/03/01
5980
kaggle-3-Appstore
Plotly绘图,快速入门
Plotly是一个用于创建交互式图表的Python库,它支持多种图表类型,如折线图、散点图、饼图、热力图等。Plotly的特点如下:
皮大大
2024/06/29
3540
kaggle实战-黑色星期图画像分析
本文是对还是kaggle上一份黑色星期五消费数据的分析,主要是针对用户和商品信息的画像分析。
皮大大
2023/08/25
2720
深入探索 Plotly-打造交互式数据可视化的终极指南
文章链接:https://cloud.tencent.com/developer/article/2466316
一键难忘
2024/11/22
5480
Plotly,一个超强的Python可视化库!
数据可视化是数据分析和探索的一个重要方面,它有助于深入了解数据集中的潜在模式、趋势和关系。
小F
2023/12/21
6440
Plotly,一个超强的Python可视化库!
8个plotly绘图技巧
Plotly 是一个用于创建交互式数据可视化的 Python 库,它允许你轻松地生成各种类型的图表和图形,包括折线图、散点图、柱状图、饼图、热力图、3D 图等。
皮大大
2023/09/17
8030
我用python掐指一算,2020高考分数和录取情况可能是这样
“迟到”了一个月的高考终于要来了。 正好我得到了一份山东新高考模拟考的成绩和山东考试院公布的一分一段表,以及过去三年的普通高考本科普通批首次志愿录取情况统计。2020年是山东新高考改革的元年,全新的录取模式以及选考科目要求都给考生带来了非常大的挑战。 我正好就本次山东模拟考的成绩进行深入数据分析,用python可视化带大家模拟一下2020高考分数和录取情况。 (代码较长,故只展示部分,完整数据+源码下载见文末) 1、不同考生的成绩分布图 首先对山东新高考模拟考的成绩进行总体描述: fig = 
腾讯NEXT学位
2020/07/07
4990
Pandas数据分析经典案例
本案例中用的数据是小编自行模拟的,主要包含两个数据:订单数据和水果信息数据,并且会将两份数据合并
皮大大
2022/01/12
2K1
Pandas数据分析经典案例
Python数据可视化入门教程
什么是数据可视化?数据可视化是为了使得数据更高效地反应数据情况,便于让读者更高效阅读,通过数据可视化突出数据背后的规律,以此突出数据中的重要因素,如果使用Python做数据可视化,建议学好如下这四个Python数据分析包,分别是:
张俊红
2023/03/21
2.6K0
Python数据可视化入门教程
Python多维数据可视化详解
数据聚合、汇总和可视化是支撑数据分析领域的三大支柱。长久以来,数据可视化都是一个强有力的工具,被业界广泛使用,却受限于 2 维。在本文中,作者将探索一些有效的多维数据可视化策略(范围从 1 维到 6 维)。
用户8949263
2022/04/08
1.2K0
Python多维数据可视化详解
Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks
导读:学过Python数据分析的朋友都知道,在可视化的工具中,有很多优秀的三方库,比如matplotlib,seaborn,plotly,Boken,pyecharts等等。这些可视化库都有自己的特点,在实际应用中也广为大家使用。
IT阅读排行榜
2019/08/21
1.2K0
Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks
python绘图与数据可视化(二)
上一次是于老师要求我做一次备课,讲一节课,上周于老师又自己准备了这个课程,这里放一下于老师课上补充的知识点
十二惊惶
2024/02/28
5200
python绘图与数据可视化(二)
数据可视化 | 手撕 Matplotlib 绘图原理(二)
关于箭头和注释风格的更多介绍与示例,可以在 Matplotlib 的画廊gallery[1]中看到,尤其推荐
数据STUDIO
2021/06/24
1.5K1
plotly可视化快速教程
Plotly是新一代的Python数据可视化开发库,它提供了完善的交互能力和灵活的绘制选项。本文将介绍新手如何安装plotly并编写第一个plotly绘图程序,以及使用plotly绘制常见的5种数据图表。
用户1408045
2019/10/10
2.9K0
plotly可视化快速教程
安利个一行代码的Python可视化神器!
学过Python数据分析的朋友都知道,在可视化的工具中,有很多优秀的三方库,比如matplotlib,seaborn,plotly,Boken,pyecharts等等。这些可视化库都有自己的特点,在实际应用中也广为大家使用。
Python数据科学
2023/09/14
4870
安利个一行代码的Python可视化神器!
plotly-express-22-plotly使用技巧大全
本文中将前段时间写的plotly-express可视化库的相关技巧进行整理,方便后续快速实现调用
皮大大
2021/03/01
3K0
plotly-express-22-plotly使用技巧大全
cufflinks可视化包初探
不多说,先画一张再说.还是上文的环境.直接pip install,xxxxx,记得换源
云深无际
2021/04/14
6300
cufflinks可视化包初探
相关推荐
plotly-express-12-plotly实现多子图
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • 目录
  • 介绍
  • 需求
  • 思路
    • 思路1:一张表来表示所有数据(如下图)
    • 思路2:两张表,学生表和班级表(如下图)
  • 代码
  • 扩展
    • 1.数据库设计三范式
      • 1.数据库表中不能出现重复记录,每个字段是原子性的不能再分(不可重复,不可再分)
      • 2.第二范式是建立在第一范式基础上的,另外要求所有非主键字段完全依赖主键,不能产生部分依赖
      • 3.建立在第二范式基础上的,非主键字段不能传递依赖于主键字段。(不要产生传递依赖)
      • 2.经典的数据库设计框架–er图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档