MySQL: Data Types, Constraints, CREATE
SQL क्या है?
SQL (Structured Query Language, जिसे अक्सर "sequel" बोलते हैं) relational databases से बात करने की standard language है। SQL से हम tables बनाते हैं, data डालते हैं, बदलते हैं और प्रश्न (queries) पूछते हैं जैसे "Jaipur के 80 से ज़्यादा marks वाले students दिखाओ"। MySQL free, open-source RDBMS है जो SQL समझता है।
Practice के लिए dev.mysql.com से MySQL Community Server (MySQL Shell या Workbench के साथ) install करें, या XAMPP जैसा portable package use करें। हर SQL statement semicolon ; पर ख़त्म होता है।
SQL commands की categories
Database बनाना और use करना
CREATE DATABASE school; SHOW DATABASES; USE school;
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | school | | sys | +--------------------+
USE school; school को current database बनाता है, इसलिए आपकी बनाई सारी tables उसी में जाती हैं।
MySQL data types
| Data type | क्या store करता है | Example value |
|---|---|---|
| CHAR(n) | Fixed-length text, n 255 तक | 'M', '302012' |
| VARCHAR(n) | Variable-length text | 'Aarav Sharma' |
| INT | पूर्ण numbers | 101, -25 |
| FLOAT | लगभग decimal numbers | 3.14 |
| DECIMAL(p, s) | सटीक decimals: p digits, s point के बाद | DECIMAL(7,2) → 12345.67 |
| DATE | 'YYYY-MM-DD' format में date | '2009-04-15' |
CHAR(10)
- 'Ram' को 'Ram' + 7 spaces के रूप में
- हमेशा 10 characters की जगह
- Fixed-size data के लिए थोड़ा तेज़
VARCHAR(10)
- 'Ram' सिर्फ़ 3 characters (+ length info)
- बदलते text के लिए जगह बचाता है
- नाम, शहर, पते के लिए सबसे अच्छा
Constraints
Constraints columns पर नियम हैं जो data को सही रखते हैं।
| Constraint | नियम |
|---|---|
| NOT NULL | Column ख़ाली नहीं छोड़ सकते |
| UNIQUE | दो rows की value same नहीं हो सकती |
| DEFAULT | Value न दी जाए तो यह use होती है |
| PRIMARY KEY | UNIQUE + NOT NULL; हर row की पहचान |
| FOREIGN KEY | Value referenced table की primary key में मौजूद हो |
| CHECK | Value को condition पूरी करनी हो (MySQL 8.0.16+) |
CREATE TABLE
CREATE TABLE table_name ( column1 datatype constraint, column2 datatype constraint, ... );
CREATE TABLE STUDENT ( RollNo INT PRIMARY KEY, Name VARCHAR(30) NOT NULL, Gender CHAR(1), DOB DATE, Class VARCHAR(5) DEFAULT 'XI-A', Marks DECIMAL(5,1) CHECK (Marks BETWEEN 0 AND 100), City VARCHAR(20) ); DESCRIBE STUDENT;
+--------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+--------------+------+-----+---------+-------+ | RollNo | int | NO | PRI | NULL | | | Name | varchar(30) | NO | | NULL | | | Gender | char(1) | YES | | NULL | | | DOB | date | YES | | NULL | | | Class | varchar(5) | YES | | XI-A | | | Marks | decimal(5,1) | YES | | NULL | | | City | varchar(20) | YES | | NULL | | +--------+--------------+------+-----+---------+-------+
DESCRIBE (या DESC) ढाँचा दिखाता है: Field = column name, Null = ख़ाली हो सकता है या नहीं, Key = primary key के लिए PRI, Default = default value।
Foreign key वाली table
CREATE TABLE GUARDIAN ( GID INT PRIMARY KEY, GName VARCHAR(30) NOT NULL, Phone CHAR(10) UNIQUE, RollNo INT, FOREIGN KEY (RollNo) REFERENCES STUDENT(RollNo) ); DESCRIBE GUARDIAN;
+--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | GID | int | NO | PRI | NULL | | | GName | varchar(30) | NO | | NULL | | | Phone | char(10) | YES | UNI | NULL | | | RollNo | int | YES | MUL | NULL | | +--------+-------------+------+-----+---------+-------+
SHOW, DESCRIBE और DROP
SHOW TABLES;
+------------------+ | Tables_in_school | +------------------+ | GUARDIAN | | STUDENT | +------------------+
DROP TABLE GUARDIAN; table को उसके सारे data समेत हमेशा के लिए मिटा देता है। DROP DATABASE school; पूरा database मिटा देता है। Drop करने से पहले दो बार जाँचें। जब तक child table (GUARDIAN) refer कर रही है, parent table (STUDENT) drop नहीं हो सकती।
सारांश और practice
- SQL relational databases की language है; MySQL एक RDBMS है।
- DDL: CREATE, ALTER, DROP। DML: INSERT, UPDATE, DELETE। DQL: SELECT।
- Types: CHAR, VARCHAR, INT, FLOAT, DECIMAL, DATE।
- Constraints: NOT NULL, UNIQUE, DEFAULT, PRIMARY KEY, FOREIGN KEY, CHECK।
CREATE TABLE commands लिखें: (1) BOOK(BookID primary key, Title not null, Author, Price 2 places वाला decimal, Qty default 1)। (2) ISSUE(IssueID primary key, BookID BOOK की foreign key, IssueDate date, ReturnDate date)।
