目录
1.整数类型
(1)int
示例:假设创建一个用户表,存储用户的年龄。年龄通常是一个整数,使用int类型很合适。
create table users (
user_id int primary key,
user_age int
);
(2)tinyint
示例:用于存储一个布尔值类型的数据,比如表示用户是否是会员,1 代表是会员,0 代表不是会员。
create table users (
user_id int primary key,
is_member tinyint
);
(3)smallint
示例:如果有一个商店商品分类表,分类编号范围较小,smallint就比较合适。
create table product_categories (
category_id smallint primary key,
category_name varchar(50)
);
(4)mediumint
示例:在一个游戏道具表中,道具编号可以使用mediumint存储。
create table game_items (
item_id mediumint primary key,
item_name varchar(50)
);
(5)bigint
示例:对于大型网站的用户表,用户数量庞大,用户 ID 可能需要bigint类型来存储足够大的数字。
create table website_users (
user_id bigint primary key,
user_name varchar(50)
);
2.浮点类型和定点类型
(1)float
示例:在一个产品表中存储产品价格,价格可能带有小数,float可以满足需求。
create table products (
product_id int primary key,
product_price float(10, 2)
);
(2)double
示例:如果要存储科学实验中的精确数据,比如物体的密度,对精度要求较高,double比较合适。
create table experiment_data (
data_id int primary key,
density double(5, 2)
);
(3)decimal(或dec)
示例:在财务系统的账单表中,存储金额数据需要精确计算,decimal是很好的选择。
create table bills (
bill_id int primary key,
bill_amount decimal(8, 2)
);
3.日期和时间类型
(1)date
示例:在员工信息表中,存储员工生日。
create table employees (
employee_id int primary key,
birth_date date
);
(2)time
示例:在健身房课程表中,记录课程的开始时间。
create table gym_classes (
class_id int primary key,
start_time time
);
(3)datetime
示例:在电商订单表中,记录订单的下单时间。
create table orders (
order_id int primary key,
order_date datetime
);
(4)timestamp
示例:在一个网站内容更新记录表中,记录内容最后更新的时间,timestamp会根据时区等因素自动更新。
create table content_updates (
update_id int primary key,
last_update timestamp
);
4.字符串类型
(1)char
示例:在身份证信息表中,身份证号码长度固定为 18 位,使用char类型。
create table id_cards (
card_id int primary key,
id_number char(18)
);
(2)varchar
示例:在用户表中存储用户姓名,姓名长度不固定,varchar类型可以节省空间。
create table users (
user_id int primary key,
user_name varchar(50)
);
(3)text
示例:在博客文章表中存储文章内容,文章内容一般较长,使用text类型。
create table blog_articles (
article_id int primary key,
article_content text
);
(4)blob
示例:在图片存储表中,存储图片的二进制数据,使用blob类型。
create table images (
image_id int primary key,
image_data blob
);
5.枚举类型(enum)
定义和特点:
枚举类型是一个字符串对象,其值从一个允许值的列表中选取。这个列表在定义列时指定,并且在插入数据时,该列的值必须是这个列表中的一个成员。
语法:
column_name enum('value1', 'value2', 'value3',...)
例子:
假设创建一个员工表,其中有一个列用于存储员工的性别。性别只有两种可能的值(男或女),可以使用枚举类型。
create table employees (
employee_id int primary key,
employee_name varchar(50),
gender enum('男', '女')
);
在插入数据时,只能插入男或者女这两个值中的一个。例如:
insert into employees (employee_id, employee_name, gender)
values (1, '张三', '男');
如果尝试插入一个不在枚举列表中的值,例如insert into employees (employee_id, employee_name, gender) values (2, '李四', '未知');,就会出现错误。
6.集合类型(set)
定义和特点:
集合类型可以包含零个或多个值,这些值来自一个允许值的列表。与枚举类型不同的是,集合类型的列可以存储多个选定的值。
语法:
column_name set('value1', 'value2', 'value3',...)
例子:
假设有一个兴趣爱好表,用于记录用户的兴趣爱好。一个用户可以有多种兴趣爱好,这些兴趣爱好是从一个预定义的列表中选择的。
create table hobbies (
user_id int primary key,
hobby set('阅读', '运动', '音乐', '绘画', '编程')
);
在插入数据时,可以插入一个或多个预定义的值。例如:
insert into hobbies (user_id, hobby)
values (1, '阅读,运动');
也可以插入单个值,比如insert into hobbies (user_id, hobby) values (2, '音乐');。
查询数据时,可以使用函数来检查集合中的值。例如,要查询有阅读爱好的用户,可以使用SELECT * FROM hobbies WHERE FIND_IN_SET('阅读', hobby);。