Skip to main content

任务二 MySQL 数据类型

考点​

掌握MySQL的常用数据类型:数字类型、字符串类型、日期和时间类型等;

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 );

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
);