MySQL Databases
Introduction to MySQL Databases
MySQL server data को rows की form में store करता है। ये rows tables में store की जाती है। सभी tables databases में store की जाती है। इस प्रकार आप कह सकते है की database MySQL में data representation और storage की primary unit होती है।
File system में किसी भी database को एक directory के द्वारा represent किया जाता है। ऐसी directory को database directory कहा जाता है। इस directory में कुछ files होती है जो एक database के बारे में information provide करती है।
सभी database directories एक common parent directories में store की जाती है जिसे data directory कहा जाता है। सभी directories को store करने के साथ ही data directory कुछ ऐसी files store करती है जो MySQL server के बारे में information provide करती है।
एक database directory का नाम database के नाम जैसा ही होता है। उदाहरण के लिए यदि आपके database का नाम test है तो data directory के अंदर test नाम की एक database directory होगी।
Database directory को tables को manage करने के लिए यूज़ किया जाता है। साथ ही इसमें objects से related files भी हो सकती है जैसे की triggers, views आदि।
किसी भी database से related properties को उसकी database directory में db.opt file में store किया जाता है। ये properties कुछ भी हो सकती है जैसे की keys और events आदि।
आपको एक बात हमेशा ध्यान रखनी चाहिए की एक database में आप दूसरा database नहीं create कर सकते है। किसी भी database में सिर्फ tables ही create की जा सकती है।
Databases से related बहुत से objects हो सकते है। कुछ common objects की list निचे दी जा रही है।
- Triggers
- Events
- Stored Procedures
- Views
आइये अब देखते है की MySQL में databases को कैसे create और use किया जाता है।
Creating Databases
MySQL में database create करने के लिए आप CREATE statement यूज़ करते है। इस statement का general syntax निचे दिया जा रहा है।
mysql > create database database_Name;
Database create करने के लिए सबसे पहले आप create database statement लिखते है। इसके बाद एक database का unique नाम दिया जाता है। इसका उदाहरण निचे दिया जा रहा है।
mysql > create database test_db;
यदि आप ऐसे database को create करने का प्रयास करते है जो पहले ही create किया जा चूका है तो error आ जाती है। उदाहरण के लिए यदि में test_db वापस create करने का प्रयास करू तो error आ जाएगी।
यदि आप ये पता लगाना चाहते है की database पहले से create किया जा चूका है या नहीं तो इसके लिए आप ऊपर दिए गए statement में if not exists clause add कर सकते है। ये database create करने का एक standard तरीका होता है। ये clause administrators के लिए बहुत useful होता है। इसका उदाहरण निचे दिया जा रहा है।
mysql > create database if not exists test_db;
इस statement के execute होने पर यदि test_db पहले से create नहीं किया गया है तो test_db नाम से एक नया database create हो जायेगा। यदि database पहले से create किया जा चूका है तो कोई action नहीं लिया जायेगा और कोई error भी show नहीं होगी।
Character Set & Collate
CREATE DATABASE statement के साथ आपको character set और collation 2 clauses provide किये जाते है। ये clauses optional होते है। ये clauses character set और collation define करने के लिए यूज़ किये जाते है। ये दोनों clauses हमेशा CREATE DATABASE statement के आखिर में आते है। इनका उदाहरण निचे दिया जा रहा है।
mysql > create database test_db character set utf8 collate utf8_danish_ci;
ऊपर दिए गए statement में character set utf8 और collation utf8_danish_ci define किया गया है।
Showing Databases
यदि आप देखना चाहते है की MySQL server में कौन कौन से और कितने databases है तो ऐसा आप SHOW statement के द्वारा कर सकते है। इसका उदाहरण निचे दिया जा रहा है।
mysql > show databases;
ये statement Server में available सभी databases की list show करता है।
Switching to Database
एक बार database create करने के बाद उस database में tables आदि create करने के लिए आपको current database से उस database में switch करना पड़ेगा। इसके लिए आप USE statement को use करते है। इसका उदाहरण निचे दिया जा रहा है।
mysql > use test_db;
ये statement आपको test_db database पर control देता है। अब आप इस database में work कर सकते है।
Showing Database Structure
यदि आप किसी database का structure देखना चाहते है तो इसके लिए आप show create database statement यूज़ कर सकते है। इसका उदाहरण निचे दिया जा रहा है।
mysql > show create database test_dbG
ये statement database का complete structure show करता है।
Altering Databases
एक existing database में options को modify करने के लिए ALTER DATABASE statement यूज़ किया जाता है। इस statement के द्वारा आप character set और collation को change कर सकते है।
ALTER DATABASE statement के द्वारा आप character set इस प्रकार change कर सकते है।
mysql > alter database test_db collate utf8;
ALTER DATABASE statement के द्वारा आप collation इस प्रकार बदल सकते है।
mysql > alter database test_db collate utf8_danish_ci;
Dropping Databases
यदि आप किसी database को remove करना चाहते है तो ऐसा आप DROP DATABASE statement द्वारा कर सकते है। इस statement के बाद आप database का नाम देते है। इसका उदाहरण निचे दिया जा रहा है।
mysql > drop database test_db;
आप जिस database को delete कर रहे है यदि वह पहले से create नहीं किया गया है तो इस statement के execute होने पर error generate होगी। ऐसी situation से बचने के लिए आप IF EXISTS clause use कर सकते है। इसका उदाहरण निचे दिया जा रहा है।
mysql > drop database if exists test_db;
यदि database पहले से exist नहीं करता है तो इस statement से error generate नहीं होगी सिर्फ warning show होगी।