MySQL基础进阶

news2024/11/26 19:57:38

文章目录

  • 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.coloradmin.cn/o/1053164.html

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

相关文章

Vue3父子组件数据传递

getCurrentInstance方法 Vue2中,可以通过this来获取当前组件实例; Vue3中,在setup中无法通过this获取组件实例,console.log(this)打印出来的值是undefined。 在Vue3中,getCurrentInstance()可以用来获取当前组件实例…

el-menu 导航栏学习(1)

最简单的导航栏学习跳转实例效果: (1)index.js路由配置: import Vue from vue import Router from vue-router import NavMenuDemo from /components/NavMenuDemo import test1 from /components/test1 import test2 from /c…

1200*B. Sorted Adjacent Differences(构造)

Problem - 1339B - Codeforces 解析: 题目要求每相邻两个值差的绝对值相等或递增。 先排序,可以想到我们先取两侧的数肯定相距最远,然后靠中心每次取两个数,这样符合题目要求。 直接遍历,先取的是答案靠后的数据&…

基于微信小程序的校园快递代取系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言用户微信小程序端的主要功能有:配送员微信小程序端的主要功能有:管理员的主要功能有:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获…

python爬取沈阳市所有肯德基餐厅位置信息

# 爬取沈阳所有肯德基餐厅位置信息 import requests import json import reurl http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?opkeyword headers {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0…

Ipa Guard使用手册

使用手册 开始使用ipa guard代码混淆界面介绍文件混淆-界面介绍安装和登录Ipa Guard 相关教程 下载安装Ipa Guardipaguard注册和登录 下载安装Ipa Guard 可以前往ipaguard工具官网下载,工具是免费下载,免费体验使用的。下载地址是https://www.ipaguard.…

关于工作中爬取网站的一些思路记录

声明:只是因为工作中需要,且基本不会对别人的网站构成什么不好的影响,做个思路记录!!! 尊重网站所有者、控制请求频率、遵守网站规则、尊重个人隐私 平常工作中难免会遇到需要爬取别人网站的需求&#xff0…

华为云云耀云服务器L实例评测 | 实例评测使用之硬件性能评测:华为云云耀云服务器下的硬件运行评测

华为云云耀云服务器L实例评测 | 实例评测使用之硬件性能评测:华为云云耀云服务器下的硬件运行评测 介绍华为云云耀云服务器 华为云云耀云服务器 (目前已经全新升级为 华为云云耀云服务器L实例) 华为云云耀云服务器是什么华为云云耀…

linux系统中wifi移植方法

第一:移植wifi现象 在linux系统的RK3399中空板上,确认rk3399中控板linux系统已经可以正常运行。本操作是在rk3399中控板上的WIFI模块,linux内核加载wifi驱动后,再配置上正确的wifi密码,就可以实现rk3399中控板通过wifi…

LeNet网络复现

文章目录 1. LeNet历史背景1.1 早期神经网络的挑战1.2 LeNet的诞生背景 2. LeNet详细结构2.1 总览2.2 卷积层与其特点2.3 子采样层(池化层)2.4 全连接层2.5 输出层及激活函数 3. LeNet实战复现3.1 模型搭建model.py3.2 训练模型train.py3.3 测试模型test…

shopify目录层级释义

└── theme├── assets // assets目录包含主题中使用的所有资源文件,包括图像、CSS和JavaScript文件。├── config // config目录包含主题的配置文件。 配置文件在主题编辑器的主题设置区域中定义设置,并存储它们的值。├── layout // layou…

会议AISTATS(Artificial Intelligence and Statistics) Latex模板参考文献引用问题

前言 在看AISTATS2024模板的时候,发现模板里面根本没有教怎么引用,要被气死了。 如下,引用(Cheesman, 1985)的时候,模板是自己手打上去的?而且模板提供的那三个引用,根本也没有Cheesman这个人&#xff0c…

Mysql各种锁

一.不同存储引擎支持的锁机制 Mysql数据库有多种数据存储引擎,Mysql中不同的存储引擎支持不同的锁机制 MyISAM和MEMORY存储引擎采用的表级锁 InnoDB存储引擎支持行级锁,也支持表级锁,默认情况下采用行级锁 二.锁类型的划分 按照数据操作…

【LeetCode热题100】--21.合并两个有序链表

21.合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val)…

flutter开发实战-应用更新apk下载、安装apk、启动应用实现

flutter开发实战-应用更新apk下载、安装apk、启动应用实现 在开发过程中,经常遇到需要更新下载新版本的apk文件,之后进行应用更新apk下载、安装apk、启动应用。我们在flutter工程中实现下载apk,判断当前版本与需要更新安装的版本进行比对判断…

FFmpeg 命令:从入门到精通 | ffmpeg 命令分类查询

FFmpeg 命令:从入门到精通 | ffmpeg 命令分类查询 FFmpeg 命令:从入门到精通 | ffmpeg 命令分类查询ffmpeg -versionffmpeg -buildconfffmpeg -formatsffmpeg -muxersffmpeg -demuxersffmpeg -codecsffmpeg -decodersffmpeg -encodersffmpeg -bsfsffmpeg…

LabVIEW学习笔记五:错误,visa关闭超时(错误-1073807339)

写的串口调试工具,其中出现了这个错误 这是串口接收的部分,如果没有在很短的时间内收到外界发进来的数据,这里就会报错。 先在网上查了一下,这个问题很常见,我找到了官方的解答: VISA读取或写入时出现超时…

视频高效剪辑,批量调整视频速度,让视频更加精彩

你是否曾经需要调整多个视频的速度,但却苦于手动操作效率低下?如果你也遇到了这样的问题,那么是时候采取行动,使用一款高效易用的视频处理工具了。 首先,我们要进入好简单批量智剪,并在板块栏里选择“任务…

26358-2022 旅游度假区等级划分 思维导图

声明 本文是学习GB-T 26358-2022 旅游度假区等级划分. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了旅游度假区的等级划分和依据、总则、基本条件、省级和国家级旅游度假区条件。 本文件适用于旅游度假区的等级认定与复核依据…

pandas数据处理之构建联邦学习数据

本文以天池比赛《车辆贷款违约预测》的数据为例,通过pandas处理数据,构建联邦学习数据,用于FATE框架联邦学习。 通过pandas处理数据 1. 读取数据 下载car_loan_train.csv数据后,用pandas读取数据。 import pandas as pddatapd…