MySQL —— 库,数据类型 与 表

news2024/11/15 8:49:26

库与基础操作

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;

在这里插入图片描述

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

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

相关文章

【多线程】线程的五种创建方法

文章目录 线程在 Java 代码中编写多线程程序Thread 标准库 创建线程的写法1 . 继承 Thread 类代码回调函数休眠操作:sleep()抢占式执行观察线程jconsoleIDEA 内置调试器 2 . 实现 Runnable 接口代码 3. 匿名内部类创建 Thread ⼦类对象代码匿名内部类 4.匿名内部类创…

Python数据分析案例57——信贷风控模型预测评估及其可解释性(shap, scorecardpy包应用)

案例背景 在信贷风控场景下,其实模型的可解释性就变得很重要。在平时做一些普通的机器学习的案例的时候,我们根本不关心这些变量是怎么究竟影响到模型最后的决策的,随便直接把数据丢进去,再把要预测的数据丢进去就能出结果。但是…

Rabbitmq的几种工作模式

工具类 public class RabbitMQConnection {public static Connection getConnection() throws Exception{//1.创建connectionFactoryConnectionFactory connectionFactory new ConnectionFactory();//2.配置HostconnectionFactory.setHost("127.0.0.1");//3.设置Po…

kafka从浅入深

一、什么是kafka? kafka本质上是一个消息队列MQ(Message Queue),用做数据流转。 1.使用消息队列的好处? 1.1、解耦:允许独立扩展或修改队列两头的处理过程; 1.2、可恢复性:即使一个…

Unity 资源之 Break Items - Toon VFX破碎物品与卡通硬币动画分享

Unity 特效资源分享 - 破碎物品与卡通硬币动画 一、前言二,资源包内容三、免费获取资源包 一、前言 今天为大家带来一份超级实用的视觉特效资源分享!我们精心整理了 6 个令人惊叹的破碎物品效果和 1 个萌趣十足的卡通硬币动画视觉特效,让您的…

编译和汇编的区别

一、编译 编译是将高级语言(如C、C、Java等)编写的源代码转换成计算机可以直接执行的低级语言(通常是机器语言或汇编语言)的过程 编译 —— 将人类可读的源代码转换为计算机可执行的指令集 编译过程 通常包括词法分析、语法分…

bootloader开发总结

bootloader开发总结 首先明白了BootLoader和应用程序之间跳转,就明白了大概。上电启动程序,会有一个程序入口,这个入口由0x33fff6(28335的)地址决定。 应用程序也会有一个启动入口,这个用户可以自己决定。 bin文件是高地址在前&a…

【数据结构】非线性表----二叉树详解

二叉树与普通的树的本质上的区别实际上只有一个——子结点的数量。 普通的树:任意数量的子结点 二叉树:只有两个子结点,也称为左孩子和右孩子结点。 二叉树一共有五种形态: 1.空二叉树。 2.只有一个根结点。 3.根结点只有左子树…

【OpenCV C++20 学习笔记】图像缩放-高斯金字塔

图像缩放-高斯金字塔 原理高斯金字塔 代码实现放大缩小形成金字塔 原理 在图像处理中,经常需要将图像转化成不同的尺寸,即放大或缩小。 除了直接用resize()函数重新设置图片尺寸,另一种常用的方法就是“图像金字塔”。 图像金字塔是从底层的…

vector的底层原理剖析及其实现

vector 一、定义二、常用接口及模拟实现三、vector迭代器失效问题四、使用memcpy拷贝会出现的问题五、二维数组vector<vector< T >> vv 一、定义 vector 是 C 标准模板库&#xff08;Standard Template Library, STL&#xff09;中的一个非常有用的容器。它是一个…

23款奔驰GLS450加装原厂电吸门配置,提升车辆舒适性和便利性

今天是一台22款奔驰GLS450&#xff0c;车主是佛山的 以前被不良商家坑了 装了副厂的电吸门 刚开始就很正常 用了半年之后 就开始开不了门&#xff0c;被锁在里面&#xff0c;刚开始车主以为是零件坏了 后来越来越频繁&#xff0c;本来是为了家里老人小孩关门方便而升级的&#…

J031_使用TCP协议支持与多个客户端同时通信

一、需求文档 使用TCP协议支持与多个客户端同时通信。 1.1 Client package com.itheima.tcp2;import java.io.DataOutputStream; import java.io.OutputStream; import java.net.Socket; import java.util.Scanner;public class Client {public static void main(String[] a…

软件设计之Java入门视频(22)

软件设计之Java入门视频(22) 视频教程来自B站尚硅谷&#xff1a; 尚硅谷Java入门视频教程&#xff0c;宋红康java基础视频 相关文件资料&#xff08;百度网盘&#xff09; 提取密码&#xff1a;8op3 idea 下载可以关注 软件管家 公众号 学习内容&#xff1a; 该视频共分为1-7…

Flask 介绍

Flask 介绍 为什么要学 Flask框架对比设计哲学功能特点适用场景学习曲线总结 Flask 的特点Flask 常用扩展包Flask 的基本组件Flask 的应用场景官方文档官方文档链接文档内容概述学习建议 Flask 是一个使用 Python 编写的轻量级 Web 应用框架。它旨在让 Web 开发变得快速、简单且…

ACl访问控制实验

要求&#xff1a;PC1可以telnet登录r1&#xff0c;不能ping通r1&#xff0c;pc1可以ping通r2&#xff0c;但不能telnet登录r2&#xff0c;pc2的所有限制与pc1相反 实验思路&#xff1a;因为华为的ensp默认允许所有&#xff0c;所以只写拒绝规则就行 rule 5 deny icmp source 19…

只需0.5秒 Stability AI新模型超快生成3D图像

生成式人工智能&#xff08;AI&#xff09;明星初创公司Stability AI 8月发布最新突破性3D模型Stable Fast 3D&#xff0c;将单张图片生成3D图像的速度大幅提升。Stability AI今年3月发布的3D模型SV3D需要多达10分钟生成3D资产&#xff0c;基于TripoSR的新模型Stable Fast 3D完…

【面试官:我看你SQL语句掌握的怎么样?面试SQL语句专题3】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【教程】Python语言的地球科学常见数据—— IMS积雪覆盖数据的处理

将ASCII数据转化为netCDF数据、分析新疆北疆、青藏高原和东北地区气候态积雪分布、分析新疆北疆、青藏高原和东北地区积雪面积变化规律。 美国国家冰雪中心&#xff08;NSIDC&#xff09;从 1997 年 2 月至今的北半球雪盖和海冰的地图。这些数据以 ASCII 文本和 GeoTIFF 格式提…

AIWEB1综合靶场通关教程,从外网打到内网【附靶场环境】

前言 靶场获取后台回【aiweb1】 下载之后设置为nat模式 启动即可&#xff0c;不需要登录 靶机复现 主机发现 访问即可 信息收集robots.txt文件 访问尝试&#xff0c;原来是什么也没有的&#xff0c;404 我们去访问这个上级目录&#xff0c;发现有一个id 注入测试 语法错误&am…

基于Protobuf的RPC

先上UserServer提供服务的函数要求proto文件内容&#xff1a; syntax"proto3"; package fixbug; option cc_generic_servicestrue; message LoginRequest {bytes name1;bytes pwd2; } message LoginResponse {ResultCode result1;bool sucess2; } #调用远程服务的入…