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 还能进行对话式交互,…...

【银河麒麟高级服务器操作系统】安全配置基线相关分析全过程及解决方案
了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer.kylinos.cn 文档中心:https://documentkylinos.cn 服务器环境以及配置 【机型】物理机或虚机 【…...

用Python实现图片转ASCII艺术:图像处理与字符艺术的完美结合
解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 ASCII艺术是一种通过字符来表现图像的艺术形式,最早用于早期计算机显示器,它仅支持字符显示。如今,尽管图像分辨率和显示技术得到了极大的提升,ASCII艺术作为一种复古而别具一格的图像表现形式,仍然受到许多…...

大数据-162 Apache Kylin 全量增量Cube的构建 Segment 超详细记录 多图
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...

Redis-缓存过期淘汰策略
缓存淘汰策略 生产上redis内存设置为多少 设置为最大内存的 3/4 redis 会占用物理机多少内存 默认大小是 0,64 位系统下表示不限制内存大小,32位系统表示 3G 如何设置修改redis内存大小 config get maxmemory 查看修改方式 配置文件 单位是字节 2.…...

如何设置LED电子显示屏的屏幕参数?
LED电子显示屏因其高亮度、低能耗和长寿命等优点,在广告、信息显示等领域得到了广泛应用。正确设置屏幕参数对于确保显示屏的最佳性能至关重要。以下是LED电子显示屏设置屏幕参数的步骤: 1. 确定屏幕参数 在开始设置之前,需要了解显示屏的基本…...

Spring Boot Starter Parent介绍
引言 spring-boot-starter-parent 是一个特殊的项目,为基于 Spring Boot 的应用程序提供默认配置和默认依赖。 在本 Spring Boot 教程中,我们将深入了解所有 Spring Boot 项目内部使用的 spring-boot-starter-parent 依赖项。我们将探讨此依赖项所提供…...

【含开题报告+文档+PPT+源码】基于SpringBoot乡村助农益农平台的设计与实现
开题报告 近年来,随着社会经济的快速发展和人民生活水平的提高,人们对优质农产品的需求越来越高。然而,传统的农产品销售管理模式存在一些问题。首先,农产品供应链信息不透明,导致生产者难以了解市场需求和价格变动趋…...

数据中心运维挑战:性能监控的困境与智能化解决方案的探寻
随着数字化进程的加速,数据中心已成为企业信息架构的核心支撑,其运维管理的复杂度和重要性也随之提升。运维团队需应对设备老化、资源分配失衡、性能波动等多重难题,以确保数据中心持续高效运行。 其中,性能监控作为运维管理的关键…...

基于SSM的民宿管理系统【附源码】
基于SSM的民宿管理系统(源码L文说明文档) 目录 4 系统设计 4.1 系统概要设计 4.2 系统功能结构设计 4.3 数据库设计 4.3.1 数据库E-R图设计 4.3.2 数据库表结构设计 5 系统实现 5.1用户信息管理 5.2 房东信息管理…...

显卡 3090 vs v100
1.3090 Date: 2020 AmperePielines/ Cuda cores: 10496 2.V100 Date: 2018 VoltaPielines/ Cuda cores: 5129 3.结构 & Core比较: v100优点: v100功耗小v100较快的双精度(fp64)和混合精度(fp16fp32)pcie版的NVLink与2080ti完全一致 v100缺点: 不支持整数格式计算&…...