MySQL Kya Hai




MySQL in Hindi Introduction

MySQL एक मुख्य open source database management system है. यह एक multi-user और multithreaded database management system भी है.

MySQL web पर विशेष रूप से लोकप्रिय है . यह बहुत लोकप्रिय LAMP platform के कुछ हिस्सो मे से एक है जैसे Linux, Apache, MySQL और PHP.

MySQL database सबसे महत्वपूर्ण OS platforms पर उपलब्ध है.

यह BSD Unix, Linux, Windows और Mac पर चलता है. Wikipedia, YouTube, Facebook आदि MySQL का उपयोग करते है .

MySQL दो versions मे आता है MySQL server system और MySQL embedded system.

MySQL का development 1994 मे एक Swedish company MySQL AB ने शुरू किया था. Sun Microsystems ने 2008 मे MySQL AB का acquisition किया और Sun 2010 मे Oracle द्वारा खरीदा गया था.

MySQL, PostgreSQL, Firebird, SQLite, Derby और HSQLDB सबसे प्रसिद्ध open source database systems है .

MySQL C/C++ मे develop किया गया है C/C++ के अलावा PHP, Python, Java, C#, Eiffel, Ruby, Tcl or Perl के लिए APIs मौजूद है .

What is MySQL

  • MySQL एक database management system है .

  • MySQL databases relational है .

  • MySQL software एक Open Source है .

  • MySQL Database Server, reliable, scalable और उपयोग में आसान है.

  • MySQL Server client / Server और embedded systems मे काम करता है.

MySQL supported platforms

  • Linux (RedHat, SUSE, Mandrake, Debian).

  • Embedded Linux (MontaVista, LynuxWorks BlueCat).

  • Unix (Solaris, HP-UX, AIX).

  • BSD (Mac OS X, FreeBSD).

  • Windows (Windows 2000, Windows NT).

  • RTOS (QNX).

MySQL supported 3rd party tools

Drivers

  • ODBC

  • JDBC

  • .NET

  • C++

Languages

  • C

  • C++

  • C#

  • Java

  • Delphi

  • Visual Basic

  • Perl

  • Python

  • PHP

Development Tools

  • Microsoft Visual Studio

  • Borland Delphi and JBuilder

  • Eclipse

  • NetBeans

MySQL in Hindi Data Types

एक database table मे specific data types जैसे कि numeric और string के साथ एकाधिक columns होते है. MySQL केवल numeric और string के अलावा अन्य data types प्रदान करता है . MySQL मे प्रत्येक data types निम्नलिखित विशेषताओं से निर्धारित किया जा सकता है.

  • Text

  • Numbers

  • Dates and times

इनमे से प्रत्येक के भीतर कई रूप है जिनमे से कुछ MySQL के specific है जिनका आप उपयोग कर सकते है. अपने columns types को ठीक से चुनना न केवल यह निर्धारित करता है कि कौन सी जानकारी Stored की जा सकती है और कैसे लेकिन database के Overall प्रदर्शन को भी प्रभावित करता है आप नीचे table मे MySQL के लिए उपलब्ध अधिकांश प्रकार listed है वे कितना स्थान लेते है और संक्षिप्त विवरण क्या है.

Type Size Description
CHAR[Length] Length bytes A fixed-length field from 0 to 255 characters long.
VARCHAR(Length) String length + 1 bytes A fixed-length field from 0 to 255 characters long.
TINYTEXT String length + 1 bytes A string with a maximum length of 255 characters.
TEXT String length + 2 bytes A string with a maximum length of 65,535 characters.
MEDIUMTEXT String length + 3 bytes A string with a maximum length of 16,777,215 characters.
LONGTEXT String length + 4 bytes A string with a maximum length of 4,294,967,295 characters.
TINYINT[Length] 1 byte Range of -128 to 127 or 0 to 255 unsigned.
SMALLINT[Length] 2 bytes Range of -32,768 to 32,767 or 0 to 65535 unsigned.
MEDIUMINT[Length] 3 bytes Range of -8,388,608 to 8,388,607 or 0 to 16,777,215 unsigned.
INT[Length] 4 bytes Range of -2,147,483,648 to 2,147,483,647 or 0 to 4,294,967,295 unsigned.
BIGINT[Length] 8 bytes Range of -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 or 0 to 18,446,744,073,709,551,615 unsigned.
FLOAT 4 bytes A small number with a floating decimal point.
DOUBLE[Length, Decimals] 8 bytes A large number with a floating decimal point.
DECIMAL[Length, Decimals] Length + 1 or Length + 2 bytes A DOUBLE stored as a string, allowing for a fixed decimal point.
DATE 3 bytes In the format of YYYY-MM-DD.
DATETIME 8 bytes In the format of YYYY-MM-DD HH:MM:SS.
TIMESTAMP 4 bytes In the format of YYYYMMDDHHMMSS; acceptable range ends inthe year 2037.
TIME 3 bytes In the format of HH:MM:SS
ENUM 1 or 2 bytes Short for enumeration, which means that each column can haveone of several possible values.
SET 1, 2, 3, 4, or 8 bytes Like ENUM except that each column can have more than one ofseveral possible values.

JSON Data Type

MySQL ने version 5.7.8 के बाद से एक native JSON data type का समर्थन किया है जो आपको JSON documents को अधिक कुशलता से store और manage करने की अनुमति देता है . मूल रूप से JSON data type और JSON documents और optimal collection प्रारूप का स्वचालित सत्यापन प्रदान करता है .

MySQL in Hindi Create Database

इस स्थिति मे मैंने उपयोगकर्ता root को -u flag के साथ specifie किया है और उसके बाद -p flag का उपयोग किया है इसलिए MySQL एक password के लिए संकेत देता है. Login पूरा करने के लिए आप अपना current password enter करे.

यदि आपको अपना root या कोई अन्य password को database में बदलना है तो command line के माध्यम से MySQL के लिए password बदलने के लिए आप नीचे देख सकते है.

अब आपको एक MySQL prompt पर होना चाहिए, जो कि इसके समान दिखता है .

mysql>

Name के साथ एक database को बनाने के लिए tutorial_database निम्न command type करे .

CREATE DATABASE tutorial_database;

यदि समान Name का एक database पहले से मौजूद है तो एक नया database नही बनाया जाएगा और आपको यह error प्राप्त होगी .

ERROR 1007 (HY000): Can't create database 'tutorial_database'; database exists

इस error को देखने से बचने के लिए निम्न आदेश का उपयोग करे .

CREATE DATABASE IF NOT EXISTS tutorial_database;

MySQL in Hindi Drop Database

एक MySQL Database को बनाने या हटाने के लिए आपको विशेष अधिकार की आवश्यकता होगी . अगर आपको root user के access तक पहुंच ना है तो आप mysql mysqladmin binary का उपयोग करके कोई भी Database बना सकते है.

किसी भी Database को हटाने के दौरान सावधान रहें क्योंकि आप अपने Database मे उपलब्ध सभी Data खो देंगे .

For Example

[root@host]# mysqladmin -u root -p drop TUTORIALSROOT
Enter password:***********

यह आपको एक warning देगा और यह पुष्टि करेगा कि क्या आप वास्तव मे इस Database को हटाना चाहते है या नही .

Drop Database using PHP Script

MySQL Database को बनाने या हटाने के लिए PHP mysql_query function का उपयोग करता है और यह function दो parameters को लेता है और success और failure या TRUE और FALSE देता है.

Syntax

bool mysql_query( sql, connection );

MySQL in Hindi Select Database

जब आप command line के माध्यम से MySQL Database पर काम कर रहे है तो आपको उस Database को select करना होगा जिस पर आप SQL queries execute कर रहे है .

Database को sampledb current Database बनाने के लिए नीचे दी गई queries को execute करे.

mysql> USE sampledb;

आप अपने Database को केवल एक बार बना सकते है लेकिन जब भी आप mysql session शुरू करते है तो आपको इसे उपयोग करने के लिए Select होगा .

उदाहरण में दिखाए गए अनुसार आप USE statement जारी करके ऐसा कर सकते है.

उपरोक्त command आपको output देता है और यह दर्शाता है कि Database बदल गया है.

mysql> USE sampledb;
Database changed

आप नीचे दी गई command को execute करके Database को select कर सकते है .

mysql> SELECT database();
+-------------------+
| database()        |
+-------------------+
| sampledb          |
+-------------------+
1 row in set (0.00 sec)

MySQL in Hindi Create Tables

MySQL CREATE TABLE command को database मे एक new table को बनाने के लिए उपयोग किया जाता है Table निर्माण command को तीन चीजों की आवश्यकता है .

  • Name of the table

  • Name of the fields

  • Definitions for each field

Syntax

mysql> USE sampledb;

एक MySQL table को बनाने के लिए यहां एक सामान्य SQL syntax दिया गया है.

CREATE TABLE table_name (column_name column_type);

Note

  • यहा पर NOT NULL एक field attribute है और इसका उपयोग किया जाता है क्योंकि हम इस क्षेत्र को NULL नहीं करना चाहते हैं यदि आप NULL value के साथ एक record बनाने का प्रयास करेंगे तो MySQL एक error बढ़ाएगा .

  • field attribute AUTO_INCREMENT आगे बढ़ने के लिए और id field. में अगले उपलब्ध number को जोड़ने के लिए MySQL को specifies करती है. PRIMARY KEY को PRIMARY KEY के रूप मे एक column को परिभाषित करने के लिए उपयोग किया जाता है. primary key को परिभाषित करने के लिए आप comma द्वारा अलग किए गए एक से अधिक column का उपयोग कर सकते है.

Creating Tables from Command Prompt

MySQL> prompt से एक MySQL table बनाना आसान है आप एक table को बनाने के लिए SQL Command table का उपयोग करेंगे.

Creating Tables Using PHP Script

किसी मौजूदा database मे new table को बनाने के लिए आपको PHP function mysql_query () का उपयोग करना होगा आप table को बनाने के लिए एक उचित SQL command के साथ अपनी दूसरी argument को pass करेंगे.

MySQL in Hindi Drop Tables

MySQL DROP TABLE statement आपको MySQL database से एक table को remove और delete की अनुमति देता है .

Syntax

DROP TABLE table_name;

हालांकि MySQL DROP TABLE statement के लिए full syntax है .

DROP [ TEMPORARY ] TABLE [ IF EXISTS ]
table_name1, table_name2, ...
[ RESTRICT | CASCADE ];

Parameters or Arguments

  • TEMPORARY − यह specifies करता है कि केवल temporary tables को DROP TABLE statement द्वारा छोड़ा जाना चाहिए.

  • table_name − Database से table को remove करने के लिये table का नाम देना होता है .

  • table_name1, table_name2 − Database से table को remove करने के लिये tables, से DROP TABLE statement में एक से अधिक table को remove करते है .

  • IF EXISTS − यदि specifies किया गया है DROP TABLE statement का कोई existence मौजूद नहीं है तो error tables नहीं होगी.

  • RESTRICT − इससे DROP TABLE statement पर कोई प्रभाव नहीं है, लेकिन syntax में शामिल है ताकि tables को अलग-अलग Database मे आसान बना दिया जा सके .

Drop One Table

सबसे पहले, आइए एक सरल DROP TABLE का उदाहरण देखेंगे जो कि MySQL मे एक table को DROP करने के लिए DROP TABLE statement का उपयोग कैसे करता है .

For Example

DROP TABLE customers;

यह DROP TABLE called customers को Table से हटा देगा .

Drop Multiple Tables

आइए एक उदाहरण को देखें जहां हम DROP TABLE statement का उपयोग करते हुए एक से अधिक TABLE DROP करना चाहते है .

DROP TABLE customers, suppliers;

MySQL in Hindi Insert Query

Data को एक MySQL table में Insert करने के लिए आपको SQL INSERT INTO command का उपयोग करना होगा. आप mysql> prompt या PHP जैसे किसी भी script का उपयोग करके data को MySQL table में INSERT कर सकते है .

Syntax

MySQL table मे data को INSERT करने के लिए यहां पर आप एक सामान्य SQL syntax देख सकते है .

INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );

String data types को insert करने के लिए सभी values को single या double quotes में रखना आवश्यक होता है .

Inserting Data From the Command Prompt

Command prompt से data को insert करने के लिए हम SQL INSERT मे command का उपयोग MySQL table tutorials_tbl मे data को insert के लिए करेंगे .

Inserting Data Using a PHP Script

आप MySQL table मे data को insert करने के लिए PHP function mysql_query () मे SQL INSERT का उपयोग कर सकते है .

Data को insert करते समय यह जांचने के लिए कि function get_magic_quotes_gpc () का उपयोग करना सबसे अच्छा है यह देखने के लिए कि क्या magic quote के लिए मौजूदा configuration set है या नहीं .

और यदि यह function returns value false देता है, तो quotes से पहले slashes को add करने के लिए function addslashes () का उपयोग करे.

MySQL in Hindi Select Query

SQL SELECT command MySQL database से data को प्राप्त करने के लिए उपयोग किया जाता है. आप इस command को mysql> prompt और PHP जैसी किसी भी script पर उपयोग कर सकते है .

Syntax

SELECT field1, field2,...fieldN 
FROM table_name1, table_name2...
[WHERE Clause]
[OFFSET M ][LIMIT N]

  • आप WHERE clause का उपयोग करते हुए विभिन्न स्थितियों को शामिल करने के लिए comma द्वारा अलग किए गए एक या एक से अधिक tables का उपयोग कर सकते है. लेकिन WHERE clause SELECT command का एक वैकल्पिक हिस्सा है .

  • आप single SELECT command मे एक या अधिक Fields को प्राप्त कर सकते है.

  • आप Fields के स्थान पर star (*) को specify कर सकते है और इस situation मे SELECT सभी Fields को return करेगा .

  • आप WHERE clause का उपयोग करके किसी भी condition को specify कर सकते है .

  • आप OFFSSET का उपयोग करके offset को specify कर सकते है जहां से SELECT records को लौटना शुरू कर देगा और default रूप से OFFSSET zero से शुरू होता है

Fetching Data From a Command Prompt

MySQL table tutorials_tbl से Data को प्राप्त करने के लिए SQL SELECT command का उपयोग करेगा .

Fetching Data Using a PHP Script

आप एक ही SQL SELECT command का उपयोग करके एक PHP function मे mysql_query () कर सकते है. इस Function का उपयोग SQL command को execute करने के लिए किया जाता है और उसके बाद बाद मे एक और PHP function mysql_fetch_array () का उपयोग सभी SELECT Data को प्राप्त करने के लिए किया जा सकता है. यह function row को एक associative array को एक numeric array या दोनो के रूप में देता है. यदि कोई और rows नहीं हैं तो यह function गलत हो जाता है .

इसमे rows के content को variable $row को assigned किया गया है और उस rows की values को print किए जाता हैं .

PHP mysql_fetch_assoc () नामक अन्य function प्रदान करता है जो row को एक Associative array के रूप मे देता है .

आप निरंतर MYSQL_NUM को PHP function mysql_fetch_array () मे दूसरी argument के रूप मे उपयोग कर सकते है इससे function को numeric Index के साथ एक array को वापस करना होगा .

Releasing Memory

प्रत्येक SELECT statement के अंत मे cursor memory को रिलीज करने के लिए यह एक अच्छा अभ्यास है यह PHP Function mysql_free_result () का उपयोग करके किया जा सकता है.

Data का आदान-प्रदान करते समय आप जितना चाहें उतना complex code लिख सकते हैं लेकिन उपरोक्त उल्लिखित प्रक्रिया एक समान होगी .