`

SQL常见约束条件

    博客分类:
  • SQL
 
阅读更多
1.1、SQL--约束

数据类型是约束我们可以在表里存储什么类型的数据的一种方法。 不过,对于许多应用,它们提供的约束实在是太粗糙。比如, 一个包含产品价格的字段可能应该只接受正数。但是没有哪种标准数据类型只接受正数。 另外一个问题是你可能需要根据其他字段或者行的数据来约束字段数据。比如,在一个包含产品信息的表中, 每个产品编号都应该只有一行

1.2、SQL约束种类:

1.2.1、检查约束:

检查约束是最常见的约束类型。它允许你声明在某个字段里的数值必须满足一个布尔表达式。比如,要强制一个正数的产品价格, 你可以用:

CREATE TABLE products (
    product_no integer,
    name text,
    price numeric CHECK (price > 0)
);



1.2.2、 非空约束
非空约束只是简单地声明一个字段必须不能是空值。下面是一个语法例子:

CREATE TABLE products (
    product_no integer NOT NULL,
    name text NOT NULL,
    price numeric
);

提示: 在大多数数据库设计里,主要的字段都应该标记为非空。



1.2.3、唯一约束保证在一个字段或者一组字段里的数据与表中其它行的数据相比是唯一的。它的语法是

CREATE TABLE products (
    product_no integer UNIQUE,
    name text,
    price numeric
);

上面是写成字段约束,下面这个

CREATE TABLE products (
    product_no integer,
    name text,
    price numeric,
    UNIQUE (product_no)
);是写成表约束。

如果一个唯一约束引用一组字段,那么这些字段用逗号分隔列出:

CREATE TABLE example (
    a integer,
    b integer,
    c integer,
    UNIQUE (a, c)
);这样就声明了指定字段的数值的组合,在整个表的范围内是唯一的, 不过这些字段中的某个的数值可以不必是(并且通常也的确可能不是)唯一的。




1.2.4、主键:

从技术上来讲,主键约束只是唯一约束和非空约束的组合。 所以,下面两个表定义接受同样的数据:

CREATE TABLE products (
    product_no integer UNIQUE NOT NULL,
    name text,
    price numeric
);
CREATE TABLE products (
    product_no integer PRIMARY KEY,
    name text,
    price numeric
);
主键也可以约束多于一个字段;其语法类似唯一约束: 通常所说的联合主键

CREATE TABLE example (
    a integer,
    b integer,
    c integer,
    PRIMARY KEY (a, c)
);



1.2.5、 外键
外键约束声明一个字段(或者一组字段)的数值必须匹配另外一个表中某些行出现的数值。 我们把这个行为称做两个相关表之间的参考完整性。



CREATE TABLE t1 (
  a integer PRIMARY KEY,
  b integer,
  c integer,
  FOREIGN KEY (b, c) REFERENCES other_table (c1, c2)
);





以上五个为SQL的常见约束!
分享到:
评论

相关推荐

    SQL21日自学通

    第21 天常见的SQL 错误及解决方法471 目标471 介绍471 常见的错误471 Table or View Does Not Exist471 Invalid Username or Password 472 FROM Keyword Not Specified473 Group Function Is Not Allowed Here 474 ...

    Oracle数据库、SQL

    4.4 where子句后面可以跟多个条件表达式 8 4.5 between and运算符 8 4.6 in运算符(多值运算符) 8 4.7 like运算符 9 4.8 is null运算符 9 4.9比较和逻辑运算符(单值运算符) 9 4.10多值运算符all、any 9 4.11...

    SQL培训第一期

    check约束:检查约束,check约束通过约束条件表达式设置列值应该满足的条件。 1.5 范式 1.5.1 第一范式 1.5.1.1 规范 无重复的列,确保每列保持原子性,即数据库表中的所有字段值都是不可分解的原子值。 1.5.1.2 ...

    精通sql结构化查询语句

    SQL语言的概述 1.1 认识SQL语言 1.1.1 什么是SQL语言 1.1.2 SQL的历史与发展 1.1.3 SQL的功能和优点 1.2 认识数据库 1.2.1 什么是数据库 1.2.2 数据库系统的结构 1.2.3 数据库系统的工作流程 1.2.4 常见的SQL数据库...

    SQLServer2008查询性能优化 2/2

    识别常见性能问题以及对其快速处理的方法 实施修复甚至预防性能问题的T-SQL最佳实践 《SQL Server 2008查询性能优化》不是理论书籍,它的目的是帮助你避免数据库出现性能低下的状况,它还能帮助你保住你的工作。 ...

    SQLServer2008查询性能优化 1/2

    识别常见性能问题以及对其快速处理的方法 实施修复甚至预防性能问题的T-SQL最佳实践 《SQL Server 2008查询性能优化》不是理论书籍,它的目的是帮助你避免数据库出现性能低下的状况,它还能帮助你保住你的工作。 ...

    SQLserver2016-数据库系统概述.pptx

    关系型 非关系型 Access SQL Server Oracle Sybase mySQL Mongo DB Redis SQLite 常见的数据库管理系统 SQLserver2016-数据库系统概述全文共16页,当前为第6页。 数据模型是数据库中的数据按一定的方式存储在一起的...

    MYsql 数据库0基础SQL语句实战精讲.docx

    1. 常见函数 4 2. 基础查询 9 1、查询的结果集 是一个虚拟表 10 2、select 查询列表 类似于System.out.println(打印内容);...20. 常见约束 85 21. 数据类型 90 1.浮点型 91 2.定点型 91 22. 数据的增删改 95

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    14.5.5 Set Constraints(设置约束) 392 14.6 将运算分组为事务 392 14.7 订单录入模式 393 14.8 活动事务 399 14.9 使用保存点 400 14.10 序列化事务 403 14.11 隔离事务 406 14.12 自治事务 409 14.13 小...

    计算机病毒与防护:数据库基础.ppt

    逻辑独立性 数据的完整性约束 实体完整性(通过主键约束条件) 参照完整性(通过主外键约束条件) 用户自定义完整性(通过CHECK子句) 数据由DBMS统一管理和控制 查询引擎、事务控制、数据存储模块/组件 SQL是什么?...

    sql-challenge:SQL作业09

    常见的约束条件有: 不为null-列中的每个值都不能为NULL 唯一-指定列中的值对于表中的每一行都必须是唯一的 主键-指定列中的值对于表中的每一行必须唯一,并且不能为NULL; 通常,数据库中的每个表都应具有主键-...

    sql总结.doc

    Sql语句以及判断条件 End 名称; (3)存储过程的作用 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而 一般SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速 度。 2.当对...

    小白终是踏上了这条不归路—-小文的mysql学习笔记(16)—-常见的约束条件以及它的添加和删除方式

    小白终是踏上了这条不归路—-小文的mysql学习笔记(2)—-条件查询 小白终是踏上了这条不归路—-小文的mysql学习笔记(3)—-排序询查 小白终是踏上了这条不归路—-小文的mysql学习笔记(4)—-常见的基本函数 小白...

    Oracle从基础到熟练(太实用了)

    ②:约束 ③:一些查询 五.锁,表分区 ①:锁的概念 ②:并发问题 ③:锁机制 ④:锁的类型 ②:常见分区 六.数据库对象管理 ①:同义词 ②:序列 ③:视图 ④:索引 七.PL/SQL基础 ①:什么是PL/SQL ②:集合 ③:...

    21天学习SQL V1.0

    21天学习SQL V1.0.pdf 66 SQL 21 日自学通(V1.0) 翻译人笨猪 EMAIL wyhsillypig@163.com 2 日期/时间函数.........................................................................................................

    Oracle建表语句demo(建表语句、索引、序列)

    提供了一个Oracle数据库建表语句的完整示例代码,用于演示如何在Oracle环境中创建一个... 通用性不足:虽然DEMO涵盖了常见的建表需求,但具体业务场景可能千差万别,需要使用者自行根据实际情况调整表结构和约束条件。

    详解MySQL中的外键约束问题

    理论上,只要掌握了最常见的SQL语句的用法,并熟悉您选择使用的服务器端脚本语言,就足以应付对MySQL表所需的各种操作了,尤其是当您使用了快速MyISAM数据库引擎的时候。但是,即使在最简单的情况下,事情也要比我们...

    数据库系统原理上机实验.doc

    4) 针对具体应用语义,选择NULL/NOT NULL、DEFAULT,UNIQUE、CHECK等,定义属性上的约束条件。 3、实验仪器设备 1) 学生每个一台PC机 2) 已安装SQL Server环境 实验5数据库设计与应用开发大作业 1、实验目的要求 1)...

Global site tag (gtag.js) - Google Analytics