Mysql之定义表(table)的数据类型

目录

1.整数类型

(1)int

(2)tinyint

(3)smallint

(4)mediumint

(5)bigint

2.浮点类型和定点类型

(1)float

(2)double

(3)decimal(或dec)

3.日期和时间类型

(1)date

(2)time

(3)datetime

(4)timestamp

4.字符串类型

(1)char

(2)varchar

(3)text

(4)blob


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值