MySQL基础进阶

文章目录

  • MySQL基础进阶

MySQL基础进阶

约束 \color{red}{约束} 约束

约束的概念和分类

约束的概念

  1.约束是作用于表中列上的规则,用于限制加入表的数据。

约束的分类

在这里插入图片描述

非空约束

概念

  非空约束保证数据不为空。

语法

  1.添加约束。

– 创建表时添加非空约束。

CREATE TABLE 表名(列名 数据类型 NOT BULL,……
);

–建完表后添加非空约束

ALTER TABLE 表名 MODIFY 字段名 数据类型 NOT NULL;

  2.删除元素

ALTER TABLE 表名 MODIFY 字段名 数据类型;

唯一约束

概念

  1.唯一约束用于保证列中所有数据不同。

语法

  添加约束。

– 创建表时添加唯一约束

CREATE TABLE 表名(列名 数据类型 UNIQUE [AUTO_INCREMENT],-- AUTO_INCREMENT:当不指定值时自动增长……
);CREATE TABLE 表名(列名 数据类型,……[constraint ] [约束名称] UNIQUE(列名)
);

  2.建完表后添加唯一约束

ALTER TABLE 表名 MODIFY 字段名 数据类型 UNIQUE;

主键约束

概念

  主键是一行数据的唯一标识,要求非空且唯一。
  一张表只能有一个主键。

语法

– 添加表时添加主键约束

CREATE TABLE 表名(列名 数据类型 PRIMARY KEY [AUTO_INCREMENT],……
);CREATE TABLE 表名(列名 数据类型,[CONSTRAINT ] [约束条件] PRIMARY KEY(列名)
);

– 建完表后添加主键约束

ALTER TABLE 表名 ADD PRIMARY KEY(字段名);

数据库设计 \color{red}{数据库设计} 数据库设计

软件的研发步骤

在这里插入图片描述

数据库设计概念

&nesp; 1.数据库设计就是根据业务的具体需求,结合我们所选用的DBMS,位这个业务系统构造出最优的数据存储模型。
&nesp; 2.建立数据库中的表结构以及表与表之间的关联的过程。
&nesp; 3.有那些表?表中有那些字段?表和表之间有什么关系。

数据库设计的步骤

&nesp; 1,需求分析(数据是什么?数据具有那些属性?数据与属性的特点是什么)
&nesp; 2.逻辑分析(通过ER图对数据进行逻辑建模,不需要考虑我们所选用的数据库管理系统)
&nesp; 3.物理设计(根据数据库自身的特点把逻辑设计转化为物理设计)
&nesp; 4.维护设计(1.对新的需求进行建表;2.表优化)

表关系

一对一

  1.用户和用户详情。
  2.一对一关系多用于表拆分,将一个实体中经常使用的字段放一张表,不经常使用的字段放另一张表,用于提升查询功能。

一对多(多对一)

  1.部门和员工
  2.一个部门对应多个员工,一个员工对应一个部门。

多对多

  1.商品和订单。
  2.一个商品对应多个订单,一个订单包含多个商品。

外键约束

概念

  1.外键用来让两个表的数据之间建立链接,保证数据一致性和完整性。
例如:上述多对多中的订单商品表来维护订单表和商品表之间的关系。

使用中间表的目的是维护两表多对多的关系:

  1.中间表插入的数据必须在多对多的表中存在。
  2.如果主表的记录在中间表维护了关系,就不能随意删除,如果可以删除,中间表就找不到对应的数据了,这样就没有意义了。

语法

– 创建表时添加外键约束

create table 表名(列名 数据类型,……[constraint ] [外键名称] foreign key(外键列名)references 主表 (主表列名)
);

– 关键字解释

constraint:添加约束,可以不写
foreign key(当前表中的列名):将某个字段作为外键
references 被引用表名(被引用表的列名):外键引用主表的主键

– 建完表后添加外键约束

alter table 表名 add constraint 外键名称 foreign key  (外键字段名称) references 主表名称(主表列名称); 
删除约束
alter table 表名 drop foreign key 外键名称;

总结

一对多实现的方式

   在多的一方建立外键关联一的一方主键。

多对多实现方式

  建立第三张中间表。
  中间表至少包含2个外键,分别关联双方主键。

一对一实现方式

  在任意一方建立外键,关联对方主键,并设置外键唯一。

多表查询 \color{red}{多表查询} 多表查询

概念

  同时查询多张表,获取需要的数据;
  比如:我们向查询水果对应的价格,需要将水果表和价格表同时进行查询;

多表查询的分类

在这里插入图片描述

内链接

概念

  内连接查询有称为交集查询,也就是查询只显示满足条件的数据;

显示内连接

  显示内连接:使用inner join……on语句,可以省略Inner关键字 ;

select * from 表名1 inner join 表名2 on 条件;select * from 表名1 join 表名2 on 条件;
隐式内连接

  看不到join关键字,条件使用where指定;

select 列名 , 列名, ……from 表名1, 表格2 where 表名1.列名 = 表名2.列名;
内连接查询步骤

  1.确定查询几张表。
  2.确定表连接条件。
  3.根据需要在操作。

外连接

左外连接

  左表的记录全部表示出来。
  右表只会显示符合条件的记录。

 select * from1 left outer join2 on 条件;
右外连接

  右表的记录全部展示出来。
  左表只会显示符合搜索条件的记录。

 select * from1 right outer join2 on 条件;

子查询

介绍

  子查询就是一个sql查询的结果作为另一个sql查询语句的一部分

单行单列

  作为父查询的条件
  作为父查询的条件,通常使用IN
  作为父查询的一张表(虚拟表),起别名

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

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

相关文章

Pytest+Allure+Excel接口自动化测试框架实战

1. Allure 简介 简介 Allure 框架是一个灵活的、轻量级的、支持多语言的测试报告工具,它不仅以 Web 的方式展示了简介的测试结果,而且允许参与开发过程的每个人可以从日常执行的测试中,最大限度地提取有用信息。 Allure 是由 Java 语言开发的…

docker系列文章目录

docker系列专栏笔记总算完成了,平时下班比较晚,利用晚上的一些时间整理了这一系列的学习笔记。 docker系列教程包含以下几个方面: docker环境篇 介绍docker环境的搭建,已经管理平台工具(portainer)的简单使用。 docker常用命令篇…

结构型设计模式——桥接模式

摘要 桥接模式(Bridge pattern): 使用桥接模式通过将实现和抽象放在两个不同的类层次中而使它们可以独立改变。 一、桥接模式的意图 将抽象与实现分离开来,使它们可以独立变化。 二、桥接模式的类图 Abstraction: 定义抽象类的接口Implementor: 定义实现类接口 …

MySQL 的 C 语言接口

1. mysql_init MYSQL *mysql_init(MYSQL *mysql); mysql_init函数的作用:创建一个 MYSQL 对象(该对象用于连接数据库)。 mysql_init函数的参数: ① mysql:MYSQL 结构体指针,一般设置为 NULL 。 mysql_init函…

实用的 “edge://flags“

~~ edge实验室 ~~ “edge://flags” 是 Microsoft Edge 浏览器中的一个隐藏设置页面,允许用户启用、禁用和调整各种实验性功能和高级选项。这些功能可能会对浏览器的性能和稳定性产生影响,因此使用时需要谨慎。以下是一些实用的 “edge://flags” 设置…

嵌入式芯片-NE555

目录 1、比较器(运放) 2、相反门(非门) 3、或非门 4、双稳态触发器 5、NE555功能框图 1、比较器(运放) 2、相反门(非门) 3、或非门 4、双稳态触发器 5、NE555功能框图

俞敏洪:董宇辉在北京有房子了!

据媒体报道,9月26日,俞敏洪在直播中透露,董宇辉已经在北京拥有了自己的房子,并且强调这是大家共同努力的结果。 这一消息引起了广泛关注和热议。在此之前,董宇辉曾在公开场合表示,俞敏洪老师为了给他凑钱买…

数据库索引失效

索引失效是指数据库查询在执行过程中无法有效利用索引,导致查询性能下降或索引无法被使用的情况,以下是常见的导致索引失效的原因: 模糊查询以通配符开头,自己都不知道具体要查什么,怎么使用索引呢,所以会导…

输送机使用的常见误区

输送机也称流水线,是指在自动化生产过程中起到运输货物,联通各个生产设备的主要机械设备。但在使用的过程中,很多用户对于输送机的使用存在一定的误区,导致设备故障频出,下面就针对用户已在使用输送机过程中的常见误区…

Android Studio 创建项目不自动生成BuildConfig文件

今天在AS上新建项目发现找不到BuildConfig文件,怎么clear都不行。通过多方面查找发现原来gradle版本不同造成的,Gradle 8.0默认不生成 BuildConfig 文件。 如上图,8.0版本是没有source文件夹 上图是低于8.0版本有source文件夹 针对这个问题&…

基于若依框架进行二次开发优化指南

背景 若依(RuoYi)开源框架是一个功能强大的Java开发框架,专注于快速构建企业级后台管理系统。它提供了一套丰富的功能和模块,可以帮助开发人员快速搭建稳定、高效的管理系统。本篇博客将大家了解若依框架的基本概念和使用方法&am…

云原生Kubernetes:对外服务之 Ingress

目录 一、理论 1.Ingress 2.部署 nginx-ingress-controller(第一种方式) 3.部署 nginx-ingress-controller(第二种方式) 二、实验 1.部署 nginx-ingress-controller(第一种方式) 2.部署 nginx-ingress-controller(第二种方式) 三、问题 1.启动 nginx-ingress-controll…

vite-react修改antd得prefix

项目介绍 使用vite-react-ts和less,修改prefix作用主要就是乾坤项目antd版本不同导致样式冲突 安装 pnpm add antd pnpm add less -D配置vite.config.ts中css.preprocessorOptions.less.modifyVars import { defineConfig, loadEnv } from vite export default …

Selenium Web自动化测试 —— 高级控件交互方法!

一、使用场景 使用场景对应事件复制粘贴键盘事件拖动元素到某个位置鼠标事件鼠标悬停鼠标事件滚动到某个元素滚动事件使用触控笔点击触控笔事件(了解即可) https://www.selenium.dev/documentation/webdriver/actions_api 二、ActionChains解析 实例…

iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程

文章目录 一、环境准备二、基础软件三、扩展:usb拓展插件 一、环境准备 1、下载VMware虚拟机的壳子,安装并注册软件(可以百度注册码),最新版本:v17 2、下MacOS系统iOS镜像文件,用于vmware虚拟机安装,当前镜…

油猴(篡改猴)学习记录

第一个Hello World 注意点:默认只匹配了http网站,如果需要https网站,需要自己添加match https://*/*代码如下 这样子访问任意网站就可以输出Hello World // UserScript // name 第一个脚本 // namespace http://tampermonkey.net/ // version 0.1 // descri…

论文阅读:基于隐马尔可夫模型的蛋白质多序列比对方法研究

本文来自chatpaper Basic Information: • Title: Research on Protein Multiple Sequence Alignment Method Based on Hidden Markov Model (基于隐马尔可夫模型的蛋白质多序列比对方法研究) • Authors: Zhan Qing • Affiliation: Harbin Institute of Technology (哈尔滨工…

软件测试自动化的成本效益分析

随着软件测试技术的发展,人们已经从最初的手工测试转变为手工和自动化技术相结合的测试方法。目前,人们更多的是关心自动化测试框架、自动化测试工具以及脚本研究等技术方面,而在软件自动化测试方案的效益分析方面涉及较少。 软件测试的目的是…

ElasticSearch(二)

1.DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 1.1.DSL查询分类 Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括: 查询所有:查询出所有数据,…

钢轨长度及允许偏差

声明 本文是学习GB-T 2585-2021 铁路用热轧钢轨. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了铁路用钢轨的订货内容、分类、尺寸、外形、质量及允许偏差、技术要求、试验方法、检 验规则、标志及质量证明书。 本标准适用于3…