当前位置: 首页 > news >正文

MySQL数据库基础

目录

数据库介绍

什么是数据库

数据库的分类

1. 数据库的操作

创建数据库

显示数据库

使用数据库

删除数据库 

 2. 表的操作

创建表

删除表

3. 常用数据类型

插入数据

查询数据


从本篇起就又要开始新的篇章了,数据结构初级阶段的就告一段落了,等把后面的JavaEE初级阶段学习完,又会回到数据结构进阶部分。

本章开始就是主打MySQL了。

MySQL是个啥?其实就是个数据库,那么数据库又是个啥?

首先来介绍以下什么是数据库。

数据库介绍

什么是数据库

数据库简单来说就是用来存储文件的,如何存储又要牵扯到很多这里就不展开了,可以参考:

数据库发展史 - 知乎 (zhihu.com)

随着时代的发展,大部分数据都是存储在文件当中的,那为什么还要弄个数据库?
对比以下优缺点:

文件保存数据有以下几个缺点:

  • 文件的安全性问题
  • 文件不利于数据查询和管理
  • 文件不利于存储海量数据
  • 文件在程序中控制不方便

数据库中的数据一般存储在内存和磁盘中。

数据库的分类

数据库大体可以分为 关系型数据库 和 非关系型数据库

  • 关系型数据库(RDBMS):是指采用了关系模型来组织数据的数据库。 简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。基于标准的SQL,只是内部一些实现有区别。常用的关系型数据库如:
  1. Oracle:甲骨文产品,适合大型项目,适用于做复杂的业务逻辑,如ERP、OA等企业信息系统。收费。
  2.  MySQL:属于甲骨文,不适合做复杂的业务。开源免费。
  3.  SQL Server:微软的产品,安装部署在windows server上,适用于中大型项目。收费。
  • 非关系型数据库(了解):不规定基于SQL实现。现在更多是指NoSQL数据库,如:
  1.  基于键值对(Key-Value):如 memcached、redis
  2.  基于文档型:如 mongodb
  3.  基于列族:如 hbase
  4.  基于图型:如 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
TINYINT1字节Byte
SMALLINT2字节Short
INT4字节Integer
BIGINT8字节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
TEXT0-65,535字节长文本数据String
MEDIUMTEXT0-16 777 215字节中等长度文本数据String
BLOB0-65,535字节二进制形式的长文本数据byte[]

这没什么好介绍的,就只需要认识一个 blob 是存储二进制的;要用到时,百度即可。

日期类型

数据类型
说明对应java类型
DATETIME8 字 节范围从1000到9999年,不会进行时区的
检索及转换。
java.util.Date、
java.sql.Timestamp
TIMESTAMP4 字 节范围从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. 常用数据类型 插入数据 查询数据 从本篇起就又要开始新的篇章了,数据结构初级阶段的就告一段落了&#xff0…...

近自由电子近似

假设 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的分词方式会把一个完整的词切分成若干个子词,在生成训练样本时&#xff…...

【华为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。软件我都已经给大家准备好了(含序列号),大家在这里下载就好。虚拟机安装包下载完毕之后,将它安装到电脑里。这个安装过程很简单,一路下…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制&#xff0…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...