【MySQL】基础知识(一)
MySQL基础知识(一)
文章目录
- MySQL基础知识(一)
- 00 MySQL安装
- 01 数据库介绍
- 1.1 什么是数据库
- 1.2数据库分类
- 02 SQL分类
- 03 数据库操作
- 3.1显示数据库
- 3.2创建数据库
- 3.3选中数据库
- 3.4删除数据库
- 04 常用数据类型
- 4.1数值类型
- 4.2字符串类型
- 4.3日期类型
00 MySQL安装
Windows下通过MySQL Installer安装MySQL服务
01 数据库介绍
1.1 什么是数据库
存储数据用文件就可以了,为什么还要弄个数据库?
文件保存数据有以下几个缺点:
-
文件的安全性问题
-
文件不利于数据查询和管理
-
文件不利于存储海量数据
-
文件在程序中控制不方便
数据库存储介质:
- 磁盘
- 内存
为了解决上述问题,专家们设计出更加利于管理数据的软件——数据库,它能更有效的管理数据。数据库可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器。
1.2数据库分类
数据库大体可以分为关系型数据库和非关系型数据库
-
关系型数据库(RDBMS):
是指采用了关系模型来组织数据的数据库。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
基于标准的SQL,只是内部一些实现有区别。常用的关系型数据库如:- Oracle:甲骨文产品,适合大型项目,适用于做复杂的业务逻辑,如ERP、OA等企业信息系统。收费。
- MySQL:属于甲骨文,不适合做复杂的业务。开源免费。
- SQL Server:微软的产品,安装部署在windows server.上,适用于中大型项目。收费。
-
非关系型数据库:
(了解)不规定基于SQL实现。现在更多是指NoSQL数据库,如:-
基于键值对(Key-Value):如memcached、redis
-
基于文档型:如mongodb
-
基于列族:如hbase
-
基于图型:如neo4j
关系型数据库与非关系型数据库的 区别:
关系型数据库 非关系型数据库 使用SQL 是 不强制要求,一般不基于SQL实现 事务支持 支持 不支持 复杂操作 支持 不支持 海量读写操作 效率低 效率高 基本结构 基于表和列,结构固定 灵活性比较高 使用场景 业务方面的OLTP系统 用于数据的缓存、或基于统计分析的OLAP系统 -
02 SQL分类
-
DDL数据定义语言,用来维护存储数据的结构
代表指令:create,drop,alter -
DML数据操纵语言,用来对数据进行操作
代表指令:insert,delete,update- DML中又单独分了一个DQL,数据查询语言,代表指令:
select
- DML中又单独分了一个DQL,数据查询语言,代表指令:
-
DCL数据控制语言,主要负责权限管理和事务
代表指令:grant,revoke,commit
03 数据库操作
MySQL是一个客户端,服务器结构的程序,MySQL的服务器是真正的本体,负责保存和管理数据,数据都是存储在硬盘上的。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-57hj5X5A-1691503192817)(https://gitee.com/liuhb-clanguage/picture/raw/master/png/image-20230808152444302.png)]](https://img-blog.csdnimg.cn/15d12a27139b402e939eb4cffcdf1e22.png)
操作数据库的命令,也就是”SQL语句“,也可以理解为一种编程语言。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hw5G5kyt-1691503192819)(https://gitee.com/liuhb-clanguage/picture/raw/master/png/image-20230808155232027.png)]](https://img-blog.csdnimg.cn/fac9a0839a8d46d8a43899c63c16bc7a.png)
说明:操作数据库的时候,数据库对于字母的大小写不敏感,也就是说可以大写也可以小写。
3.1显示数据库
语法:show databases;
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lxtvKB0w-1691503192819)(E:\Typora_note\MySQL\MySQL基础知识.assets\image-20230808164729682.png)]](https://img-blog.csdnimg.cn/95501654af3f4d9b997af70918765849.png)
3.2创建数据库
语法:create database 数据库名字;
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BSihRQdz-1691503192820)(https://gitee.com/liuhb-clanguage/picture/raw/master/png/image-20230808165202056.png)]](https://img-blog.csdnimg.cn/c66b1513d3c642a696f40acc45f4d6d8.png)
- 注意点就是,我们创建的数据库不能同名。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9nGedtWe-1691503192820)(https://gitee.com/liuhb-clanguage/picture/raw/master/png/image-20230808165438660.png)]](https://img-blog.csdnimg.cn/d31cce83ba0341848600d7de0ba8f870.png)
这里有解决方法:
就是在创建的时候加上修饰if not exists来解决问题。如图:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OP1MyXJd-1691503192821)(https://gitee.com/liuhb-clanguage/picture/raw/master/png/image-20230808165727906.png)]](https://img-blog.csdnimg.cn/e88c2d5940d54a8bb1ae93edafb4d5cc.png)
它也是可以适用于我们以后创建数据库保险一点的操作,因为在实际工作中,很多时候我们是将一系列的sql写到一个文件中,批量执行的,很少会一行一行去执行,那么在批量执行的情况下,要是其中有一条sql语句写错了,后续的失去了语句就无法继续执行了。
创建数据库的时候,可以手动指定一下字符集
语法:character set 字符集名字
亦或是:charset 字符集名字
- 当我们创建数据库没有指定字符集和校检规则的话,系统会默认使用默认字符集:
utf8,校检规则是:utf8_general_ci - 如果我们需要在数据库中保存中文,因为MySQL默认字符集是拉丁文,并不支持中文,所以我们必须在创建数据库的时候,手动将编码方式指定为支持中文的编码。(GBK、UTF8)
- MySQL中的
utf8其实是一个残本,不是完全体的utf8,少了一些复杂的中文,以及一些emoji表情,若想在MySQL中使用utf8的完全体,则我们需要输入utf8mb4.
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E3hAoY4q-1691503192822)(https://gitee.com/liuhb-clanguage/picture/raw/master/png/image-20230808173403700.png)]](https://img-blog.csdnimg.cn/034aaa89a27445a7a15ecbf0933d9fc9.png)
3.3选中数据库
语法:use 数据库名字;
数据库最重要的操作,就是针对表进行增删改查。表是属于数据库的,要针对表操作,就要先把哪个数据库的表这个事情搞清楚!
3.4删除数据库
语法:drop database 数据库名;
删除操作,删掉的不仅仅是database,而且也删除了database中的所有表,还有表里的所有数据。
那不然怎么经常有:从删库到跑路这句话呢~🐶🐶🐶
04 常用数据类型
MySQL中支持的数据类型。
一个表,包含很多行,每一行也称为一条记录。一个行里可以有很多列,每一列也称为是一个字段。每个列都是有一个具体类型的。
4.1数值类型
| 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 | 双精度,m指定长度,d指定小数位数。精确数值 | bigdecimal |
拓展:
-
数值类型可以指定为无符号(unsigned),表示不取负数。
-
1字节(bytes)= 8bit。
-
对于整型类型的范围:
-
有符号范围:-2(类型字节数*8-1)到2(类型字节数*8-1)-1,如int是4字节,就
是-231到231-1
-
无符号范围:0到2(类型字节数*8)-1,如int就是232-1
-
-
尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其
如此,还不如设计时,将int类型提升为bigint类型。

4.2字符串类型
| 数据类型 | 大小 | 说明 | 对应Java类型 |
|---|---|---|---|
| varchar(size) | 0-65535字节 | 可变长度字符串 | String |
| text | 0-65535字节 | 长文本数据 | String |
| mediumtext | 0-16777215字节 | 中等长度文本数据 | String |
| blob | 0-65535字节 | 二进制形式的长文本数据 | byte[] |
关于上表的一些小解读:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-78WiBUg7-1691503192823)(https://gitee.com/liuhb-clanguage/picture/raw/master/png/image-20230808215220387.png)]](https://img-blog.csdnimg.cn/56ef895bf21b4100a930e52c905c14f5.png)
4.3日期类型
| 数据类型 | 大小 | 说明 | 对应Java类型 |
|---|---|---|---|
| datetime | 8字节 | 范围从1000到9999年,不会进行时区的检索及转换。 | java.util.Date、java.sql.Timestamp |
| timestamp | 4字节 | 范围从1970到2038年,自动检索当前时区并进行转换。 | java.util.Date、java.sql.Timestamp |
相关文章:
【MySQL】基础知识(一)
MySQL基础知识(一) 文章目录 MySQL基础知识(一)00 MySQL安装01 数据库介绍1.1 什么是数据库1.2数据库分类 02 SQL分类03 数据库操作3.1显示数据库3.2创建数据库3.3选中数据库3.4删除数据库 04 常用数据类型4.1数值类型4.2字符串类…...
Ansible专栏目录
我的博客:www.itwk.cc 希望能够给大家带来帮助! 1、什么是Ansible?Ansible 简介及核心概念详解 https://blog.csdn.net/qq_34185638/article/details/131079320 2、Ansible Inventory 主机清单的作用、使用方法及示例详解 https://blog.cs…...
【locust】使用locust + boomer实现对接口的压测
目录 背景 环境安装 脚本编写 master slave节点(golang/boomer) 问题 资料获取方法 背景 很早之前,考虑单机执行能力,使用locust做过公司短信网关的压测工作,后来发现了一个golang版本的locust,性能…...
亿欧智库:2023中国宠物行业新趋势洞察报告(附下载)
关于报告的所有内容,公众【营销人星球】获取下载查看 核心观点 户外赛道本质上迎合了全球共性需求的增长,从养宠意愿的转化到养宠生活的需求,多层次的需求推动行业发展新趋势 从需求端进行分析,可以将养宠意愿的转化分为三个层…...
时序数据库 TDengine 与 WhaleStudio 完成相互兼容性测试认证
近年来,开源及其价值获得社会各界的广泛认可,无论是国家政策导向还是企业数字化转型,都在加速拥抱开源。对于如操作系统、数据库等基础软件来说,开源更是成为驱动技术创新的有力途径。 在此背景下,近日,涛…...
Spring-1-深入理解Spring XML中的依赖注入(DI):简化Java应用程序开发
学习目标 前两篇文章我们介绍了什么是Spring,以及Spring的一些核心概念,并且快速快发一个Spring项目,以及详细讲解IOC,今天详细介绍一些DI(依赖注入) 能够配置setter方式注入属性值 能够配置构造方式注入属性值 能够理解什么是自动装配 一、…...
负载均衡–HAProxy安装及搭建tidb数据库负载服务
作为一名开发人员,随着经验的增加和技术的沉淀,需要提高自己架构方面的知识,同时对于一个企业来说,搭建一套高可用、高性能的技术架构,对于公司的业务开展和提高服务的性能也是大有裨益的。本文重点从软件安装和搭建ti…...
Django各种缓存的配置
Django提供了多种缓存后端,如内存缓存、文件缓存、数据库缓存、Memcached和Redis等。根据项目需求选择合适的缓存后端。 settings配置 在Django项目的settings.py文件中,找到或新增CACHES配置项。根据所选的缓存后端,配置相应的参数。以下是…...
实现跨域的几种方式
原理 前后端的分离导致了跨域的产生 跨域的三要素:协议 域名 端口 三者有一个不同即产生跨域 例如: http://www.csdn.com https://www.csdn.com 由于协议不同,端口不同而产生跨域 注:http的默认端口80,https的默…...
OpenCV: 对“google::protobuf::internal::Release_CompareAndSwap”的未定义
解决办法: 需要在文件 protobuf/src/google/protobuf/stubs/atomicops_internals_generic_gcc.h 中的以下补丁 inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr, Atomic64 old_value, …...
无涯教程-Perl - References(引用)
Perl引用是一个标量数据类型,该数据类型保存另一个值的位置,该值可以是标量,数组或哈希。 创建引用 变量,子程序或值创建引用很容易,方法是在其前面加上反斜杠,如下所示: $scalarref \$foo; $arrayref …...
马斯克收购AI.com域名巩固xAI公司地位;如何评估大型语言模型的性能
🦉 AI新闻 🚀 AI拍照小程序妙鸭相机上线商业工作站并邀请摄影师进行内测 摘要:AI拍照小程序妙鸭相机将上线面向商业端的工作站,并邀请摄影师进行模板设计的内测。妙鸭相机希望为行业提供更多生态产品,扩大行业规模&a…...
uni-app:实现点击按钮出现底部弹窗(uni.showActionSheet+自定义)
一、通过uni.showActionSheet实现底部选择 效果 代码 <template><view><button click"showActionsheet">点击打开弹窗</button></view> </template><script> export default {methods: {showActionsheet() {uni.showAct…...
flume系列之:监控zookeeper的flume配置写入节点,新增和删除flume agent节点,通过ansible自动部署和卸载flume agent
flume系列之:监控zookeeper的flume配置写入节点,新增和删除flume agent节点,通过ansible自动部署和卸载flume agent 一、相关技术二、流程梳理三、部署和删除flume agent效果四、监控zookeeper节点五、新增zookeeper节点部署flume agent六、删除zookeeper节点删除flume agen…...
了解以太网通信中的九阳神功 - SOME/IP协议
智能座舱SOME/IP通信 概述SOME/IP基础协议SOME/IP SD协议通信行为流程开机流程关机行为行为时序总结概述 SOME/IP协议是目前国内座舱SOA化应用比较广泛的一种ECU或车辆网络内设备之间交换数据的网络通信协议。它允许不同车辆组件,如发动机控制单元、信息娱乐系统、车身控制模…...
redis List类型命令
在Redis中,List(列表)是一种有序的、可重复的数据结构,它支持插入、删除和获取元素的操作。以下是一些常见的Redis List类型命令: LPUSH:将一个或多个值从列表的左侧插入。LPUSH key value1 value2 ...其中…...
【博客685】prometheus 出现NaN场景以及如何去除干扰(Not a Number)
prometheus 出现NaN场景以及如何去除干扰(Not a Number) 1、在prometheus中使用NaN来表示无效数值或者结果 场景: 一些监控系统使用 NaN 作为空值或缺失值,但在 Prometheus 中 NaN 只是另一个浮点值。Prometheus 表示缺失数据的方式是让数据缺失。Prom…...
【计算机网络】网络层协议 -- ICMP协议
文章目录 1. ICMP协议简介2. ICMP协议格式3. ping命令4. ping命令与端口号没有关系!!!5. traceroute命令 1. ICMP协议简介 ICMP(Internet Control Message Protocol,控制报文协议),用于在IP主机…...
机器学习---facebook的案例学习
import pandas as pd import matplotlib.pyplot as plt import seaborn as sbn from sklearn.model_selection import train_test_split,GridSearchCV from sklearn.preprocessing import StandardScaler from sklearn.neighbors import KNeighborsClassifier # 使用pandas读…...
OpenMMLab MMDetectionV3.1.0-SAM(环境安装、模型测试、训练以及模型后处理工具)
OpenMMLab Playground 概况 当前通用目标检测的研究方向正在朝着大型多模态模型发展。除了图像输入之外,最近的研究成果还结合了文本模式来提高性能。添加文本模态后,通用检测算法的一些非常好的属性开始出现,例如: 可以利用大量…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
【LeetCode】算法详解#6 ---除自身以外数组的乘积
1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...
使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...
解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
相关类相关的可视化图像总结
目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系,可直观判断线性相关、非线性相关或无相关关系,点的分布密…...
