SQL 2005 CHECK约束和规则区别
一、约束
约束定义关于列中允许值的规则,是强制完整性的标准机制。
使用约束优先于使用触发器、规则和默认值。查询优化器也使用约束定义生成高性能的查询执行计划。SQL Server 2005支持五类约束:
1. NOT NULL指定不接受NULL值的列。
2. CHECK 约束对可以放入列中的值进行限制,以强制执行域的完整性。CHECK约束拒绝所有在检测条件中取值为false的值。可以为每列指定多个CHECK约束。下例显示名为chk_id约束的创建,该约束确保只对此关键字输入指定范围内的数字,以进一步强制执行主键的域。
CREATE TABLE cust_sample
(
cust_id int PRIMARY KEY,
cust_name char(50),
cust_address char(50),
cust_credit_limit money,
CONSTRAINT chk_id CHECK(cust_id BETWEEN 0 and 10000)
)
3. UNIQUE约束:对于 UNIQUE 约束中的列,表中不允许有两行包含相同的非空值。主键也强制执行唯一性,但主键不允许空值。UNIQUE 约束优先于唯一索引。
4. PRIMARY KEY 约束标识列或列集,这些列或列集的值唯一标识表中的行。在一个表中,不能有两行包含相同的主键值。不能在主键内的任何列中输入NULL值。在数据库中NULL是特殊值,代表不同于空白和0值的未知值。建议使用一个小的整数列作为主键。每个表都应有一个主键。
一个表中可以有一个以上的列组合,这些组合能唯一标识表中的行,每个组合就是一个候选键。数据库管理员从候选键中选择一个作为主键。例如,在part_sample表中,part_nmbr和part_name都可以是候选键,但是只将part_nmbr选作主键。
CREATE TABLE part_sample
(
 
相关文档:
分类统计总数并排序多表联合查询的两种方法
例:
查询地区表中各省下面城市总数,并对查询结果取前十名
法一:
select b.id,a.[name],b.counts from n_area a,(select top 10 parent_id as id,sum(parent_id) as counts from n_area where parent_id<>0 group by parent_id order by sum(parent_id) desc
) b where ......
DECLARE @T varchar(255),
@C varchar(255)
DECLARE Table_Cursor CURSOR FOR
Select
a.name,b.name
from sysobjects a,
syscolumns b
where a.id=b.id and
a.xtype='u' and
(b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167)
OPEN Table_Cursor
FETCH NEXT from Table_Cursor INTO @T,@C
WHILE(@@FET ......
SQL code
创建角色,用户,权限
/*--示例说明
示例在数据库pubs中创建一个拥有表jobs的所有权限、拥有表titles的SELECT权限的角色r_test
随后创建了一个登录l_test,然后在数据库pubs中为登录l_test创建了用户账户u_test
同时将用户账户u_test添加到角色r_test中,使其通过权限继承获取了与角色r_t ......
#新增一个字段,默认值为0,非空,自动增长,主键
alter table tabelname add new_field_name field_type default 0 not null auto_increment ,add primary key (new_field_name);
#增加一个新字段
alter table tableName add new_field_name field_type;
alter table tableNam ......
SQL提供了四种模糊匹配方式
1,%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请运用两个百分号(%%)表示。
比如 SELECT * from [user] WHERE u_name LIKE '%三%'
将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三& ......