MySQL数据库基础
目录
数据库介绍
什么是数据库
数据库的分类
1. 数据库的操作
创建数据库
显示数据库
使用数据库
删除数据库
2. 表的操作
创建表
删除表
3. 常用数据类型
插入数据
查询数据
从本篇起就又要开始新的篇章了,数据结构初级阶段的就告一段落了,等把后面的JavaEE初级阶段学习完,又会回到数据结构进阶部分。
本章开始就是主打MySQL了。
MySQL是个啥?其实就是个数据库,那么数据库又是个啥?
首先来介绍以下什么是数据库。
数据库介绍
什么是数据库
数据库简单来说就是用来存储文件的,如何存储又要牵扯到很多这里就不展开了,可以参考:
数据库发展史 - 知乎 (zhihu.com)
随着时代的发展,大部分数据都是存储在文件当中的,那为什么还要弄个数据库?
对比以下优缺点:
文件保存数据有以下几个缺点:
- 文件的安全性问题
- 文件不利于数据查询和管理
- 文件不利于存储海量数据
- 文件在程序中控制不方便
数据库中的数据一般存储在内存和磁盘中。
数据库的分类
数据库大体可以分为 关系型数据库 和 非关系型数据库
- 关系型数据库(RDBMS):是指采用了关系模型来组织数据的数据库。 简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。基于标准的SQL,只是内部一些实现有区别。常用的关系型数据库如:
- Oracle:甲骨文产品,适合大型项目,适用于做复杂的业务逻辑,如ERP、OA等企业信息系统。收费。
- MySQL:属于甲骨文,不适合做复杂的业务。开源免费。
- SQL Server:微软的产品,安装部署在windows server上,适用于中大型项目。收费。
- 非关系型数据库(了解):不规定基于SQL实现。现在更多是指NoSQL数据库,如:
- 基于键值对(Key-Value):如 memcached、redis
- 基于文档型:如 mongodb
- 基于列族:如 hbase
- 基于图型:如 neo4j
关系型数据库与非关系型数据库的 区别:
| 关系数据库 | 非关系型数据库 | |
| 使用SQL | 是 | 不强制要求,一般不基于SQL实现 |
| 事务支持 | 支持 | 不支持 |
| 复杂操作 | 支持 | 不支持 |
| 海量读写操作 | 效率低 | 效率高 |
| 基本结构 | 基于表和列,结构固定 | 灵活性比较高 |
| 使用场景 | 业务方面的OLTP系统 | 用于数据的缓存、或基于统计分析的OLAP系统 |
关于数据库如何安装等等,我这里就不过多介绍了,我直接抄一篇博客,链接如下:
Windows安装mysql详细步骤(通俗易懂,简单上手)_华夏之威的博客-CSDN博客
https://blog.csdn.net/weixin_43423484/article/details/124408565而我们主要学习的就是MySQL,因为它开源,免费!!!
接下来开始进入正题,数据库如何操作的。
1. 数据库的操作
MySQL服务器中的数据库可以有很多个,分别存储不同的数据,想要将数据存储到数据库中,首先要创建一个数据库,我们来看看如何创建一个数据库:
创建数据库
首先登陆我们的数据库:

第二步创建一个数据库,语法格式:
create database 【数据库名称】【库选项】

库选项主要就一些字符集,引擎什么的,这里就不多介绍,需要的话可以去查。
java就是数据库名称,字符集设置为utf-8 后面添加数据时,就可以添加汉字了。
显示数据库
既然创建了,我们可以查看我们创建的数据库是否存在MySQL服务器中,语法格式如下:
show databases;

java雀氏已经存在了,里面有的是我自己创建的,也有是系统自带的。
使用数据库
既然创建了,那就来用用看,语法格式如下:
use 数据库名称;

数据中系统提示的很多单词相信大家都认识,我也就不介绍了。
这样我们就进入到了java这个库中了,我们再来看看库中有些啥:

嘿嘿,啥也没有。
删除数据库
这一步操作非常危险啊,除非有需要,不然千万不要进行这一步操作,不然小手一点,分分钟让老板损失上百万;但是我们的数据库啥也没有,我们一次性删爽来。
语法格式如下:
drop database 数据库名称;

再来看看,服务器中是否还存在;

只有10行了,雀氏删除成功了;还是得提醒以下,千万不要手欠删库啊,分分钟丢失工作。
2. 表的操作
我们先前创建了一个数据库名叫java的,库中的内容啥也没有;数据库中存放的就是表了,emoty 指的就是表,所以这一部分就是如何去创建表。
创建表
语法格式:
create table 表名( 字段名 字段类型(属性), 字段名 字段类型(属性),.......)【表选项】
这里面的我们一 一来解释,表选项和前面的一样,也是指字符集,存储引擎,校对集。
字段名就是指表的列名;字段类型就是指数据类型;
属性指的是对字段的某些约束条件等等。
我们拿个图来看看:

从左往右开始,Field 和 Type 翻译 过来就知道是字段和类型的意思;
Null 确定该字段是否为空,Key指的是索引类型;Default 指的是默认值; Extra 表示扩充
其实可以直接翻译以下就懂了。
这里涉及到查看表结构的语法:
desc 表名;desc 对应的单词就是description 【后面还有一个关键字也是desc】
删除表
有创建就有删除,对应的语法如下:
drop table 表名 ;
类似于删库,好吧就是一个语法。
同样删表也是个非常危险的操作,除非有需要不然不要轻易尝试,分分钟离职;蹭现在我们删爽来:

这就ok了,还是提醒以下啊,千万不要手欠删表,不然真的就g了。
一天一个离职小技巧 ~~
介绍了创建表和删除表,但是我们还是没有开始插入数据,在讲插入数据之前我们得对数据类型进行一个了解:
3. 常用数据类型
无论数据类型,都得贴近我们的生活,不会太离谱,本身数据库的目的就是存储数据的,正常而言数据就那么几中类型;和Java、C一样 都是有整型的浮点型的,但是还是略有区别的。
从整型和浮点型开始介绍
整型和浮点型:
| 数据类型 | 大小 | 说明 | 对应java类型 |
| BIT[ (M) ] | M指定位 数,默认 为1 | 二进制数,M范围从1到64, 存储数值范围从0到2^M-1 | 常用Boolean对应BIT,此时 默认是1位,即只能存0和1 |
| TINYINT | 1字节 | Byte | |
| SMALLINT | 2字节 | Short | |
| INT | 4字节 | Integer | |
| BIGINT | 8字节 | Long | |
| FLOAT(M, D) | 4字节 | 单精度,M指定长度,D指定 小数位数。会发生精度丢失 | Float |
| DOUBLE(M, D) | 8字节 | Double | |
| DECIMAL(M, D) | M/D最大 值+2 | 双精度,M指定长度,D表示 小数点位数。精确数值 | BigDecimal |
| NUMERIC(M, D) | M/D最大 值+2 | 和DECIMAL一样 | BigDecimal |
当然啦,MySQL和c语言类似,数值类型可以指定为无符号(unsigned),表示不取负数。
如果当我们int都存不下去了,就换一个类型,没必要去纠结使用unsigned 和 signed ,signed都存不下去,unsigned 大概率也存不下去。
字符串类型
| 数据类型 | 大小 | 说明 | 对应java类型 |
| VARCHAR (SIZE) | 0-65,535字节 | 可变长度字符串 | String |
| TEXT | 0-65,535字节 | 长文本数据 | String |
| MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 | String |
| BLOB | 0-65,535字节 | 二进制形式的长文本数据 | byte[] |
这没什么好介绍的,就只需要认识一个 blob 是存储二进制的;要用到时,百度即可。
日期类型
| 数据类型 | 大 小 | 说明 | 对应java类型 |
| DATETIME | 8 字 节 | 范围从1000到9999年,不会进行时区的 检索及转换。 | java.util.Date、 java.sql.Timestamp |
| TIMESTAMP | 4 字 节 | 范围从1970到2038年,自动检索当前时 区并进行转换。 | java.util.Date、 java.sql.Timestamp |
和字符串一样,不会比较,不会添加,没关系,要用时直接百度。
等会我也来演示以下。
到现在,我们就可以开始进行插入数据了。
插入数据
语法格式:
insert into value(值1,值2......);【单行插入】
insert into values(值1,值2......),(值1,值2......);【多行插入】
我们用多行插入的语法去插入一行记录也是可以滴!
示例:
![]()
一行插入没问题,我们再来看看多行插入:

既然插入欧克,那么我们再来看看服务器中是否已经存在我们添加的数据:
查询数据
语法格式:
select * from 表名;【这是全列查询】
这种查询,真正工作时,并不推荐,公司里的数据不同于我们自己写的,他们可能动则就上几十万条数据,我们一查带宽直接崩了,所以这条查询语句也非常危险!!
我们来看看结果如何:

的确能够查询出表中的数据!
当然,还有其他很多查询语句,今天就先到这里,其他的留给后面再细说,本章就到此为止,先对MySQL有部分的了解!
相关文章:
MySQL数据库基础
目录 数据库介绍 什么是数据库 数据库的分类 1. 数据库的操作 创建数据库 显示数据库 使用数据库 删除数据库 2. 表的操作 创建表 删除表 3. 常用数据类型 插入数据 查询数据 从本篇起就又要开始新的篇章了,数据结构初级阶段的就告一段落了࿰…...
近自由电子近似
假设 potential 的变化是非常小的 我们可以找到一条平均线 代表的就是我们的平均值 这样我们用原来的 就可以得到一个 和平均的这条线相比,上下变化不大,这个对我们薛定谔方程求解能带来很大的便利 我们就可以得到一个平均势场 这样的话,…...
【JavaWeb】从输入URL到展示出页面的过程
目录 DNS域名解析 检查hosts文件 查询缓存 查询本地DNS服务器 编辑查询根域名服务器等 三次握手建立连接 发送请求 响应请求 页面渲染 断开连接 这些过程简单的理解为先找到某人地址,给他发送消息可以去他家拿东西吗?他同意后拿到他的东西在…...
华为OD机试真题Java实现【数字涂色】真题+解题思路+代码(20222023)
数字涂色 题目 疫情过后,希望小学终于又重新开学了,三年二班开学第一天的任务是将后面的黑板报重新制作。黑板上已经写上了N个正整数,同学们需要给这每个数分别上一种颜色。为了让黑板报既美观又有学习意义,老师要求同种颜色的所有数都可以被这种颜色中最小的那个数整除。…...
Log Structure Merge Tree
LSM是一种基于日志追加写的数据结构,非常适合为具有高写入数据提供索引访问 LSM基于以下前提 内存读写速度远高于磁盘,但内存有限磁盘顺序读写速度远高于随机读写 结构 WAL WAL(write-ahead log)是用于在系统错误时提供持久化,在写入数据…...
Python QT5设计UI界面教程
简介:PyQT5开发常用知识,零基础上手,需配合我之前写的博文,配置好QT设计工具和ui文件转py文件的工具。博文为:使用Python PyQt5实现一个简单的图像识别软件;页面效果如下: 1.设计菜单栏 Contai…...
uniapp系列-图文并茂手把手教你hbuilder进行uniapp云端打包 - 安心打包
什么是安心打包 提交App的模块配置信息到云端,在云端打包机生成原生代码包 为什么使用云打包 更安全:打包时不提交应用代码、证书等信息更快速:非首次打包时不用提交云端打包机排队等待,本地直接出包省流量:减少了打…...
【精品】SpringBoot中基于拦截器实现登录验证功能
拦截器简介 拦截器是属于springmvc体系的,只能拦截controller的请求。拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行。 Interceptor 作用 日志记录:记录请求信息的日志&…...
哈工大服务科学与工程第一章作业
服务的概念服务是个非常广义的概念——涉及到经济、管理、业务、IT领域以下是一些各方对服务的定义:服务是一方向另一方提供的任意活动和好处。它是不可触知的,不形成任何所有权问题,其生产可能与物质产品有关,也可能无关。服务是…...
SpringMVC源码:参数解析、方法调用与返回值处理
参考资料: 《SpringMVC源码解析系列》 《SpringMVC源码分析》 《Spring MVC源码》 写在开头:本文为个人学习笔记,内容比较随意,夹杂个人理解,如有错误,欢迎指正。 前文: 《SpringMVC源码&a…...
【MySQL】表的数据处理
哈喽,大家好!我是保护小周ღ,本期为大家带来的是 MySQL 数据表中数据的基本处理的操作,数据表的增删改查,更多相关知识敬请期待:保护小周ღ *★,*:.☆( ̄▽ ̄)/$:*.★*一、 添加数据&a…...
反思当下所处的环境,有没有让你停滞不前、随波逐流
环境对人的影响真的很大,小时候的环境、长大后的环境、工作环境、生活环境、好的环境、差的环境......我们都生活在一定的环境中所以既是环境的产物,又是环境的创造者与改造者。我们与环境的关系是相辅相成的我们的生活和工作当中接触到的人或事或物&…...
小程序(十四)后端-签到成功
文章目录一、持久层1、CheckinMapper.xml2、CheckinMapper.java3、TbHolidaysDao.xml4、TbHolidaysDao.java5、TbWorkdayDao.xml6、TbWorkdayDao.java二、业务层1、 CheckinService.java三、conroller层1、编写 TbUserDao.xml 文件,查询员工的入职日期。2、编写 TbU…...
X264简介-Android使用(一)
X264 简介及使用 1、简介 2、环境搭建 3、使用 4、小结 简介 官网连接:https://www.videolan.org/developers/x264.html 官方文档:https://wiki.videolan.org/Category:X264/ x264是用于编码H.264/MPEG-4 AVC视频流的免费软件库。它世界上最流行的…...
DetectGPT:使用概率曲率的零样本机器生成文本检测
DetectGPT的目的是确定一段文本是否由特定的llm生成,例如GPT-3。为了对段落 x 进行分类,DetectGPT 首先使用通用的预训练模型(例如 T5)对段落 ~xi 生成较小的扰动。然后DetectGPT将原始样本x的对数概率与每个扰动样本~xi进行比较。…...
【深度学习】BERT变体—BERT-wwm
1.BERT-wwm 1-1 Whole Word Masking Whole Word Masking (wwm)是谷歌在2019年5月31日发布的一项BERT的升级版本,主要更改了原预训练阶段的训练样本生成策略。 原有基于WordPiece的分词方式会把一个完整的词切分成若干个子词,在生成训练样本时ÿ…...
【华为OD机试真题 java、python、c++】优秀学员统计【2022 Q4 100分】(100%通过)
代码请进行一定修改后使用,本代码保证100%通过率。本文章提供java、python、c++三种代码 题目描述 公司某部门软件教导团正在组织新员工每日打卡学习活动,他们开展这项学习活动已经一个月了,所以想统计下这个月优秀的打卡员工。 每个员工会对应一个id,每天的打卡记录记录当…...
JavaScript里的循环方法:forEach,for-in,for-of
文章目录forEach循环for–in循环for-of循环for-of循环使用例子:循环一个数组(Array):循环一个字符串:循环一个类型化的数组(TypedArray):循环一个Map:循环一个 Set:循环一个 DOM collection循环一个拥有enumerable属性的对象循环一个生成器(g…...
汽车标定知识整理(二):CCP报文基本命令介绍
目录 一、基本命令 CRO命令报文的基本命令表: 二、基本命令与可选命令帧格式介绍 1、CONNECT——建立连接(0x01) 2、GET_CPP_VERSION——获取CCP版本(0x1B) 3、SET_MTA——设置内存传输地址(0x02&#…...
windows系统安装Linux虚拟机教程
虚拟机的安装首先要下载虚拟机的安装包,当前最新版本是VMware 16.2.1。软件我都已经给大家准备好了(含序列号),大家在这里下载就好。虚拟机安装包下载完毕之后,将它安装到电脑里。这个安装过程很简单,一路下…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...
CSS3相关知识点
CSS3相关知识点 CSS3私有前缀私有前缀私有前缀存在的意义常见浏览器的私有前缀 CSS3基本语法CSS3 新增长度单位CSS3 新增颜色设置方式CSS3 新增选择器CSS3 新增盒模型相关属性box-sizing 怪异盒模型resize调整盒子大小box-shadow 盒子阴影opacity 不透明度 CSS3 新增背景属性ba…...
鸿蒙Navigation路由导航-基本使用介绍
1. Navigation介绍 Navigation组件是路由导航的根视图容器,一般作为Page页面的根容器使用,其内部默认包含了标题栏、内容区和工具栏,其中内容区默认首页显示导航内容(Navigation的子组件)或非首页显示(Nav…...
