Administrator
发布于 2025-09-04 / 2 阅读
0
0

MySQL第3课:整数类型

MySQL 的数据类型是数据库设计的核心基础,合理选择类型直接影响存储效率、查询性能和数据的准确性。

一、数据是什么

  • 数据的本质是信息。

  • 数据是程序运行过程中操作的对象(信息)。

  • 程序的运行是离不开数据的。

数据到底是什么?具象的说:

  • 兰州拉面:用于描述说明传递信息的文本就是数据。

  • 9.90:用来计算的数字也是数据

  • 2024-09-01: 用固定格式表示的日期是数据。

结论:数据自身具有不同的特点,也就是说数据是有类型之分。

二、数据类型是什么

数据类型就是数据的分类。

  • 数据自身具有不同特点,根据这些特点对数据进行分类。

  • 数据类型不同,处理方式不同,以便提升程序运行效率。

MySQL 提供了丰富的数据类型,常见的数据类型:

  • 字符串类型:用来表示文本。字符串必须要使用单引号或双引号包裹。

  • 整数类型:用来表示可以计算的整数数字。如果一个数字不能用来计算,就不能用整数类型表示,比如手机号

  • 日期类型:用来存储日期。

三、整数类型

1. 整数类型

类型

字节

有符号范围

无符号范围

TINYINT

1

-128 ~ 127

0 ~ 255 年龄、状态、等级

SMALLINT

2

-32,768 ~ 32,767

0 ~ 65,535 数量、分类

MEDIUMINT

3

-8,388,608 ~ 8,388,607

0 ~ 16,777,215 库存、中等数值

INT/INTEGER

4

-2,147,483,648 ~ 2,147,483,647

0 ~ 4,294,967,295 ID、价格、主键

BIGINT

8

-2^63 ~ 2^63-1

0 ~ 2^64-1 大数值、积分

示例

CREATE TABLE users (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    age TINYINT UNSIGNED
);

练习题

练习题 1:学生基本信息表

题目:创建一个 students 表,包含以下字段:

  • id:主键,自动递增

  • student_no:学号,整数

  • age:年龄,小整数

  • grade:年级,小整数

  • class:班级,小整数

-- 参考答案
CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    student_no INT,
    age TINYINT,
    grade TINYINT,
    class TINYINT
);

练习题 2:商品信息表

题目:创建一个 products 表,包含以下字段:

  • product_id:商品ID,自动递增主键

  • category_id:分类ID,整数

  • price:价格(单位:分),整数

  • stock:库存数量,中等整数

  • sales:销售数量,整数

-- 参考答案
CREATE TABLE products (
    product_id INT AUTO_INCREMENT PRIMARY KEY,
    category_id INT,
    price INT,
    stock MEDIUMINT,
    sales INT
);

练习题 3:用户信息表

题目:创建一个 users 表,包含以下字段:

  • user_id:用户ID,自动递增主键

  • level:用户等级,小整数

  • points:用户积分,大整数

  • login_times:登录次数,整数

  • status:状态,小整数

-- 参考答案
CREATE TABLE users (
    user_id INT AUTO_INCREMENT PRIMARY KEY,
    level TINYINT,
    points BIGINT,
    login_times INT,
    status TINYINT
);

练习题 4:订单表

题目:创建一个 orders 表,包含以下字段:

  • order_id:订单ID,自动递增主键

  • user_id:用户ID,整数

  • product_count:商品数量,小整数

  • order_status:订单状态,小整数

  • total_amount:总金额,整数

-- 参考答案
CREATE TABLE orders (
    order_id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    product_count SMALLINT,
    order_status TINYINT,
    total_amount INT
);

练习题 5:系统日志表

题目:创建一个 system_logs 表,包含以下字段:

  • log_id:日志ID,自动递增主键

  • user_id:用户ID,整数

  • action_type:操作类型,小整数

  • error_code:错误代码,小整数

  • timestamp:时间戳,整数

-- 参考答案
CREATE TABLE system_logs (
    log_id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    action_type TINYINT,
    error_code TINYINT,
    timestamp INT
);


评论