深入解析:MySQL(50)如何使用UNSIGNED属性?

news/2025/10/6 19:44:52/文章来源:https://www.cnblogs.com/lxjshuju/p/19127853

MySQL 中,UNSIGNED 属性用于数值数据类型(如 TINYINTSMALLINTMEDIUMINTINTBIGINT),表示该列只能存储非负整数。使用 UNSIGNED 属性可以有效地扩展列的正整数范围,因为它不需要为负数保留空间。

1. 定义与用途

2. 范围

不同数据类型的 UNSIGNED 和未使用 UNSIGNED 时的取值范围如下:

3. 示例代码

以下是一些示例代码,展示了如何使用 UNSIGNED 属性创建表,并插入和检索数据。

创建表

创建一个包含 UNSIGNED 属性的表:

CREATE
DATABASE test_unsigned_db;
USE test_unsigned_db;
CREATE
TABLE inventory (
item_id INT
UNSIGNED
AUTO_INCREMENT
PRIMARY
KEY
,
item_name VARCHAR(50
) NOT NULL
,
quantity INT
UNSIGNED
DEFAULT 0 -- 无符号整数,默认值为0
)
;
插入数据

插入一些数据:

-- 插入数据
INSERT
INTO inventory (item_name, quantity)
VALUES
('Laptop'
, 50
)
,
('Smartphone'
, 100
)
,
('Tablet'
, 30
)
;
检索数据

检索数据:

SELECT item_id, item_name, quantity FROM inventory;

检索结果:

+---------+-------------+----------+
| item_id | item_name   | quantity |
+---------+-------------+----------+
|       1 | Laptop      |       50 |
|       2 | Smartphone  |      100 |
|       3 | Tablet      |       30 |
+---------+-------------+----------+
插入负数数据(将失败)

尝试插入负数数据:

-- 尝试插入负数数据,将失败
INSERT
INTO inventory (item_name, quantity)
VALUES
('Camera'
, -10
)
;

执行结果:

ERROR 1264 (22003): Out of range value for column 'quantity' at row 1

4. 更复杂的示例:用户积分系统

以下是一个更复杂的示例,展示了如何在用户积分系统中使用 UNSIGNED 属性。

创建用户积分表
CREATE
TABLE user_points (
user_id INT
UNSIGNED
AUTO_INCREMENT
PRIMARY
KEY
,
username VARCHAR(50
) NOT NULL
,
points BIGINT
UNSIGNED
DEFAULT 0 -- 无符号大整数,默认值为0
)
;
插入用户数据

插入一些用户数据:

-- 插入用户数据
INSERT
INTO user_points (username, points)
VALUES
('john_doe'
, 1000
)
,
('jane_smith'
, 1500
)
,
('alice_jones'
, 2000
)
;
检索用户数据

检索用户数据:

SELECT user_id, username, points FROM user_points;

检索结果:

+---------+-------------+--------+
| user_id | username    | points |
+---------+-------------+--------+
|       1 | john_doe    |   1000 |
|       2 | jane_smith  |   1500 |
|       3 | alice_jones |   2000 |
+---------+-------------+--------+
尝试插入负数积分(将失败)

尝试插入负数积分:

-- 尝试插入负数积分,将失败
INSERT
INTO user_points (username, points)
VALUES
('tom_hanks'
, -500
)
;

执行结果:

ERROR 1264 (22003): Out of range value for column 'points' at row 1

5. 注意事项

小结

通过理解 UNSIGNED 属性的用途和特点,可以更好地设计和优化数据库表,确保数据插入操作符合业务需求。上述示例展示了如何在实际应用中使用 UNSIGNED 属性设计数据库表,并插入和检索数据。

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

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

相关文章

网站建设公司新员工培训ppt重庆是哪个省

条款15: 让operator返回*this的引用 c的设计者bjarne stroustrup想使用户自定义类型尽可能地和固定类型的工作方式相似。所以有重载运算符,类型转换函数、拷贝赋值、拷贝构造函数等。 类c中,缺省版本的operator函数具有如下形式: c& c::…

衡水企业网站河北建设集团股份有限公司

背景 众所周知,目前群晖DSM7中使用Synology Photos做照片管理时,个人照片只能默认索引 /home/Photos 文件夹,但是如果个人照片很多或者用户很多时,共享文件夹/homes 所在的存储空间就会不够用 当然,如果你的存…

yarn、pnpm、npm - 指南

yarn、pnpm、npm - 指南2025-10-06 19:32 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fon…

网站流量多少做网盟工程招标平台

SqlSessionFactoryBuilder.build创建SqlSessionFactory(粗略走一步流程) 看完上篇文章后,你对mybatis应该有个大概的了解了,那么我们知道new SqlSessionFactoryBuilder().build是框架的入口,我们到SqlSessionFactoryB…

基于Linux环境docker封装exe

基于Linux环境docker封装exepre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco",…

迈向人机价值共生文明:AI元人文范式下的演化架构与协同治理

迈向人机价值共生文明:AI元人文范式下的演化架构与协同治理 引言:超越价值对齐的必然之路 在人工智能发展的当前阶段,我们正面临一个根本性困境:传统“价值对齐”范式试图通过预设规则或优化目标函数将人类价值“灌…

文件存储空间管理

存储空间的划分与初始化 文件卷可以由多个文件磁盘组成 空闲表法 记录了每一个空闲区局的起始地址和结束地址 分配:与内存管理中的动态分区分配很类似,为一个文件分配连续的存储空间,同样可以有首次适应,最佳适应,…

ubuntu之开机自启frpc - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

详细介绍:关于ios点击分享自动复制到粘贴板的问题

详细介绍:关于ios点击分享自动复制到粘贴板的问题pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

电子商务网站建设百度文库wordpress获取页面的当前位置

DOS常见命令 DOS是什么如何打开DOScmd常见的命令集合 DOS是什么 DOC命令是我们浏览器中的终端 ,但不同的是我们打开软件的方式 使用的是点击文件图标,点击图标的同时 我们也相当于使用一个命令 只是我们看不见而已 在电脑上操作的时候 通常都是使用命令…

新一代数据平台替代传统大数据技术栈

初创公司Definite获得1000万美元种子轮融资,推出全栈式AI原生数据平台,旨在替代笨重的大数据仓库、连接器和商业智能工具,提供更简单高效的数据分析解决方案。初创公司Definite获资1000万美元,旨在替代笨重大数据技…

攻击者如何绕过macOS内置安全防护机制

本文深入解析macOS核心安全机制(Keychain、SIP、TCC、文件隔离和Gatekeeper)的工作原理,展示攻击者常用的绕过技术,并提供基于Sigma规则的检测方案,帮助提升macOS系统安全防护能力。攻击者如何适应macOS内置防护机…

Python趣学篇:交互式词云生成器(jieba + Tkinter + WordCloud等) - 指南

Python趣学篇:交互式词云生成器(jieba + Tkinter + WordCloud等) - 指南2025-10-06 19:17 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x:…

做图表的网站做新媒体的小说网站

计算机视觉三大国际顶级会议之一的 ECCV 2020 已经召开。今年 ECCV 共收到有效投稿 5025 篇,是 ECCV 2018 论文投稿数量的二倍还要多,接收论文1361 篇,接收率为 27%,相比上届会议下降了约 5%。在接收论文中,oral论文数…

一台主机做两个网站网站建设企业需要准备资料

CORS(Cross-Origin Resource Sharing)"跨域资源共享",是一个W3C标准,它允许浏览器向跨域服务器发送Ajax请求,打破了Ajax只能访问本站内的资源限制,CORS在很多地方都有被使用,微信支付的JS支付就是通过JS向微…

潍坊网站制作发怎么做免费网站教程

mybatis-plus 是一款 Mybatis 动态 SQL 自动注入 Mybatis 增删改查 CRUD 操作中间件, 减少你的开发周期优化动态维护 XML 实体字段,无入侵全方位 ORM 辅助层让您拥有更多时间吃鸡、陪家人、陪朋友。更新日志升级 mybatis 到 3.5.0 版本升级 mybatis-spri…

详细介绍:JVM——从JIT到AOT:JVM编译器的云原生演进之路

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

deep-agents

deep-agents https://docs.langchain.com/labs/deep-agents/overviewhttps://www.bilibili.com/video/BV1ZFYozsEat?spm_id_from=333.788.videopod.sections&vd_source=57e261300f39bf692de396b55bf8c41b https:/…

在A列连续且相等行的最后插入空行,并求和

Sub 第一步插入空行() Set ws = ActiveSheetlastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).RowFor i = lastRow To 3 Step -1If ws.Cells(i, 1).Value <> ws.Cells(i - 1, 1).Value Thenws.Ro…

10.6集训改错

P10312 [SHUPC 2024] 栅栏密码 可以暴力模拟,由于不管怎么变化,在密文中的位置都是不变的所以得到长度之后可以预处理密文在图中的位置,反推得到明文