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

MySQL数据库:软件、相关知识和基本操作

1.前言与软件

       数据结构可以说从哈希表那一节结束了之后,整个数据结构可以说就结束了(栈和队列时是我自己后面补充的,这个内容应该属于链表那块)。随着数据结构的结束,我们现在来到数据库的学习,在今后我们会用到如下两款软件:

1. MySQL客户端

这个是MySQL的客户端,一般不是非常复杂的操作都可以在这里实现。要注意看大版本是不是8.0的,只要是8.0就可以,至于8.0.32、8.0.15......等等,这些小版本的差异就无所谓。

在配置好,设置密码后,打开本软件就会出现像CMD命令行一样的东西,该软件就是这样子的。安装及配置过程可以看看其他人的博客。顺带一提,我的版本是8.0.33。

2. 可视化编辑器 workbench

这个可视化编辑器,我们一般操作步骤多的情况或者是稍微复杂的情况就可以在这里实现。

这个软件也是免费的,但是它相对来说会比付费的nagativ等编辑器就会差一点。话虽如此,但仅对于我们数据库基础阶段的学习来说是完全够用了。

注意:这个软件也要大版本 8.0 及以上

打开之后就是如下界面,只需要点MySQL Connections右边的 + 号新建项目即可。名字可以随便取。

2. 数据库的简单介绍

       数据库,它其实就是一个利于用来管理数据的软件,数据库它还可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器。我们学习的是MySQL而不是SQL。SQL是一种查询和操作数据库的标准或语言,而MySQL是一款具体的关系型数据库管理系统(RDBMS),它支持使用SQL语言来管理数据
 
      简单来说,SQL是“普通话”,MySQL是能听懂并使用“普通话”的一款工具,二者是“语言”与“工具”的关系,而非包含关系

前排提醒:这门语言可以说很简单,我们所学习的初阶只需要掌握简单的增删查改和一些复杂的查询即可。

       数据库我们可以分为关系型数据库非关系型数据库

1. 关系型数据库

       它是指采用了关系模型来组织数据的数据库。简单来说,关系模型指的是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

2. 非关系型数据库(了解)

    不规定基于SQL实现。现在更多是指NoSQL数据库,如:

(1)基于键值对的;(2)基于文档型的;(3)基于列的;(4)基于图的。

关系型数据库非关系型数据库它们之间的区别:

关系型数据库非关系型数据库
使用SQL无强制要求,一般不基于SQL实现
事务支持支持不支持
复杂操作支持不支持
海量读写操作效率低效率高
基本结构基于表和列,结构固定灵活性高
使用场景业务方面用于数据的缓存等

3. 数据库的基本操作

3.0 bug与提醒

      在你想要敲一些SQL语句代码时,如果你使用的是客户端,有可能会出现光标丢失问题,出现这种情况你就切换中文随便打一些字光标就会出现,这是一个bug。

       然后就是一些数据库,你所不了解的,不知道的,千万不要动。如果说你改错了或者是删除了,然后你又没有备份,那你就只能将整个MySQL删掉再重新下了。

3.1 查看当前的数据库

show databases;

在你输入密码后,客户端中打上 show databases;  如果之前你的安装客户端步骤正确,就会出现以下四个数据库:

这里的 4 rows in set 中的 row 指的是查到了多少条记录,set 表示集合。后面的0.02 sec 表示的是执行时间。

3.2 创建数据库

create database [if not exists] 数据库名;

这里的 if not exists 被括号括起来是指该语句可以写也可以不写,然后如果你要写上这部分语句的时候这个中括号不需要敲进去

注意:

1.  数据库名不能是关键字,如果直接使用关键字作为数据名并运行就会报错。比如本句语法的 create 和 database 就是众多关键字之一。

2.  关键字的书写对于大小写不敏感,你使用全大写或全小写的方式都可以。

如果要使用关键字作为数据库名,那么则需要在该数据名中加上反引号``。它位于Esc下方,数字一的左边;切换成英文就可以直接用该符号,不用加shift。

总结:

这时如果你想看看是否创建成功,只需要再重复一遍"查看当前数据库" 的操作即可。

注意:在今后书写的时候,我都建议加上诸如 “ if not exists ” 的这种语句。因为在以后真实的工作中,执行SQL语句肯定不会是一条一条执行的,而是批量一起执行。我们为了不让某条SQL语句的错误影响整个流程,都是会加上一些类似于 “ if not exists ” 的校验操作。

3.1.1 创建数据库时指定编码集

MySQL8.0 默认的字符集 utf8mb4 ,而 5.7 latin1(它不能存储中文);

MySQL8.0 默认的排序规则是 utf8mb4_0900_ai_ci,5.7 则是utf8mb4_general_ci。

创建数据库时可以手动明确指定编码集,这样子可以使代码让别人看的会更加直观。

写成代码就是:

create database [if not exists] 数据库名 character set utf8mb4 collate utf8mb4_0900_ai_ci

这里的ai和ci分别指的是对大小写不敏感和对口音不敏感,大小写不敏感刚才已经说过,就是书写时不看你是否大小写,只看你有没有拼写错误;而口音不敏感是由于英语在世界各个地区可能发音会各不相同,所以为了防止差异,设置了口音不敏感。

3.3 查看警告信息

show warnings;

注意是 warnings 而不是 warning ,如果出现错误则会有如下报错,我们再以show warnings; 展示出来就是如下情况:

3.4 选择要操作的数据库

use 数据库名;

这里的 database() 是MySQL提供的一个内置方法。

3.5 删除数据库

drop database [if exists] 数据库名;

比如我们就删除刚刚创建好的的 create 数据库,

Query OK 说明执行成功,此时再show databases; 就能看到是否真的被删除。

说明 create 已经被删除。

注意:删除数据库是一个非常非常危险的操作,我们以后在做项目或者是公司的业务时绝对不能随便删除,就算是真的要删除时也要非常慎重。因为如果你删错了,而且删的还是很重要的数据库,都有可能直接被炒鱿鱼。

4. 数值类型的介绍、相关操作及作用

4.1 整型和浮点型

数据类型大小说明

对应java类型

bit(M)M指定位数,默认为1二进制数,M范围从1到64,存储数值范围从0到2^M-1
常用Boolean对应bit,此时
默认是1位,即只能存01
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

注意:

1. int 相关的类型很常用,常用在编号字段

2. 金额的表示一般使用decimal,而不用float 或double。因为在表示小数的时候float或double都不算特别精准。

扩展资料:

4.2 字符串类型

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

5. 表格相关操作

5.1 创建表

create table 数据名 (field1 datatype,field2 datatype,field3 datatype
);

需要注意:

创建表时如果出现 1 warning ,说明出现了警告,表已存在。

5.2 查看表操作

decs 表名;

需要注意:

5.3 删除表

drop table [if exists] 数据名1,数据名2...;

删除表的时候的危险度与上文所提到的删除一致。

             总结: 

6. 创建完整表

创建完数据库之后,就要在数据库中创建表,表中存储的数据记录,一条记录由不同的列组成。创建完整表步骤如下:

1. 创建数据库;

2. 需要创建表时,先要选择要操作的数据库;

3. 创建出合适的数据表。

例:

大家可以先自己尝试一下,参考代码如下;

create database if exists CSDN;
create database CSDN character set utf8mb4 collate utf8mb4_0900_ai_ci;
use CSDN;
drop table if exists product;
create table product(name varchar(20),price decimal(11,2),storage int,description varchar(100)
);

这里的数据类型后面的数值可以不唯一,只要合理即可。

7. 相关习题

参考代码:

drop table if exists book;
create table book(name varchar(20),author varchar(20),price decimal(11,2),category varchar(20)
);

那么,本篇文章到此结束!希望能对你有帮助。

http://www.dtcms.com/a/490036.html

相关文章:

  • Bahdanau注意力
  • 重生之我在大学自学鸿蒙开发第七天-《AI语音朗读》
  • Spring AI 1.0 GA 深度解析:Java生态的AI革命已来
  • Linux网络之----TCP网络编程
  • 【零基础学习CAPL语法】——writeLineEx() 函数
  • 计算机网络数据链路层
  • 做网站选什么专业门户网站开发步骤博客
  • 论文写作 24: 全文保持同样的节奏
  • 洛谷 P1438 无聊的数列 题解
  • iOS混淆与IPA加固实战手记,如何构建苹果应用防反编译体系
  • 想抓PostgreSQL里的慢SQL?pg_stat_statements基础黑匣子和pg_stat_monitor时间窗,谁能帮你更准揪出性能小偷?
  • 把 iOS 26 的「Liquid Glass」带进 React Native
  • 基于物理信息的神经网络求解偏微分方程反问题的综合优化策略
  • 工地佩戴安全帽检测-目标检测数据集
  • 广东网站备案查询系统企业网站带后台
  • 知名的集团门户网站建设费用我要自学网网站建设
  • 2025 年 10 月科技前沿全景:从量子跃迁到生命重构的文明拐点
  • scene graph generation 用到的vg150数据集groundtruth数据预处理,展示和保存
  • 【Qt开发】多元素类控件(一)-> QListWidget
  • 【Mybatis从入门到入土】ResultMap映射、多表查询与缓存机制全解析
  • Springboot整合MinIO文件服务(windows版本)
  • HarmonyOS Next 项目完整学习指南
  • vscode离线下载依赖
  • Python 高效清理 Excel 空白行列:从原理到实战
  • 算法11.0
  • 工业级串口通信设计
  • 盐山网站建设广西网上办事大厅
  • 郑州高端网站制作团队大连本地网
  • Linux网络的应用层自定义协议
  • leetcode 2598 执行操作后的最大MEX