
MySQL Data Types – जब हम MySql में Table Create करना चाहते हैं, तो सबसे पहले हमें MySql द्वारा Supported विभिन्न प्रकार के Data Types को समझना जरूरी होता है, ताकि हम हमारी Table के विभिन्न Columns में Store किए जा सकने वाले Data के Data Type को सही तरीके से तय कर सकें। तो चलिए, सबसे पहले हम MySql के विभिन्न Data Types को समझने की कोशिश करते हैं।
PHP 40 से ज्यादा प्रकार के Data Types हैं, जो अलग-अलग प्रकार के Data को Best तरीके से Categories करने के लिए Use किए जा सकते हैं। फिर भी मोटे तौर पर इन्हें निम्नानुसार चार मुख्य Categories में Divide करके समझा जा सकता है।
Date and Time Data Types
Date व Time Based Data को MySql में Handle करने के लिए कई प्रकार के Data Types को Specify किया गया है। जिनमें से कुछ Most Common तरीके से Use किए जाने वाले Data Types निम्नानुसार हैं:
DATE Datatype
जब हम किसी Table के किसी Column में Date Value को Store करना चाहते हैं, तब हम इस Data Type को Use कर सकते हैं। MySql Default रूप से YYYY-MM-DD Format में Date को Store करता है, लेकिन हम Number या String Format के रूप में भी Date को Specify कर सकते हैं। यानी हम 20101020 व 2010-10-20 इन दोनों तरीकों से Date को MySql Table में Store कर सकते हैं।
MySql की किसी Table में हम 1000-01-01 से 9999-12-31 के बीच की किसी भी Date को Valid Date के रूप में Store कर सकते हैं।
Date व Time के बीच Delimiter के रूप में हम किसी भी Non-Alphanumerical Character को Use कर सकते हैं। उदाहरण के लिए हम उपरोक्त क्ंजम को 1000/01/01, 1000!01!01, 1000,01,01 या 9999*12*31 आदि किसी भी रूप में Specify कर सकते हैं।
DATETIME Datatype
जब हम किसी Table के किसी Column में Date व Time दोनों Values को एक साथ Store करना चाहते हैं, तब हम इस Data Type को Use कर सकते हैं। MySql Default रूप से YYYY-MM-DD HH:MM:SS Format में DATETIME को Store करता है, लेकिन हम Number या String Format के रूप में भी Date को Specify कर सकते हैं। यानी हम 20101020101010 व 2010-10-20 10:10:10 इन दोनों तरीकों से DATETIME को MySql Table में Store कर सकते हैं।
MySql की किसी Table में हम 1000-01-01 00:00:00 से 9999-12-31 23:59:59 के बीच की किसी भी Date and Time को Valid DATETIME के रूप में Store कर सकते हैं।
TIME Datatype
जब हम किसी Table के किसी Column में Time Values को Store करना चाहते हैं, तब हम इस Data Type को Use कर सकते हैं।
MySql की किसी Table में हम -838:59:59 से 838:59:59 के बीच के किसी भी Time को Valid TIME के रूप में Store कर सकते हैं जो कि Standard व Military Style दोनों Time Format को Support करता है।
TIMESTAMP[(M) [DEFAULT] [ON UPDATE]
TIMESTAMP Datatype, DATETIME Datatype से अलग प्रकार का Data Type होता है क्योंकि जिस Column में इस Data Type को Specify किया गया होता है, Table के किसी भी Record को Update या Insert किया जाता है, उस Record के इस Datatype वाले Column में Automatically Current Date व Time Update हो जाता है।
TIMESTAMP Value सामान्यतः TIME Format यानी HH:MM:SS Format में दिखाई देता है और हम DATE व DATETIME Datatypes की तरह इसे भी Number या String दोनों Format में Specify कर सकते हैं। इस Datatype को हम कई Format में Specify कर सकते हैं। जैसे
14 Digit Long Timestamp YYYYMMDDHHMMSS
12 Digit Long Timestamp YYMMDDHHMMSS
8 Digit Long Timestamp YYYMMDD
6 Digit Long Timestamp YYMMDD
इस Data Type की Range 1970-01-01 00:00:01 to 2037-12-31 23:59:59 होती है और ये Data Type Memory में 4 Byte की Space लेता है। इस Datatype में Data हमेंशा YYYY-MM-DD HH:MM:SS Format में ही Store होता है।
यदि इस DATE, DATETIME, TIME या TIMESTAMP Data Type के Column में सही Value Store न हो, तो वह Value Zeros की String में Convert हो जाता है।
YEAR[(2|4)] Datatype
जब हम किसी Table के किसी Column में केवल Year Value को Store करना चाहते हैं, तो हम MySql के इस Data Type को Use कर सकते हैं। ये Datatype String व Number के रूप में दो Formats यानी कुल चार Formats में Values को Support करता है।
2-Digit Number
जब हम Year के केवल अन्तिम दो Digits को Value के रूप में Store करना चाहते हैं, तब हम Value के रूप में 1 से 99 के बीच कोई भी मान Specify कर सकते हैं। यदि हमारा Specified मान 1 से 69 के बीच हो, तो ये मान Automatically 2001 से 2069 के बीच Convert हो जाता है। जबकि मान 70 से 99 के बीच होने की स्थिति में ये मान 1970 से 1999 के बीच Convert होता है।
4-Digit Number
जब हम Year के चारों Digits को Value के रूप में Store करना चाहते हैं, तब हम Value के रूप में 1901 से 2155 के बीच कोई भी मान Specify कर सकते हैं।
2-Digit String
जब हम Year के केवल अन्तिम दो Digits को Value के रूप में Store करना चाहते हैं, तब हम Value के रूप में “1” से “99” के बीच कोई भी मान Specify कर सकते हैं। यदि हमारा Specified मान “1” से “69” के बीच हो, तो ये मान Automatically “2001” से “2069” के बीच Convert हो जाता है। जबकि मान “70” से “99” के बीच होने की स्थिति में ये मान “1970” से “1999” के बीच Convert होता है।
4-Digit Number
जब हम Year के चारों Digits को Value के रूप में Store करना चाहते हैं, तब हम Value के रूप में “1901” से “2155” के बीच कोई भी मान Specify कर सकते हैं।
Numeric Data Types
विभिन्न प्रकार के Numerical Data को MySql Table में Store करने के लिए MySql हमें निम्न Data Types Provide करता हैः
BOOL, BOOLEAN or TINYINT(1) Datatypes
ये तीनों ही Datatypes केवल एक Bit यानी True या False मानों को Store कर सकते हैं जो कि 0 या 1 द्वारा Represent होते हैं। जब हमें किसी Information को केवल True या False के रूप में Store करना होता है, तब हम इन में से किसी भी Data Type का प्रयोग कर सकते हैं।
BIGINT[(M)] Datatypes
जब हमें किसी Information को केवल Integer Value यानी पूर्णांक संख्या के रूप में ही Store करना होता है, तब हम इस Data Type का प्रयोग करते हैं। इस Datatype की Range Signed स्थिति में –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 व 0 to 18,446,744,073,709,551,615 होती है।
INT[(M)] [UNSIGNED] [ZEROFILL] Datatypes
जब हमें किसी Information को केवल Integer Value यानी पूर्णांक संख्या के रूप में ही Store करना होता है, लेकिन Integer संख्या ज्यादा बडी नहीं होती है, तब हम इस Data Type का प्रयोग करते हैं। इस Datatype की Range Signed स्थिति में –2,147,483,648 to 2,147,483,647 व 0 to 4,294,967,295 होती है।
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] Datatypes
ये Datatype भी Integer Value को ही Store करता है। लेकिन इस Datatype की Range Signed स्थिति में –8,388,608 to 8,388,607 व 0 to 16,777,215 होती है।
SMALLINT[(M)] [UNSIGNED] [ZEROFILL] Datatypes
ये Datatype भी Integer Value को ही Store करता है। लेकिन इस Datatype की Range Signed स्थिति में –32,768 to 32,767 व 0 to 65,535 होती है।
TINYINT[(M)] [UNSIGNED] [ZEROFILL] Datatypes
ये Datatype भी Integer Value को ही Store करता है। लेकिन इस Datatype की Range Signed स्थिति में –128 to 127 व 0 to 255 होती है।
DECIMAL([M[,D]]) [UNSIGNED] [ZEROFILL] Datatype
ये Datatype Floating Point Value को String के रूप में Store करता है। इस Datatype की Range Signed स्थिति में –1.7976931348623157E+308 to –2.2250738585072014E–308 व 2.2250738585072014E–308 to 1.7976931348623157E+308 होती है। इस Datatype को Use करने पर MySQL द्वारा Value की Total Size Determine करते समय Minus Sign व Decimal Point Ignore कर दिया जाता है।
DOUBLE([M,D]) [UNSIGNED] [ZEROFILL] Datatype
जब हमें Double Precision Floating Point Number को Store करना होता है, तब हम इस Data Type को Use कर सकते हैं। इस Datatype की Range Signed स्थिति में ––1.7976931348623157E+308 to –2.2250738585072014E–308 व 2.2250738585072014E–308 to 1.7976931348623157E+308 होती है।
FLOAT([M,D]) [UNSIGNED] [ZEROFILL] Datatype
जब हमें Double Precision Floating Point Number को Store करना होता है, तब हम इस Data Type को Use कर सकते हैं। इस Datatype की Range Signed स्थिति में –3.402823466E+38 to –1.175494351E–38 व 1.175494351E–38 to 3.402823466E+38 होती है।
FLOAT (precision) [UNSIGNED] [ZEROFILL] Datatype
जब हमें ODBC Compatibility की जरूरत होती है, ताकि हम किसी भी प्रकार के Frontends से MySQL Database के Data को Access कर सकें, तब हमें हमारे Floating Point Value को इस Datatype के Column में Store करना होता। इस Datatype की Precision Range Single Precision के लिए 1 से 24 तक हो सकती है जबकि Double Precision के लिए 25 से 54 तक हो सकती है।
इस Datatype की Range Signed स्थिति में –3.402823466E+38 to –1.175494351E–38 व 1.175494351E–38 to 3.402823466E+38 होती है।
String Data Types
MySQL में String Handling से संबंधित विभिन्न प्रकार के Data Types निम्नानुसार हैं:
CHAR(Length) [BINARY | ASCII | UNICODE] Datatype
इस Datatype का प्रयोग हम तब करते हैं जब हमें अधिकतम 266 Characters तक की Length का Data Store करना होता है। यदि Length Parameter में Specified Length में Character Insert नहीं करते हैं, तो बचे हुए Space में Automatically Blank Space Fill हो जाता है। जबकि यदि हमें केवल एक ही Character Store करना हो, तो हमें Length Parameter को Specify करना जरूरी नहीं होता।
हम इस Datatype को 0 Length Parameter के साथ भी Specify कर सकते हैं। जब हम ऐसा करते हैं, तो उस Column में NULL व “” Empty String के अलावा और कोई Value Store नहीं किया जा सकता।
जब हम BINARY Value Specify करते हैं, तो Column में Store होने वाले Character Chase Sensitive हो जाते हैं व Column के Data Case Sensitive तरीके से Sort होते हैं, जबकि इसे Specify न करने की स्थिति में Data Case Insensitive तरीके से Store व Sort होते हैं।
यदि हम इस Datatype के Column में 255 से ज्यादा Characters Store करते हैं, तो MySQL Automatically इस Datatype को TEXT Datatype से Replace कर देता है।
हम ASCII मान Specify करके Characters को ASCHII Character के रूप में भी Store कर सकते हैं जबकि UNICODE मान Specify करके Store होने वाले Characters को UNICODEW Characters के रूप में Store कर सकते हैं।
VARCHAR(Length) [BINARY] Datatype
MySQL का ये एक Variable Length Datatype है, जो केवल उतनी ही Memory Reserve करता है, जितने Characters हम इसमें Store करते हैं। उदाहरण के लिए यदि हम किसी Column की Length 50 Character रखते हैं और हम उसमें केवल 10 Characters की Store करते हैं, तो इस Data Type को Use करने पर MySQL केवल 10 Characters की ही Memory Reserve करता है, जबकि इसी स्थान पर CHAR Data Type को Use करने पर MySql पूरे 50 Character की memory Reserve करता है, भले ही हम Column में केवल 10 Characters ही Store क्यों न करें।
इस Datatype के Column में हम अधिकतक 65535 Characters Store कर सकते हैं। जबकि BINARY Attribute को Specify करने पर इस Column का Data Case Sensitive हो जाता है।
LONGBLOB Datatype
इस Datatype का प्रयोग तब किया जाता है जब हमें बहुत बडी मात्रा में Binary String Representation Text को किसी Column में Store करना होता है। इसकी Range 4,294,967,295 Characters होती है।
LONGTEXT Datatype
इस Datatype का प्रयोग तब किया जाता है जब हमें बहुत बडी मात्रा में Non-Binary String Representation Text को किसी Column में Store करना होता है। इसकी Range 4,294,967,295 Characters होती है।
MEDIUMBLOB Datatype
इस Datatype का प्रयोग तब किया जाता है जब हमें बहुत बडी मात्रा में लेकिन LONGBLOB से कम Binary String Representation Text को किसी Column में Store करना होता है। इसकी Range 16,777,215 Characters होती है।
MEDIUMTEXT Datatype
इस Datatype का प्रयोग तब किया जाता है जब हमें बहुत बडी मात्रा में लेकिन BLOBTEXT से कम Non-Binary String Representation Text को किसी Column में Store करना होता है। इसकी Range 16,777,215 Characters होती है।
LONGTEXT Datatype
इस Datatype का प्रयोग तब किया जाता है जब हमें बहुत बडी मात्रा में Non-Binary String Representation Text को किसी Column में Store करना होता है। इसकी Range 4,294,967,295 Characters होती है।
BLOB Datatype
इस Datatype का प्रयोग तब किया जाता है जब हमें बहुत बडी मात्रा में लेकिन MEDIUMBLOB से कम Binary String Representation Text को किसी Column में Store करना होता है। इसकी Range 65535 Characters होती है।
TEXT Datatype
इस Datatype का प्रयोग तब किया जाता है जब हमें बहुत बडी मात्रा में लेकिन MEDIUMTEXT से कम Non-Binary String Representation Text को किसी Column में Store करना होता है। इसकी Range 65535 Characters होती है।
TINYBLOB Datatype
इस Datatype का प्रयोग तब किया जाता है जब हमें बहुत बडी मात्रा में लेकिन BLOB से कम Binary String Representation Text को किसी Column में Store करना होता है। इसकी Range 255 Characters होती है।
TINYTEXT Datatype
इस Datatype का प्रयोग तब किया जाता है जब हमें बहुत बडी मात्रा में लेकिन TEXT से कम Non-Binary String Representation Text को किसी Column में Store करना होता है। इसकी Range 255 Characters होती है।
ENUM(“member1″,”member2”,… “member65,535”) Datatype
इस Datatype का प्रयोग करके हम Members की एक Predefined List में से किसी एक Value को किसी Table Column में Value के रूप में Store कर सकते हैं। हम इस Datatype द्वारा अधिकतम 65535 Distinct Members को Specify कर सकते हैं।
यदि Column Declaration में NULL Attribute हो, तो वह Value एक Valid व Default Value की तरह Treat होता है जबकि NOT-NULL Declare करने की स्थिति में List का पहला Member Default Member होता है।
SET(“member1”, “member2”,… “member64”) Datatype
ये Datatype Zero या अधिक Predefined Values को Column Value के रूप में Set करने की सुविधा देता है जबकि हम इसमें अधिकतम 64 Members Specify कर सकते हैं।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
PHP in Hindi | Page: 647 | Format: PDF