【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

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

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

相关文章

Jenkins 修改默认管理员帐号

1、新增一个新的超级管理员用户,并验证能正常登录 2、进入 Jenkins 用户管理目录: /data/software/jenkins/users 3、修改超级管理文件夹的名称为其他名称,如:mv admin_*** ifadm_*** 4、重启Jenkins容器

湖南科技学院图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》

湖南科技学院图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》

深入探索C++模板:从基础到高级应用

目录 一、 泛型编程 1.1 为什么需要泛型编程? 二、模板 2.1 概念 2.2 函数模板 2.2.1 概念 2.2.2 语法 2.2.3 示例 2.2.4 模板实例化 隐式实例化 显示实例化 2.2.5 模板参数的匹配原则 2.3 类模板 2.3.1 概念 2.3.2 语法 2.3.3 示例 2.3.4 注意事项…

算法的时间复杂度和空间复杂度

目录 前言: ✨什么是数据结构? ✨ 什么是算法? ✨数据结构和算法的重要性 🍑算法的时间复杂度和空间复杂度 算法效率 🎉时间复杂度 2.1 时间复杂度的概念 2.2 大O的渐进表示法 🎉空间复杂度 前言&#xf…

【机器学习】对 MLOps 的友好的介绍(MLOps1)

一、说明 我对 MLOps 感兴趣已经有一段时间了。我第一次从机器学习工程师那里了解到它,由于我当时还是一名博士生,我并不知道它的存在。然而,我的好奇心被激起了,我开始了解它。回想起来,我很后悔没有早点了解它&#…

Asynq: 基于Redis实现的Go生态分布式任务队列和异步处理库

Asynq[1]是一个Go实现的分布式任务队列和异步处理库,基于redis,类似Ruby的sidekiq[2]和Python的celery[3]。Go生态类似的还有machinery[4]和goworker 同时提供一个WebUI asynqmon[5],可以源码形式安装或使用Docker image, 还可以和Prometheus…

最新成果展示:GaN基Micro-LED热学模型数据库的开发及应用

由于GaN基Micro-LED表面积-体积比增加,其在热学方面的性质有别于大尺寸的LED,如缺陷复合导致的热效应将在发光区域中产生诸多“热”点,导致发光波长不均匀,这将影响后期显示系统的成像稳定性。针对上述问题,天津赛米卡…

Android平台一对一音视频通话方案对比:WebRTC VS RTMP VS RTSP

一对一音视频通话使用场景 一对一音视频通话都需要稳定、清晰和流畅,以确保良好的用户体验,常用的使用场景如下: 社交应用:社交应用是一种常见的使用场景,用户可以通过音视频通话进行面对面的交流;在线教…

Linux基础开发工具之Linux自动项目构建工具的使用

目录 前言 1.make/makefile 1.1 依赖关系/依赖方法 2.原理 3.项目清理 4.make的执行问题 5.相关简单的符号介绍 总结 前言 之前给大家介绍了我们在开发过程中所需要使用到的编辑器vim,以及编译器gcc/g的使用,但是我相信大家在使用过程会发现我们在…

centos7实现负载均衡

目录 一、基于 CentOS 7 构建 LVS-DR 集群。 1.1 配置lvs负载均衡服务 1.1.1 下载ipvsadm 1.1.2 增加vip 1.1.3 配置ipvsadm 1.2 配置rs1 1.2.1 编写测试页面 1.2.2 手工在RS端绑定VIP、添加路由 1.2.3 抑制arp响应 1.3 配置rs2 1.4 测试 二、配置nginx负载…

机器学习深度学习—语言模型和数据集

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——文本预处理 📚订阅专栏:机器学习&&深度学习 希望文章对你们有所帮助 语…

ASP.NET Core学习路线图

说明 1. 先决条件 - [C#](https://www.pluralsight.com/paths/csharp) - [Entity Framework](https://www.pluralsight.com/search?qentity%20framework%20core) - [ASP.NET Core](https://www.pluralsight.com/search?qasp.net%20core) - SQL基础知识 2. 通用开发技能 -…