`
easyworld
  • 浏览: 112350 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

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的常见约束!

分享到:
评论

相关推荐

    sql-map-2.dtd

    ibatis的dtd约束,版本2,xml文件中标签提示,网址:http://ibatis.apache.org/dtd/sql-map-2.dtd

    ibatis的sql-map dtd

    了解并掌握这两个DTD文件对于理解和使用Ibatis至关重要,因为它们定义了SQL映射和全局配置文件的结构和约束,确保了XML配置的合法性。在实际开发中,根据这些定义来编写XML文件,可以有效地组织和管理数据库操作,...

    SQL:SQL-92,SQL-99和SQL-2003的BNF语法

    SQL-99还引入了复杂的数据类型,如`XML`和`ARRAY`,增强了对对象关系数据库的支持,并引入了外键约束(Foreign Key Constraints),以确保数据的一致性和完整性。 SQL-2003进一步完善了SQL标准,增加了对XML的更...

    learn-sql-the-hard-way-笨方法学sql

    - 定义约束,如主键、外键、唯一性等 7. **索引与优化**(learn-sql-the-hard-waych8.html) - 索引的作用和类型 - 创建和删除索引 - 索引对查询性能的影响 - 查询优化策略 8. **进阶话题**(可能在index....

    数据库可视化操作软件SQL-Front

    2. 表结构设计:用户可以创建新的表,定义字段类型、长度、约束(如主键、外键、唯一性等),并能直接在界面上编辑表结构,无需编写复杂的SQL语句。 3. 数据浏览与编辑:SQL-Front提供了一种表格形式的数据浏览界面...

    SQL-Front中文版(3.3版本的,挺好用的)

    在SQL-Front中,用户可以轻松创建和管理数据库表结构,定义字段类型、长度、约束等属性。此外,它还支持视图、存储过程和触发器的创建与管理,满足复杂的数据处理需求。对于数据库管理员,SQL-Front的备份和恢复功能...

    SQL-Power-Architect

    逻辑数据模型则进一步细化,包括了数据类型和键约束等信息;而物理数据模型则考虑了特定数据库系统的实现细节,如表空间、索引等。通过这三层模型,用户可以逐步从高层次的业务需求过渡到实际的数据库实施方案。 该...

    SQL - Simply SQL - by rudy limeback

    ### SQL核心知识点详解 #### 一、SQL简介与概述 **SQL**(Structured Query Language,结构化查询语言)是一种用于管理关系数据库的标准语言。它被广泛应用于数据查询、操作、定义和控制等方面。 ##### 1.1 SQL...

    ISO SQL-92标准

    7. 约束规范:该标准规定了SQL语言中使用的约束,包括主键、外键、Check约束等。 8. 触发器规范:该标准规定了SQL语言中使用的触发器,包括触发器的定义、创建和管理。 ISO SQL-92标准的主要应用领域包括: 1. ...

    SQL-Manager

    用户可以直观地查看表结构,编辑字段属性,创建和修改视图、存储过程,以及管理索引和约束。 2. 数据操作:提供强大的数据浏览和编辑功能,支持数据的导入导出,以及数据的增删改查操作。用户还可以执行SQL脚本,...

    SQLQuery-约束.sql

    SQLQuery-约束.sql

    基于JAVA和SQL-Server图书管理系统课程设计

    * 逻辑结构设计:确定关系模式(包括关系模式优化),各种约束的声明,如主外码约束、唯一性约束、非空约束等 * 物理结构设计 知识点4:图书管理系统的设计和开发 * 图书管理系统的需求分析和设计 * 图书管理系统...

    .arch01-约束-约束案例.sql

    .arch01-约束-约束案例.sql

    SQL-SERVER上机考试题.docx

    这些知识点不仅涵盖了基本的数据完整性约束,还包括了各种SQL查询技巧,如简单的选择查询、数据汇总、连接查询以及子查询的应用等。 ### 数据完整性 #### 实现方法 1. **在StudentInfos中,要求性别只能输入0或1**...

    SQL-server2000数据库管理系统A.docx

    《SQL-server 2000 数据库管理系统》试卷(A)涵盖了SQL-server 2000的基本概念和操作,以下是其中涉及的关键知识点: 1. **数据库文件扩展名**:SQL-server数据库文件的扩展名为.mdf,这是主数据文件的扩展名。...

    精通SQL--结构化查询语言详解

    第1章 数据库与sql基础 1 1.1 数据库的基本概念 1 1.1.1 数据库的由来 1 1.1.2 数据库系统的概念 3 1.2 数据库系统的结构、组成及工作流程 3 1.2.1 数据库的体系结构 3 1.2.2 数据库系统的组成 4 1.2.3 ...

    微软课件 SQL-SERVER2005

    同时,数据完整性的实现则强调了约束条件的使用,如主键、外键和唯一性约束,确保数据的准确性和一致性。 课程还涉及了SQL Server的监控,通过学习如何利用系统性能计数器和动态管理视图来监测数据库运行状态,有助...

    SQL-cheat-sheet

    1. **数据定义**:创建表(CREATE TABLE)、删除表(DROP TABLE)、修改表结构(ALTER TABLE),以及定义字段类型、约束(如主键、外键、唯一性约束)等。 2. **数据插入**:使用INSERT语句向表中添加记录,可以一...

    SQL-参考大全资料

    - **数据完整性**:介绍约束条件(如主键、外键、唯一性约束等),保障数据的质量和一致性。 - **事务处理**:详解事务的ACID特性(原子性、一致性、隔离性、持久性),确保在并发环境中数据的正确性。 #### 五、...

    liferay-portal-sql-6.1.2-ce-ga3-20130816114619181

    3. **索引和约束**:为了提高查询效率和数据完整性,Liferay会定义一系列索引和约束条件。 4. **示例数据**:部分SQL脚本可能包含了示例数据,帮助用户快速理解Liferay的工作方式。 在移植过程中,需要注意以下几...

Global site tag (gtag.js) - Google Analytics