logo图片
MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL INT

MySQL中的INT是 整数数据类型,它是一个整数。 它允许数字不带小数部分(没有小数部分)。例如,1、5,-10是整数类型,而1.5、5/7不能是整数。请注意,整数值可以是 正,负或零。我们可以在各种算术运算中使用此数据类型,例如加法(+),减法(-),除法(/),乘法(*)和模(%)。
通常,MySQL支持所有 <一种名为integer或int和smallint的href="https: www.lidihuo.com sql-tutorial"> SQL 标准整数类型。除了对标准整数类型的扩展之外,它还提供TINYINT MEDIUMINT和BIGINT。
在 MySQL 中的INT数据类型a>可以 签名未签名。下表说明了每种整数类型的特征,包括每种整数类型所需的存储空间和范围(最小值和最大值)。
类型 字节 最小值 最大值
TINIINT 1 -128 127
SMALLINT 2 -32768 32767
MEDIUMINT 3 -8388608 8388607
INT 4 -2147483648 2147483647
BIGINT 8 -9223372036854775808 9223372036854775807
我们将要使用的数据类型的选择取决于我们将要存储的数据类型。例如,TINYINT数据类型足以满足一个班级最多可容纳35人的学生人数。但是,如果需要在一个国家/地区存储每个人的联系电话,则必须选择INT或BIGINT数据类型。 只要有可能,最好选择最小的数据类型,因为它会最小化数据库的大小

MySQL INT数据类型示例

让我们了解如何使用MySQL中的各种示例来处理整数数据类型。

1、列的MySQL INT

我们通常将其用作表的主键,因为整数数据类型表示确切的数字。此外,我们可以在此列中指定AUTO_INCREMENT属性。
如果在INT AUTO_INCREMENT列中插入 NULL 或0,则该列的值将设置为下一个序列值从1开始。而且,如果我们在INT AUTO_INCREMENT列中插入一个非null值,则该列会接受该值,并且其顺序会重置为插入值的下一个值。
让我们看一下实际的例子。首先,创建一个名为 student 的新表,该表具有一个整数列作为主键和自动递增属性:
mysql> CREATE TABLE student (
    stud_roll_num int AUTO_INCREMENT PRIMARY KEY,
    stud_name VARCHAR(100),
    branch VARCHAR(100)
);
在创建具有 创建表的表时,我们可以使用INT或INTEGER数据类型。声明,因为它们可以互换。由于我们在上面的查询中使用了AUTO_INCREMENT属性,因此每当我们向学生表中插入新行时, stud_roll_num 列的值就会增加1、
接下来,执行下面的INSERT语句将在学生表中插入三行:
mysql> INSERT INTO 
    student (stud_name, branch)
VALUES
    ('Peter', 'Computer Science'),
    ('David', 'Civil Engineering'),
    ('Stephen', 'Aeronautical Engineering');
现在,我们需要执行SELECT语句以查询学生表中的数据:
mysql> SELECT * FROM student;
mysql> SELECT * FROM student;
MySQL INT
同样,在其中插入新行我们将 明确指定stud_roll_num列的值:
mysql> INSERT INTO 
    student (stud_roll_num, stud_name, branch)
VALUES
      (10, 'Gorge', 'Mechanical Engineering');
由于stud_roll_num列的当前值为10,因此下一个序列将重置为11、执行以下语句,其中我们将不指定stud_roll_num:
mysql> INSERT INTO 
    student (stud_name, branch)
VALUES
      ('John', 'Civil Engineering');
最后,使用 SELECT语句再次查询学生表的数据。
MySQL INT

2、 MySQL INT UNSIGNED示例

MySQL中的无符号整数仅存储正数。如果我们尝试将负数存储在无符号整数中,则会出现错误。我们可以通过创建一个新的名为 "分支" 的表来理解它,该表的列为 total_students ,其中存储无符号整数数据类型。
CREATE TABLE branches (
    branch_id int AUTO_INCREMENT PRIMARY KEY,
    branch_name VARCHAR(255) NOT null,
    total_students int UNSIGNED
);
接下来,我们需要使用以下语句将数据插入该表:
INSERT INTO branches (branch_name, total_students)
VALUES ('Computer Science', 150),
('Mechanical Engineering', 100);
上面的语句按预期工作,因为我们没有在total_students列中指定任何负数。参见以下输出:
MySQL INT
同样,我们将尝试在total_students中存储一个负数列:
INSERT INTO branches (branch_name, total_students)
VALUES ('Civil Engineering',-100);
在这种情况下,MySQL产生以下错误:
MySQL INT

具有显示宽度属性的MySQL INT

MySQL支持扩展,该扩展允许我们指定显示宽度以及整数数据类型。显示宽度在该类型的基本关键字之后的括号内包裹。 例如,INT(4)指定显示宽度为四位数字的整数。
请注意,此属性不能控制可设置的值范围。存储在列中。我们主要在应用程序中使用此属性来格式化整数值。 MySQL将其包括为返回结果集的元数据。
例如,如果我们用SMALLINT(3)指定了该列,则它的值范围为-32768到32767、超出范围的值可以使用三位以上的数字完整显示。

具有ZEROFILL属性的MySQL INT

MySQL提供了非标准的ZEROFILL属性,可以将其结合使用显示宽度属性。在这种情况下,MySQL用零替换空格的填充。让我们借助一个示例来理解:
首先,我们将使用以下语句创建一个名为numeric_tests的新表:
mysql> CREATE TABLE numeric_tests (
    test_id int AUTO_INCREMENT PRIMARY KEY,
    val1 INT(2) ZEROFILL,
    val2 INT(3) ZEROFILL,
    val3 INT(5) ZEROFILL
); 
接下来,我们将使用以下语句将数据插入表中:
mysql> INSERT INTO numeric_tests (val1,val2,val3)
VALUES(1,5,8);
现在,我们将使用SELECT语句查询表的数据:
mysql> SELECT * FROM numeric_tests;
我们将获得以下屏幕截图的结果:
MySQL INT
在上面的输出中,我们可以看到val1列的显示宽度为2,包括ZEROFILL。在这里,我们插入了它的值1;因此,我们将在输出中看到01,MySQL将第一个空格替换为零(0)。
val2 的显示为3,包括ZEROFILL。在这里,我们插入了它的值5;因此,我们将在列中看到005,而MySQL用两个零替换前导空格。
val3 的显示宽度为5,包括ZEROFILL(插入)其值为8;因此,我们将在该列中看到00008,MySQL将在输出中数字的开头用四个零(0000)替换前导空格。
注意: 如果我们在整数列中使用ZEROFILL属性,MySQL将自动在此列中添加UNSIGNED属性。

昵称: 邮箱:
Copyright © 2020 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4