【MySQL】数据类型的基本用法

一文搞懂 SQL 数据类型:详解与实战举例,让你轻松上手! *:存储固定长度的字符串。**:存储可变长度的字符串。长度范围在定义时指定,实际存储时仅占用实际字符的空间。**:存储可变长度的二进制数据。长度范围在定义时指定,实际存储时仅占用实际数据的空间。类型可以存储最大 64KB 的数据,如果图片大小不超过 100KB,可以使用。**:存储固定长度的二进制数据。**:存储大文本数据。类型是二进制大对象,可以存储二进制数据如图像文件等。**:存储大二进制对象。**:存储时间戳,通常用于记录行的创建或更新时间。列是可变长度的字符串类型,最大长度为 2000 字节。 阅读详情

和众多编程语言一样,SQL(结构化查询语言)也有自己的数据类型,在这片文章中,我将简单介绍MySQL中的数据类型,及其如何应用和一些注意点。

MySQL数据类型一览:

  • 整数类型 (如int)
  • 浮点数类型 (如double)
  • 定点数类型 (如decimal)
  • 日期和时间类型 (如date)
  • 字符串类型 (如char、varchar)
  • 二进制类型 (如binary、varbinary)
  • 其他类型 (如enum、json、bit)

Table of Contents

数字型 - 整型

数字型 - 浮点型

时间型

字符串 - 小串

字符串 - 大文本

二进制

超大二进制

JSON

枚举类型(enum)

bit


数字型 - 整型

tinyInt

1字节

表示范围[-127, +127],当无符号时为[0, 255]

smallint

2字节

范围[-2^15, 2^15-1](-32768, 32767)

mediumint

3字节

范围[-8388608, 8388607]

int(integer)

4字节

范围[-2^31 (-2,147,483,648), 2^31 - 1 (2,147,483,647)]

bigint

8字节

范围[-2^63, 2^63-1]

(-9223372036854775808, 9223372036854775807)

注意:如果在插入时数据大得超过的存储范围,则会报错

CREATE TABLE test_int ( -- 创建一个测试表
	id INT AUTO_INCREMENT PRIMARY KEY,

	ti tinyint,
	si SMALLINT,
	mi MEDIUMINT,
	ii INT,
	bi bigint
);


数字型 - 浮点型

float

4字节

单精度浮点数(参照IEEE754标准)

double

8字节

双精度浮点数

decimal(m,d)

M+2个字节

其实decimal并非浮点型,顶点型。小数点前后数据不损失。

M代表总共能存储M位,N代表小数点后保留位数,1 < M < 254, 0 < N < 60;

使用选择:

  1. float:仅能精确保存长度为6位数字的浮点型数字,超出的将会被截断(四舍五入)。
  2. double:仅能精确保存长度为16位数字的浮点型数字,超出的将会被截断(四舍五入)。其中,小数点后能精度为9位。此外,关于float和double的存储小数的原理,是IEEE754标准规定的。
  3. decimal:能精确保存长度为m位数字,且小数点后的d位数字也能精确地保存,不会发生截断。

深度理解float

DROP TABLE IF EXISTS test_floating;
CREATE TABLE test_floating
(
	id int AUTO_INCREMENT PRIMARY KEY, -- 表主键
	my_float float  -- 仅能保存长度为6位数字的浮点数

);

-- 共10位,float只能保证前6位数字精确,即3.14159; 其后的数字将不会精确
INSERT INTO test_floating (my_float) VALUES (3.141592653); 

-- 共12位,float只能保证前6位数字精确,即333.141; 其后的数字将不会精确
INSERT INTO test_floating (my_float) VALUES (333.141592653); 

SELECT * FROM test_floating ;

深度理解double

DROP TABLE IF EXISTS test_double;
CREATE TABLE test_double
(
	id int AUTO_INCREMENT PRIMARY KEY,
	my_double double  -- 仅能保存长度为13位数字的浮点数
);

-- 共14位,double能保证16位的精度,全部会被存储
INSERT INTO test_double (my_double) VALUES (3.1415926535898);

-- 共21位,但double只能保证前16的精度,      即3.141592653589895
INSERT INTO test_double (my_double) VALUES (3.14159265358989546545);

-- 共24位,但double只能保证前16位的精度,    即3333333333.1415925
INSERT INTO test_double (my_double) VALUES (3333333333.1415926535898);

SELECT * FROM test_double ;

深度理解decimal

DROP TABLE IF EXISTS test_decimal;
CREATE TABLE test_decimal
(
	id int AUTO_INCREMENT PRIMARY KEY,
	my_decimal decimal(10,6)  -- 能保存总长为10个,小数点后为6个
);

-- 共14位,但decimal被要求精度为小数点后6个,即3.141593
INSERT INTO test_decimal (my_decimal) VALUES (3.1415926535898);

-- 共22位
INSERT INTO test_decimal (my_decimal) VALUES (33333333.1415926535898);
-- 执行时报错:Out of range value for column 'my_decimal' at row 1
-- 原因:总长不能超过decimal中定义的长度


时间型

Year

1字节

范围:1901~2155

支持的类型为:YYYY

YY(即2030年,可以写成30)

YYYY

YY

Time

3字节

范围:-838:59:59~838:59:59

hh:mm:ss

hhmmss

hhmmss

Date

4字节

范围:1000-01-01~9999-12-31

YYYY-MM-DD

YY-MM-DD

YYYYMMDD

YYMMDD

YYYYMMDD

YYMMDD

Timestamp

时间戳

4字节

范围:19700101000000 到 2038-01-19 03:14:07

YY-MM-DD hh:mm:ss

YYYYMMDDhhmmss

YYMMDDhhmmss

YYYYMMDDhhmmss

YYMMDDhhmmss

Datetime

8字节

范围:1000-01-01 00:00:00~ 9999-12-31 23:59:59

YYYY-MM-DD HH:MM:SS

如何插入日期、时间、时间戳

CREATE TABLE test_date
(
	id INT AUTO_INCREMENT PRIMARY KEY,
	mydate DATE, -- 日期
	mytime TIME, -- 时间
	myts TIMESTAMP -- 时间戳
)

INSERT INTO test_date(mydate,mytime,myts) VALUES 
	('1997-01-06','20:30:00','19970106203000'),
	('2020-06-01','19:16:00','20200601191600')

SELECT * FROM test_date;


字符串 - 小串

char(M)

1字节

固定长度的字符串,M为0~255之间的整数

指定了M,就会开辟存储M个字符的存储空间

效率较高

VARCHAR(M)

4字节

可变长度的字符串,M为0~65535之间的整数

指定了M,还是会根据实际的字符数,开辟存储空间

效率较低

特性:

  1. 这里的char(M)、varchar(M)中的M,指的是字符的个数,一个中文汉字、一个字母、一个数字、一个标点符号都算一个字符
  2. 为什么char占空间1字节,M却能取到255?—— 这是因为1字节的有符号取值范围为[-127, +127],而无符号的取值范围为[0, 255]。

超过了范围就会报错

超过了数据类型的容量

varchar(数字):数字就是表示可存储字符的个数

字符串 - 大文本

大文本数据(存储如文章内容、评论)

  1. 超长字符串
  2. 超越varchar(65535)的字符串

TINYTEXT

可存0~255字符(约1字节)

常应用于博文摘录,文章摘要等。

效率低于char。所以一般情况下比较少使用该数据类型。

TEXT

可存0~65535字符(4字节)

可存储文章的正文。

注意到varchar也能存储65535个字符,且text较慢,所以尽量选择varchar

MEDIUMTEXT

可存0~16777215字符(约16MB)

用于超出了text、varchar的存储范围时使用

LONGTEXT

可存0~4294967295字符(约4GB)

 

特性:

  1. text 在定义时,不需要定义长度,也不会计算总长度。
  2. text 类型在定义时,不可给default值
  3. TEXT数据不存储在数据库服务器的内存中,因此,每当查询TEXT数据时,MySQL都必须从磁盘读取它,这与CHAR和VARCHAR相比要慢得多。

二进制

binary(M)

1字节,M的范围[0, 255]

固定长度的二进制数据(基于字节,而char、varchar是基于字符)

varbinary(M)

4字节,M的范围[0,65535]

可变长度的二进制数据

超过了数据类型的范围: 

超大二进制

大二进制数据(存储如图片、PDF)

  1. 关键字BLOB(binary large object)
  2. 存储超大二进制数据

TINYBLOB

允许长度0~255(1字节)

 

BLOB

允许长度0~65535(4字节)

 

MEDIUMBLOB

允许长度0~16777215字节(约16MB)

 

LONGBLOB

允许长度0~4294967295字节(4GB)

 


JSON

5.7版本提供了对json格式的支持, type类型就是json.

创建表
create table json_test(
id int unsigned auto_increment primary key,
info json not null
);

插入数据
insert into json_test VALUES (null,'{"name":"jack","age":20,"gender":"male","height":180}');

枚举类型(enum)

理解:

  1. 和C、Java语言中的枚举类型一样
  2. 如果确定某个字段的数据只有那么几个值:如性别字段的可选值只会为:男,女,保密。系统就可以在设定字段的时候规定当前字段只能存在固定的几个值

系统提供了1到2个字节来存储枚举数据:

  1. 通过计算enum列举的具体值来选择实际的存储空间, 如果数据值列表在255以内, 1个字节就够了
  2. 如果超过255但是小于65535, 那么系统采用两个字节来保存。
create table test_enum(
    gender enum('男','女','保密')
);

特性:

  1. 只有插入enum设定的这几个值才能插入成功, 否则的话系统会报错.
  2. 枚举enum的存储原理:实际上字段上所存储的值并不是真正的字符串,而是字符串对应的下标;
  3. 当系统设定枚举类型的时候,会给枚举中每个元素定义一个下标,这个下标规则从1开始Enum(1=>‘男’,2=>’女’,3=>’保密’).
  4. 在MySQL中系统是自动进行类型转换的:如果数据碰到“+、-、*、/”系统就会自动将数据转换成数值:而普通字符串转换成数值为0。例如:Select 字段名 + 0 from 表名.
  5. 既然实际enum字段存储的结果是数值:那么在进行数据插入的时候,就可以使用对应的数值来进行.

bit

用于存储bit值,能够存储比特长度范围为1~64,默认为1

快速理解bit的用法
CREATE TABLE test_bit
(
	id int PRIMARY KEY AUTO_INCREMENT,
	my_bit bit(5)
);

-- MySQL会自动将十进制的4,转为二进制存入。
INSERT INTO test_bit (my_bit) VALUES (4);

-- 如果十进制的数字转换为二进制,所得二进制长度超过了规定的长度,报错
INSERT INTO test_bit (my_bit) VALUES (44); -- 报错: Data truncation: Data too long for column 'my_bit'

-- 直接插入二进制
INSERT INTO test_bit (my_bit) VALUES (b'01011')

SELECT * FROM test_bit;

定义bit时的长度不能超过64:


 

深入分析大众点评 Ajax 接口:直接请求 JSON 数据高效获取评论 大众点评网站采用前后端分离架构,通过Ajax接口动态加载数据。按F12打开开发者工具,切换到Network(网络)面板。实际环境中,我们需要使用Python重现这一加密逻辑。查看请求响应,寻找包含评论数据的JSON接口。参数是大众点评的反爬机制核心,需要特别处理。:尊重网站的robots.txt文件规定。:仅将数据用于合法合规的研究和分析目的。:不侵犯大众点评的商业秘密和知识产权。打开大众点评网站,进入任意商户页面。:对采集到的用户信息进行脱敏处理。:避免对目标网站造成过大负担。 阅读详情

相关推荐

OpenCV透视变换原理与实战:从单应性矩阵到文档矫正

透视变换是计算机视觉中实现平面图像几何校正的基础技术,其核心在于利用单应性矩阵(Homography)建模三维空间到二维图像的射影关系。不同于仿射变换的线性约束,透视变换通过有理函数映射支持任意凸四边形间的非线性变形,天然适配真实场景中的远小近大、平行线汇聚等透视现象。该技术具备确定性强、计算高效、无需训练数据等工程优势,广泛应用于文档扫描矫正、车牌识别预处理、AR贴图对齐及无人机正射影像生成等场景。结合OpenCV的cv2.findHomography与cv2.warpPerspective接口,开发者可

weixin_30873847的博客 653

sql数据类型有哪些

一、 整数数据类型整数数据类型是最常用的数据类型之一。 1、INT (INTEGER)INT (或INTEGER)数据类型存储从-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) 之间的所有正负整数。每个INT 类型的数据按4 个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小。 2、SMALLINTSMALLI

ycc1943的博客 9540

基于立创·天猛星MSPM0G3507的简易PID电机控制入门项目实战

本文详细介绍了基于立创·天猛星MSPM0G3507开发板的简易PID电机控制入门项目实战。从硬件选型、电路设计、PCB布局,到软件编程中的编码器读取、PID算法实现与调参,手把手教你完成一个带屏幕显示的电机定速与定距控制项目,是学习嵌入式开发和经典PID控制算法的绝佳实践。

weixin_42596011的博客 510

SQL Server的数据类型

每种语法都有属于自己的数据类型,数据类型也分很多种。今天我就来好好说说SQL Server的数据类型。 SQL Server包含了Character字符串、Unicode字符串、Binary类型、Number数字类型、Date类型在这些类型中又有很多的数据类型。Character字符串:char(n) 是固定长度的字符串,最多 8,000 个字符;varchar(n) 是可变长度的字符串,最多 8,000 个字符;varchar(max) 是可变长度的字符串,最多 1,073,741,824 个字符;te

weixin_44567571的博客 9329

部署Doris

本文详细介绍了Apache Doris三节点集群(3 FE + 3 BE)的部署流程。首先从硬件配置、系统参数调优等准备工作入手,然后分步说明FE和BE节点的配置方法,包括端口设置、存储路径规划等关键参数。部署完成后提供SQL测试用例和数据一致性验证方法,并总结常见问题解决方案,如节点加入失败、磁盘容量异常等。文档包含完整的命令和配置示例,强调高可用配置和监控建议,为生产环境部署提供实用指导。

神棍之路 1713

鸿蒙OS开机动画背后的秘密:从代码到视觉的完整解析(附源码分析)

本文深入解析了鸿蒙OS开机动画的系统级实现原理。从bootanimation服务的启动配置、与Render Service的协同,到基于VSync信号的帧率同步与绘制流水线,结合OpenHarmony源码进行了逐行解读。文章揭示了其事件驱动的优雅退出机制,并探讨了视频支持、多屏适配等高级特性与定制化可能,为开发者理解鸿蒙图形子系统提供了硬核技术视角。

sony5的博客 971

SqlServer常用数据类型

SqlServer常用数据类型 一、ASCII字符型 String 类型: Ascll字符型:数据类型包括char、varchar、text   数据类型包括char、varchar、textAscll字符数据是由任何汉字、字母、符号和数字任意组合而成的数据。 Unicode字符型:数据类型包括nchar、nvarchar、ntext   为国际通用的字符编码形式,英文字母、数字、汉字、韩...

CourageHe的博客 1万+

51单片机也能玩转信号发生器?手把手教你用DAC0832和LM358输出四种标准波形

本文详细介绍了如何使用51单片机和DAC0832芯片搭配LM358运放,自制低成本信号发生器,实现正弦波、矩形波、三角波和锯齿波四种标准波形的输出。从硬件选型、电路设计到编程实现,手把手教你完成这一实用电子项目,总成本不到50元,适合电子爱好者和学生实践。

weixin_30530939的博客 551

sql2005数据类型及其描述

数据类型 类型 描 述 ...

380

华为OD机试 - 计算数列位置N的值 - 模拟法(Python/JS/C/C++ 新系统 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。输入 M,N 两个数,则按照以下规则形成一个数列。数列的前 M 个元素的值为 1 到 M从 M+1 个元素开始,计算逻辑为如果其前 M 个元素中,存在值相同的元素,则该位置上的数值等于前 M 个数中最大数值与最小数值之和。如果其前 M 个元素中,

学Java,找哪吒 508

使用cmd命令查看电脑是不是翻新机 如何查看自己电脑是不是翻新机

最近pdd啥的百亿补贴啊,什么品牌店啊,很多“假一赔十”,绝对“正品”都蹦出来了,很多人拿到以后,也上网查了各种鉴别方式,包括区分是不是翻新机之类的。本人亲自踩坑“pdd品牌店”,“假一赔十”,“绝对正品”等店铺,跟大家分享一下我得鉴别经验(说道分享鉴别经验了,大家也就不用好奇了,我肯定是买到翻新机了,mmp)。 第一步:准备好手机,开始录屏,没有完整的拆箱视频,可能不容易退货退款 第二步:拆箱,查看屏幕划痕(用手机闪光灯看,要不然看不清),然后查看屏幕有没有被擦过的痕迹 第三步:查看USB孔等插口有没有划

weixin_39417324的博客 1万+

MySQL中的Decimal数据类型用法详解

Decimal是一种精确数字类型,通常用于存储货币或其他对精度要求较高的数据。相对于浮点数类型,Decimal类型更适合处理精确计算,因为它不会有浮点数舍入误差。

聚娃科技开发者博客 3049

在 ABAP 环境中构建自定义健康监控指标:面向 SAP Cloud ALM 与 SAP Focused Run 的完整实践

本文介绍了在ABAP环境中开发自定义健康监控指标的方法。主要内容包括:1)标准监控指标的不足,如无法反映业务应用层面的问题;2)自定义监控架构,通过metric provider定义指标,由采集作业周期性获取数据并存储;3)核心实现技术,包括IF_GSM_API_PROVIDER接口和三个关键方法;4)指标从ABAP推送到SAP Cloud ALM/Focused Run的完整流程;5)开发实践步骤,从业务分析到具体实现。该方案可帮助团队监控业务关键指标,提升系统运维能力。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 262

【MySQL】CAST()在MySQL中的用法以及其他常用的数据类型转换函数

这在处理不同类型的数据时非常有用,比如将字符串转换为数字,或者将浮点数转换为整数等。函数在数据处理和转换中非常有用,尤其是在数据导入和报告生成时,可以确保数据类型的正确性和一致性。可以用于将字符串转换为日期时间,或者在转换时指定不同的字符集。: 返回参数的符号,-1 表示负数,0 表示零,1 表示正数。这些函数可以在不同的场景下使用,以实现数据类型的转换和处理。类似,但语法略有不同,并且可以用于转换为不同的数据类型。指定了小数点前的位数为 10,小数点后的位数为 2。: 将整数转换为二进制字符串。

m0_67401134的博客 1740

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

MySQL基本用法

MySQL基本语法,增删改查,数据类型,导入导出csv文件

北辰的博客 1136

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

从0开始学习mysql 第三课:MySQL简单建表和基本数据类型

以上练习会帮助你实践创建表的语句,并理解字段类型和属性的选择对于设计数据库的重要性。的表,包含ID、姓名、年龄、薪水、加入日期和最后更新时间字段。的表,包含个人ID、名字、姓氏、出生日期、性别和会员开始日期。预期输出:创建一个名为。预期输出:创建一个名为。

weixin_44738632的博客 447

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

MySQL的结构介绍和语句基本用法

MySQL的结构介绍和语句基本用法数据库的作用和数据库的种类什么是数据库作用及常见的数据库常见数据库表引擎MySQL基础指令库和表的操作数据库数据类型表字段约束数据的CURD(增删查改)字符集数据库的导出导入权限管理 数据库的作用和数据库的种类 什么是数据库 数据库(Database)就是按照数据结构来组织,存储和管理数据的仓库 专业的数据库就是管理数据的软件 作用及常见的数据库 对数据进行持久化的保存 方便数据的存储和查询,速度快,安全,方便 可以处理并发访问(操作同一个数据有先后,操作不同数据互不干扰的

sclieshare的博客 507

MySQL中between and的基本用法

是支持数值查询的,当字段类型是数值时 between A and B等同于>=A and <=B。not between and表示指定范围之外的值。not between A and B相当于 < A or >B。从上面示例可以看出,还有两条数据时间是在2024-10-30日范围内,但是并没有被查询出来。当between and用于数值查询时,常用于字段类型为int、decimal等。当查询时间范围时要注意可能会遇到时间精度问题,具体参考下面示例。示例:查询年龄不在24到25之间的用户。

m0_74825409的博客 600

mysql数据库优化命令_如何利用MySQL数据库命令优化表的数据类型

MySQL数据库表需要使用何种数据类型,是要根据应用来确定的;在MySQL数据库中,可以使用procedure analyse函数来实现。下面利用一个具体实例来说明这个函数的用法,操作如下:1.第一步,首先创建数据库表t_tree,并查看表结构,命令如下:create table t_tree(id int(4),tid int(4),tname varchar(20),tdesc varchar...

weixin_35779220的博客 163
上一篇: 【JDBC】快速入门“连接池”技术
下一篇: Hello, Spring5
ALGO阿狗
博客等级 码龄9年 64粉丝 149原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值