SQL——数据完整性
一.数据完整性
就是为了防止数据库中存在不符合语义规定的数据,和防止因输入输出错误而造成的无效操作或者错误信息而提出的,制定的一些对元组、属性和域的一些约束和规定。
解决办法由:规则,默认值,约束和触发器等。
二.约束
用于增强数据完整性,防止合法用户使用数据库时,想数据库中添加不符合语义的数据。约束分为三种:与表有关的约束,域约束,断言约束。
。与表有关的约束:行约束,列约束。
。域约束:在域定义中被定义的,并且与在域中定义的任何列都有关系的一种约束。
。.断言约束:在断言定义时定义的一种约束,可以与一个或者多个表有关。
下面是DEFAULT约束,CHECK约束,PRIMARYKEY约束,UNIQUE约束,FOREIGN KEY约束,NOU NULL约束,列约束,表约束。
1.DEFAULT约束
主要就是针对表中的某个列,创建一个默认值,在用户插入值时,如果没有给定值,那就默认为此值。
(1).创建数字类型的DEFAULT约束
数字类型有:整数(bigint , int , smallint , tinyint),精确数字(decimal[p( , s)] ,
numeric[p( , s]),浮点数(float[(n)] , real),货币值(money , smallmoney)。
假设表goods,属性:gNO,gNAME,gCOUNT,gPRICE,gADDRESS,StartDate
现在为gCOUNT和gPRICE创建默认值:
ALTER TABLE goods ADD DEFAULT 0 FOR gCOUNT;
ALTER TABLE goods ADD DEFAULT 0 FOR gPRICE;
输入以下语句:INSERT INTO goods (gNO,gNAME,gADDRESS) VALUES('1001','毛巾','吉林长春','2010-1-20 15:25:30.120')。执行成功后,在擦看一下,你会发现结果中gCOUNT和gPRICE列的值为0。
注意:在执行插入语句时,一定要列出插入的列,要不然你会遇到插入数据列与表属性列不一致的错误。
(2).设置DEFAULT日期型约束
为goods表的货物到货日期StartDate设置默认值为系统当前日期。
ALERT TABLE 
相关文档:
http://zhanglei1286.blog.163.com/blog/static/1895797120091112113019600/
在后台代码里:
SQL 2000:
static string StrConn = "server=.;uid=sa;pwd=sa;database=MyCUDS";
SQL2005:
con = new SqlConnection(@"Server=.\SQLExpress;Database=db_CMS;Persist Security Info=True;User ID=sa;Password=Masslong");
......
SQL Server 2005 CE开发环境介绍:
最近学习使用SQL Server 2005 Compact Edition进行数据存储,在学习的过程中发现,使用SQL Server2005 management Studio创建数据库时,在“服务器类型”下拉列表中没有“SQL Server Compact Edition”选项。因为文章 ......
下面所有的SQL语句都是针对前缀为wp_的表,如果你的表前缀不是wp_,请做相应的修改
1.更改wordpress安装和首页地址
如果你更换域名或者把wordpress的安装目录进行了变动就需要进行修改,
UPDATE wp_options SET option_value = replace(option_value, ‘旧网址’, ‘新网址’) WHERE option_name ......
On BULK COLLECT
By Steven Feuerstein Oracle ACE
Best practices for knowing your LIMIT and kicking %NOTFOUND
I have started using BULK COLLECT whenever I need to fetch large volumes of data. This has caused me some trouble with my DBA, however. He is complaining that although my programs mig ......
DECLARE @temp TABLE(
id INT,
[name] VARCHAR(50),
class VARCHAR(50)
)
INSERT INTO @temp
SELECT 1,'a','A'
UNION ALL SELECT 2,'b','C'
UNION ALL SELECT 3,'c','B'
UNION ALL SELECT 4,'d','C'
UNION ALL SELECT 5,'e','B'
UNION ALL SELECT 6,'f','A'
SELECT * from @temp AS _temp WHERE [name] IN
(
......