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

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

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.sczhlp.com/news/170383/

相关文章:

  • 文件提供的基本操作
  • 福州网络营销网站新年电子贺卡免费制作软件app
  • 有没关于做动画设计师的网站郑州金水区做网站公司
  • 群辉服务器做网站网站的页脚
  • 网站做彩票犯法吗普通企业网站建设
  • 网站 建设html5创意网站
  • php实战做网站视频教程不会被禁止访问的浏览器
  • 做国际网站有哪些电子商务网站开发是什么
  • 北京做商铺的网站wordpress 去除下划线
  • 成都哪家网站建设强互动平台源码
  • 深圳营销型网站建设制作商赣州章贡区医保局电话
  • 网站竞价推广哪个好深圳搜索竞价账户托管
  • 进出口网站贸易平台有哪些创建网站 优帮云
  • 崇明专业做网站中国防疫政策
  • 做网站打广告犯法吗wordpress自动视频播放器
  • 模板网站定制网站深圳市seo网络推广哪家好
  • 微网站建设比较全面的是做网站和淘宝美工 最低电脑
  • 成都高薪南网站建设免费做网站软件视频
  • 增城高端定制网站建设wordpress程序
  • 百度网站优化外包app网站多少钱
  • 黄骅网站wordpress页头导航类目没有链接
  • 网站项目的推广.net做中英文网站
  • asp网站制作实例教程清远网站建设推广
  • 星光影视园网站建设案例做网站常用软件
  • 网站建设规划书结构网站建设发展前景
  • 那些网站是php做的网址之家hao123主页
  • 上海网站建设公司哪个好怎样向顾客电销网站建设
  • 详细介绍:关于ios点击分享自动复制到粘贴板的问题
  • 迈向人机价值共生文明:AI元人文范式下的演化架构与协同治理
  • 10.6