SQLite – CONSTRAINTS(约束)

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

级或表级约束可以列。列级约束是仅适用于一个列在表级约束应用于整个表。    

以下是常用的约束在SQLite。

  • NOT NULL Constraint: 确保列不能为空值。
  • DEFAULT Constraint : 提供了一个列的默认值时没有指定。
  • UNIQUE Constraint: 确保列中的所有值是不同的。
  • PRIMARY Key: 惟一地标识每个行/记录在一个数据库表中。
  • CHECK Constraint: 检查约束确保列中的所有值满足某些条件。

Not Null Constraint约束

默认情况下,一个列可以容纳NULL值。如果你不想要一个列有一个空值,那么您需要定义这些约束在这列指定NULL列现在不允许。    

空不等于没有数据,相反,它代表了未知数据。

例子:

例如,下面的SQLite语句创建一个新的表称为公司,增加了五列,三,ID和姓名和年龄,不接受指定null:

CREATE TABLE COMPANY(

ID INT PRIMARY KEY NOT NULL,

NAME TEXT NOT NULL,

AGE INT NOT NULL,

ADDRESS CHAR(50),

SALARY REAL

);

DEFAUL约束

默认约束提供了一个默认值时,一列插入语句不提供一个特定的值。

例子:

列补充道。这里,薪水列默认设置为5000.00,所以如果插入语句为本专栏不提供一个值,那么默认情况下,本专栏将被设置为5000.00。

CREATE TABLE COMPANY(

ID INT PRIMARY KEY NOT NULL,

NAME TEXT NOT NULL,

AGE INT NOT NULL,

ADDRESS CHAR(50),

SALARY REAL DEFAULT 50000.00

);

UUNIQUE(唯一)约束

独特的约束阻止两个记录有相同的值在一个特定的列。公司的表,例如,您可能想要阻止两个或两个以上的人拥有相同的年龄。

例子:

列补充道。列在这里,年龄是独一无二的,所以你不能有两个记录相同的年龄:

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

);

PRIMARY KEY约束

主键约束惟一地标识每个记录在一个数据库表中。可以有更多独特的列,但只有一个表中的主键。主键是重要的在设计数据库表。主键是唯一的id。 

   
 

我们用它们来参考表行。主键成为其他表的外键,当创建表之间的关系。由于长期存在的编码监督,主键在SQLite可以为空。与其他数据库情况并非如此。

 

主键是表中的一个字段唯一地标识每一行/记录在一个数据库表中。主键必须包含唯一的值。一个主键列不能为空值。

 

一个表只能有一个主键,可能由单个或多个字段。当使用多个字段主键,他们被称为一个composite key复合键)。

 

如果一个表定义一个主键字段(s),那么你不能有两个记录有相同的值,字段(s)。如果一个表上定义一个主键

 

例子:

你已经看过上面各种示例,我们创造了公司的表与ID主键:

CREATE TABLE COMPANY(

ID INT PRIMARY KEY NOT NULL,

NAME TEXT NOT NULL,

AGE INT NOT NULL,

ADDRESS CHAR(50),

SALARY REAL

);

Check约束

检查约束使条件检查进入一个记录的值。如果条件的求值结果为false,记录违反约束,不输入到表。

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)

);

Dropping约束:

SQLite支持有限子集的ALTER TABLE。SQLite的ALTER TABLE命令允许用户重命名一个表或添加一个新的列到现有的表。不能重命名一个列,删除一列,或者从一个表添加或删除约束。

 

 

 

 

SQLite-CONSTRAINTS(约束)的更多相关文章

  1. SQLite 入门教程(三)好多约束 Constraints(转)

    转于: SQLite 入门教程(三)好多约束 Constraints 一.约束 Constraints 在上一篇随笔的结尾,我提到了约束, 但是在那里我把它翻译成了限定符,不太准确,这里先更正一下,应 ...

  2. SQLite 入门教程(三)好多约束 Constraints

    一.约束 Constraints 在上一篇随笔的结尾,我提到了约束, 但是在那里我把它翻译成了限定符,不太准确,这里先更正一下,应该翻译成约束更贴切一点. 那么什么是约束呢? 我们在数据库中存储数据的 ...

  3. Sqlite 约束条件 Constraints

    一.约束 Constraints 我们在数据库中存储数据的时候,有一些数据有明显的约束条件. 比如一所学校关于教师的数据表,其中的字段列可能有如下约束: 年龄 - 至少大于20岁.如果你想录入一个小于 ...

  4. Oracle约束操作

    约束的概念: 约束是在表中定义的用于维护数据库完整性的一些规则.通过为表中的字段定义约 束,可以防止将错误的数据插入到表中. 注意: 1.如果某个约束只作用于单独的字段,既可以在字段级定义约束,也可以 ...

  5. sqlte3 的约束

    约束是在表的数据列上强制执行的规则.这些是用来限制可以插入到表中的数据类型.这确保了数据库中数据的准确性和可靠性. 约束可以是列级或表级.列级约束仅适用于列,表级约束被应用到整个表. 以下是在 SQL ...

  6. Sqlite - constraint failed[0x1555]: UNIQUE constraint failed

    执行插入操作时,出现异常constraint failed[0x1555]: UNIQUE constraint failed 意思是:sqlite 唯一约束失败 定位于某个表字段上,该字段是表的主键 ...

  7. sql--select into,create database,create table,Constraints

    SQL SELECT INTO 语句可用于创建表的备份复件.SELECT INTO 语句SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中.SELECT INTO 语句常用于创建 ...

  8. Android Lint Checks

    Android Lint Checks Here are the current list of checks that lint performs as of Android Studio 2.3 ...

  9. Unity 重要基础知识点

    这是两个月前的学习记录,发出来了下,如果有误欢迎大家指出: 脚本生命周期 //每当脚本被加载时调用一次 // 1.   在Awake中做一些初始化操作 void Awake(){ //初始化publi ...

随机推荐

  1. STL中,back_insert_iterator与back_inserter的区别。

    1.参考http://www.cplusplus.com网站关于back_insert_iterator与back_inserter的介绍之后,我总算明白了:back_insert_iterator, ...

  2. Address Book(地址薄)

    <?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.Scene?> ...

  3. c语言for语句

    首先呢 for语句是由4部分组成 for(表达式1;表达式2;表达式3) 循环体: 注意 1:循环中的表达式用;隔开 表达式1通常用来呢赋初值 表达式2通常用来循环控制也就是循环条件 表达式3通常就是 ...

  4. iPhone 5,6,6 plus 尺寸

  5. Laravel-数据库操作笔记

    (慕课网_轻松学会Laravel-基础篇_天秤vs永恒老师) 一.直接使用sql语句 1.路由 2.StudentController.php 二.查询构造器 简介:Laravel查询构造器(quer ...

  6. XPath详解

     xPath技术   1 引入 问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!!! 2 xPath作用 主要是用于快速获取所需的节点对象. 3 在dom4j中如何使用 ...

  7. jre配置了1.6,但是eclipse仍然提示需要1.6以上的java

    问题: eclipse创建web项目时,提示错误:Dynamic Web Module 3.0 requires Java 1.6 or newer. 原因: 这是因为当前的编译器java版本太低,请 ...

  8. [Redux] React Todo List Example (Filtering Todos)

    /** * A reducer for a single todo * @param state * @param action * @returns {*} */ const todo = ( st ...

  9. Qt使用QGraphicsView实现滑动窗体效果

    QGraphicsView用来显示一个滚动视图区的QGraphicsScene内容.QGraphicsScene提供了QGraphicsItem的容器功能.通常与QGraphicsView一起使用来描 ...

  10. 给UIImage添加蒙版

    http://stackoverflow.com/questions/17448102/ios-masking-an-image-keeping-retina-scale-factor-in-acco ...