check约束相关知识
-
使用Check约束提升SQL Server性能 在SQL Server中,SQL语句的执行是依赖查询优化器生成的执行计划,而执行计划的好坏直接关乎执行性能。 在查询优化器生成执行计划过程中,需要参考元数据来尽可能生成高效的执行计划,因此元数据越多,则执行计划更可能会高效。所谓需要参考的元数据主要包括:索引、表结构、统计信息等,但还有一些不是很被注意的元数据,其中包括本文阐述的Check约束。 查询优化器在生成执行计划之前有一个阶段叫做代数树优化,比如说下面这个简单查询: 查询优化器意识到1=2这个条件是永远不相等的,因此不需要返回任何数据,因此也就没有必要扫描表,从图1执行计划可以看出仅仅扫描常量后确定了1=2永远为false后,就可完成查询。 那么Check约束呢 Check约束可以确保一列或多列的值符合表达式的约束。在某些时候,Check约束也可以为
-
SQL Server中使用Check约束达到提升性能 在SQL Server中,SQL语句的执行是依赖查询优化器生成的执行计划,而执行计划的好坏直接关乎执行性能。 在查询优化器生成执行计划过程中,需要参考元数据来尽可能生成高效的执行计划,因此元数据越多,则执行计划更可能会高效。所谓需要参考的元数据主要包括:索引、表结构、统计信息等,但还有一些不是很被注意的元数据,其中包括本文阐述的Check约束。 查询优化器在生成执行计划之前有一个阶段叫做代数树优化,比如说下面这个简单查询: 图2是一个简单的例子,有时候在分区视图中应用Check约束也会提升性能,测试代码如下:CREATE TABLE [dbo].[Test2007]( [ProductReviewID] [int] IDENTITY(1,1) NOT NULL, &nbs
-
SQL Server Check Constratints检查(Check)约束,可以约束字段在插入数据或更新数据时,必须满足check约束定义好的业务规则。CHECK约束不能被定义的Text、ntext或image数据类型的字段上。RDBMS会使用Check约束业务规则验证插入或更新的值,当结果为TRUE或UNKNOWN时,接授对数据插入或更新,如查验证结果为FALSE,检查约束将拒绝对字段数据插入或是更新操作。CREATE TABLE [dbo].[Users](UsersId INT IDENTITY PRIMARY KEY NOT NULL,Name NVARCHAR(50) NOT NULL,Sex TINYINT CHECK([Sex] BETWEEN 1 AND 3) --([Sex]>=(1) AND [Sex]<=(3)))&
-
每个程序员都需要了解的一个SQL技巧对于数据过滤而言CHECK约束已经算是相当不错了。然而它仍存在一些缺陷,比如说它们是应用到表上面的,但有的时候你可能希望指定一条约束,而它只在特定条件下才生效。使用SQL标准的WITH CHECK OPTION子句就能完成这点,至少Oracle和SQL Server都实现了这个功能。下面是实现方式: CREATE TABLE books ( id NUMBER(10) NOT NULL, title VARCHAR2(100 CHAR) NOT NULL, price NUMBER(10, 2) NOT NULL, CONSTRAINT pk_book PRIMARY KEY (id) ); / CREATE VIEW expens
check约束相关课程
check约束相关教程
- 2. SQL 约束(Constraints) SQL 约束用于在新建或修改数据表时,给数据表或数据表中的字段加上约束条件。当然,你也可以把约束理解为修饰,如 PRIMARY KEY 可以修饰字段为主键,也可以约束该字段非空。常见的约束有如下几种:约束作用NOT NULL字段非空DEFAULT字段默认值UNIQUE字段唯一PRIMARY KEY主键FOREIGN KEY外键CHECK校验字段在本小节中,我们将主要介绍 NOT NULL,DEFAULT,UNIQUE,PRIMARY KEY 这些约束的用法,FOREIGN KEY 会在 SQL Primary Key & Foreign Key 小节详细介绍,而 CHECK 将在 SQL Check 一节中详细探讨。
- 3.1 例1 字段上约束 请书写 SQL 语句,新建imooc_user表,共有 id,username,age 三个字段,且为 age 字段添加上 Check 约束,规定所有 age 必须大于0。分析:使用 Create 指令新建数据表,并通过 Check 给 age 加上>0的约束。语句:整理可得语句如下:CREATE TABLE imooc_user( id int PRIMARY KEY, username varchar(20), age int CHECK(age > 0));创建成功后,若插入的数据不满足条件,插入会失败,如下:insert into imooc_user values(2,'pedro',0);(3819, "Check constraint 'imooc_user_chk_1' is violated.")
- 4. Alter 时更改约束 数据表还可以在修改时添加Check约束或者删除约束。
- 3. 创建时约束 Check 可以直接在创建数据表时给字段加上约束。
- 4.1 例3 Alter 添加约束 请书写SQL语句,为imooc_user表的 username 字段添加上 Check 约束,规定 username 只能为peter。分析:使用 Alter 指令修改 imooc_user 表,并为 username 字段添加上约束。语句:整理可得语句如下:ALTER TABLE imooc_user ADD CONSTRAINT username_constraint CHECK(username='peter');
- 4.2 例4 Alter 删除约束 请书写 SQL 语句,删除imooc_user表的 username 字段约束。分析:使用 Alter 指令修改 imooc_user 表,删除掉 username 字段上的约束。语句:(MySQL下)整理可得语句如下:ALTER TABLE imooc_user DROP CHECK username_constraint;如果是 PostgreSQL 会有些许不同,语句如下:ALTER TABLE imooc_user DROP CONSTRAINT username_constraint;
check约束相关搜索
-
c 正则表达式
c string
c 编程
c 程序设计
c 程序设计教程
c 多线程编程
c 教程
c 数组
c 委托
c 下载
c 线程
c 语言
caidan
cakephp
call
calloc
calu
camera
caption
case语句