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

MySQL —— 库,数据类型 与 表

库与基础操作

1.1 查看数据库

使用 show databases; 可以查看当前 MySQL 目前有多少个数据库

在这里插入图片描述
5 rows 表示有 5 行,这里是表示的是有效的数据,不包括 第一行的指引

set 表示结果集合

0.01 sec 表示这个 sql 语句一共运行了0.01 秒,一般情况下这个数值不是很准确

1.2 创建数据库

creat database (if not exists) database_name (character set charset_name) (collate collation_name);

if not exists 表示如果不存在,加了这个可以增加一些校验,
加了括号的表示是可选项,你可以写,可以不写
character set 表示字符集,我们可以指定字符集去存储字符
collate 表示排序方式

5.7 版本的MySQL 的字符集是 latin1(拉丁字符集,不支持中文字符),8.0版本支持 utf8mb4 编码(最多支持 一个字符占 4 个字节,可以保存中文字符和特殊字符例如表情包等等),不同的字符集意味着存储的字符数量不同,我们可以通过show variables like '%character%';来查看当前我们数据库默认的字符集编码

下面是 8.0 版本:
在这里插入图片描述
也就是说如果你没有指定字符集和编码方式,你创建的数据库就会默认这两种方式,所以这里强烈建议开发学习者手动去指定我们创建的数据库的字符集与排列方式。

以8.0版本为例:
字符集指定为utf8mb4 排列方式可以指定为 utf8mb4_0900_ai_ci
版本过低的MySQL可能不支持 utf8mb4 的字符集编码方式

这里解释一下 ai 与 ci
ai : accent insencitive 口音不敏感
as : assccent sencitive 口音敏感
ci : case insencitive 大小写不敏感,表示无论是大写还是小写字母都认为是小写字母
cs : case sencitive 大小写敏感
在MySQL 中是 ci 模式,所以我们编写的 sql 语句不用考虑 大小写问题,都是一样的。

演示创建数据库:

在这里插入图片描述

query ok 表示成功


在这里插入图片描述

如果我们加了 if not exists 就会加一层校验,如果你重复创建数据库,MySQL 会给你自动报个警告,所以你会看到 1 warning

如果想查看警告信息,使用show warnings;
在这里插入图片描述
它显示无法创建这个库,该库已经存在。

MySQL 创建数据库尽量不要使用 关键字,如果非要使用,在数据库的名称加上反引号【位于 esc 下方,tab 上方,1的左边,并且要保证在英文状态下】
在这里插入图片描述

如果写错sql 语句,MySQL会报错误给你:
在这里插入图片描述
sql syntax 表示的是语法出错了。

1.3 使用数据库

使用 use database_name;
最后一个分号加不加无所谓

在这里插入图片描述

1.4 删除数据库

使用drop database (if exists) database_name;
在这里插入图片描述

注意别乱删数据库,凡是数据库的删除操作请谨慎!!!三思而后行!!!!

数据类型

2.1 数值类型

数据类型大小说明对应的Java类型
bit[(M)]M指定位数,默认为1二进制数,M范围从1~ 64,存储数值范围为0 ~ 2^M -1常用Boolean 对应
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最大值+2BigDecimal
numeric(M,D)BigDecimal

M表示长度时,长度不包括符号和小数点,如果表示的是 - 3.1415926,M的长度为 8.

常用 int 表示数量,bigint 表示一串长的编码,decimal 来存储有精度要求的带小数的数据,bool 也可以表示 tinyint 表示 二选一的选项(例如gender)

数值类型可以指定为无符号(unsigned),表示不取负数。
1字节(bytes)= 8bit。
对于整型类型的范围:
1.有符号范围:-2 ^(类型字节数8-1) 到 2 ^(类型字节数8-1)-1,如 int 是 4字节,就是 -2 ^ 31 到 2 ^31-1
2.无符号范围:0到 2 ^ (类型字节数*8)-1,如 int 就是 2 ^ 32 - 1
尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其如此,还不如设计时,将int类型提升为bigint类型。

2.2 字符串类型

数据类型大小说明对应的Java类型
varchar(size)0 ~ 65,535 个字节可变长度字符串String
text0 ~ 65,535 个字节长文本数据String
mediuntext0 ~ 16,777,215 个字节中等长度文本数据String
blob0 ~ 65,535 个字节二进制形式的长文本数据byte[]

重点是 varchar,一定要加上 (size)来指定最多可以保存多少个字符,一个英文字符或者一个中文字符都算一个字符,size 表示字符数,不考虑字符占多大字节

2.3 日期类型

数据类型大小说明对应的Java类型
datetime8个字节范围从 1000 ~ 9999 年,不会进行时区的检索与转换java.util.Date、java.sql.Timestamp
timestamp4个字节范围从 1970 ~ 2038 年,自动检索当前时区并进行转换java.util.Date、java.sql.Timestamp

datetime 只能精确到年月日,而 timestamp 可以精确到年月日时分秒,后面还有小数点。

建议使用 datatime ,因为 timestamp 到了 2038 会溢出,对我们的数据可能会造成影响,可以参考千年虫危机

需要操作数据库中的表时,需要先使用该数据库 use database_name;

3.1 创建表

语法格式:

creat table (if not exists) table_name (字段名称1 数据类型,字段名称2 数据类型,字段名称3 数据类型
);

在编写比较长的 sql 语句或者复杂的 sql 语句的时候,可以使用可视化工具。

在数据类型后面可以加上 comment ‘注释’ 【注意这里使用的是英文的单引号】
在开发过程中,加注释是其中一个重要的环节。

演示:

create table if not exists student (id bigint comment '身份证号',name varchar(50) comment '姓名',class varchar(20) comment '班级'
);

在这里插入图片描述
3.2 查看表结构

使用 desc table_name;

desc 是英文 describe (描述) 的缩写

演示:

在这里插入图片描述
Filed 表示字段名称
Type 表示字段类型
NULL:是否允许为空
Key 索引类型
Default 默认值
Extra 扩充

3.3 删除表

语法格式:

drop table (if exists) table_name, table_name,...;

可以删除一个及以上的表

演示:
在这里插入图片描述

在开发中,删除表操作也要谨慎,三思而后行!!!

其他操作

使用\? 可以查看一些MySQL的基本操作:

在这里插入图片描述


使用 select version(); 可以查看当前使用的MySQL版本:

在这里插入图片描述


使用 \. sql文件路径 可以执行该 sql 文件 :

注意 . 后面要加一个空格
写完路径后,不需要加分号,直接enter 允许文件即可。

在这里插入图片描述


查看表的数量:show tables;

在这里插入图片描述

相关文章:

MySQL —— 库,数据类型 与 表

库与基础操作 1.1 查看数据库 使用 show databases; 可以查看当前 MySQL 目前有多少个数据库 5 rows 表示有 5 行,这里是表示的是有效的数据,不包括 第一行的指引 set 表示结果集合 0.01 sec 表示这个 sql 语句一共运行了0.01 秒,一般情况…...

Java重修笔记 第二十七天 匿名内部类

匿名内部类 1. 定义:无类名(底层自动分配类名“外部类名$1”),既是类也是对象,定义在外部类的局部位置,例如方法体和代码块中,通过new类或接口并在大括号里重写方法来实现。 2. 使用场景&…...

Nero Lens 智图 - 适用于 iOS 和 iPadOS 的专业图片处理 App

首先是手机端的无损放大 App:Nero Lens 智图,适用于 iOS 和 iPadOS,不仅可以放大,还有多种 AI 图片增强功能。 使用这款 App 可以通过 AI 模型智能放大可达 400%,还有老照片去划痕、上色,抠图移除背景、照…...

Nginx代理路径被吃

Nginx代理路径被吃的情况 日常工作中经常使用nginx反向代理一些资源,有时正常代理,发现代理不过去。 验证被吃调location情况 通过浏览器访问: https://zhao138969.com/LinuxPackage/Python/SelectDocker location /LinuxPackage { proxy…...

pytest-html报告修改与汉化

前言 Pytest框架可以使用两种测试报告,其中一种就是使用pytest-html插件生成的测试报告,但是报告中有一些信息没有什么用途或者显示的不太好看,还有一些我们想要在报告中展示的信息却没有,最近又有人问我pytest-html生成的报告&a…...

react-native从入门到实战系列教程一Swiper组件的使用及bug修复

轮播图,在app中随处可见,这么重要的功能我们怎么可能不学习下在react-native中的实现方式。 依然是第三方组件react-native-swiper 官网地址 https://www.npmjs.com/package/react-native-swiper 组件使用的组件及事件参考官方即可。 实现效果 官网…...

springboot开发的常用注解总结-配置组件类注解

Spring Boot 提供了许多注解,这些注解大大简化了 Spring 应用的配置和开发过程。以下是一些常见的 Spring Boot注解及其作用。 目录 配置组件类 (Configure Component )Configuration解释:Demo Code:更深度使用&#x…...

DataX 最新版本安装部署

1、下载 git clone gitgithub.com:alibaba/DataX.git 2、打包 mvn -U clean package assembly:assembly -Dmaven.test.skiptrue...

【架构】应用保护

这篇文章总结一下应用保护的手段。如今说到应用保护,更多的会想到阿里的sentinel,手段丰富,应用简单。sentinel的限流、降级、熔断,可以自己去试一下,sentinel主要通过配置实现功能,不难。sentinel的简介放…...

从核心到边界:六边形、洋葱与COLA架构的深度解析

文章目录 1 引言2 软件架构3 架构分类4 典型的应用架构4.1 分层架构4.2 CQRS4.3 六边形架构4.4 洋葱架构4.5 DDD 5 COLA架构设计5.1 分层设计5.2 扩展设计5.3 规范设计5.3.1 组件规范5.3.2 包规范5.3.3 命名规范 6 COLA架构总览7 小结 1 引言 软件的首要技术使命:管…...

04-Fastjson反序列化漏洞

免责声明 本文仅限于学习讨论与技术知识的分享,不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任,一旦造成后果请自行承担&…...

ABC365(A-D)未补

A - Leap Year(模拟) 题意:给定一个数字n,如果n不是4的倍数,输出365;如果n是4的倍数但不是100的倍数,输出366;如果n是100的倍数但不是400的倍数,输出365;如果…...

Python用png生成不同尺寸的图标

Kimi生成 from PIL import Imagedef generate_icon(source_image_path, output_image_path, size):with Image.open(source_image_path) as img:# 转换图片为RGBA模式,确保有透明通道if img.mode ! RGBA:img img.convert(RGBA)# 调整图片大小到指定尺寸img img.r…...

1688中国站获得工厂档案信息 API

公共参数 名称类型必须描述keyString是免费申请调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheString否[yes,no]默认y…...

定时任务框架 xxl-job

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…...

C/C++关键字大全

目录 一、const 二、static 三、#define 和 typedef 四、#define 和 inline 五、#define 和 const 六、new 和 malloc 七、const 和 constexpr 八、volatile 九、extern 十、前置 和后置 十一、atomic 十二、struct 和 class 一、const 1、const 关键字可用于定义…...

ROS2 Linux Mint 22 安装教程

前言: 本教程在Linux系统上使用。 一、linux安装 移动硬盘安装linux:[LinuxToGo教程]把ubuntu装进移动固态,随时随用以下是我建议安装linux mint版本的清单: 图吧工具箱:https://www.tbtool.cn/linux mint: https://…...

快速将网站从HTTP升级为HTTPS

在当今数字化的世界中,网络安全变的越来越重要,HTTPS(超文本传输安全协议)不仅能够提供加密的数据传输,还能增强用户信任度,提升搜索引擎排名,为网站带来多重益处。所以将网站从HTTP升级到HTTPS…...

Qt程序移植至Arm开发板

目录 1.工具准备: 系统调试工具SecureCRT 虚拟机安装linux(Ubuntu) 交叉编译工具链 ARM 端Qt 环境(Qt-5.7.1) 1) linux processor SD安装 2)交叉编译工具链配置 2.编译Qt工程: 2.0 交叉编译 依赖库源码,生成动…...

删除分区 全局索引 drop partition global index Statistics变化

1.不一定unusable,可以先删除data (index 再删除过程中会更新结构)再drop/truncate. ---------------------- CREATE TABLE interval_sale ( prod_id NUMBER(6) , cust_id NUMBER , time_id DATE ) PARTITION BY RANGE (time_i…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落&#xff0c;一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延&#xff0c;滚滚浓烟弥漫开来&#xff0c;周围群众的生命财产安全受到严重威胁。就在这千钧一发之际&#xff0c;消防救援队伍迅速行动&#xff0c;而豪越科技消防一体化安全管控平台构建的消防“…...

sshd代码修改banner

sshd服务连接之后会收到字符串&#xff1a; SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢&#xff1f; 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头&#xff0c…...