SQLite入门语句之约束
一、SQLite约束之NOT NULL
确保某列不能有 NULL 值。默认情况下,列可以保存 NULL 值。如果您不想某列有 NULL 值,那么需要在该列上定义此约束,指定在该列上不允许 NULL 值。
NULL 与没有数据是不一样的,它代表着未知的数据。
1、限制字段A的值不能为NULL值
create table_name (字段A 数据类型 NOT NULL, 字段B 数据类型, ... 字段N 数据类型)
二、SQLite约束之DEFAULT
当某列没有指定值时,为该列提供默认值。DEFAULT 约束在 INSERT INTO 语句没有提供一个特定的值时,为列提供一个默认值。
1、给字段A设置默认值
create table_name (字段A 数据类型 defulte 默认值, 字段B 数据类型, ... , 字段N 数据类型)
三、SQLite约束之UNIQUE
确保某列中的所有值是不同的。UNIQUE 约束防止在一个特定的列存在两个记录具有相同的值。
1、约束字段A不能又相同的值
create table_name (字段A 数据类型 unique, 字段B 数据类型,... , 字段N 数据类型)
四、SQLite约束之PRIMARY Key
唯一标识数据库表中的各行/记录。PRIMARY KEY 约束唯一标识数据库表中的每个记录。在一个表中可以有多个 UNIQUE 列,但只能有一个主键。在设计数据库表时,主键是很重要的。主键是唯一的 ID。
1、设置字段A为主键
create table_name (字段A 数据类型 primary key, 字段B 数据类型, ..., 字段N 数据类型)
2、设置字段A为自增长主键
create table_name (字段A integer primary key autoincrement, 字段B 数据类型, ..., 字段N 数据类型)
五、SQLite约束之CHECK
CHECK 约束确保某列中的所有值满足一定条件。CHECK 约束启用输入一条记录要检查值的条件。如果条件值为 false,则记录违反了约束,且不能输入到表
1、约束字段A(数据类型:integer)的值不能小于100
create table_name (字段A integer c, 字段B 数据类型, ...check(字段A > 100), 字段N 数据类型)
注:SQLite 支持 ALTER TABLE 的有限子集。在 SQLite 中,ALTER TABLE 命令允许用户重命名表,或向现有表添加一个新的列。重命名列,删除一列,或从一个表中添加或删除约束都是不可能的。
SQLite入门语句之约束的更多相关文章
- SQLite入门语句之HAVING和DISTINCT
		一.SQLite入门语句之HAVING HAVING 子句允许指定条件来过滤将出现在最终结果中的分组结果. WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建 ... 
- SQLite入门语句之ALTER命令
		SQLite 的 ALTER TABLE 命令不通过执行一个完整的转储和数据的重载来修改已有的表,在 SQLite 中,除了重命名表和在已有的表中添加列,ALTER TABLE 命令不支持其他操作. ... 
- SQLite 入门教程(三)好多约束 Constraints(转)
		转于: SQLite 入门教程(三)好多约束 Constraints 一.约束 Constraints 在上一篇随笔的结尾,我提到了约束, 但是在那里我把它翻译成了限定符,不太准确,这里先更正一下,应 ... 
- SQLite 入门教程(三)好多约束 Constraints
		一.约束 Constraints 在上一篇随笔的结尾,我提到了约束, 但是在那里我把它翻译成了限定符,不太准确,这里先更正一下,应该翻译成约束更贴切一点. 那么什么是约束呢? 我们在数据库中存储数据的 ... 
- SQLite 入门教程(四)增删改查,有讲究 (转)
		转于: SQLite 入门教程(四)增删改查,有讲究 一.插入数据 INSERT INTO 表(列...) VALUES(值...) 根据前面几篇的内容,我们可以很轻送的创建一个数据表,并向其中插入一 ... 
- SQLite入门与分析(二)---设计与概念(续)
		SQLite入门与分析(二)---设计与概念(续) 写在前面:本节讨论事务,事务是DBMS最核心的技术之一.在计算机科学史上,有三位科学家因在数据库领域的成就而获ACM图灵奖,而其中之一Jim G ... 
- SQLite 入门教程(一)基本控制台(终端)命令 (转)
		转于: SQLite 入门教程(一)基本控制台(终端)命令 一.基本简介 SQLite 是一个自持的(self-contained).无服务器的.零配置的.事务型的关系型数据库引擎.因为他很小,所 ... 
- SQLite 入门教程(二)创建、修改、删除表 (转)
		转于 SQLite 入门教程(二)创建.修改.删除表 一.数据库定义语言 DDL 在关系型数据库中,数据库中的表 Table.视图 View.索引 Index.关系 Relationship 和触发器 ... 
- MySQL学习-入门语句以及增删查改
		1. SQL入门语句 SQL,指结构化查询语言,全称是 Structured Query Language,是一种 ANSI(American National Standards Institute ... 
随机推荐
- [LeetCode] 103. 二叉树的锯齿形层次遍历
			题目链接 : https://leetcode-cn.com/problems/binary-tree-zigzag-level-order-traversal/ 题目描述: 给定一个二叉树,返回其节 ... 
- 数学: HDU1005 Number Sequence
			Number Sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ... 
- Node.js+koa2
			const Koa = require('koa') const app = new Koa() const bodyParser = require('koa-bodyparser') app.us ... 
- some problem
			CF1257F Make Them Similar $solution:$ 折半搜索后考虑如何维护两个数组的和,可以将 $A$ 中每个数减 $A_1$ ,$B$ 中每个数被减 $B_1$ ,$map$ ... 
- mongodb连接警告修复
			问题 Node.js中mongoose模块连接MongoDB数据库时提示(node:12580) DeprecationWarning: current URL string parser is de ... 
- Django之cookie 和session
			---恢复内容开始--- 一.cookie 前戏.cookie 的由来 由于http协议是无状态的 无法记录用户状态 cookie就是保存在客户端浏览器上的键值对 工作原理:当你登陆成功之后 浏览器会 ... 
- MySQL之表查询
			语法执行顺序 from >>>从那张表 where >>> 全局的筛选条件 group by>>> 必须是用在where 之后一组就是为了接下来我 ... 
- #include <xxx.h>和#include "xxx.h"的区别
			<>代表在系统目录下查找该头文件(系统定义头文件) ""代表在用户目录下查找该头文件(自定义头文件) 
- mktemp - 产生唯一的临时文件名
			总览 (SYNOPSIS) mktemp [-q ] [-u ] template 描述 (DESCRIPTION) mktemp 根据 给定的 文件名模板, 改变 其中的 一部分, 从而 生成 临时 ... 
- Cacti+nagios 整合监控部署文档
			目录 Cacti+nagios监控部署步骤... 2 一.Cacti安装... 2 1需要安装的依赖软件包:... 2 2安装rrdtool 2 3启动数据库和httpd服务... 3 4将serve ... 
