计网----数据库(一)

计网----数据库(一)

一.什么是数据库

数据库是”按照数据结构来组织、存储和管理数据的仓库“。是一个长期储存在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

二.数据库的特点

1.规范化的本地存储

2.加密

3.共享

三.数据库的好处

方便管理查找,查询数据快

四.数据库的分类

1.关系型数据库:其实就是二维表,典型代表mysql,oracle,SQL Server

如图

在这里插入图片描述

2.非关系型数据库:也叫NoSql,是一维映射key-value 典型代表redis,MongoDB

如图

在这里插入图片描述

五.数据库范式

1.什么是范式

要想设计一个好的关系,必须使关系满足一定的约束条件,此约束已经形成了规范,按照这种规范可以使设计简洁的、结构明晰,不会因为插入删除,更新数据导致异常

2.常见名词

属性->特征->表中的一列->字段

元组:表的一行就叫一个元组

码:表中唯一确定一个元组的属性,码不止一个,叫这些为候选码

主码:从候选码挑选出来一个主要确定这一行的属性

主属性:只要在任何一个候选码中出现过,这个属性就叫主属性

非主属性:没有在任何一个候选码中出现过

3.第一范式(1NF)属性不可分

下图符合第一范式

在这里插入图片描述

下图不符合第一范式

在这里插入图片描述

4.第二范式(2NF)不存在组合关键字中的某些字段决定非关键字段(组合关键字不可拆)

1.看下面的图判断是否符合第二范式

在这里插入图片描述

非主键列全部依赖于主键,符合第二范式

在这里插入图片描述

非主键列全部依赖于部分主键,不符合第二范式

在这里插入图片描述

非主键列部分依赖于主键,不符合第二范式

在这里插入图片描述

非主键列部分依赖于部分主键,不符合第二范式

1.解决不符合第二范式的表
初始表如下

选课课表为(学号,姓名,年龄,课程名称,成绩,学分)

先挑选出来主属性,这里的主属性是学号和课程名称,(学号,课程名)->(姓名,年龄,成绩,学分)

但是此时的姓名,年龄只由学号决定,学分只由课程名称决定,所以不符合第二范式,我们要进行修改

修改之后变为

学生:学号,姓名,年龄

课程:课程名称,学分

选课:学号,课程名称,成绩

2.不符合第二范式会出现的问题

1.数据冗余

2.更新异常

3.插入异常

5.第三范式(3NF)不存在依赖传递(关键字段 --> 非关键字段x --> 非关键字段y)

1.解决不符合第三范式的表
初始表如下

学生的关系表:(学号,姓名,年龄,所在学院,学院地点,学院电话)

先挑选出来主属性,这里的主属性是学号,(学号)->(姓名,年龄,所在学院,学院地点,学院电话)

但是知道学号就知道了所在学院,知道了所在学院就知道了学院地点,学院电话,这里存在依赖传递,所以不符合第三范式,我们要进行修改

修改之后变为

学生单独一个表(包括学院),学院单独一个表

6.BCNF(鲍依斯-科得范式):不存在关键字段决定关键字段

1.解决不符合鲍依斯-科得范式的表
初始表如下

仓库管理系统(仓库ID,存储物品ID,管理员ID,数量)

先挑选出来主属性,这里的主属性是仓库ID,管理员ID和存储物品ID

(仓库ID,存储物品ID)->(管理员ID,数量)

(管理员ID,存储物品ID)->(仓库ID,数量)

其中有两个主属性相互决定,所以不符合鲍依斯-科得范式

修改之后变为

仓库管理:仓库ID,管理员ID

仓库:仓库ID,存储物品ID,数量

六.学习mysql数据库

1.了解mysql相关知识

1.看第一张图进行了解

在这里插入图片描述

这里mysql是数据库(服务端)

这里mysql-workbench是客户端,用来登录到mysql(服务端)上,然后往数据库里写入数据

2.看第二张图进行了解

在这里插入图片描述

这里的root用户是权限最大的,也可以通过它来创建其他用户

3.看第三张图进行了解

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=C%3A%5CUsers%5C%E5%86%89%E5%96%9C%E6%96%87%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-2023110在这里插入图片描述

4.看第四张图进行了解

在这里插入图片描述

5.看第五张图进行了解

在这里插入图片描述

6.看第六张图进行了解

在这里插入图片描述

2.学习mysql数据库中的sql语句(一)

1.创建一个写sql语句的文件

在这里插入图片描述

2.创建一个数据库

1.在此界面中右键,选择Create Schema

在这里插入图片描述

2.写数据库的名字,然后点击apply

在这里插入图片描述

3.到此页面继续点击apply

在这里插入图片描述

3.在写sql语句的文件里进行学习sql语句
1.写入sql语句的文件中时一些基本知识
#注释
#sql语句以分号为结束标志
#命名规则:数据库一般不区分大小写,一般用小写,最好不用用特殊字符#表名:t_xxx
#列名:f_xxx
2.创建表的sql语句
#指定默认库
use rxwku;#创建表的格式为:creat table 表名(列名 数据类型 建表约束);
#建表约束
#主键:primary key,值唯一,不 允许为空,每张表只能有一列是主键列
#唯一:unique,值唯一,但是可以为空,每张表可以有多个唯一列
#非空:not null,不能为空
#默认值:default
#自增:auto_increment
#外键约束:当前表的某一列和其他表有关系create table studentinfo(
number int primary key auto_increment,
name varchar(10) not null,
#在数据库里单引号和双引号都能表示字符串,可以双引号里套单引号或者单引号套双引号,最多只能套一层
sex enum('男','女'),
age int default 18
);
#注意创建完之后需要手动刷新一下才能在schemas中看到
3.mysql中的数据类型
#数据类型:int,char()/varchar()/nvarchar(),enum
#char()/varchar()/nvarchar()的区别
#char(45):字符串长度为45,如果存"hello",实际上存的是"hello00000.....",长度固定,如果不足长度用用0补齐
#varchar(45):字符串长度最大为45,如果存"hello",实际上存的是"hello",这里的45是固定的最大长度,长度不足就按照实际长度存储
#nvarchar(45):字符串长度最大为45,如果存"hello",实际上存的是"hello",这里的45是固定的最大长度,这里的字符按照宽字节存储,也就是一个字符占2个字节#数据库最大可以存储8千个字节,nvarchar只能存4千个字符,varchar可以存8千个字符
4.删除和修改表的sql语句
#删除表 drop table 表名
drop table studentinfo;#修改表:alter table 表名...
#1.增加一列:alter table 表名 add column 列名 数据结构 建表约束;
alter table studentinfo add column school int;#2.修改列的属性:alter table 表名 modify 列名 数据结构 建表约束;
alter table studentinfo modify school varchar(45);#3.删除一列:alter table 表名 drop column 列名;
alter table studentinfo drop column school;
5.查询表的sql语句
#查询:select* from 表名; 查询某个表的所有列
select* from studentinfo;
#查询某几列:
select number, name from studentinfo;
#给查询的列起别名 (并没有修改表中的列名 )
#select number 学号,name 姓名 from studentinfo;
6.给表中插入数据的sql语句
#插入所有列的数据: insert into 表名 values (值1,值2,...);(要求数据的顺序和表中列的顺序一致)
insert into studentinfo values (1,'张三','男',20);
#插入指定列: insert into 表名 (列名1,列名2,...) values (值1,值2,...); (值的顺序和指定列的顺序一致)
insert into studentinfo (name,sex) values('李四','男');
insert into studentinfo (sex,name) values('女','小芳');
insert into studentinfo (name) values('王五');
7.删除表中数据的sql语句
#删除数据:delete from 表名 where 条件;
#删除王五同学的数据
delete from studentinfo where name="王五";

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/135414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT如何管理对话历史?

问题 由于现在开始大量使用ChatGPT对话功能,认识到他在提供启发方面具有一定价值。比如昨天我问他关于一个微习惯的想法,回答的内容还是很实在,而且能够通过他的表达理解自己的问题涉及到的领域是什么。 此外,ChatGPT能够总结对话…

华为eNSP实验-三层交换机的不同网段通信(通过OSPF路由方式)

1.拓扑图 2.过程如下 2.1 首先PC1和PC2配置好IP地址 2.2 在SW1上配置虚拟网关及VLAN <Huawei>system-view [Huawei]sysname SW1 [SW1]undo info-center enable [SW1] [SW1]vlan batch 10 20 [SW1]interface GigabitEthernet 0/0/1 [SW1-GigabitEthernet0/0/1]port li…

2023 全栈工程师 Node.Js 服务器端 web 框架 Express.js 详细教程(更新中)

Express 框架概述 Express 是一个基于 Node.js 平台的快速、开放、极简的Web开发框架。它本身仅仅提供了 web 开发的基础功能&#xff0c;但是通过中间件的方式集成了外部插件来处理HTTP请求&#xff0c;例如 body-parser 用于解析 HTTP 请求体&#xff0c;compression 用于压…

@ControllerAdvice + @ExceptionHandler 定义全局异常

创建Spring Boot项目&#xff1a;使用Spring Initializr创建一个新的Spring Boot项目。依赖配置&#xff1a;在pom.xml 文件中(方便起见使用的是thymeleaf模板引擎)&#xff1a; <dependencies><dependency><groupId>org.springframework.boot</groupId&…

【Unity之UI编程】在Unity中如何打图集,来降低DrowCall

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;UI_…

C++常用格式化输出转换

在C语言中可以用printf以一定的格式打印字符&#xff0c;C当然也可以。 输入输出及命名空间还不太了解的小伙伴可以看一看C入门讲解第一篇。  在C中&#xff0c;可以用流操作符&#xff08;stream manipulators&#xff09;控制数据的输出格式&#xff0c;这些流操作符定义在2…

用循环结构程序自动化计算——计数循环

用循环结构程序自动化计算——计数循环 低阶目标&#xff1a; 利用for循环结构来完成已知次数的自动化处理&#xff0c;掌握计数循环结构应用方法 高阶目标&#xff1a; 学会利用for循环解决生活中的实际问题 用循环结构程序自动化计算——计数循环 用循环结构程序自动化计算…

缓存-Spring Cache 缓存抽象

缓存-Spring Cache 缓存抽象 Spring从版本3.1开始提供非侵入的将Cache集成到Spring应用的方式。Spring Cache提供Cache的统一抽象&#xff0c;支持集成各种不同的缓存解决方案。从4.1版本开始&#xff0c;提供了注解和更多的定制参数。 Spring Cache 抽象提供了对Java方法的缓存…

yo!这里是STL::unordered系列简单模拟实现

目录 前言 相关概念介绍 哈希概念 哈希冲突与哈希函数 闭散列 框架 核心函数 开散列 框架 核心函数 哈希表&#xff08;开散列&#xff09;的修改 迭代器实现 细节修改 unordered系列封装 后记 前言 我们之前了解过map和set知道&#xff0c;map、set的底层结构是…

电脑软件:推荐一款电脑多屏幕管理工具DisplayFusion

下载https://download.csdn.net/download/mo3408/88514558 一、软件简介 DisplayFusion是一款多屏幕管理工具&#xff0c;它可以让用户更轻松地管理连接到同一台计算机上的多个显示器。 二、软件功能 2.1 多个任务栏 通过在每个显示器上显示任务栏&#xff0c;让您的窗口管理更…

MATLAB绘图中文显示为方框

MATLAB绘图中文显示为方框 MATLAB显示英文和字母没有问题&#xff0c;但是当显示中文时会显示乱码&#xff0c;中文显示为方框&#xff0c;如下图&#xff1a; 可以在绘图命令中添加如下代码&#xff1a; set(gca,Fontname,Monospaced); 例如&#xff1a; % 滤波器系数%低通…

16 DNS协议详解

1、DNS的由来 很难记住网站的 IP 地址&#xff0c;因而也需要一个地 址簿&#xff0c;就是DNS 服务器。DNS 在日常生活中非常重要。每个人上网&#xff0c;都需要访问它&#xff0c;因此一旦DNS出现故障&#xff0c;是非常可怕的。因而&#xff0c;DNS 服务器&#xff0c;一定…

装修服务预约小程序的内容如何

大小装修不断&#xff0c;市场中大小品牌也比较多&#xff0c;对需求客户来说&#xff0c;可以线下咨询也可以线上寻找品牌&#xff0c;总是可以找到满意的服务公司&#xff0c;而对装修公司来说如今线下流量匮乏&#xff0c;很多东西也难以通过线下方式承载&#xff0c;更需要…

【Java 进阶篇】Java Filter 快速入门

欢迎来到这篇有关 Java Filter 的快速入门指南&#xff01;如果你是一名 Java 开发者或者正在学习 Java Web 开发&#xff0c;Filter 是一个强大的工具&#xff0c;可以帮助你管理和控制 Web 应用程序中的请求和响应。本文将向你解释 Filter 的基本概念&#xff0c;如何创建和配…

84 柱状图中的最大的矩形(单调栈)

题目 柱状图中的最大的矩形 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 示例 1: 输入&#xff1a;heights [2,1,5,6,2,3] 输出&#xff1a;10 …

nginx图片资源管理转发

目标: 服务器上面 /home/images 里面作为文件资源管理器 代码: server {listen 80;server_name hello.world.cn;#apple-app和接口的关联文件location ~.*(images/miniapp)*\.(gif|jpg|jpeg|png)$ {root /home/;try_files $uri $uri/ 404;add_header Cache-Control &q…

(六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题

前言 本节内容是关于使用分布式锁解决并发访问“超卖”问题的最终篇&#xff0c;在前面的章节中我们介绍了使用mysql的行锁、乐观锁、悲观锁解决并发访问导致的超卖问题&#xff0c;存在的问题是行锁、乐观锁、悲观锁不太灵活&#xff0c;需要和具体的业务耦合到一起&#xff…

再获5G RedCap能力认证!宏电5G RedCap工业智能网关通过中国联通5G物联网OPENLAB开放实验室测试验证

​近日&#xff0c;中国联通5G物联网OPENLAB开放实验室携手宏电股份完成5G RedCap工业智能网关端到端的测试验证&#xff0c;并颁发OPENLAB实验室面向RedCap终端的认证证书&#xff0c;为RedCap产业规模推广、全行业赋能打下坚实基础。 中国联通5G物联网OPENLAB开放实验室是中国…

掌动智能:云可观测性的主要特点及应用场景

云全景可观测性安全平台是一个跨架构、跨平台的可观测性方案&#xff0c;实现对云环境下的细粒度数据可视化&#xff0c;满足安全部门对云内部安全领域的多场景诉求&#xff0c;包括敏感数据动态监管、云网攻击回溯分析、攻击横移风险监控、云异常流量分析。本文将介绍掌动智能…

kubernetes集群编排(8)

k8s资源监控 资源限制 上传镜像 [rootk8s2 limit]# vim limit.yaml apiVersion: v1 kind: Pod metadata:name: memory-demo spec:containers:- name: memory-demoimage: stressargs:- --vm- "1"- --vm-bytes- 200Mresources:requests:memory: 50Milimits:memory: 100…