MySQL基本操作(1)
初始数据库
数据库的基本概念
数据库是一个按照数据结构来组织、存储和管理数据的仓库,换句话说,就是存储数据的仓库。
为何使用数据库?使用数据库不仅仅为了使数据持久化,还能使得数据能够进行有效的管理,以及提供的各种安全机制能够保证数据的安全,还可以用过远程连接去使用它。对于传统的文件存储数据,共享性差,冗余度大,并且数据独立性较差,同时不利于数据查询和管理,不利于存储海量数据。
数据库与数据结构之间的关系。数据结构是数据之间的组织和存储方式,数据库可以看作是复杂的数据结构,数据库不仅存储数据,还提供了高效访问和管理大量数据的方法。例如:MySQL的索引使用的B+树这种数据结构。
数据库管理系统是建立,操作和管理数据库的大型软件,是操作数据库的工具。
数据库服务是指通过网络提供的数据库功能,使用户能够在远程服务器上存储、管理和访问数据。通常包括数据库服务器,网络连接,存储设备等组件。常见的数据库服务包括MySQL,Oracle等。
SQL是一种特定于数据库的编程语言,用于管理,查询,和操作关系型数据库。
SQL分类:(仅作整理,会在具体情况中展示)
- 数据查询语言(DQL):用于从数据库中检索数据,主要命令:select,用于从一个表或多个表检索数据
- 数据定义语言(DEL):用于定义和管理数据库的结构,主要命令:create(创建数据库),alter(修改数据库),drop(删除数据库),rename(重新命名数据库)
- 数据操作语言(DML):用于添加,修改和删除数据库中的数据。主要命令:insert(插入数据),undate(更新数据),delete(删除数据)
- 数据控制语言(DCL):控制数据库的访问权限和事务管理。主要命令:grant(授予权限),revoke(撤销权限)
- 事务控制语言(TCL):管理数据库中的事务。主要命令:commit(提交事务),rollback(回滚事务)
- 游标控制语言(CCL):管理和操作数据库中的游标。主要命令:declare(声明游标),fetch(获取游标中的数据)
数据库的分类:
关系型数据库:采用关系模型来组织的数据库,使用表来组织数据,每个表都有固定的模式,常见的有:Oracle,MySQL,SQL Sever
非关系型数据库:不使用传统的关系模型的数据库系统,并不基于SQL,支持多种数据模型,易于水平扩展,拥有更高的性能。常见的有redis,hbase
区别:
| 关系型数据库 | 非关系型数据库 | |
| 使用SQL | 是 | 一般不基于SQL实现 |
| 事务支持 | 支持 | 不支持 |
| 复杂操作 | 支持 | 不支持 |
| 海量读写操作 | 效率低 | 效率高 |
| 基本结构 | 基于表和列,结构固定 | 灵活性较高 |
| 使用场景 | 业务方面的联机事务处理(OLTP)系统 | 用于数据的缓存,或基于统计分析的OLAP系统 |
注:OLAP指的是联机分析处理
MySQL数据库
MySQL是一种流行的开源关系型数据库管理系统,用于有效的存储,管理和存储数据,因为开源,高效,灵活的特点,成为广泛应用的数据库管理系统。
基本操作:
库操作:
1.查看库操作:show databases;

注意:databases应为复数,否则就会报错。
2.创建数据库:从简单入手
CREATE DATABASE [IF NOT EXISTS] 数据库名称 DEFAULT CHARACTER SET 字符集 COLLATE 排序
规则;
CREATE DATABASE test;
上面的代码表示创建了一个名为test的数据库,其中CREATE 是数据库定义语言,DATABASE表示对数据库进行的操作,test表示创建的数据库的名称。可以利用show databases;用来查看,结果如下:

如果我们再次执行create database test; 会出现以下报错,表示该数据库已存在。
为了避免,我们可以对以上语句加以约束,变为
CREATE DATABASE IF NOT EXISTS test;
表示如果不存在此数据库,便创建,这样子就不会报错。相当于多了一层校验,如果数据库存在,只会发出警告
还有一些是数据库创建时的可选选项,用于指定数据库的特性:
create_option: [DEFAULT] {CHARACTER SET [=] charset_name| COLLATE [=] collation_name| ENCRYPTION [=] {'Y' | 'N'}
}
CHARCTER SET 表示指定数据库字符的编码格式,通常采用utf8mb4'
COLLATE 用于指定数据库的字符排序规则,通常采用utf8mb4_0900_ai_ci;
ENCRTPTION 用于指定数据库是否加密
CREATE DATABASE IF NOT EXISTS test1 CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci
如果使用第一种最简单的方式进行创建数据库,那么会使用当前默认的字符集和排序规则。可以利用以下代码查看:
SHOW VARIABLES LIKE 'character_set_database';
SHOW VARIABLES LIKE 'collation_database';
我的得到的结果如下:
注意:一般不使用关键词作为库名,如果利用关键词作为库名,要把关键词用''(单引号引起来)
3.选择数据库:use test;
use + 想要选中的数据库,只有选中了数据库,才能够对数据库中的表进行操作,其中select database();用于查看当前选中的数据库,如果没有选中数据库报错


4.删除数据库:慎重!!!

drop database + 要删除的库名,如果不存在就加以删除,会报错,加上if exists用于校验最终报一个警告。
常用的数据类型
字符串类型:
| 数据类型 | 大小 | 说明 | 对应Java类型 |
| CHAR | 0~255字节 | 固定长度空间 | char |
| VARCHAR(size) | 0~65535字节 | 可变长度字符串 | String |
| TEXT | 0~65535字节 | 长文本数据 | String |
| MEDIUMTEXT | 0~16777215字节 | 中等长度文本数据 | String |
| BLOB | 0~65535字节 | 二进制形式的长文本数据 | byte[] |
CHAR类型占用固定长度的空间,当存储较短的字符串会浪费存储空间,但是好处是提高了检索效率,适用于存储长度相近或者固定长度的数据。
VARCHAR是使用最多的字符串类型,按实际存储内容占用空间,适合存储长度变化较大的字符串,从而可以节省存储空间,但是检索效率低于CHAR,适合存储长度不定的文本数据
数值类型:
| 数据类型 | 大小 | 说明 | 对应Java类型 |
| BIT[(M)] | M指定位数,默认为1 | 二进制数,M范围从1到64,存储数值范围从0到2^M-1 | 常用Boolean |
| TINYINT | 1字节 | Byte | |
| SMALLINT | 2字节 | Short | |
| INT | 4字节 | Integer | |
| BIGint | 8字节 | 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.有符号范围:-2^(类型字节数*8-1)到2^(类型字节数*8-1)-1,如int是4字节,就是-2^31~2^31-1
2.无符号范围:0~2(类型字节数*8-1)-1,如int是2^32-1
3.日期时间类型
| 类型 | 说明 | 取值范围 |
| DATE | YYYY-MM-dd | 1000-01-01~9999-12-31 |
| TIME | HH:mm:ss | -838:59:59~838:59:59 |
| DATETIME | YY-MM-dd HH:mm:ss | 1001-01-01 00:00:00.0000000~9999-12-31 23:59:59.99999 |
| YEAR | YYYY格式年份 | 1901~2155 |
数据表的操作
1.查看表

先选择使用哪个库,然后输入show tables;来查看当前库中有哪些表,如果库为空,如上图所示
2.创建表
CREATE TABLE [IF NOT EXISTS] 数据表名称(
字段名1 列类型(长度) [修饰属性] [键/索引] [注释],
字段名2 列类型(长度) [修饰属性] [键/索引] [注释],
字段名3 列类型(长度) [修饰属性] [键/索引] [注释],
......
字段名n 列类型(长度) [修饰属性] [键/索引] [注释]
) [ENGINE = 数据表类型][CHARSET=字符集编码] [COMMENT=注释];
create table stu(
id int,
name varchar(20) comment '姓名',
sex varchar(1)
);
其中id,name,sex为自定义的段名,int, varchar为该字段的数据类型,(n)中的数字表示最大长度,comment关键字增加字段的说明,注意,说明必须被单引号引起来,无论中英文,最后一个字段没有逗号
创建结构相同的表
这里只是复制了表的结构,但是没有复制表的数据
create table if not exists stu1 like stu;
3.查看表结构

desc+要显示的表;
这些查看的是表结构,并不是数据,后四个以后发文介绍
- Field:属性名
- Type:属性类型
- Null:是否允许为空
- Key:索引类型(键值的类型)
- Default:默认值
- Extra:拓展功能
4.修改数据表
4.1修改表名
ALTER TABLE 表名 RENAME AS 新表名;

4.2增加字段
ALTER TABLE 表名 ADD 字段名 列类型(长度) [修饰属性] [键/索引] [注释];

4.3修改字段
-- MODIFY 只能修改字段的修饰属性
ALTER TABLE 表名 MODIFY 字段名 列类型(长度) [修饰属性] [键/索引] [注释];
-- CHANGE 可以修改字段的名字以及修饰属性
ALTER TABLE 表名 CHANGE 字段名 新字段名 列类型(长度) [修饰属性] [键/索引] [注释];

4.4删除字段
ALTER TABLE 表名 DROP 字段名;
5.删除表
drop table stu1;
删除stu1表后的库中存在的表。
可以连续删除,只需要加上,
原来只有两张表,删除之后为空
注意:
- 一条语句可以删除多个表,但是一条语句只能删除一个数据库
- 删除操作谨慎进行,无论是删除库还是删除表
相关文章:
MySQL基本操作(1)
初始数据库 数据库的基本概念 数据库是一个按照数据结构来组织、存储和管理数据的仓库,换句话说,就是存储数据的仓库。 为何使用数据库?使用数据库不仅仅为了使数据持久化,还能使得数据能够进行有效的管理,以…...
Python 如何使用 Redis 作为缓存
Python 如何使用 Redis 作为缓存 一、引言 在现代 Web 应用程序和数据密集型服务中,性能 和 响应速度 是至关重要的因素。而当应用需要频繁访问相同的数据时,直接从数据库获取数据会耗费大量的时间和资源。因此,缓存系统成为了提升性能的重…...
Python知识点:基于Python工具,如何使用Mediapipe进行人体姿态估计
开篇,先说一个好消息,截止到2025年1月1日前,翻到文末找到我,赠送定制版的开题报告和任务书,先到先得!过期不候! 基于Python的Mediapipe人体姿态估计技术详解 在计算机视觉领域,人体…...
数据结构进阶:二叉搜索树_C++
目录 前言: 一、二叉搜索树 1.1二叉搜索树概念 2.2 二叉搜索树操作 1. 二叉搜索树的插入 1.1、插入过程 1.2、代码实现 2、二叉树的删除 2.1、结点删除情况 2.2、替换删除法 1、替换思路 2、代码实现: 3、二叉搜索树的查找 3.1、查找规则 …...
uni-app之旅-day04-商品列表
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言6. 商品列表6.0 创建 goodslist 分支6.1 定义请求参数对象6.2 获取商品列表数据6.3 渲染商品列表结构6.4 把商品 item 项封装为自定义组件在 goods_detail 组件…...
单元测试的定义
概念 单元测试是对软件中的最小可测试单元进行检查和验证的过程。在面向对象编程中,最小可测试单元通常是一个方法或者一个类。它的目的是隔离各个部分的代码,确保每个单元都能按预期工作,从而提高软件的质量和可维护性。重要性 发现早期错误…...
C语言从头学66—学习头文件 <stdio.h>(二)
关于可变参数,我们曾经在《C语言从头学27》中接触过,下面学习能够接收可变参数作为 参数的几个函数。 一、printf函数的能够接收可变参数的变体函数: 1、函数vprintf() 功能:按照给定格式,将可变参数中的内容输…...
python静默活体检测接口集成-人脸识别API-人脸认证
静默活体检测是一种不需要用户主动配合(如眨眼、点头等)的活体检测技术,通常通过摄像头采集用户的人脸图像,结合计算机视觉与AI算法来判断用户是否为真人。这项技术被广泛应用于身份验证、金融交易安全、智能门禁等领域。 确定接口…...
Ubuntu安装nvidia显卡驱动
一、安装依赖 1、更新 sudo apt update sudo apt upgrade -y 2、基础工具 sudo apt install -y build-essential cmake 图形界面相关 sudo apt install -y lightdm 注:在弹出对话框选择"lightdm" 下载nvidia驱动: 进入如下网址:http…...
vulnhub-Web Developer 1靶机
vulnhub:Web Developer: 1 ~ VulnHub 导入靶机,放在kali同网段,扫描 靶机在192.168.114.129,扫描端口 有网站服务,访问 没什么东西,扫目录 真不少,访问一下,也只是一些普通的Wordpr…...
安全帽头盔检测数据集 3类 12000张 安全帽数据集 voc yolo
安全帽头盔检测数据集 3类 12000张 安全帽数据集 voc yolo 安全帽头盔检测数据集介绍 数据集名称 安全帽头盔检测数据集 (Safety Helmet and Person Detection Dataset) 数据集概述 该数据集专为训练和评估基于YOLO系列目标检测模型(包括YOLOv5、YOLOv6、YOLOv7…...
保姆级教程 | Adobe Illustrator调整颜色透明度
背景 由于课题需要,现需要在Adobe Illustrator里修改部分色块的颜色及透明度 步骤 1. 打开Adobe Illustrator软件,打开或创建一个AI文件: 2. 绘制一个色块: 3. 单击需要调整透明度的对象将其选中 4. 调整颜色的透明度…...
深入解读DeepSort目标跟踪算法:从状态预测到运动模型
在目标跟踪领域中,DeepSort(Deep Simple Online and Realtime Tracking)是一种广泛应用且高效的跟踪算法,它结合了深度学习与经典目标跟踪方法,为视觉跟踪任务提供了强大的解决方案。本文将深入探讨DeepSort中的关键概…...
24-10-2-读书笔记(二十二)-《契诃夫文集》(一)上([俄] 契诃夫 [译] 汝龙)啊!真想生活。
文章目录 《契诃夫文集》(一)上([俄] 契诃夫 [译] 汝龙 )早期生活——塔甘罗格(人物家庭简介)学生时期——莫斯科(写作与学习)流浪时期——哈萨林(游历与流浪)…...
【2024】前端学习笔记14-JavaScript常用数据类型-变量常量
学习笔记 1.JavaScript常用数据类型1.1.Number(数字)1.2.String(字符串)1.3.Boolean(布尔值)1.4.Null(空值)1.5.Undefined(未定义)1.6.Object(对象…...
Leecode热题100-48.旋转图像
给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出…...
重学SpringBoot3-集成Redis(二)之注解驱动
更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(二)之注解驱动 1. 为什么选择 Redis 作为缓存?2. 如何在 Spring Boot 中启用 Redis 缓存?2.1 …...
【React】入门Day04 —— 项目搭建及登录与表单校验、token 管理、路由鉴权实现
项目搭建 创建项目 # 使用npx创建项目 npx create-react-app my-react-app # 进入项目目录 cd my-react-app # 创建项目目录结构 mkdir -p src/{apis,assets,components,pages,store,utils} touch src/{App.js,index.css,index.js} 使用npx create-react-app创建项目࿰…...
CMake 属性之目录属性
【写在前面】 CMake 的目录属性是指在特定目录(及其子目录)范围内有效的设置。 这些属性不同于全局变量或目标(Target)属性,它们提供了一种机制,允许开发者为项目中的不同部分定义不同的构建行为。 通过目录…...
ChatGPT:引领人工智能新潮流!
一、ChatGPT 是什么? 1. ChatGPT 的强大功能和广泛应用。 ChatGPT 作为一款先进的 AI 语言模型,拥有众多强大功能。它可以进行文本生成、文本分类、情感分析、机器翻译等多种自然语言处理任务。同时,ChatGPT 还能进行对话式交互,…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...
MeshGPT 笔记
[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭!_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...
k8s从入门到放弃之Pod的容器探针检测
k8s从入门到放弃之Pod的容器探针检测 在Kubernetes(简称K8s)中,容器探测是指kubelet对容器执行定期诊断的过程,以确保容器中的应用程序处于预期的状态。这些探测是保障应用健康和高可用性的重要机制。Kubernetes提供了两种种类型…...


