温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

数据库布尔值怎么用

发布时间:2026-10-08 02:59:04 来源:亿速云 阅读:94 作者:小樊 栏目:数据库

在数据库中,“布尔值(Boolean)”通常表示真/假、是/否、存在/不存在这类状态。不同数据库对布尔值的支持和写法略有差异,下面按常见情况给你讲清楚。


一、布尔值的基本概念

布尔值只有两个状态:

  • TRUE(真 / 是)
  • FALSE(假 / 否)

在业务里常见用途:

  • 是否删除(is_deleted)
  • 是否启用(is_enabled)
  • 是否管理员(is_admin)

二、不同数据库中的布尔值用法

1. MySQL

MySQL 没有真正的布尔类型,一般用 TINYINT(1) 模拟:

  • 1 表示 TRUE
  • 0 表示 FALSE
CREATE TABLE user (
  id INT PRIMARY KEY,
  is_admin TINYINT(1) DEFAULT 0
);

插入数据:

INSERT INTO user (id, is_admin) VALUES (1, 1);
INSERT INTO user (id, is_admin) VALUES (2, 0);

查询:

SELECT * FROM user WHERE is_admin = 1;

✅ MySQL 也支持写 TRUE / FALSE,但底层还是 1 / 0


2. PostgreSQL(推荐)

PostgreSQL 原生支持 BOOLEAN

CREATE TABLE user (
  id SERIAL PRIMARY KEY,
  is_admin BOOLEAN DEFAULT FALSE
);

插入:

INSERT INTO user (is_admin) VALUES (TRUE);
INSERT INTO user (is_admin) VALUES (FALSE);

查询:

SELECT * FROM user WHERE is_admin = TRUE;

3. SQL Server

使用 BIT 类型:

  • 1 = TRUE
  • 0 = FALSE
  • NULL 也可能存在
CREATE TABLE user (
  id INT PRIMARY KEY,
  is_admin BIT
);
INSERT INTO user VALUES (1, 1);

4. SQLite

SQLite 布尔本质是:

  • 1 = true
  • 0 = false
CREATE TABLE user (
  id INTEGER,
  is_admin INTEGER
);

三、在代码里怎么用(示例)

Java(JDBC)

PreparedStatement ps = conn.prepareStatement(
  "INSERT INTO user (is_admin) VALUES (?)"
);
ps.setBoolean(1, true);

Python(SQLAlchemy)

class User(Base):
    __tablename__ = 'user'
    is_admin = Column(Boolean, default=False)

四、常见注意事项

  1. 不要用字符串 'true' / 'false' 存布尔
  2. 默认值建议明确:
    DEFAULT FALSE
    
  3. 查询时尽量写清楚:
    WHERE is_deleted = FALSE
    
    而不是:
    WHERE is_deleted = 0
    
    (可读性和跨数据库兼容性更好)

如果你告诉我:

  • 用的是哪种数据库(MySQL / PostgreSQL / Oracle 等)
  • 是建表、查询,还是代码里用

我可以直接给你针对你场景的示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手