Mysql数据库相关操作总结

目录

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.xdnf.cn/news/1549646.html

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

相关文章

哈希知识点总结:哈希、哈希表、位图、布隆过滤器

目录 哈希 哈希表 哈希常用方法 1、直接定址法 2、存留余数法 哈希冲突 哈希冲突的解决办法 1、闭散列:开放定址法 (1)线性探测法 (2)二次探测法 2、开散列 哈希桶 / 拉链法 哈希的运用 位图 set操作 …

3-3 AUTOSAR RTE 对SR Port的作用

返回总目录->返回总目录<- 一、前言 RTE作为SWC和BSW之间的通信机构,支持Sender-Receiver方式实现ECU内及ECU间的通信。 对于Sender-Receiver Port支持三种模式: 显式访问:若运行实体采用显示模式的S/R通信方式,数据读写是即时的;隐式访问:当多个运行实体需要读取…

Docker安装与应用

前言 Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言开发。Docker 可以让开发者打包他们的应用以及依赖包到一个轻 量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互 之间…

关于Fake Location定位,运动世界校园问题

不好意思&#xff0c;之前那个文章其实是很早之前的&#xff0c;不知道为什么审核了很久一直没有通过&#xff0c;然后前几周莫名其妙点了一下重新发布&#xff0c;竟然发布成功了&#xff0c;这个方法已经失效了&#xff0c;要可以稳定&#xff0c;我建议是买一台root的手机&a…

鸿蒙开发(NEXT/API 12)【硬件(传感器开发)】传感器服务

使用场景 Sensor Service Kit&#xff08;传感器服务&#xff09;使应用程序能够从传感器获取原始数据&#xff0c;并提供振感控制能力。 Sensor&#xff08;传感器&#xff09;模块是应用访问底层硬件传感器的一种设备抽象概念。开发者可根据传感器提供的相关接口订阅传感器…

Docker容器的使用

前提条件 Linux环境安装好Docker&#xff0c;可参考Rocky Linux9下安装Docker和卸载Docker Docker命令图 帮助命令 帮助命令&#xff0c;查看有哪些命令可以用 [rootlocalhost ~]# docker --help ​ 查看某个命令的帮助&#xff0c;例如&#xff1a;run [rootlocalhost ~]# …

深入探索机器学习中的目标分类算法

在当今数据驱动的世界中&#xff0c;机器学习&#xff08;Machine Learning, ML&#xff09;正逐渐成为解决问题的重要工具。在众多机器学习任务中&#xff0c;目标分类&#xff08;Classification&#xff09;算法尤其受到关注。本文将深入探讨目标分类算法的基本概念、常见类…

【刷点笔试面试题试试水】 i++与++i哪个效率更高?

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: 都应该知道,i是先增加再参与计算. i是先计算再增加. 原理是i,是直接返…

免费的录屏软件有哪些?可以试试这4款。

录屏软件已经被用于很多的领域和场景当中&#xff0c;能够帮助我们进行在线教学&#xff0c;线上培训&#xff0c;游戏直播与分享&#xff0c;视频记录等等。并且很多的录屏软件都有免费的功能&#xff0c;它们让大家的录屏变得更加的方便。如果大家需要录屏工具的话&#xff0…

认知杂谈92《菜鸟的自我修炼:守住存款,识别诱惑》

内容摘要&#xff1a; “快速致富"的口号在网络和广告中无处不在&#xff0c;它们吸引着渴望改变生活的人。然而&#xff0c;这些诱惑常常是精心设计的骗局&#xff0c;利用人的贪婪本性。成功学导师们宣扬的"成功秘诀"和"快速通道”&#xff0c;让人陷入不…

【MATLAB代码】三维空间上的RSS(信号强度)定位,n个锚点自适应(锚点数>3即可)(源代码下载链接)

文章目录 代码概况源代码运行结果RSS定位原理讲解1.基本概念2.信号强度与距离关系3. 定位原理 其他情况 代码概况 基于MATLAB的定位程序&#xff0c;使用RSS&#xff08;接收信号强度&#xff09;来估计距离&#xff0c;再由距离计算位置&#xff0c;用于三维空间上的定位。调…

一行代码,AI大模型训练成本再降30%,混合精度训练再升级

FP8通过其独特的数值表示方式&#xff0c;能够在保持一定精度的同时&#xff0c;在大模型训练中提高训练速度、节省内存占用&#xff0c;最终降低训练成本。 AI大模型开发系统Colossal-AI的混合精度训练再度升级&#xff0c;支持主流的BF16(O2) FP8(O1)的新一代混合精度训练方…

基于php的民宿预订管理系统

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

SpringCloud入门(九)Feign实战应用和性能优化

一、Feign实战应用 Feign的客户端与服务提供者的controller代码非常相似&#xff1a; 有没有一种办法简化这种重复的代码编写呢&#xff1f; 方式一&#xff1a;继承 优点&#xff1a; 简单。实现了代码共享。 缺点&#xff1a;服务提供方、服务消费方紧耦合。参数列表中的注解…

25维谛技术面试最常见问题面试经验分享总结(包含一二三面题目+答案)

开头附上工作招聘面试必备问题噢~~包括综合面试题、无领导小组面试题资源文件免费&#xff01;全文干货。 【免费】25维谛技术面试最常见问题面试经验分享总结&#xff08;包含一二三面题目答案&#xff09;资源-CSDN文库https://download.csdn.net/download/m0_72216164/8979…

TDSQL-C电商可视化,重塑电商决策新纪元

前言&#xff1a; 在数字化浪潮席卷全球的今天&#xff0c;电子商务行业以其独特的魅力和无限潜力&#xff0c;成为了推动全球经济增长的重要引擎。然而&#xff0c;随着业务规模的急剧扩张&#xff0c;海量数据的涌现给电商企业带来了前所未有的挑战与机遇。如何高效地处理、…

02-ZYNQ linux开发环境安装,基于Petalinux2022.2和Vitis2022.2

petalinux安装 Petalinux 工具是 Xilinx 公司推出的嵌入式 Linux 开发套件&#xff0c;包括了 u-boot、Linux Kernel、device-tree、rootfs 等源码和库&#xff0c;以及 Yocto recipes&#xff0c;可以让客户很方便的生成、配置、编译及自定义 Linux 系统。Petalinux 支持 Ver…

秦巴山区SHP格式矢量范围

‌秦巴山区的shp范围包括河南、湖北、重庆、四川、陕西、甘肃六省市的80个县(市、区)。‌这一区域不仅地理范围广泛&#xff0c;而且生态多样性丰富&#xff0c;是国家重要的生物多样性和水源涵养生态功能区。秦巴山区的地貌类型以山地丘陵为主&#xff0c;间有汉中、安康、商丹…

告别背锅侠!29个空场景及测试方法的实战指南

想必大家在日常的测试工作中&#xff0c;经常会碰到以下这些场景&#xff1a; 场景一&#xff1a; 测试人员&#xff1a;有一个数据为空的场景还没有验证。 研发人员&#xff1a;这个场景不会出现&#xff0c;因为没有删除逻辑。 场景二&#xff1a; 研发人员&#xff1a;…

linux项目_c语言:Makefile编写、动态库生成、添加动态库路径

一直想搞懂Linux中Makefile是怎么管理项目的&#xff0c;知识积累到一定程度后&#xff0c;我就做了一个自己的缩小项目去把剩下的细节搞清楚 代码&#xff1a; Service.c: #include <stdio.h> #include "lib_sevr.h" int main(){printf("输入a, b的值…