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中,常见的内置约束包括: 1. **NOT NULL**: 指定列不能包含空值。这对于确保某列总是有值非常有用,例如员工的ID列通常不允许为空。 2. **UNIQUE**: 指定列的值或列组合的值对于表中所有行必须是唯一的。这有...
本资料集主要涵盖了Oracle中的常用SQL语句以及在实际应用中可能遇到的常见问题及其解决策略。 1. **SQL基本操作**: - **SELECT语句**:用于从表中选择数据。例如,`SELECT * FROM table_name;` 将获取表中的所有...
创建新表使用`CREATE TABLE`命令,并定义列的数据类型及约束条件。 **语法示例:** ```sql CREATE TABLE [表名称]( [列1] [数据类型] [约束], [列2] [数据类型] [约束], ... ); ``` **说明:** - `[表名称]`:...
此外,唯一性约束确保特定列中的值不重复,检查约束则允许我们设定特定的条件,以确保插入或更新的数据满足一定的业务规则。 在SQL Server中,我们可以使用多种方法来导出包含约束的脚本。一种常见的方式是使用...
表中的每一列都需要指定类型,还可以为每一列添加约束条件。例如: ```sql CREATE TABLE [表名]( [列名1] int IDENTITY(1,1) PRIMARY KEY, [列名2] nVarChar(50) DEFAULT '默认值' NULL, [列名3] ntext NULL, ...
常见的表级约束包括: 1. **非空约束 (NOT NULL)**:不允许字段值为空。 2. **唯一约束 (UNIQUE)**:确保字段中的所有值都是唯一的,但允许有NULL值。 3. **主键约束 (PRIMARY KEY)**:标识表中的一行记录,确保其...
或者用户自定义完整性,如检查约束,确保数据符合特定条件。约束帮助防止错误数据的输入,保证数据质量。 SQL是标准的关系型数据库查询语言,用于执行CRUD(创建、读取、更新和删除)操作。它包括数据定义(DDL,...
- **Check**: 检查,用于定义列的约束条件,确保输入的数据符合特定规则。 - **Constraint**: 约束,用于限制表中数据的类型和范围,保证数据的完整性和一致性。 2. **SQL 语句编写** - **创建表**:CREATE ...
MySQL的语法可能与Oracle有所不同,例如字段类型或约束条件的写法。确保根据MySQL的语法调整SQL脚本。 三、DB2数据库创建Quartz表 在DB2环境中,同样需要执行一系列的SQL命令。DB2的SQL语法有其特殊性,比如数据...
本文将探讨SQL Server中实施数据完整性的方法,包括常见的约束类型及其应用。 1. 数据完整性概念 数据完整性是指数据库中数据的准确性和一致性,它确保数据在任何时候都是正确和可靠的。数据完整性的维护对于数据库...
以下是对部分DB2常见SQL问题及其解释的详细阐述,旨在帮助数据库管理员和技术人员更深入地了解这些问题,并提供有效的解决方案。 ### 1. 警告信息与错误代码 DB2通过一系列的错误代码(如SQL0001N至SQL0157N)来...
SQL数据库通常分为关系型数据库和非关系型数据库,其中关系型数据库如MySQL、Oracle、SQL Server等,使用表来存储数据,表之间的关系由主键和外键约束表示。 在面试中,面试官可能会要求应聘者设计数据库,这就需要...
这些知识点涵盖了SQL面试中常见的几个方面,包括处理NULL值、使用ISNULL函数、SQL Server 2000中的视图和触发器、记录标识的概念、DML触发器的应用、输出参数的使用、CHECK约束的作用以及子查询的应用场景等。...
* SELECT 语句:用于查询数据,包括选择要查询的列、表、条件等 SELECT 语句的完整语法包括 SELECT、FROM、WHERE、GROUP BY、HAVING 等子句,可以使用关键字 DISTINCT 将重复行屏蔽,使用关键字 UNION 将多个查询...
本文将详细解析常见的SQL语句,特别是与新建、删除、修改表结构相关的操作,这在数据库管理中是极其重要的技能。 ### 创建表(Create Table) 创建表是构建数据库的基础,通过`CREATE TABLE`语句可以定义新的表以及...
常见的数据库约束类型包括: 1. **非空约束(NOT NULL)**:规定字段不能存储NULL值,确保该字段总是有值。 2. **唯一约束(UNIQUE)**:确保字段中的每个值都是唯一的,但允许NULL。 3. **主键约束(PRIMARY KEY)...
为了更好地理解和解决这些问题,本文将对一系列常见的DB2 SQL异常及其负数SQL代码进行详细介绍。这些异常通常会在执行SQL语句时出现,并通过特定的SQL代码来标识具体的错误类型。 #### 二、DB2 SQL异常分类及解释 ...
其中一种常见的错误便是“违反完整性约束——未找到父项关键字”,这种错误通常出现在尝试向包含外键关联的表中插入数据时。 #### 知识点一:理解外键及其作用 外键(Foreign Key)是一种用于确保两个表之间关系的...
CHECK 约束的常见示例: 1. 验证输入的日期格式,例如,CHECK (date_column >= '2000-01-01' AND date_column )。 2. 确保金额的格式,例如,CHECK (amount >= 0 AND amount )。 3. 验证用户名和密码的格式,例如...
其中 `table_name` 是要创建的新表的名称,`column1`, `column2` 等是列名及其相应的数据类型和约束条件。 ##### 13.1.6 DROP DATABASE 语法 `DROP DATABASE` 语句用于删除一个已存在的数据库。基本语法如下: ``...