博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQLite 约束
阅读量:5918 次
发布时间:2019-06-19

本文共 1651 字,大约阅读时间需要 5 分钟。

 

约束是在表的数据列上强制执行的规则。这些是用来限制可以插入到表中的数据类型。这确保了数据库中数据的准确性和可靠性。

约束可以是列级或表级。列级约束仅适用于列,表级约束被应用到整个表。

以下是在 SQLite 中常用的约束。

  • NOT NULL 约束:确保某列不能有 NULL 值。

  • DEFAULT 约束:当某列没有指定值时,为该列提供默认值。

  • UNIQUE 约束:确保某列中的所有值是不同的。

  • PRIMARY Key 约束:唯一标识数据库表中的各行/记录。

  • CHECK 约束:CHECK 约束确保某列中的所有值满足一定条件

CREATE TABLE COMPANY(   ID INT PRIMARY KEY     NOT NULL,   NAME           TEXT    NOT NULL,   AGE            INT     NOT NULL,   ADDRESS        CHAR(50),   SALARY         REAL);

如上NOT NULL约束,创建表COMPANY,要求ID,NAME,AGE字段不能为空。

CREATE TABLE COMPANY_DEFAULT(   ID INT PRIMARY KEY     NOT NULL,   NAME           TEXT    NOT NULL,   AGE            INT     NOT NULL,   ADDRESS        CHAR(50),   SALARY         REAL    DEFAULT 50000.00);

如上DEFAULT约束,默认SALARY为50000.00。

CREATE TABLE COMPANY(   ID INT PRIMARY KEY     NOT NULL,   NAME           TEXT    NOT NULL,   AGE            INT     NOT NULL UNIQUE,   ADDRESS        CHAR(50),   SALARY         REAL    DEFAULT 50000.00);

如上UNIQUE约束,设置AGE字段唯一,表里面不能出现两个相同年龄的内容,并且不能为空。

CREATE TABLE COMPANY(   ID INT PRIMARY KEY     NOT NULL,   NAME           TEXT    NOT NULL,   AGE            INT     NOT NULL,   ADDRESS        CHAR(50),   SALARY         REAL);

如上PRIMARY约束,设置ID为主键,用来唯一标识数据库表中的各行/记录。

注意:

我们使用主键来引用表中的行。可通过把主键设置为其他表的外键,来创建表之间的关系。由于"长期存在编码监督",在 SQLite 中,主键可以是 NULL,这是与其他数据库不同的地方。

主键是表中的一个字段,唯一标识数据库表中的各行/记录。主键必须包含唯一值。主键列不能有 NULL 值

一个表只能有一个主键,它可以由一个或多个字段组成。当多个字段作为主键,它们被称为复合键

如果一个表在任何字段上定义了一个主键,那么在这些字段上不能有两个记录具有相同的值。

CREATE TABLE COMPANY3(   ID INT PRIMARY KEY     NOT NULL,   NAME           TEXT    NOT NULL,   AGE            INT     NOT NULL,   ADDRESS        CHAR(50),   SALARY         REAL    CHECK(SALARY > 0));

如上CHECK约束来限制工资不能小于等于0,必须大于0。

转载地址:http://enfvx.baihongyu.com/

你可能感兴趣的文章
Java与C++之JNI编程小结
查看>>
dubbo-admin部署在windows下tomcat报错的问题
查看>>
(绿色免安装)IDEA 2017的插件mybatis plugin
查看>>
;!function(){}();的含义
查看>>
对于升级ubuntu libstdc++到GLIBCXX_3.4.17出错问题
查看>>
CSS定位
查看>>
Android Notification
查看>>
菜鸟学习CCNA-OSPF
查看>>
通过GlusterFS黏合多节点SSD剩余空间
查看>>
Confluence 6 使用 JConsole 监控本地 Confluence
查看>>
商店销售某一商品,商店每天公布统一的折扣(discount)
查看>>
使用JCIFS获取远程共享文件
查看>>
ASP.NET Web API中参数的传递方式
查看>>
U盘量产--多系统安装
查看>>
分布列表实现的简单路由过滤
查看>>
为Cacti增加Monitor、Thold插件
查看>>
我的友情链接
查看>>
kali2更新源
查看>>
通过自定义注解,和Spring 的aop 实现插入业务日志的功能
查看>>
定位、读取手机状态等权限在6.0系统不管用
查看>>