【MySQL】——数据类型及字符集

🎃个人专栏:

🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客

🐳Java基础:Java基础_IT闫的博客-CSDN博客

🐋c语言:c语言_IT闫的博客-CSDN博客

🐟MySQL:数据结构_IT闫的博客-CSDN博客

🐠数据结构:​​​​​​数据结构_IT闫的博客-CSDN博客

💎C++:C++_IT闫的博客-CSDN博客

🥽C51单片机:C51单片机(STC89C516)_IT闫的博客-CSDN博客

💻基于HTML5的网页设计及应用:基于HTML5的网页设计及应用_IT闫的博客-CSDN博客​​​​​​

🥏python:python_IT闫的博客-CSDN博客

🐠离散数学:离散数学_IT闫的博客-CSDN博客

欢迎收看,希望对大家有用!

目录

🎯概述:

🎯数值型

🎃整数型

🎃小数类型

🎐 浮点数

🎯日期时间型

🎯字符串类型

🎯mysql字符集问题


🎯概述:

MySQL数据类型(列类型)可归纳为数值型、时间日期型和字符型。

数值型:

整形:tinyint/smallint/mediumint/int/bigint

小数型:Float(D,M),decimal(D,M)

字符串型:

Char(M)

Varchar(M)

Text 文本类型

日期/ 时间型:

Date 日期

Time 时间

Datetime 日期时间型

TIMESTAMP    时间戳类型

Year 年类型

🎯数值型

🎃整数型

tinyint(1), smallint(2), mediumint(3),int(4), bigint(8)。括号中表示该类型所占空间的长度(字节数)

类型

大小

范围(有符号)

范围(无符号)

用途

TINYINT

1 字节

(-128127)

(0,255)

小整数值

SMALLINT

2 字节

(-32 76832 767)

(0,65 535)

大整数值

MEDIUMINT

3 字节

(-8388 6088388 607)

(0,16777215)

大整数值

INTINTEGER

4 字节

(-2147483648,2147483647)

(0,4294967295)

大整数值

BIGINT

8字节

(-9,223,372,036,854,775,808,9223372036854775807)

(0,18446744073709551615)

极大整数值

整形系统的可选参数: XXint(M) unsigned zerofill

例: age tinyint(4) unsigned 或者 stunum smallint(6) zerofill

Unsigned: 代表此列为无符号类型,会影响到列的存储范围(范围从0 开始)

(不加unsigned, 则代表该列默认是有符号类型,范围从负数开始)

列可以声明默认值,而且推荐声明默认值

Not null default 0;

Zerofill :代表0 填充,即:如果该数字不足参数M位,则自动补0,补够M位。

1. 如果没有zerofill 属性,单独的参数M,没有任何意义

2. 如果设置某列为zerofill, 则该列已经默认为unsigned, 无符号类型,M代表该列的显示宽度。

🎃小数类型

🎐 浮点数

小数型: float(M,D),decimal(M,D)

float(M,D): 浮点小数,代表可存储一共M位(不含小数点),其中,小数点后D位

decimal(M,D) :定点小树, M,D的意义同上.

区别: decimal 比float 精度更高,适合存储货币等要求精确的数字.

见下例:

🎯日期时间型

mysql 时间类型有,date,time,datetime,timestamp,year五种。

date类型: 支持的范围为’1000-01-01’到’9999-12-31’

time类型: 支持的范围是’-838:59:59’到’838:59:59’

datetime类型:支持的范围是’1000-01-01 00:00:00’到’9999-12-31 23:59:59’

timestamp类型:时间戳,就是表示“当前时刻”, 用int 来存储,是1970-01-01 00:00:00 到当前的秒数,类似函数now()获得的值,用于INSERT或UPDATE操作时自动获得当前时间。

一般存注册时间,商品发布时间等,并不是用datetime 存储,而是用时间戳。因此datetime 虽然直观,但计算不便。

year类型: 四位字符串,范围为’1901’到’2155’;四位数字,范围为1901到2155;两位字符串,范围为’00’到’99’;两位整数,范围为1到99

在mysql中除了timestamp 类型允许有默认值外,其他时间类型都不能有默认值,不然会报错。

mysql常用时间日期函数

获取当前日期和时间: now();

获取当前日期: curdate();

获取当前时间:curtime();

将具体时间转换为时间戳:unix_timestamp();

将时间戳转换为时间:from_unixtime();

🎯字符串类型

mysql提供的有CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。

Char 定长类型

Char(M),M 代表宽度,( 即:可容纳的字符数),0<=255 之间

例: char(10), 则能输入10 个字符.

Varchar 变长类型

varchar(M),M 代表宽度,( 即:可容纳的字符数),0<=M<=65535(以ascii 字符为例, utf8 22000左右)

定长二进制字符串binary:类似char,应该设定长度值,只是按“二进制字节”保存存字符数据,最大255个字节,无编码问题

变长二进制字符串varbinary:类似varchar,需要设定长度值,只是按“二进制字节”存字符数据,最大65532个字节,无编码问题

文本列类型text:用于存储普通文本,不受行的最大长度的限制,同类还有:tinytext, mediuntext, longtext

二进制列类型blob:用于存储二进制字节内容,不受行的最大长度的限制,同类的还有:tinyblob, mediumblob, longblob

枚举类型enum: 类似单选项应用中的多个选项值,最大65535个选项值;使用形式:enum(‘value1’, ‘value2’, … );存储数据的时候其实存的是一个对应的数字序号(从1开始)

set类型:类似多选项应用中的多个选项,最多64个选项,使用形式:set(‘value1’, ‘value2’, …); 内部存储的也是数字(依次为1,2,4,8, ….),但可以是多个值,比如5就表示2个值(1,4),14就表示3个值(2,4,8)

Char(M) 如何占据M个字符宽度?

答:如果实际存储内容不足M个,则后面加空格补齐

取出来的时候,再把后表面的空格去掉. (所以如果内容最后有空格,将会被清除)速度上:定长速度快些。

Char 与varchar 相关实验

Concat 连接的意思

SET 和 enum

create table seTest(

id int auto_increment,

hobby set('篮球','足球','羽毛球','乒乓球','棒球'),

gender enum('male','female','not know'),

primary key(id)

)engine = myisam default charset = utf8;

insert into seTest(hobby,gender) values('篮球','male'),('篮球,足球,棒球','not know');

insert into seTest(hobby,gender) values('篮球','male,female');

insert into seTest(hobby,gender) values('篮球','male female');

insert into seTest(hobby,gender) values('排球','male female');

mysql> show warnings;

mysql> select * from setest;

可以看到,当插入的值跟set 、enum 字段值要求不符时,会插入空值。

常用字符串函数

concat(column|str1,column | str2,….)将多个字符串首尾相连后返回。

concat_ws(separator,str1,str2,….)将多个字符串指定连接符separator的首尾相连后返回

substr(str,pos[,len]) 从字符串中的指定位置pos开始取一个字串返回

repeat(str,count) 将字符串str重复count次后返回

reverse(str) 将字符串str反转后返回

🎯mysql字符集问题

Mysql 的字符集设置非常灵活

可以设置服务器默认字符集

数据库默认字符集

表默认字符集

列字符集

(如果某一个级别没有指定字符集,则继承上一级)

set names gbk

set names utf8

执行show variables like 'character%',获取字符集配置为:

由于CMD命令行只支持系统当前编码,所以一般需要将CMDMYSQL服务器的交互编码设置为gbk才能正常显示utf8的数据。

character_set_clientcharacter_set_connectioncharacter_set_results变成了utf8,可以看出set names就是设置这三个参数的值。一个select执行的过程应该是:client——>connection——>server/database——>results——>connection——>client,任何一个环节的字符集不兼容都会出现乱码。

1、用户通过mysql.exe来操作mysqld.exe

2、真正的SQL执行是mysqld.exe来执行

3、mysql.exe将数据传入mysqld.exe的时候,没有告知其对应的符号规则(字符集),而mysqld也没有能力自己判断,就会使用自己默认的(字符集);

解决方案:

mysql.exe如果告知mysqld.exe对应的字符集类型为GBK

深层原理:

客户端、服务器、连接层

客户端传入数据给服务器:client

服务器返回数据给客户端:server

客户端与服务器端之间的连接:connection

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

loki 如何格式化日志

部署 grafana-loki 首先介绍一下如何部署 官方文档&#xff1a;部署 grafana-loki 部署命令 设置集群的存储类&#xff0c;如果有默认可以不设置设置命名空间 helm install loki oci://registry-1.docker.io/bitnamicharts/grafana-loki --set global.storageClasslocal -n …

程序员退一步的海阔天空,是考公还是烤冷面?

打败一个志向坚定的程序员只需要一个简单的年龄危机、身体预警.......钱难挣、屎难吃。996的钱更是伤身体&#xff0c;或者是被裁员、劝退的无力。算了~这份工作也不是非要不可&#xff0c;劳资不干了&#xff01;&#xff08;hahahahaha....bushi)人生在世&#xff0c;进可攻、…

Soul 推出“SoulX”AI人工智能模型,已应用于旗下 App“苟蛋”AI聊天机器人

Soul社交平台最近发布了名为”SoulX“的AI人工智能模型&#xff0c;SoulX将作为Soul “AIGC社交”布局的重要基建&#xff0c;具备prompt驱动、条件可控生成、上下文理解、多模态理解等能力&#xff0c;垂直应用于平台上多元社交互动场景&#xff0c;如智能对话机器人、AI辅助聊…

模拟微信、QQ、支付宝那样的随机红包

随机拆分给定金额为给定个数红包&#xff0c;像微信、QQ、支付宝随机红包那种&#xff0c;要求红包总金额绝对与给定金额相等。 (笔记模板由python脚本于2023年12月14日 12:37:58创建&#xff0c;本篇笔记适合熟悉Python随机数模块random的整型随机方法randint&#xff0c;能熟…

卫浴企业做网站的效果如何

卫浴产品无论工程还是家庭中都有较高需求度&#xff0c;相关品牌或经销商也不少&#xff0c;然而在实际经营中&#xff0c;卫浴品牌商家也面临着一些痛点&#xff1a; 1、品牌宣传拓客难 卫浴产品并不缺客户&#xff0c;但大小品牌众多&#xff0c;商家想要突围绝非易事&…

国产数据库适配-人大金仓(kingbase V8R3)

金仓数据库是基于POSTGRE_SQL 参考资料 国产数据库人大金仓踩坑记录和函数适配_金仓数据库关系不存在-CSDN博客 Springboot工程 适配人大金仓 kingbase V8R3 引入驱动包和方言包 hibernate-5.2.17.Finaldialect.jar kingbase8-8.2.0.jar application.yml文件 driver-cla…

计算机网络安全原理习题参考答案

1.9习题 一、单项选择题 1. ISO 7498-2从体系结构的角度描述了5种可选的安全服务&#xff0c;以下不属于这5种安全服务的是&#xff08;  D  &#xff09; A. 数据完整性   B. 身份鉴别   C. 授权控制   D. 数据报过滤 2. ISO 7498-2描述了8种特定的安全机制&…

破局创新,天翼云HBlock如何以小见大、以柔克刚?

引言&#xff1a;另辟蹊径开拓创新 不走传统存储厂商的“寻常路” 【全球存储观察 &#xff5c; 科技热点关注】 在分布式块存储领域&#xff0c;大部分厂商的安装软件套件大小都在GB级。然而&#xff0c;天翼云破天荒地将存储资源盘活系统HBlock的软件安装包浓缩到了170MB&a…

SFP3006-ASEMI大电流快恢复二极管SFP3006

编辑&#xff1a;ll SFP3006-ASEMI大电流快恢复二极管SFP3006 型号&#xff1a;SFP3006 品牌&#xff1a;ASEMI 封装&#xff1a;TO-247 最大平均正向电流&#xff1a;30A 最大重复峰值反向电压&#xff1a;600V 产品引线数量&#xff1a;3 产品内部芯片个数&#xff1…

【前端学习记录】记一次分片上传逻辑的调试过程

前言 在项目开发的过程中&#xff0c;经常会遇到上传和下载&#xff0c;对于上传来说&#xff0c;如果是小文件的话&#xff0c;接口响应会比较快&#xff0c;但是对于大文件&#xff0c;则需要对其分片以减少请求体的大小和上传时间。 小文件上传 以Vue框架使用<el-uplo…

微信小程序map视野发生改变时切换定位点

<!--地图--> <view><map id"myMap" style"width: 100%; height: 300px;" latitude"{{latitude}}" longitude"{{longitude}}"scale"{{scale}}" markers"{{markers}}" controls"{{controls}}&q…

VUE篇之日历组件

1.简单日历组件展示 思路&#xff1a;根据当前月的第一天是星期几&#xff0c;来显示日期 <template><div class"wrap"><el-button click"preMonth">上个月</el-button><el-tag>当前年份{{ curYear }}</el-tag><e…

解决msvcr120.dll文件丢失问题

项目场景&#xff1a; 在VMware虚拟机中安装win7家庭版系统&#xff0c;安装MySQL数据库&#xff0c;部署项目文件。 问题描述 安装MySQL数据库过程中提示“msvcr120.dll文件丢失”。 原因分析&#xff1a; 提示丢失msvcr120.dll文件&#xff0c;我们首先要到C:\Windows\Sys…

Windows server 2016 如何禁止系统自动更新

1.打开“运行”&#xff0c;输入cmd&#xff0c;点击“确定”。 2.输入sconfig&#xff0c;然后按回车键。 3.输入5&#xff0c;然后按回车键。 4.示例需要设置为手动更新&#xff0c;即输入M&#xff0c;然后按回车键。 5.出现提示信息&#xff0c;点击“确定”即可。

【owt-server】清理日志:owt、srs、ffmpeg

运行一段时间后,云主机的磁盘满了owt的日志和 srs的日志比较多。查看日志文件占用: du 通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹 关闭owt-server dist# ./bin/stop-all.sh root@k8s-master-2K4G:~/p2p/zdsvr-20201229/dist# ./bin/stop-all.sh stopp…

JMeter定时器

JMeter定时器 一、同步定时器1、场景2、位置3、参数4、使用 二、常数吞吐量定时器1、场景2、作用3、位置4、参数 三、固定定时器1、场景2、位置3、用例 一、同步定时器 1、场景 1w人同时使用电商网站&#xff1a;相对并发&#xff0c;可用线程组实现1w人同时秒杀&#xff1a;绝…

猫头虎博主深度探索:Amazon Q——2023 re:Invent大会的AI革新之星

猫头虎博主深度探索&#xff1a;Amazon Q——2023 re:Invent大会的AI革新之星 授权说明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 亚马逊云科技开发者社区, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科…

Xshell连接虚拟机、设置及使用技巧

【环境系列】Linux虚拟机(Centos、Ubuntu)、云服务器&#xff1a;https://www.cnblogs.com/uncleyong/p/17874484.html Xshell连接虚拟机 登录服务器 查看ip&#xff1a;ip addr 安装xmanager&#xff0c;网盘中有安装包&#xff1b;也可以官网下载Xshell&#xff1a;https://…

百度搜索展现服务重构:进步与优化

作者 | 瞭东 导读 本文将简单介绍搜索展现服务发展过程&#xff0c;以及当前其面临的三大挑战&#xff1a;研发难度高、架构能力欠缺、可复用性低&#xff0c;最后提出核心解决思路和具体落地方案&#xff0c;期望大家能有所收货和借鉴。 全文4736字&#xff0c;预计阅读时间12…

冲压模具市场调研:2023年该行业发展现状及前景分析

汽车冲压件模具是汽车车身生产的重要工艺装备&#xff0c;是汽车换型的主要制约因素。汽车冲压件模具具有尺寸大、型面复杂、精度要求高等特点&#xff0c;属于技术密集型产品。 汽车冲压模具能快速精密地把材料直接加工成零件或半成品并通过焊接、铆接、拼装等工艺装配成零部件…