【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,只是内部一些实现有区别。常用的关系型数据库如:

    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系统

02 SQL分类

  • DDL数据定义语言,用来维护存储数据的结构
    代表指令:create,drop,alter

  • DML数据操纵语言,用来对数据进行操作
    代表指令:insert,delete,update

    • DML中又单独分了一个DQL,数据查询语言,代表指令:select
  • DCL数据控制语言,主要负责权限管理和事务
    代表指令:grant,revoke,commit

03 数据库操作

MySQL是一个客户端,服务器结构的程序,MySQL的服务器是真正的本体,负责保存和管理数据,数据都是存储在硬盘上的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-57hj5X5A-1691503192817)(https://gitee.com/liuhb-clanguage/picture/raw/master/png/image-20230808152444302.png)]

操作数据库的命令,也就是”SQL语句“,也可以理解为一种编程语言。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hw5G5kyt-1691503192819)(https://gitee.com/liuhb-clanguage/picture/raw/master/png/image-20230808155232027.png)]

说明:操作数据库的时候,数据库对于字母的大小写不敏感,也就是说可以大写也可以小写。

3.1显示数据库

语法:show databases;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lxtvKB0w-1691503192819)(E:\Typora_note\MySQL\MySQL基础知识.assets\image-20230808164729682.png)]

3.2创建数据库

语法:create database 数据库名字;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BSihRQdz-1691503192820)(https://gitee.com/liuhb-clanguage/picture/raw/master/png/image-20230808165202056.png)]

  • 注意点就是,我们创建的数据库不能同名。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9nGedtWe-1691503192820)(https://gitee.com/liuhb-clanguage/picture/raw/master/png/image-20230808165438660.png)]

这里有解决方法:

就是在创建的时候加上修饰if not exists来解决问题。如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OP1MyXJd-1691503192821)(https://gitee.com/liuhb-clanguage/picture/raw/master/png/image-20230808165727906.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)]

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
tinyint1byte
smallint2short
int4integer
bigint8long
float(m,d)4单精度,m指定长度,d指定小数位数。会发生精度丢失float
double(m,d)8double
decimal(m,d)m/d最大值+2双精度,m指定长度,d指定小数位数。精确数值bigdecimal
numeric(m,d)m/d最大值+2双精度,m指定长度,d指定小数位数。精确数值bigdecimal

拓展:

  1. 数值类型可以指定为无符号(unsigned),表示不取负数。

  2. 1字节(bytes)= 8bit。

  3. 对于整型类型的范围:

    1. 有符号范围:-2(类型字节数*8-1)到2(类型字节数*8-1)-1,如int是4字节,就

      是-231到231-1

    2. 无符号范围:0到2(类型字节数*8)-1,如int就是232-1

  4. 尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其

    如此,还不如设计时,将int类型提升为bigint类型。

在这里插入图片描述

4.2字符串类型

数据类型大小说明对应Java类型
varchar(size)0-65535字节可变长度字符串String
text0-65535字节长文本数据String
mediumtext0-16777215字节中等长度文本数据String
blob0-65535字节二进制形式的长文本数据byte[]

关于上表的一些小解读:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-78WiBUg7-1691503192823)(https://gitee.com/liuhb-clanguage/picture/raw/master/png/image-20230808215220387.png)]

4.3日期类型

数据类型大小说明对应Java类型
datetime8字节范围从1000到9999年,不会进行时区的检索及转换。java.util.Date、java.sql.Timestamp
timestamp4字节范围从1970到2038年,自动检索当前时区并进行转换。java.util.Date、java.sql.Timestamp

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用于实体对齐的联合学习实体和关系表示2019 AAAI 8.7+8.8

用于实体对齐的联合学习实体和关系表示 摘要介绍相关工作实体对齐图卷积网络 问题公式我们的方法整体架构初步实体对齐图卷积层对齐训练 近似关系表示联合实体和关系对齐 实验总结 摘要 实体对齐是在不同知识图之间集成异构知识的一种可行方法。该领域的最新发展通常采用基于嵌…

数字电路基础(MOS管)

1.PMOS和NMOS MOS晶体管的物理结构如下,由衬底和注入粒子的材质不同分为PMOS和NMOS。 2.CMOS CMOS由PMOS和NMOS组成,是一个反相器,其电路图如下所示。当In为1时,PMOS断开,NMOS导通,Out输出为0;…

Springboot @Validated注解详细说明

在Spring Boot中&#xff0c;Validated注解用于验证请求参数。它可以应用在Controller类或方法上 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </depen…

【工程优化问题】基于多种智能优化算法的压力容器设计问题研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【Docker】docker镜像+nginx部署vue项目:

文章目录 一、文档&#xff1a;二、打包vue项目&#xff1a;三、配置nginx&#xff1a;四、配置Dockerfile&#xff1a;五、构建镜像&#xff1a;六、运行容器&#xff1a;七、最终效果&#xff1a; 一、文档&#xff1a; 【1】菜鸟教程&#xff1a;https://www.runoob.com/do…

vscode插件不能搜索安装

1 现象 vscode搜索自己的插件&#xff0c;报错&#xff1a; Error while fetching extensions. HXR failed2 原因 之前用vscode开发golang语言&#xff0c;设置了proxy代理&#xff0c;所以导致错误&#xff0c;删除即可 重启vscode 3 结果

【Spring】使用注解存储Bean对象

目录 一、配置扫描路径&#xff08;使用注解的方式存对象的前提&#xff09; 二、使用类注解存储Bean对象 1、使用五大类注解存储Bean对象 2、为什么要这么多的类注解&#xff1f; 2.1、五大类注解之间的关系 3、获取Bean对象时的默认命名规则 三、使用方法注解来存储…

数据结构:栈的实现(C实现)

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》 文章目录 前言一、栈的实现思路1. 结构的定义2. 初始化栈(StackInit)3. 入栈(StackPush)4. 出栈(StackPop)5. 获取栈顶元素(StackTop)6. 检查栈是否为空(StackEmpty)7. 销毁栈(StackDestroy) 二、…

IO进程线程day9(2023.8.7)

一、Xmind整理&#xff1a; 消息队列的原理&#xff1a; 共享内存的原理&#xff1a; 二、课上练习&#xff1a; 练习1&#xff1a;用信号的方式回收僵尸进程&#xff08;重点&#xff01;&#xff09; 1.子进程退出后&#xff0c;父进程会收到17)SIGCHLD信号。 2.父进程中捕获…

java版直播商城平台规划及常见的营销模式 电商源码/小程序/三级分销+商城免费搭建 bbcbbc

​ Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务…

3.1 计算机网络和网络设备

数据参考&#xff1a;CISP官方 目录 计算机网络基础网络互联设备网络传输介质 一、计算机网络基础 1、ENIAC&#xff1a;世界上第一台计算机的诞生 1946年2月14日&#xff0c;宾夕法尼亚大学诞生了世界上第一台计算机&#xff0c;名为电子数字积分计算机&#xff08;ENIAC…

leetcode1-两数之和

vector知识回顾 C基础——STL——Vector_52Tiramisu的博客-CSDN博客 自己写的初始代码 class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {int i 0, j 1;for(i 0; i < nums.size(); i){for(j 1; j < nums.size(); j){…

Python-OpenCV 图像的基础操作

图像的基础操作 获取图像的像素值并修改获取图像的属性信息图像的ROI区域图像通道的拆分及合并图像扩边填充图像上的算术运算图像的加法图像的混合图像的位运算 获取图像的像素值并修改 首先读入一副图像&#xff1a; import numpy as np import cv2# 1.获取并修改像素值 # 读…

blender 毛发粒子

新建平面&#xff0c;点击右侧粒子系统&#xff0c;选择毛发&#xff0c;调整毛发长度&#xff0c;数量&#xff08;Number&#xff09;&#xff0c;调整数量是为了避免电脑卡顿&#xff1b; 上面设置的每一根柱子都可以变成一个物体&#xff0c;点击渲染&#xff0c;渲染为选择…

微信云托管(本地调试)⑥:nginx、vue刷新404问题

一、nginx默认路径 1.1、默认配置文件路径&#xff1a;/etc/nginx/nginx.conf 1.2、默认资源路径&#xff1a;/usr/share/nginx/html/index.html 二、修改nginx.conf配置 &#xff08;注意配置中的&#xff1a;include /etc/nginx/conf.d/*.conf; 里面包了一个server配置文件…

【Rust】Rust学习 第六章枚举和模式匹配

本章介绍 枚举&#xff08;enumerations&#xff09;&#xff0c;也被称作 enums。枚举允许你通过列举可能的 成员&#xff08;variants&#xff09; 来定义一个类型。首先&#xff0c;我们会定义并使用一个枚举来展示它是如何连同数据一起编码信息的。接下来&#xff0c;我们会…

爬虫011_元组高级操作_以及字符串的切片操作---python工作笔记030

获取元组的下标对应的值 注意元组是不可以修改值的,只能获取不能修改 但是列表是可以修改值的对吧

NSS [MoeCTF 2022]baby_file

NSS [MoeCTF 2022]baby_file 题目源码直接给了 使用data伪协议发现被ban了。 那就换一种伪协议php://filter&#xff0c;猜测flag在同目录下flag.php中或根目录下/flag中 php://filter/readconvert.base64-encode/resourceflag.php读取文件源码&#xff08;针对php文件需要ba…

RISC-V公测平台发布:如何在SG2042上玩转OpenMPI

About HS-2 HS-2 RISC-V通用主板是澎峰科技与合作伙伴共同研发的一款专为开发者设计的标准mATX主板&#xff0c;它预装了澎峰科技为RISC-V高性能服务器定制开发的软件包&#xff0c;包括各种标准bencmark、支持V扩展的GCC编译器、计算库、中间件以及多种典型服务器应用程序。…

龙架构 Arch Linux 发行版发布

导读近日&#xff0c;龙架构 Arch Linux 发行版官方网站宣布结束 beta 状态&#xff0c;正式支持龙架构 (LoongArch)。 Arch Linux 是一种轻量级、可定制、灵活的 Linux 操作系统。作为一款简单、现代、开放的操作系统&#xff0c;Arch Linux 旨在基于 “KISS 原则”&#xff0…