SQL中的CHECK约束的详细讲解

SQL中的CHECK约束的详细讲解
SQL中的CHECK约束的详细讲解

CHECK 约束(CHECK 约束:定义列中可接受的数据值。可以将CHECK 约束应用于多个列,也可以将多个CHECK 约束应用于单个列。当除去某个表时,也将除去CHECK 约束。)指定可由表中一列或多列接受的数据值或格式。例如,可以要求authors 表的zip 列只允许输入五位数的数字项。

可以为一个表定义许多CHECK 约束。可以使用"表"属性页创建、修改或删除每个CHECK 约束。

[attach]402[/attach]

1、将新的CHECK 约束附加到表或列

将CHECK 约束附加到表以指定一列或多列中可接受的数据值。

附加新的CHECK 约束

在数据库关系图中,右击包含约束的表,然后从快捷菜单中选择"约束"命令。

-或-

为将包含约束的表打开表设计器,在表设计器中右击,然后从快捷菜单中选择"约束"命令。

选择"新建"命令。"选定的约束"框显示由系统分配的新约束名。系统分配的名称以"CK_"开始,后跟表名。

在"约束表达式"框中,为CHECK 约束键入SQL 表达式。例如,若要将authors 表中state 列的输入项限制为New York,请键入:

state = 'NY'

或者,若要要求zip 列中的输入项为5 位数字,请键入:

zip LIKE '[0-9][0-9][0-9][0-9][0-9]' 中间不能有空格

若要给约束提供一个不同的名称,请在"约束名"框中键入名称。

用复选框控制何时强制约束:

若要在创建约束前对现有数据测试约束,请选中"创建中检查现存数据"复选框。

若要在该表中发生复制操作时强制约束,请选中"对复制强制约束"复选框。

若要在该表中插入或更新行时强制约束,请选中"对INSERT 和UPDATE 强制约束"复选框。

2、定义CHECK 约束表达式

当将CHECK 约束附加到表或列时,必须包括SQL 表达式。

可以创建简单的约束表达式在简单条件下检查数据;或使用布尔运算符创建复杂的约束表达式以在多种条件下检查数据。例如,假设authors 表中有一个zip 列,该列要求5 位数字的字符串。下面的示例约束表达式确保只允许5 位数字:

zip LIKE '[0-9][0-9][0-9][0-9][0-9]'

或者假设sales 表中有一个名为qty的列,该列要求大于0 的值。下面的示例约束确保只允许正值:

qty> 0

或者假设orders 表限制所有信用卡订单可接受的信用卡类型。下面的示例约束确保如果用信用卡发出订单,则只接受Visa、MasterCard 或American Express:

NOT (payment_method = 'credit card') OR

(card_type IN ('VISA', 'MASTERCARD', 'AMERICAN EXPRESS'))

定义约束表达式

创建新的CHECK 约束。

在属性页的"CHECK 约束"选项卡中,使用下列语法在"约束表达式"框中键入表达式:{constant | column_name | function | (subquery)}

[{operator | AND | OR | NOT}

{constant | column_name | function | (subquery)}...]

SQL 语法由下列参数组成:

[attach]403[/attach]

3、修改CHECK 约束

当要更改约束表达式,或更改对特定条件启用或禁用约束的选项时,修改CHECK 约束。

修改CHECK 约束

I、在数据库关系图中右击包含约束的表,然后从快捷菜单中选择"属性"命令。

-或-

为包含约束的表打开表设计器,在表设计器中右击,然后从快捷菜单中选择"属性"命令。

II、选择"CHECK 约束"选项卡。

III、从"选定的约束"列表中,选择要更改的约束。

IV、完成下表中的操作:

[attach]404[/attach]

比你帅 2007-12-5 12:31

当保存表或关系图时,约束即在数据库内被更新。

4、创建CHECK 约束时检查现有数据

当创建CHECK 约束时,可以设置选项将约束只应用于新数据或同时也应用于现有数据。当知道现有数据已满足新CHECK 约束时,或者当业务规则要求仅从这点开始强制约束时,这种使约束仅应用于新数据的选项很有用。

例如,过去可能要求邮政编码必须是五位数字,但现在却需要新数据允许有九位邮政编码。包含五位邮政编码的旧数据将与包含九位邮政编码的新数据共存。

I、创建CHECK 约束时检查现有数据

II、选择"CHECK 约束"选项卡。

III、从"选定的约束"列表中选择约束。

IV、选择"创建中检查现存数据"复选框。默认情况下选择该选项。

当保存表或数据库关系图时,将应用CHECK 约束。如果在保存过程中遇到任何违反约束的行为,则不能保存表。

5、对INSERT 和UPDATE 语句禁用CHECK 约束

当在表中添加、更新或删除数据时,可以禁用CHECK 约束。禁用约束使您能够执行下列事务:

如果表中的现有行过去必须遵从的特定业务规则已不再适用,则可以向该表添加新的数据行(使用INSERT 语句)。例如,过去可能要求邮政编码必须是五位数字,但现在却需要新数据允许有九位邮政编码。包含五位邮政编码的旧数据将与包含九位邮政编码的新数据共存。

如果表中的现有行过去必须遵从的特定业务规则已不再适用,则可以修改现有行(使用UPDATE 语句)。例如,可能需要将所有现有的五位邮政编码更新为九位邮政编码。

如果知道新数据将违反约束,或者约束仅适用于数据库中的已有数据,则选择该选项以在INSERT 和UPDATE 事务处理期间禁用CHECK 约束。

对INSERT 和UPDATE 语句禁用CHECK 约束

I、在数据库关系图中右击包含约束的表,然后从快捷菜单中选择"属性"命令。

-或-

为包含约束的表打开表设计器,在表设计器中右击,然后从快捷菜单中选择"属性"命令。

II、选择"CHECK 约束"选项卡。

III、从"选定的约束"列表中选择约束。

IV、清除"对INSERT 和UPDATE 强制约束"复选框。

可以在添加或修改数据后选择该选项,以确保约束能应用到后续的数据修改中。

6、对复制禁用CHECK 约束

当在另一个数据库中复制表时,可以禁用CHECK 约束。复制表时,表定义和数据从源数据库复制到目的数据库。这两个数据库通常(但不一定)位于不同的服务器上。如果CHECK 约束仅针对源数据库,则可能会不必要地阻止新数据输入到目的数据库。当在远程站点上复制数据库时,不应重新应用CHECK 约束,因为:

数据在被输入原始数据库时将进行完整性检查。

如果数据违反CHECK 约束,复制将失败。

对复制禁用CHECK 约束

I、在数据库关系图中右击包含约束的表,然后从快捷菜单中选择"属性"命令。

-或-

为包含约束的表打开表设计器,在表设计器中右击,然后从快捷菜单中选择"属性"命令。

II、选择"CHECK 约束"选项卡。

III、从"选定的约束"列表中选择约束。

IV、清除"对复制强制约束"复选框。

7、删除CHECK 约束

删除CHECK 约束

当要删除对约束表达式包含的列所接受数据值的限制时,删除CHECK 约束。

删除CHECK 约束

I、在数据库关系图中右击包含约束的表,然后从快捷菜单中选择"属性"命令。

-或-

为包含约束的表打开表设计器,在表设计器中右击,然后从快捷菜单中选择"属性"命令。

II、选择"CHECK 约束"选项卡。

III、从"选定的约束"列表中选择约束。

IV、选择"删除"按钮。

注意选择"删除"按钮将导致一个无法撤消的操作,而且不保存对数据库关系图所做的所有其它更改。若要撤消该操作,请不保存更改即关闭当前的数据库关系图和所有其它打开的数据库关系图。

当保存表或关系图时,约束即从数据库中被删除。

SQL查询语句大全集锦(超经典)

SQL查询语句大全集锦 MYSQL查询语句大全集锦 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 复制内容到剪贴板 代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: 复制内容到剪贴板 代码:SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: 复制内容到剪贴板 代码:SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 标题:

复制内容到剪贴板 代码:SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: 复制内容到剪贴板 代码:SELECT TOP 2 * FROM `testtable` 复制内容到剪贴板 代码:SELECT TOP 20 PERCENT * FROM `testtable` (二) FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, 它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: 复制内容到剪贴板 代码:SELECT `username`,citytable.cityid FROM `usertable`,`citytable` WHERE usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名: 复制内容到剪贴板 代码:表名 as 别名 表名别名例如上面语句可用表的别名格式表示为: 复制内容到剪贴板

数据库SQL查询语句大全修订稿

数据库S Q L查询语句 大全 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

经典SQL查询语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definitio n only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type

注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A:UNION 运算符

SQL建表语句约束

一、基础(建表、建约束、关系) 约束(constraint)是microsoft sql server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整性的介绍请参见第9 章)。在sql server 中有5 种约束:主关键字约束(primary key constraint)、外关键字约束(foreign key constraint)、惟一性约束(unique constraint)、检查约束(check constraint)和缺省约束(default constraint)。 (最后几页介绍sql基础约束) 1、说明:创建数据库 create database database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device use master exec sp_addumpdevice disk, testback, c:\mssql7backup\mynwind_1.dat --- 开始备份 backup database pubs to testback 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) --建表、建约束、关系 create table tableok ( col1 int, col2_notnull int not null, col3_default nchar(1) not null default(男), --默认男 col4_default datetime not null default(getdate()), --默认得到系统时间 col5_checkintnot null check(col5_check>=18 and col5_check<=55), --添加约束,数据值在18到55之间 col6_checknchar(9) not null check(col6_check like msd0902[0-9][^6-9]), --添加约束,数据值前7位必须是?msd0902?,倒数第两位可以是0-9中任意一个数字,最后一位不是6-9之间的数字。 cola_primary nchar(5) not null primary key, --建立主键 colb_unique int unique, --唯一约束 col7_identity int not null identity(100,1), --自增长,从100开始,每列值增加1个 col8_identity numeric(5,0) not null identity(1,1) --自增长,从1开始,每列值增加1个,最大值是5位的整数 col9_guid uniqueidentifier not null default(newid()) --使用newid()函数,随机获取列值 ) --alter

PPAP检查清单Checklist(中英文)

No. 序号 PPAP Element PPAP 文件种类递交Yes 无要求递交N/A Remarks 备注1 Completed part submission warrant (PSW)完整的零件提交保证书(PSW)2 Appearance approval report approved (AAR)经批准的外观批准报告(AAR)3 Design records with PE approval /sign-off.产品工程批准的设计记录零件图纸,有关的工程文件;规范4PE approved engineering. change Documents for the part(If any). 产品工程批准的工程更改文件,如果有5Dimension checked print for all parts (Inclusive assembly or sub-parts) 对所有零件尺寸检查标识-包含总成、零件 6Dimensional report referenced to the check print for # of samples decided. 和尺寸检验标识对应的尺寸报告 7Document of checking fixtures/checking aids used.检具及检查辅具文件 8Material test results summary report (incl. All child parts)with all enclosures in original. 材料测试结果总结报告,包括所有分零件,并附原始报告9a Functional/performance test results-summary report with all enclosures. 功能/性能测试结果总结报告,并附原始报告9b Durability test results-Summary reports in original 耐久性测试结果总结报告,并附原始报告 10Process flow diagram, duly numbered for each operation (co-relate with FMEA & control plan). 过程流程图(工位编号与FMEA 和控制计划一致)11PFMEA 过程失效模式和效果分析 12DFMEA-if supplier is design responsible. 设计失效模式和效果分析-如果供应商是设计责任者13a produciton Control Plan 生产控制计划.13b pre-launch control plan 试生产控制计划 14 Innitial Process capability results 初始过程能力15 MSA 测量系统分析16 Packaging Specifications (If any)包装说明17 Subcontractor list and Bill of material (BOM)分供方清单和物料清单18 Customer Engineering Approval 顾客工程批准OTS 工程认可报告19 Qualified Lab Documentation 实验室认可文件20 Bull Material Requirements Checklist(for Bulk material PPAP only) 散装材料要求检查清单21 Sample Product & Master Sample 生产件样品及标准样品22Records of Compliance with C Specific Requirements 符合顾客其它要求的记录 车型年份: 提交PPAP 的样品数量:Supplier Name 供应商名称 : Completed by (编制): Approved by(批准) : Date(日期 ): PPAP 检查清单/PPAP Checklist Part Name: Part No.:零件名称: 零件编号:Model Year: No. for samples submitted for PPAP:

SQL查询语句大全集锦

SQL查询语句大全集锦 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname 字段和email字段。 代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: 代码:SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺 序相同。

代码:SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 标题: 代码:SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n 行,而TOP n PERCENT时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。

经典SQL语句大全_主外键_约束

一、基础(建表、建约束、关系) 约束(Constraint)是Microsoft SQL Server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整性的介绍请参见第9 章)。在SQL Server 中有5 种约束:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)、检查约束(Check Constraint)和缺省约束(Default Constraint)。 (最后几页介绍SQL基础约束) 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) --建表、建约束、关系 create table tableok ( col1 int, col2_notnull int not null, col3_default nchar(1) not null default('男'), --默认男 col4_default datetime not null default(getdate()), --默认得到系统时间 col5_check int not null check(col5_check>=18 and col5_check<= 55),--添加约束,数据值在18到55之间 col6_check nchar(9) not null check(col6_check like 'msd0902[0-9][^ 6-9]'), --添加约束,数据值前7位必须是‘msd0902’,倒数第两位可以是0-9中任意一个数字,最后一位不是6-9之间的数字。 cola_primary nchar(5) not null primary key, --建立主键 colb_unique int unique, --唯一约束 col7_Identity int not null identity(100,1), --自增长,从100开始,每列值增加1个

数据库经典SQL语句大全

数据库经典SQL语句大全 篇一:经典SQL语句大全 下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk','testBack', 'c:mssql7backupMyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2? from tab_old definition only 5、说明: 删除新表: tabname 6、说明: 增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明: 添加主键:Alter table tabname add primary key(col) 说明: 删除主键:Alter table tabname drop primary key(col) 8、说明: 创建索引:create [unique] index idxname on tabname(col?.) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。

SQL约束讲解

SQL约束讲解 编辑人:星辰·樱 一.约束的类型 SQL Server 系统提供了6种约束类型,即not null非空约束,primary key主键约束,Foreign key外键约束,unique唯一约束,check检查约束和default 默认约束。 约束与完整性之间的关系 域完整性:default ,check。实体完整性:primary key ,unique。 参照完整性:foreign key。 二.定义约束的方式 定义约束可以使用create table语句或alter table语句完成。前者表示创建表的同时定义约束,后者表示在已有表中定义约束。 定义约束时,即可以所约束放在一个列上,也可以约束放在多个列上。前者称为列级约束,后者称为表级约束。 定义约束和修改约束时,要考虑以下几个因素: 1.不必删除表,就可以直接创建、修改表和删除约束的定义。 2.应该在应用程序中增加错误检查机制,测试数据是否与约束相冲突。 3.当在表上增加约束时,SQL Server系统将检查表中的数据是否与约束冲突。 4.一般情况,约束的名称应该符合,约束类型简名_表名_列名_代号这样的形式。 1.主键约束 主键约束用来强制数据的实体完整性,它是在表中定义一个主建来唯一标识表中的每行记录。 --T-SQL语句 Create table 表名 (列名数据类型constraint 主键约束名primary key [,···n] ---列级主键Constraint 主键约束名primary key (列名[,···n]) ---表级主键——alter table命令 Alter table 表名 Add constraint 列名primary key [clustered|nonclustered] {(列名[,···n])} ·clustered:表示在该列上建立聚集索引。 ·nonclustered:表示在该列上建立非聚焦索引。 2.NUIQUE约束 Unique约束主要用来限制表的非主键列中允许输入重复值,用来强调数据的

sql查询语句大全

SQL查询语句大全 《SQL语句的基本语法》 一.Select语句的完整语法为: Select[ALL|DISTINCT|DISTINCTROW|TOP] {*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]} FROM tableexpression[,…][IN externaldatabase] [Where…] [GROUP BY…] [HAVING…] [ORDER BY…] [WITH OWNERACCESS OPTION] 说明: 用中括号([])括起来的部分表示是可选的,用大括号({})括起来的部分是表示必须从中选择其中的一个。 1 FROM子句 FROM子句指定了Select语句中字段的来源。FROM子句后面是包含一个或多个的表达式(由逗号分开),其中的表达式可为单一表名称、已保存的查询或 由 INNER JOIN、LEFT JOIN 或 RIGHT JOIN 得到的复合结果。如果表或查询存储在外部数据库,在IN 子句之后指明其完整路径。 例:下列SQL语句返回所有有定单的客户: Select orderID,Customer.customerID FROM orders Customers Where orders.CustomerID=Customers.CustomeersID 2 ALL、DISTINCT、DISTINCTROW、TOP谓词 (1) ALL 返回满足SQL语句条件的所有记录。如果没有指明这个谓词,默认为ALL。 例:Select ALL FirstName,LastName FROM Employees (2) DISTINCT 如果有多个记录的选择字段的数据相同,只返回一个。 (3) DISTINCTROW 如果有重复的记录,只返回一个 (4) TOP显示查询头尾若干记录。也可返回记录的百分比,这是要用 TOP N PERCENT子句(其中N 表示百分比) 例:返回5%定货额最大的定单 Select TOP 5 PERCENT* FROM [ order Details] orDER BY UnitPrice*Quantity*(1-Discount) DESC 3 用 AS 子句为字段取别名 如果想为返回的列取一个新的标题,或者,经过对字段的计算或总结之后,产生了一个新的值,希望把它放到一个新的列里显示,则用AS保留。 例:返回FirstName字段取别名为NickName Select FirstName AS NickName ,LastName ,City

SQL Server外关键字约束的定义

SQL Server外关键字约束的定义 SQL Server外关键字约束的重要性不言而喻,下面就让我们一起来了解一下应该如何定义SQL Server外关键字约束. 兰州中研SQL Server外关键字约束定义了表之间的关系.当一个表中的一个列或多个列的组合和其它表中的主关键字定义相同时,就可以将这些列或列的组合定义为外关键字,并设定它适合哪个表中哪些列相关联.这样,当在定义SQL Server主关键字约束的表中更新列值,时其它表中有与之相关联的外关键字约束的表中的外关键字列也将被相应地做相同的更新.外关键字约束的作用还体现在,当向含有外关键字的表插入数据时,如果与之相关联的表的列中无与插入的外关键字列值相同的值时,系统会拒绝插入数据.与主关键字相同,不能使用一个定义为TEXT或IMAGE数据类型的列创建外关键字.外关键字最多由16个列组成. 定义外关键字约束的语法如下: CONSTRAINT constraint_name FOREIGN KEY(column_name1[,column_name2,…,column_name16]) REFERENCES ref_table[(ref_column1[,ref_column2,…,ref_column16])] [ON DELETE{CASCADE|NO ACTION}] [ON UPDATE{CASCADE|NO ACTION}]] [NOT FOR REPLICATION] 各参数说明如下: REFERENCES 指定要建立关联的表的信息. ref_table 指定要建立关联的表的名称. ref_column 指定要建立关联的表中的相关列的名称. ON DELETE{CASCADE|NO ACTION} 指定在删除表中数据时,对关联表所做的相关操作.在子表中有数据行与父表中的对应数

SQL语句大全实例

SQL语句实例 表操作 例 1 对于表的教学管理数据库中的表STUDENTS ,可以定义如下:CREATE TABLE STUDENTS (SNO NUMERIC (6, 0) NOT NULL SNAME CHAR (8) NOT NULL AGE NUMERIC(3,0) SEX CHAR(2) BPLACE CHAR(20) PRIMARY KEY(SNO)) 例 2 对于表的教学管理数据库中的表ENROLLS ,可以定义如下: CREATE TABLE ENROLLS (SNO NUMERIC(6,0) NOT NULL CNO CHAR(4) NOT NULL GRADE INT PRIMARY KEY(SNO,CNO) FOREIGN KEY(SNO) REFERENCES STUDENTS(SNO) FOREIGN KEY(CNO) REFERENCES COURSES(CNO) CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100))) 例 3 根据表的STUDENTS 表,建立一个只包含学号、姓名、年龄的女学生表。 CREATE TABLE GIRL

AS SELECT SNO, SNAME, AGE FROM STUDENTS WHERE SEX=' 女'; 例 4 删除教师表TEACHER 。 DROP TABLE TEACHER 例 5 在教师表中增加住址列。 ALTER TABLE TEACHERS ADD (ADDR CHAR(50)) 例 6 把STUDENTS 表中的BPLACE 列删除,并且把引用BPLACE 列的所有视图和约束也一起删除。 ALTER TABLE STUDENTS DROP BPLACE CASCADE 例7 补充定义ENROLLS 表的主关键字。 ALTER TABLE ENROLLS ADD PRIMARY KEY (SNO,CNO) ; 视图操作(虚表) 例9 建立一个只包括教师号、姓名和年龄的视图FACULTY 。( 在视图定义中不能包含ORDER BY 子句) CREATE VIEW FACULTY AS SELECT TNO, TNAME, AGE FROM TEACHERS 例10 从学生表、课程表和选课表中产生一个视图GRADE_TABLE ,它包括学生姓名、课程名和成绩。 CREATE VIEW GRADE_TABLE AS SELECT SNAME,CNAME,GRADE FROM STUDENTS,COURSES,ENROLLS WHERE STUDENTS.SNO =ENROLLS.SNO AND https://www.360docs.net/doc/7c9896193.html,O=https://www.360docs.net/doc/7c9896193.html,O 例11 删除视图GRADE_TABLE DROP VIEW GRADE_TABLE RESTRICT 索引操作 例12 在学生表中按学号建立索引。 CREATE UNIQUE INDEX ST ON STUDENTS (SNO,ASC) 例13 删除按学号所建立的索引。 DROP INDEX ST 数据库模式操作

sql server约束

对于SQL Server中的约束,想必大家并不是很陌生。但是约束中真正的内涵是什么,并不是很多人都很清楚的。本文以详细的文字来介绍了什么是约束,以及如何在数据库编程中使用和使用这些约束,来达到更好的编程效果。(本文部分内容参考了SQL Server联机手册) 内容 数据完整性分类 实体完整性 域完整性 引用完整性 用户定义完整性 PRIMARY KEY约束 DEFAULT约束 CHECK约束 UNIQUE约束 FOREIGN KEY约束 正文 在数据库管理系统中,保证数据库中的数据完整性是非常重要的。所谓数据完整性,就是指存储在数据库中数据的一致性和正确性。约束定义关于列中允许值的规则,是强制完整性的标准机制。使用约束优先于使用触发器、规则和默认值。查询优化器也使用约束定义生成高性能的查询执行计划。 SQL Server联机丛书中,将数据完整性解释如下:“存储在数据库中的所有数据值均正确的状态。如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性。”强制数据完整性可确保数据库中的数据质量。 例如,如果输入了employee_id 值为123 的职员,那么该数据库不应允许其他职员使用同一ID 值。如果计划将employee_rating 列的值范围设定为从1 到5,则数据库不应接受6。如果表有一dept_id 列,该列存储职员的部门编号,则数据库应只允许接受公司中的有效部门编号。 数据完整性分类 在SQL Server中,根据数据完整新措施所作用的数据库对象和范围不同,可以将数据完整性分为以下几种。

实体完整性 域完整性 引用完整性 用户定义完整性 SQL Server联机丛书中指明:“对表进行计划有两个重要步骤:标识列的有效值和确定如何强制列中的数据完整性。” 实体完整性 实体完整性简单的说,就是将表中的每一行看作一个实体。实体完整性要求表的标示符列或主键的完整性。可以通过建立唯一索引、PRIMARY KEY约束、UNIQUE约束,以及列的IDENTITY属性来实施实体完整性。 域完整性 域完整性是指给定列的输入有效性。要求表中指定列的数据具有正确的数据类型、格式和有效的数据范围。强制域有效性的方法有:限制类型(通过数据类型)、格式(通过CHECK 约束和规则)或可能值的范围。域完整性通过FOREIGN KEY 约束、CHECK 约束、DEFAULT 定义、NOT NULL 定义和规则来实现。 引用完整性 引用完整性又称参照完整性。引用完整性维持被参照表和参照表之间的数据一致性,他通过主键(PRIMARY KEY)约束和外键(FOREIGN KEY)约束来实现。引用完整性确保键值在所有表中一致。这样的一致性要求不能引用不存在的值,如果键值更改了,那么在整个数据库中,对该键值的所有引用要进行一致的更改。在被参照表中,当其主键值被其他表所参照时,该行不能被删除也不允许改变。在参照表中,不允许参照不存在的主键值。 强制引用完整性时,SQL Server 禁止用户进行下列操作: 当主表中没有关联的记录时,将记录添加到相关表中。 更改主表中的值并导致相关表中的记录孤立。 从主表中删除记录,但仍存在和该记录匹配的相关记录。

产品结构设计等方面的checklist

模具的checklist表: 产品名称模具编号材料收缩率 序号内容自检确认 1与客户交流清楚外观面位置及外观要求如镜面,皮纹,亚光等。 2清楚产品的安装方向,产品的出模方向及它们之间的关系。 3产品在出模方向无不合理结构。 4壁厚合理,壁厚均匀,没有过薄,过厚及壁厚突变。 5圆角齐全,所有外观面倒圆角(特殊要求除外),所有非外观面倒圆角,非外观面圆角足够大。且圆角处壁厚均匀,无漏掉的圆角。 6脱模斜度齐全,正确,无放反的情况,脱模斜度足够大,已用DRAFTCHECK命令进行检查。7透明件,皮纹处理的外观面,插穿面脱模斜度足够大,满足标准。 8透明件已考虑外观效果,可见结构,并与客户进行交流。 9需贴膜的件已经考虑到膜在实际安装方向的定位, 10电镀件装配考虑到镀层厚度和装配间隙, 11一面用插接,一面用卡爪的结构已考虑到装配过程中是否有与外观干涉,是否有造成外观面破坏的情况,卡爪是否易断 12加强筋高度,宽度,脱模斜度结构及工艺均合理。 13外观件检查产品结构如壁厚,加强筋(尤其是横在制品侧壁的筋考虑与侧壁的防缩)、螺钉柱等不会引起缩水,已采取防缩措施。 14产品变形,收缩等注塑缺陷轻微,且已与客户协商,得到客户的书面认可。 15需出斜顶,滑块,抽芯的结构活动距离及空间足够,结构能否简化。 16产品无引起模具壁薄,尖角等不合理结构。 17带嵌件的产品考虑嵌件在模具中的牢固固定,内桶底的嵌件要求将嵌件和包嵌件的胶位合并到一起作为模具嵌件。 18与客户交流清楚分型面的位置,外观面滑块,抽芯允许的夹线位置。 19备份产品已检查所有修模报告及更改记录并进行了更改,重要装配尺寸进行了样件的实际测绘验证。 笔记本的CHECKLIST DesignCheckListBySub-Assy. 1.U-Case 1-1上下盖嵌合部份 1-1-1上下盖PL是否Match 1-1-2Lip是否完成,是否符合外观要求(修饰沟) 1-1-3侧壁之TAPER/与下盖是否配合/考虑到开模 1-1-4上下盖之配合卡勾共几处,是否位置match 1-1-5卡勾嵌合深度多少 1-1-6卡勾两侧有无夹持Rib,拆拔时是否易断裂 1-1-7卡勾是否造成侧壁缩水(如果太厚) 1-1-8公模内面形状(如各处高度). 1-1-10PL切口处是否有刀口产生(全周Check) 1-2BOSS 1-2-1上下盖BOSS孔位是否相合 1-2-2BOSS尺寸是否标准化,内缘有没有倒角

oracle 经典SQL语句大全

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1

sql约束例子

约束(Constraint)是Microsoft SQL Server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整性的介绍请参见第9 章)。在SQL Server 中有5 种约束:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)、检查约束(Check Constraint)和缺省约束(Default Constraint)。 7.2.1 主关键字约束 主关键字约束指定表的一列或几列的组合的值在表中具有惟一性,即能惟一地指定一行记录。每个表中只能有一列被指定为主关键字,且IMAGE 和TEXT 类型的列不能被指定为主关键字,也不允许指定主关键字列有NULL 属性。 定义主关键字约束的语法如下: CONSTRAINT constraint_name PRIMARY KEY [CLUSTERED | NONCLUSTERED] (column_name1[, column_name2,…,column_name16]) 各参数说明如下: constraint_name 指定约束的名称约束的名称。在数据库中应是惟一的。如果不指定,则系统会自动生成一个约束名。 CLUSTERED | NONCLUSTERED 指定索引类别,CLUSTERED 为缺省值。其具体信息请参见下一章。 column_name 指定组成主关键字的列名。主关键字最多由16 个列组成。 例7-3:创建一个产品信息表,以产品编号和名称为主关键字 create table products ( p_id char(8) not null, p_name char(10) not null , price money default 0.01 , quantity smallint null , constraint pk_p_id primary key (p_id, p_name) ) on [primary] 7.2.2 外关键字约束 外关键字约束定义了表之间的关系。当一个表中的一个列或多个列的组合和其它表中的主关键字定义相同时,就可以将这些列或列的组合定义为外关键字,并设定它适合哪个表中哪些列相关联。这样,当在定义主关键字约束的表中更新列值,时其它表中有与之相关联的外关键字约束的表中的外关键字列也将被相应地做相同的更新。外关键字约束的作用还体现在,当向含有外关键字的表插入数据时,如果与之相关联的表的列中无与插入的外关键字列值相同的值时,系统会拒绝插入数据。与主关键字相同,不能使用一个定义为 TEXT 或IMAGE 数据类型的列创建外关键字。外关键字最多由16 个列组成。 定义外关键字约束的语法如下: CONSTRAINT constraint_name FOREIGN KEY (column_name1[, column_name2,…,column_name16]) REFERENCES ref_table [ (ref_column1[,ref_column2,…, ref_column16] )] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] ] [ NOT FOR REPLICATION ] 各参数说明如下: REFERENCES 指定要建立关联的表的信息。 ref_table 指定要建立关联的表的名称。 ref_column 指定要建立关联的表中的相关列的名称。 ON DELETE {CASCADE | NO ACTION}

相关文档
最新文档