Mysql数据库相关操作总结

news2024/9/29 0:30:06

目录

1.背景知识

2.创建数据库

2.1创建指令

2.2字符集

3.查看数据库

3.选中数据库

4.删除数据库

5.数据表的操作

5.1基本数据类型

5.2创建表

5.3查看所有的表

5.4查看表的结构

5.5删除表

 6.CRUD增删查改

6.1新增和效果查看

6.3删除

6.4查找


1.背景知识

数据库就是一个服务器端和客户端结构的程序,mysql的服务器才是真正的主题,负责保存和管理数据,数据主要就是存储在硬盘上面的;

硬盘:持久保存,空间比较大;

内存:数据容易丢失,空间比较小,造价比较高;

因此,鉴于我们的数据库的数据的大小,我们的这个mysql数据库里面的数据主要就是存储在硬盘上面的;

2.创建数据库

2.1创建指令

create database db01;

create database if not exits db01;

我们已经创建了这个db01这个数据库,如果我们再次输入这个sql语句,这个时候就会报错,我们可以使用下面的第二种方式去消除这个报错的操作;

下面的这个可以避免报错,这个其实是有价值的,因为我们实际情况下的这个sql语句都是批量执行的,而不是单个执行的,我们前期进行学习的时候是单个的进行输入,所以这个if not exits的价值没有凸显出来; 

在批量执行的时候,如果某一行报错,下面的所有的就不会继续执行了,因此我们加上这个就可以避免报错,让后续继续执行,不让后面的sql语句报错,这样其实是可以避免带来的其他的问题的,因此这个方式我们有必要了解一下;

2.2字符集

一个汉字占据几个字节:这个需要具体情况具体分析,不同的字符集,一个汉字占据的字节大小不一样的,很多同学认为是两个字节,这个其实是我们的GBK编码情况下的字节大小,其他的情况下这个大小事会变化的;

windows上面的默认的字符集就是GBK,我们使用的vs  studio和我们的windows一直,因此这个windows也是GBK字符集,但是现在使用的最主流的就是UTF8编码,这个情况下的一个汉字是3字节,GBK里面一个汉字是2个字节;

Unicode是给字符进行编码的,但是我们把字符组合变成字符串,就无法正常识别,基于这个Unicode,我们搞了utf8,方便对于这个字符串的字符集进行管理;

3.查看数据库

列出来当前的这个mysql数据库上面都有那些库;

show databases;

3.选中数据库

use 数据库名;

我们主要是对于表进行操作,因此这个时候需要先进行数据库的指定,因此这个就是需要使用我们的use语句进行数据库的选定;

4.删除数据库

drop database 数据库名字;

删除操作删掉的不仅仅是数据库,包括这个数据库里面的各种表个数据,因此删除数据库是一个非常危险的操作,我们要谨慎操作;

线上数据库:生产环境数据库,用户访问的数据库,这个一般会有报警系统,用来对于我们的服务器的运行状态进行监视;

关掉报警,再发布程序,再开启报警这个是我们的一般操作,因为我们进行这个重启的时候,也会报警,我们关掉了这个报警系统之后,这个时候又出现了问题,因此这个就出现了问题,但是一般的公司会引入措施,例如控制权限之类的,让管理员进行操作,或者是进行数据的备份,方便我们进行数据的恢复,这样即使出现问题,我们也不怕;

这个备份分为全量备份,和实时备份

线下数据库:进行开发,测试的时候构造的假的数据,这个数据我们自己是可以恢复的,毕竟是我们的测试数据库;

5.数据表的操作

5.1基本数据类型

mysql每一行都是记录,每一列都是一个字段,这个sql语言里面的数据类型和我们的java里面的这个数据类型都是有对应的,只不过这个名称不一样罢了;

因为这个Sql语言出现的比我们的java语言更早一些,这个相关的这个体系还没有完全形成,因此这个名字比较混乱,后来就逐渐形成了体系;

除了上面的这个,还有日期类型等等,我们不需要全部记住:int long double decimal(主要是浮点数,只不过可以解决这个使用double带来的精度损失的问题) varchar(字符串类型,单位是字符,不是字节)  datatime(时间日期)这几个数据类型;

5.2创建表

我们想要把这个创建的表的列的名字和表的名字相同,我们可以在这个名在上面加上反引号即可;

这个id是int类型的,而且这个name是varchar类型的,大小是20,这个是随着我们的内容逐渐增加大小的,只是不会超过20这个大小罢了;

create table 表名(列名 数据类型);

5.3查看所有的表

先use数据库,再使用hsow进行这个数据库里面的表的查看;

show tables;

5.4查看表的结构

desc就是description的简称;

desc 表的名字;

field就是字段,type是对应的类型,int括号里面的11表示的显示的宽度,显示这个int类型的时候最多占据11个字节的宽度,人家设定好的,为了显示,无需关注;

5.5删除表

drop table 表的名字;

 6.CRUD增删查改

6.1新增和效果查看

insert into 表名 values(值,值);

我们首先需要清楚这个表的构造,这个构造就是我们进行插入的前提,我们使用这个desc查看这个想要插入的表的信息,发现是一个id一个name,这个时候,我们就可以使用上面的这个insert语句进行这个插入,我们插入的是内容写在这个values后面的这个括号里面的;

 上面也展示了指定的列进行插入,就是我们之出入其中的某一列,不是完全插入,例如针对于上面的这个学生表,我们只想要插入这个名字,而不插入这个id,这个时候,我们可以使用

insert into 表名(属性) values(值);

这个时候需要注意的就是我们的属性和属性值需要一一对应,就是我们的这个前面的括号写name,后面的这个里面就会要填写字符串,如果前后的两个不对应的话,这个时候就会报错;

一次性插入多行数据:这个时候使用的就是

insert into 表名  values(),();

这个里面的两个内容之间的这个逗号是一定不可以省略的,否则即会报错,像下面的这个一样;

上面已经进行那各种形式的插入操作,我们怎么查看这个表经历了多轮插入之后的这个现在的一个情况呢?

这个时候,可以使用下面的这个指令打印这个表当前的所有内容的相关信息;

select * from student---------这个student以及实际的表名进行调整

这个8表示的就是表里面的所有的内容;

关于多次插入一个和一次插入多个的效率说明:就是上面介绍了一次性插入多组数据的情况,同时也介绍了这个一次一次的插入的场景,两个都是可以实现相同的效果,但是如果我们想插入3组数据,我们是插入三次呢,还是一次性全部插入?我们选择后者,因为这个mysql是客户端和服务端的交互,我们的多次插入会增加交互的次数,提高成本;

如何添加时间类型的数据

我们也可以使用这个now快速获取当前的这个时间;

6.3删除

drop这个命令进行删除;

6.4查找

全列查询:就是上面使用的这个select *这个语句,这个*表示的就是通配符,指的就是所有的意思

服务器通过网络把这个数据返回给客户端,进而以表格的形式展现在我们用户的面前;

select * from student(依据实际的表名字进行调整)

下面的这个是我们的数据库里面想要查询的这个表里面的数据如果很多的情况下,就可能会产生的一些问题:例如其他的程序想要访问我们的硬盘这个时候的访问速度就会很慢,还有就是进行服务器的访问的时候,这个速度也会很拉胯,给用户等感觉就是这个数据库是不是挂掉了;

上面提到的这个生产环境也叫做线上环境,我们的工作中除了会遇到上面的这个线上环境,还有下面的三种线下环境:办公环境,开发环境,以及测试环境,只不过这个线下的环境是我们自己的这个内部环境,用户一般不会接触到,但是这个线上环境是直接和我们的客户打交道的;

因此这个线上环境的问题就会影响我们的用户的体验,当这个线上环境的数据量大的时候,不可随意进行select的操作;

 指定列的查询:

select name from student;(依据实际的表名和列名进行修改)

这个里面的name就是我们想要查询的列名

查询字段为表达式

这个返回的数据是临时表,因此这个数据库里面的数值是不会变化的,我们的表达式查询的这个数据的修改只是临时的

查询的时候指定列的别名

 我们这个只需要在这个表达式的后面加上as+别名就可以了,这个时候就不会显示我们的表达式的名字作为列的名字;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微pe和u深度pe哪个好用_微pe和u深度pe对比分析

大家在安装系统时都喜欢用pe来安装,pe安装系统的好处就是稳定可靠,不担心进不了系统。最近有网友问我,微pe和u深度pe哪个好用?下面小编就给大家分析一下微pe和u深度pe对比分析。 微pe和u深度pe哪个好用? 微PE好,目前公认良心PE…

【JavaScript】JQuery基础知识及应用

一、JQuery的导入方法 https://editor.csdn.net/md/?articleId132214798 二、JQuery介绍 JQuery(JQ):JS的一个类库(方法库:包含了大量的、有助于项目开发的属性和方法) 第一代版本1.xx.xx: 1.11.3 兼容所有浏览器的&#xff0…

iOS 项目中的多主题颜色设计与实现

引言 在现代iOS应用中,用户对个性化体验的需求越来越高,除了功能上的满足,多样的视觉风格也是提升用户体验的重要手段之一。提供多主题颜色的切换功能不仅能满足用户的审美偏好,还可以让应用更具活力,适应不同场景下的…

在LLMs模型中发现人类的记忆特征

论文地址:https://arxiv.org/abs/2311.03839 介绍 大型语言模型(LLM),如 ChatGPT,为语言建模和生成人类水平的文本输出带来了质的飞跃。 这些模型在庞大的文本库中进行训练,有效地建立了高度复杂和准确的…

队列——单调队列

题目描述 有一个大小为 k 的滑动窗口,它从数组的最左边移动到最右边。 你只能在窗口中看到 k 个数字。 每次滑动窗口向右移动一个位置。 例如:[1, 3, −1, −3, 5, 3, 6, 7] k3。 有一个长为 n 的序列 a,以及一个大小为 k 的窗口。现在这个从…

哈希表(HashMap、HashSet)

文章目录 一、 什么是哈希表二、 哈希冲突2.1 为什么会出现冲突2.2 如何避免出现冲突2.3 出现冲突如何解决 三、模拟实现哈希桶/开散列(整型数据)3.1 结构3.2 插入元素3.3 获取元素 四、模拟实现哈希桶/开散列(泛型)4.1 结构4.2 插…

javaweb之会话管理

Cookie: 1. Cookie 的定义 Cookie 是存储在用户浏览器中的小块数据,通常由服务器发送并存储,以便在用户浏览器和服务器之间保持会话状态。每次用户发送请求时,浏览器都会自动附带相应的 Cookie,允许服务器辨识用户。…

58 深层循环神经网络_by《李沐:动手学深度学习v2》pytorch版

系列文章目录 文章目录 系列文章目录深度循环神经网络1. 模型复杂性增加2. 训练数据不足3. 梯度消失和爆炸4. 正则化不足5. 特征冗余总结 函数依赖关系简洁实现训练与预测小结练习 深度循环神经网络 🏷sec_deep_rnn 到目前为止,我们只讨论了具有一个单…

基于大数据的亚健康人群数据分析及可视化系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…

在vsCode中将某个字符替换成换行符并且换行展示

将下面一行字符串中的“,”替换成换行符并且换行展示。 CTRLF键检索,查找和替换内容根据如下图输入即可。 点击全部替换后得到如下结果:

图文深入理解Oracle Network配置管理(二)

本篇图文深入介绍Oracle Network配置管理。 Oracle网络配置的目的 为了方便对Oracle 数据库进行管理,一般以下情况应该对Oracle进行网络配置。 • 在客户端对服务器端数据库进行管理(网络客户端管理) • 在一台服务器上管理多个数据库&…

性能测试学习1:性能测试的理论与目的,与功能测试的区别

一.什么是性能? 1)性能:就是软件质量属性中的“效率”特性 2)效率特性: ①时间特性:表示系统处理用户请求的响应时间【通俗来说,就是使用系统是否流畅】 ②资源特性:表示系统运行过程中&…

青动CRM-仓储云V1.1.2

多平台(微信公众号(高级授权)、微信小程序(高级授权)、H5网页(高级授权)、Android-App(高级授权)、iOS-App(高级授权))仓库管理系统,拥有强大的表单设计、多角色员工权限、出入库管理、仓库管理、送货管理、自定义审批流、绩效管理、客户管理、合同管理等功能。提供…

抖音支付回调验签 go 版本

序言 最近在做抖音小程序支付,由于抖音开放平台的文档写的较为简陋,让人踩了不少坑,在这里整理一下做小程序支付的整个过程,以通用交易系统为例子。 准备条件 1)申请小程序,开通支付功能 这里需要明确你小…

Linux--基本指令

目录 1.ls指令 ​2.pwd指令 3.cd指令 4.tree指令 5.touch/mkdir/rmdir(rm)指令 6.cp/mv/cat/tac指令 7.head/tail/管道 8.date 9.find/which/grep 10.其它小知识 1.ls指令 补充知识: 2.pwd指令 补充知识: 3.cd指令 补充知识: 4.tree指令 …

Java语法-类和对象之抽象类和接口

1.抽象类 1.1 抽象类的概念 一个类中没有足够的信息来描述一个具体的对象,这样的类就是抽象类 比如: 从图中我们可以看出,只有继承了的类,我们产生的实例,调用的draw方法都是他们本身重写的draw方法,不会调用父类Shape的draw()方法,因此我们可以不管父类里面的draw()方法里面的…

MySQL 之多表设计详解

在实际应用场景中,我们经常需要处理包含多种数据实体及其之间复杂关系的业务逻辑,例如电商平台的用户、商品、订单,社交网络的用户、帖子、评论等等。如果将所有数据都堆砌在一张表中,不仅会造成数据冗余、难以维护,还…

MySQL 8.0.34 从C盘迁移到D盘

因为开始C盘够用,没注意mysql安装位置,如今C盘爆满,只能把mysql转移到D盘,以腾出更多的空间让我折腾。 一、关闭mysql服务 二、找到C盘MySQL安装文件和Data文件 1.找到C盘mysql bin文件目录安装文件路径: C:\Progra…

行为设计模式 -模板方法模式- JAVA

模板方法模式 一 .简介二. 案例2.1 抽象类(Abstract Class)2.2 具体子类(Concrete Class)2.3 测试 三. 结论3.1 优缺点3.2 适用场景3.3 要点 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接…

linux从入门到精通--从基础学起,逐步提升,探索linux奥秘(六)

linux从入门到精通–从基础学起,逐步提升,探索linux奥秘(六) 一、linux高级指令(1) 1、hostname指令 1)作用:操作服务器的主机名(读取、设置) 2&#xff0…