Saturday, November 5, 2016

Lesson 11 SQL Check Constraint in Hindi

Lesson 11 SQL Check Constraint in Hindi

इस वीडियो SQL Check Constraint के बारेमे सीखेंगे



सबसे पहेले एक table बना लेते है और थोड़े Record Insert कर लेते है.

Create table tblStudentResult
(
Id int primary key identity(1,1),
Name nvarchar(100),
TotalMarks int
)

insert into tblStudentResult Values('Kiran', 34)
insert into tblStudentResult Values('Yash', 23)
insert into tblStudentResult Values('Palak', 15)
insert into tblStudentResult Values('Meena', 42)
insert into tblStudentResult Values('Het', 29)

Select * From tblStudentResult

तो ये हमारा Table इस तरह से बनेगा.


इसमें ToatalMarks Column का DataType int है अतः हम उसमे (-2,147,483,648) to (2,147,483,647) कोई भी value Store कर सकते है.
जैसे की में एक record इन्सर्ट करता हु.

insert into tblStudentResult Values('Kavi', -99)
 

देखिये यहाँ पर Invalid Data इन्सर्ट हो गया है.
Student के TotalMarks कभी -99 नहीं हो सकते

अब आप अगर चाहते हो की मेरे TotalMarks कोलम के अंदर केवल 0 से 50 के बिच के ही नम्बर Insert हो इनके आलावा दूसरा कोई भी Number Add ना हो. क्या हम ऐसा कर सकते है ?

हा !  SQL में आप Check Constraint की मदद से कॉलम के ऊपर Condition लगा सकते है. अगर Condition का परिणाम True होता है तो Data Insert होगा नहीं तो Invalid Data इन्सर्ट नहीं होगा Error throw होगी.

तो आइये हम Check Constraint एड करते है.

Alter table tblStudentResult
Add Constraint CK_tblStudentResult_TotalMarks
CHECK (TotalMarks >=0 AND TotalMarks < 51)

एरर आ रही है क्योकि हमारे Table में पहेले से ही Invalid डेटा पड़ा है. पहेले हमें उसे निकाल ना पड़ेगा

Delete from tblStudentResult Where Id=6

Invalid डेटा वाली रो Delete हो गयी है अब फिरसे प्रयत्न करते है.

Alter table tblStudentResult
Add Constraint CK_tblStudentResult_TotalMarks
CHECK (TotalMarks >=0 AND TotalMarks < 51)

Command(s) completed successfully.


देखिये अब Command(s) completed successfully का मेसेज मील गया. और आप Object Explorer में भी उसे देख सकते है.


अब ये Record इन्सर्ट करते है.

insert into tblStudentResult Values('Kavi', -99)

देखिये Invalid Data इन्सर्ट नहीं हो रहा है. Error throw हो रही है.

The INSERT statement conflicted with the CHECK constraint "CK_tblStudentResult_TotalMarks".
 The conflict occurred in database "Test",
table "dbo.tblStudentResult", column 'TotalMarks'.

और एरर को पढने पर साफ़ पता चलता ही की माजरा क्या है.
Check Constraint को डिलीट करना हो तो

Alter table tblStudentResult
Drop Constraint CK_tblStudentResult_TotalMarks

अगर आप Table बनाते वख्त ही Check Constraint एड करना चाहते हो तो

Create table tblStudentResult
(
Id int primary key identity(1,1),
Name nvarchar(100),
TotalMarks int CONSTRAINT CK_tblStudentResult_TotalMarks
CHECK(TotalMarks >=0 AND TotalMarks < 51)
)

अथवा
Constraint का नाम दिए बिना भी इस तरह से ऐड कर सकते हो.



Create table tblStudentResult
(
Id int primary key identity(1,1),
Name nvarchar(100),
TotalMarks int CHECK(TotalMarks >=0 AND TotalMarks < 51)
)

इनमे SQL ऑटोमेटिक constraint का नाम ऐड करेगा.

 

No comments:

Post a Comment