JavaWeb开发02-MYSQL-DDL-DML-DQL-多表设计-多表查询-事务-索引

一、MySQL概述

通过SQL语句可以操作数据库

关系型数据库:

只要是关系型数据库就可以用SQL语句这一统一标准进行操作数据库

1.MYSQL数据模型

客户端通过SQL语句交给了数据库管理系统DBMS,进行相应操作,创建一个一个数据库,体现为一个一个文件夹,其相互独立,再在数据库中可以创建一个一个二维表数据。

2.SQL简介

二、MYSQL-DDL

1.SQL语句

首先进行数据库设计

查询当前数据库,就是到后面不知道是哪个数据库的时候使用

2.MYSQL客户端工具

IDEA集成了这个工具

3.表的创建

SQL语句varchar()是字符串

创建表后就可以定义内容:新建和上传

但是发现id可以重复,所以要用到约束:

auto_increment会自动增加,默认从1

id是唯一标识,所以它使用primary key,而username不是标识所以使用not null 和unique

4.表的创建-数据类型

数值类型:

在后面加上 unsigned是无符号
年龄:age tinyint unsigned

小数前一个是整数位后一个是小数位
分数score double(4,1)

字符串类型:

对于性别数量确定的就是用char。

日期:

若是生日这种日期使用date,是操作时间需要准确时间点就用datetime.

案例:

4.表的操作-查询&修改

是对表头进行修改

下拉就行;打开表;右键edit

可以直接图形化操作

删除右键drop就行

三、MYSQL-DML

1.添加数据

2.更新数据

如果没有where语句就会更新所有该列字段的值

3.删除数据

四、MYSQL-DQL

1.基本查询

需要什么数据都罗列出来

设置别名若有空格或者其他符号使用引号

这样可以看所有种类

2.条件查询

模糊查询下划线代表单个字符,%代表任意字符

3.分组查询

①聚合函数

②分组查询

返回的是两类一个是gender一个是聚合函数

分组后还有条件筛选就使用having关键字

执行顺序,先进行where的过滤,不满足条件的是不会进行分组操作的,第二部分就是分组操作和聚合函数,第三部分就是对分组后的再进行条件过滤

4.排序查询

排序查询就是在之前的查询中在后面使用order by来进行升序降序排序

如果有两个参数,代表之前参数相同时按第二个排序

5.分页查询

案例:

语句太长可以按ctrl+alt+L

这里时如果gender=1取的是男性员工,否是女性员工,性别是表头别称,

五、MYSQL-多表设计

1.一对多

多的一方添加外键关联多的一方

①概述

一个部门有多个员工

创建部门表和员工表

员工表中的dept_id就代表了部门中的主键id

②外键

可以发现之前中两个表之间,删除父表中的数据,子表不会发生变动,两个表相互独立

通过外键约束

子表中的dept_id是外键字段

没有关联才可以删除

现在一般不使用外键,通过代码保证逻辑性

2.一对一

将一个用户信息拆分为两个,由于基本信息经常调用,而身份信息不经常这样拆分提高效率

如何实现一对一

3.多对多

使用外键太复杂

案例:

分类表包含:菜品分类和套餐分类,菜品与分类表是一对多,套餐和分类表也是一对多,而菜品和套餐是多对多

分类表:

菜品表:

套餐表:

套餐菜品关系表:

记录的是这个套餐下这个菜品的份数

六、MYSQL-多表查询

这样查询会出现笛卡尔积:

让dept_id和id相同条件

1.内连接查询

inner可以省略

如果表名太长可以起别名:

2.外连接查询

左外连接就会查询到左边自己部分和交集部分

左外连接会完全包含左表的数据以及交集数据,语句中left jion就是说左边表全部保留

3.子查询

①标量子查询

对于a就是子查询

本来两条语句可以合并成一条

②列子查询

in意思也是属于的意思

③行子查询

④表子查询

作为临时表,限制查询范围,在临时表的基础上进行查询

案例:

是多表设计中的案例信息

查询如何书写:首先看需要哪些表,先写出查询中表之间的关系语句,再添加相应的条件,没有特殊说明关系就采用内连接

  

查询了不同分类中最高的价格,就得对菜品按分类进行分组,并查询出每组中最高的价格

只要分组了就得有聚合函数

要查询哪几个表就先在from后罗列出来,然后在where后将这几个表之间的关系联系起来,这就是基础查询

七、事务

1.事务的概念以及操作

解散部门,删除部门并删除部门下员工一起删除。

这样两条语句就是两个事物,一个事物就会要么同时成功,要么同时失败

如何将几条语句变成一个事物:

不使用commit在其他窗口不会出现删除,如果出现错误,没commit就可以使用rollback就可以把删除的数据回复

2.事务四大特性

事务一致性:就是保证成功都执行,失败都不执行。

八、索引

未建立索引的时候,数据量大查询效率低

在创建表的时候就为要经常查询的字段建立索引:

之后再查询的话就会很快

1.索引的介绍

类似目录的作用

没有索引就会依次进行查询看是否满足条件,全表扫描

二叉搜索树

2.索引的数据结构

多路平衡搜素树:

上面都是非叶子节点,其起索引的作用,所有数据存储在叶子节点中

3.索引的操作语法

如果在创建字段的时候是unique就会创建索引

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

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

相关文章

如何理解信创产品?成为信创产品?

信创产品是指运用信息技术手段创造的产品,它是数据安全、网络安全的基础,也是新基建的重要组成部分。信创产品包括了IT基础设施如CPU芯片、服务器、存储、交换机、路由器、各种云和相关服务内容;基础软件如数据库、操作系统、中间件&#xff…

JRT在线初始化完善

之前实现的在线初始化留了个尾巴,那就是环境下载页构造zip包的时候没修改JRTBrowser的连接串地址为当前网站,这样就要求网站部署好之后给用户下载之前有人要把服务器的浏览器地址配置好。这样就增加一个运维工作,如果忘了或者不知道的人就会导…

nuxt3使用记录四:加载静态资源时路径的写法研究

在上一篇记录了NUXT进行SSG构建时&#xff0c;不仅会构建纯静态的html文件&#xff0c;也会构建一堆js文件。而如果网页中有加载静态资源&#xff0c;如图片&#xff0c;这时就需要注意了&#xff0c;不能简单的使用官网说的<img src"~/assets/img/nuxt.png" alt&…

Linux进阶---常见符号及其含义、常见报错

一、常见符号及其含义&#xff08;重要&#xff09; 二、 常见报错 • 找不到文件、文件不存在&#xff1a;No such file or directory • 没有权限 &#xff1a;Permission denied • 命令不存在 &#xff1a;command not found 1.找不到文件、文件不存在&#xff1a;No s…

AI智能电销机器人是什么?能给我们带来哪些便利?

科技的飞速发展&#xff0c;让很多“懒人”的幻想变成了现实&#xff0c;越来越多的人工智能产品被发明出来甚至完全替代日常生活中的工作。比如在电销行业&#xff0c;很多企业选择AI智能电销机器人进行外呼。那么你了解多少AI智能电销机器人呢&#xff1f;和小编kelaile520一…

声明v.s.定义

参考&#xff1a;http://t.csdnimg.cn/1xnzA 变量的定义&#xff1a;用于为变量分配存储空间&#xff0c;还可以为变量指定初始值&#xff0c;在程序中&#xff0c;变量有且仅有一个定义。变量的声明&#xff1a;用于向程序表明变量的类型和名字。在程序中&#xff0c;变量可以…

SAP SD学习笔记06 - 受注的据否,受注的理由,简易变更(一括处理)

上文讲了一括处理和Block&#xff08;冻结&#xff09;处理。 SAP SD学习笔记05 - SD中的一括处理&#xff08;集中处理&#xff09;&#xff0c;出荷和请求的冻结&#xff08;替代实现承认功能&#xff09;-CSDN博客 本章继续讲SAP的流程中一些常用的操作。 1&#xff0c;受注…

Flume 入门教程

内容目录 Flume 简介 架构和基本概念 多种架构模式 Flume 安装部署 Flume 简介 Flume 是一个分布式、可靠且高可用的数据收集、聚合和传输系统&#xff0c;主要用于高效地处理大规模日志数据。设计之初&#xff0c;它主要服务于日志管理领域&#xff0c;但其灵活性和可扩展…

语言的未来:深度学习在自然语言处理中的革命

语言的未来&#xff1a;深度学习在自然语言处理中的革命 1 引言 自古以来&#xff0c;语言就是人类表达思想、传递信息、进行社会互动的基石。语言的复杂性既体现在其变化多端的语义、句法和语用层面&#xff0c;同时也反映在人类如何理解和产生自然语言的深奥之中。在这一节中…

009、Python+fastapi,第一个后台管理项目走向第9步:ubutun 20.04下安装vscode+git环境配置

一、说明 git是一定要配置的&#xff0c;由于是白嫖的无影云电脑&#xff0c;东西得保存在网上&#xff0c;就继续白嫖gitee吧&#xff0c;显然国内github是不太合适的了 二、安装git 直接安装sudo apt install -y git git --version git version 2.25.1 三、配置git 在git上…

OSPF星型拓扑和MGRE全连改

一&#xff0c;拓扑 二&#xff0c;要求 1&#xff0c;R6为ISP只能配置IP地址&#xff0c;R1-R5的环回为私有网段 2&#xff0c;R1/4/5为全连的MGRE结构&#xff0c;R1/2/3为星型的拓扑结构&#xff0c; 3&#xff0c;R1为中心站点所有私有网段可以互相通讯&#xff0c;私有网段…

Spring AI,调用OpenAI大模型接口,让ChatGPT给你讲笑话

前言 Spring最近刚刚推出了SpringAI&#xff0c;封装了AI大模型接口的使用。本文将参考Spring官网案例&#xff0c;一步步教你如何调用OpenAI的接口&#xff0c;让ChatGPT接口返回一个笑话。 前提条件 请下载并安装好JDK17或更新的版本&#xff0c;本文使用的是JDK21。JDK下…

基于百度文心大模型全面重构,小度正式推出AI原生操作系统DuerOS X

4月16日&#xff0c;以“创造未来”为主题的2024百度Create AI开发者大会在深圳举办。百度集团副总裁、小度科技CEO李莹正式发布了小度新一代操作系统DuerOS X&#xff0c;该操作系统是小度基于百度文心大模型推出的全球首个AI原生操作系统。李莹表示&#xff1a;“作为⽂⼼⼤模…

【漏洞复现】IP-guard WebServer getdatarecord接口处存在权限绕过漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

基于Java+Vue的校园交友系统(源码+文档+包运行)

一.系统概述 选题背景&#xff1a; 在大学校园中&#xff0c;学生们面临着新的环境和人际关系的挑战。有些学生可能感到孤独或者希望扩展自己的社交圈子&#xff0c;寻找志同道合的朋友或者潜在的伴侣。因此&#xff0c;设计一款校园交友平台具有重要意义。 研究意义&#xff1…

Java内存模型和 JVM 内存运行时

文章目录 前言一、什么是Java 的内存模型&#xff1f;二、什么是 JVM 的运行时数据区Java8 之前和之后的区别JVM 内存模型JVM 内存区域JVM 内存垃圾回收JVM如何判断哪些对象不在存活&#xff1f;JVM运行过程中如何判断哪些对象是垃圾&#xff1f; JVM 垃圾回收Java8 中的 jvm如…

Google DeepMind: Many-Shot vs. Few-Shot

本文介绍了如何通过增大上下文窗口&#xff0c;利用大型语言模型&#xff08;LLMs&#xff09;进行多实例上下文学习&#xff08;Many-Shot In-Context Learning&#xff0c;ICL&#xff09;的方法。主要描述了现有的几实例上下文学习方法虽然在推理时能够通过少量例子学习&…

“全网最全”LLM推理框架集结营 | 看似微不足道,却决定着AIGC项目的成本、效率与性能!

00-前序 随着ChatGPT、GPT-4等大语言模型的出现&#xff0c;彻底点燃了国内外的学者们与企业家们研发LLM的热情。国内外的大语言模型如雨后春笋一般的出现&#xff0c;这些大语言模型有一部分是开源的&#xff0c;有一部分是闭源的。 伴随着大语言模型的出现&#xff0c;国内外…

树莓派驱动RGB灯-rpi-ws281x库安装

1 树莓派的操作系统安装 1.1 操作系统选择 这个选择64位的操作的系统来驱动&#xff0c;一定不要选择32位的操作系统。笔者在这个地方浪费不少时间&#xff0c;具体原因不是很清楚。如果32位的操作系统&#xff0c;后面在rpi-ws281x的库时候会有报错。 1.2 操作系统链接如下…

windows docker desktop==spark环境搭建

编写文件docker-compose.yml version: 3services:spark-master:image: bde2020/spark-master:3.1.1-hadoop3.2container_name: spark-masterports:- "8080:8080"- "7077:7077"- "2220:22"volumes:- F:\spark-data\m1:/dataenvironment:- INIT_D…