½ðÁê¿Æ¼¼Ñ§ÔºÊµÑ鱨¸æ
CNO char(4) not null, Scorce Numeric (4,1), primary key(SNO,CNo)) USE MyDB GO
EXEC sp_addtype courseNo,'char(4)','NOT NULL'; GO
Îå¡¢Ð޸ıí½á¹¹
alter table Student add Department Char(12)
Áù¡¢²åÈëÊý¾Ý
insert into student values('19920101','Íõ¾ü','ÄÐ','CS01','ϹØ#','1976.12.21',1.76,10);
insert into student values('19920102','Àî½Ü','ÄÐ','CS01','½±ß·#','1974.5.24',1.72,9);
insert into student values('19920306','ÍõÍ®','Å®','MT04','ÖÐÑë·#','1977.3.18',1.65,9);
insert into student values('19940106','ÎâèÂ','Å®','PH08','Á«»¯Ð¡Çø#','1979.4.8',1.60,4) delete from student
insert into Class values('CS01','¼ÆËã»úÒ»°à','ÍõÄþ','¼ÆËã»úÓ¦ÓÃ'); insert into Class values('MT04','ÊýѧËİà','³Â³¿','Êýѧ'); insert into Class values('PH081','ÎïÀí°Ë°à','¸ð¸ñ','ÎïÀí'); insert into Course values('0001','Êýѧ',Null,6)
insert into Course values('0003','¼ÆËã»ú»ù´¡','0001',3) insert into Course values('0007','ÎïÀí','0001',4) insert into Grade values('19920101','0001',90,6) insert into Grade values('19920101','0007',86,4) insert into Grade values('19920102','0001',87,6) insert into Grade values('19920102','0003',76,3) insert into Grade values('19920306','0001',87,6) insert into Grade values('19920306','0003',93,3) insert into Grade values('19940106','0007',85,4)
Áù¡¢ÊµÑéÌå»áºÍÊÕ»ñ
ʵÑéÏîÄ¿Ãû³Æ£º Ô¼Êø¡¢Ä¬ÈϺ͹æÔò ʵÑéѧʱ£º ͬ×éѧÉúÐÕÃû£º
ʵÑ鵨µã£º
ʵÑéÈÕÆÚ£º ʵÑé³É¼¨£º Åú¸Ä½Ìʦ£º Åú¸Äʱ¼ä£º
ʵÑé3 Ô¼Êø¡¢Ä¬ÈϺ͹æÔò
Ò»¡¢ÊµÑéÄ¿µÄºÍÒªÇó
1¡¢Àí½âÊý¾Ý¿âÖеÄʵÌåÍêÕûÐÔÔ¼Êø£¬ÕÆÎÕPRIMARY KEY¡¢UNIQUE¡¢NOT NULL µÈÔ¼ÊøµÄ´´½¨·½·¨¡£
2¡¢Àí½â²ÎÕÕÍêÕûÐÔÔ¼ÊøµÄ¸ÅÄî£¬ÕÆÎÕFORENGN KEY ´´½¨·½·¨¡£
12
½ðÁê¿Æ¼¼Ñ§ÔºÊµÑ鱨¸æ
3¡¢Àí½âÓòÍêÕûÐԵĸÅÄî£¬ÕÆÎÕCHECK¼°¹æÔòµÄ´´½¨·½·¨¡£ 4¡¢Àí½âĬÈÏÖµµÄ¸ÅÄî£¬ÕÆÎÕĬÈÏÖµºÍĬÈ϶ÔÏóµÄ´´½¨·½·¨¡£
¶þ¡¢ÊµÑéÉ豸¡¢»·¾³
É豸£º±¼ÌÚ¢ô»ò±¼ÌÚ¢ôÒÔÉϼÆËã»ú
»·¾³£ºWINDOWS 2000 SERVER»òWINDOWS 2003 SERVER¡¢SQL Server2005ÖÐÎİ档
Èý¡¢ÊµÑé²½Öè
1¡¢¸ù¾ÝÌâĿҪÇóÊìϤSQL Server2005µÄ¸÷ÖÖ¹ÜÀí¹¤¾ß¡£ 2¡¢·ÖÎöÌâÒâ£¬ÖØµã·ÖÎöÌâĿҪÇ󲢸ø³ö½â¾ö·½·¨¡£
3¡¢°´ÌâĿҪÇóÍê³Éʵ¼Ê²Ù×÷ÈÎÎñ£¬²¢½«Ïà¹ØÎĵµ×ÊÁϱ£´æÔÚÒÔ×Ô¼ºÑ§ºÅÃüÃûµÄÎļþ¼ÐÖС£ 4¡¢Ìá½»Íê³ÉµÄʵÑé½á¹û¡£
ËÄ¡¢ÊµÑéÄÚÈÝ
1¡¢Ô¼ÊøÔÚÊý¾Ý¿âÖеÄÓ¦ÓÃ
£¨1£©ÓÃϵͳ´æ´¢¹ý³Ìsp_helpconstraint²é¿´student±íµÄÔ¼Êø¡£
£¨2£©ÔÚн¨²éѯÖÐÊäÈë²åÈëÒ»¸öѧÉúÐÅÏ¢µÄÃüÁ
insert into student(SNO,Sname,Sex,ClsNO,StuAddr,Brithday,Height,TotalCredit) values(¡®19920101¡¯,¡¯Íõ¾ü¡¯,1976.12.21¡¯,1.76,10)£¬¹Û²ìÆä½á¹û¡£
ÄÐ
¡¯,¡¯CS01¡¯,¡¯
ÏÂ
¹Ø
40#¡¯,¡¯
ÐÞ¸ÄSNOµÄÖµ£¬½«ÆäÖµÐÞ¸ÄΪ¡¯19000001¡¯,ÆäËûµÄÖµ±£³Ö²»±äÔÙ²åÈëÒ»´Î¹Û²ìÆä½á¹û¡£ £¨3£©ÐÞ¸Ästudeng±í£¬Ê¹ÓÃCheckÔ¼Êø£¬Ê¹ÐÔ±ðÁÐÖ»ÄܽÓÊÜ¡°ÄС±»ò¡°Å®¡±£¬ÒÔÇ¿ÖÆÖ´ÐÐÓòÊý¾ÝÍêÕûÐÔ¡£ÖØ×ö£¨1£©,¹Û²ìÆä½á¹û¡£
£¨4£©½ûÖ¹student±íÖеÄsexÁÐÉϵÄÔ¼Êø£ºalter table student nocheck constraint ck_student
£¨5£©É¾³ýÔ¼Êø£ºalter table student drop constraint ck_xsqk¡£ÖØ×ö£¨1£©¡£ £¨6£©ÀûÓùØÏµÍ¼£¬½¨Á¢student±íÓëcourse±íÓëgrade±íµÄÖ÷Íâ¼üÔ¼Êø¡£ 2¡¢Ä¬ÈϵÄÓ¦ÓÃ
£¨1£©´´½¨Ä¬È϶ÔÏó£ºdefault_birthday£¬Ä¬ÈÏֵΪ¡¯1982-1-1¡¯¡£
CREATE DEFAULT default_birthday AS ¡®1982-01-01¡¯
£¨2£©ÀûÓÃϵͳ´æ´¢¹ý³Ìsp_bindefault½«default_birthday°ó¶¨µ½student±íµÄBirthdayÁÐÉÏ¡£
£¨3£©ÀûÓÃϵͳ´æ´¢¹ý³Ìsp_unbindefault½â³ýstudent±íµÄBirthdayÁÐÉϵÄĬÈÏÖµ°ó¶¨¡£ £¨4£©É¾³ýĬÈÏÖµ£ºDROP DEFAULT default_birthday
£¨5£©¶¨ÒåÒ»¸öĬÈÏֵΪ4µÄDefault_Value£¬²¢½«Ëü°ó¶¨µ½course±íµÄCreditÁÐÉÏ£¬°ó¶¨ºó¸øcourse²åÈëÊý¾ÝÐУ¬¹Û²ìĬÈÏÖµµÄÉèÖÃÇé¿ö£¬Ê¹ÓÃÍê±Ïºó£¬½â³ý²¢É¾³ý°ó¶¨¡£ÊµÏÖ¹ý³ÌÒªÇóʹÓÃSQLÓï¾äÍê³É¡£
3¡¢¹æÔòµÄÓ¦ÓÃ
£¨1£©ÀûÓÃÆóÒµ¹ÜÀíÆ÷´´½¨¹æÔò£º¹æÔòÃûΪ£ºrule_credit_range£¬Îı¾Îª£º@range>=1 and @range<=8
£¨2£©°ó¶¨¹æÔò£º½«rule_credit_range °ó¶¨µ½Class±íµÄcourseÁÐÉÏ¡£
£¨3£©½â³ý£¨2£©ÖÐÉèÖõĹæÔò°ó¶¨£¬É¾³ý¹æÔòrule_ credit _range¡£
£¨4£©¶¨ÒåÒ»¸ö¹æÔòrule_Specialty£¬Õâ¸ö¹æÔòÏÞÖÆClass±íÖеÄSpecialtyÁÐÖ»ÄÜÈ¡ÒÔϵÄÖµ£º¼ÆËã»úÓ¦Óá¢ÐÅÏ¢¹ÜÀí¡¢Êýѧ¡¢ÎïÀí¡£½«¸Ã¹æÔò°ó¶¨µ½Class±íºó£¬ÏòClass±í²åÈë
13
½ðÁê¿Æ¼¼Ñ§ÔºÊµÑ鱨¸æ
Êý¾ÝÐУ¬¹Û²ì¹æÔòµÄÉèÖÃÇé¿ö£¬Ê¹ÓÃÍê±Ïºó£¬½â³ý²¢É¾³ý¸Ã¹æÔò¡£
Îå¡¢ÎÊÌâ½â´ð¼°ÊµÑé½á¹û
1¡¢£¨1£©exec sp_helpconstraint student
£¨2£©insert into
student(SNO,Sname,Sex,ClsNO,StuAddr,Birthday,Height,TotalCredit) values('19920101','Íõ¾ü','ÄÐ','CS01','ϹØ#','1976.12.21',1.76,10) /* ÏûÏ¢2627£¬¼¶±ð14£¬×´Ì¬1£¬µÚ1 ÐÐ
Î¥·´ÁËPRIMARY KEY Ô¼Êø'PK_Student_1'¡£²»ÄÜÔÚ¶ÔÏó'dbo.student' ÖвåÈëÖØ¸´¼ü¡£Óï¾äÒÑÖÕÖ¹¡£*/ insert into
student(SNO,Sname,Sex,ClsNO,StuAddr,Birthday,Height,TotalCredit) values('19000001','Íõ¾ü','ÄÐ','CS01','ϹØ#','1976.12.21',1.76,10) /*(1 ÐÐÊÜÓ°Ïì)*/ £¨3£©alter table Student
add constraint c_stusex check(Sex in('ÄÐ','Å®')) £¨4£©alter table student nocheck constraint c_stusex £¨5£©alter table student drop constraint c_stusex
£¨6£©ÀûÓùØÏµÍ¼£¬½¨Á¢student±íÓëcourse±íÓëgrade±íµÄÖ÷Íâ¼üÔ¼Êø¡£ 2¡¢Ä¬ÈϵÄÓ¦ÓÃ
£¨1£©´´½¨Ä¬È϶ÔÏó£ºdefault_birthday£¬Ä¬ÈÏֵΪ¡¯-1-1¡¯¡£ CREATE DEFAULT default_birthday AS '1982-01-01'
£¨2£©exec sp_bindefault 'default_birthday','Student.Birthday' insert into student(SNO) values ('1') £¨3£©exec sp_unbindefault 'Student.Birthday' £¨4£©DROP DEFAULT default_birthday £¨5£©CREATE DEFAULT default_value AS 4
exec sp_bindefault 'default_value','Course.Credit' insert into Course(CNO) values('1000') exec sp_unbindefault 'Course.Credit' DROP DEFAULT default_value 3¡¢£¨1£©CREATE RULE rule_credit_range AS
@range>=1 and @range<=8
£¨2£©exec sp_bindrule 'rule_credit_range','Course.Credit' £¨3£© exec sp_unbindrule 'Course.Credit' drop rule rule_credit_range £¨4£© CREATE RULE rule_Specialty AS
@specialty in ( '¼ÆËã»úÓ¦ÓÃ','ÐÅÏ¢¹ÜÀí','Êýѧ','ÎïÀí') exec sp_bindrule 'rule_Specialty','Class.Specialty' insert into Class values('PH081','ÎïÀí°Ë°à','¸ð¸ñ','ÎïÀí'); exec sp_unbindrule 'Class.Specialty'
14
½ðÁê¿Æ¼¼Ñ§ÔºÊµÑ鱨¸æ
drop rule rule_Specialty
Áù¡¢ÊµÑéÌå»áºÍÊÕ»ñ
Õâ´ÎʵÑéµÄÖ÷ҪĿµÄÊÇÀí½âÊý¾Ý¿âÖеÄʵÌåÍêÕûÐÔÔ¼Êø£¬ÕÆÎÕPRIMARY KEY¡¢UNIQUE¡¢NOT NULL µÈÔ¼ÊøµÄ´´½¨·½·¨£¬Àí½â²ÎÕÕÍêÕûÐÔÔ¼ÊøµÄ¸ÅÄî£¬ÕÆÎÕFORENGN KEY ´´½¨·½·¨£¬Àí½âÓòÍêÕûÐԵĸÅÄî£¬ÕÆÎÕCHECK¼°¹æÔòµÄ´´½¨·½·¨£¬Àí½âĬÈÏÖµµÄ¸ÅÄî£¬ÕÆÎÕĬÈÏÖµºÍĬÈ϶ÔÏóµÄ´´½¨·½·¨¡£
Ô¼ÊøÊÇÇ¿ÖÆÊµÏÖÊý¾ÝÍêÕûÐÔµÄÖ÷Ҫ;¾¶£¬ÎÒÈÏʶµ½ºÜ¶à¶«Î÷¶¼ÒªÔÚʵ¼ùÖÐѧϰ²Å»áѧµ½¸ü¶à¡£
ʵÑéÏîÄ¿Ãû³Æ£º ¹ØÏµ¡¢Ë÷ÒýºÍÊÓͼ ʵÑéѧʱ£º ͬ×éѧÉúÐÕÃû£º ʵÑ鵨µã£º ʵÑéÈÕÆÚ£º ʵÑé³É¼¨£º Åú¸Ä½Ìʦ£º Åú¸Äʱ¼ä£º
ʵÑé4 ¹ØÏµ¡¢Ë÷ÒýºÍÊÓͼ
Ò»¡¢ÊµÑéÄ¿µÄºÍÒªÇó
1¡¢Àí½â¹ØÏµÍ¼µÄº¬Òå¼°ÓÃ;£¬ÕÆÎÕ¹ØÏµÍ¼µÄ´´½¨·½·¨¡£
15
Ïà¹ØÍÆ¼ö£º