MySQL چیٹ شیٹ
ایک قابلِ تلاش، قابلِ پرنٹ MySQL حوالہ — کوئریز، joins، indexes، فنکشنز، ڈیٹا ٹائپس اور انتظامی کمانڈز۔ مفت۔
Querying
10SELECT * FROM users;
تمام کالم اور rows منتخب کریں
SELECT id, name FROM users;
مخصوص کالم منتخب کریں
SELECT DISTINCT city FROM users;
صرف منفرد ویلیوز
WHERE age > 18 AND active = 1
شرائط کے مطابق rows فلٹر کریں
WHERE name LIKE 'A%'
Pattern match (% = کوئی بھی حروف)
WHERE id IN (1, 2, 3)
set میں کسی بھی ویلیو سے میچ
WHERE age BETWEEN 18 AND 30
شامل range فلٹر
ORDER BY created_at DESC
گھٹتی ترتیب میں sort کریں
LIMIT 10 OFFSET 20
نتائج کو صفحات میں بانٹیں
WHERE email IS NULL
null ویلیوز سے میچ کریں
Joins
8INNER JOIN orders ON orders.user_id = users.id
دونوں tables میں میچ کرنے والی rows
LEFT JOIN orders ON ...
تمام left rows + میچز
RIGHT JOIN orders ON ...
تمام right rows + میچز
CROSS JOIN colors
Cartesian product
SELF JOIN: FROM emp e JOIN emp m ON e.mgr = m.id
table کو خود سے join کریں
USING (user_id)
ایک ہی نام والے کالم پر join
UNION / UNION ALL
نتائج کے sets ملائیں
SELECT u.*, o.total FROM users u JOIN orders o
وضاحت کے لیے tables کو alias دیں
Aggregation
9COUNT(*)
rows گنیں
SUM(amount)
عددی کالم کا کل
AVG(price)
اوسط ویلیو
MIN(price), MAX(price)
سب سے چھوٹا اور بڑا
GROUP BY country
aggregation کے لیے rows گروپ کریں
HAVING COUNT(*) > 5
aggregate گروپس پر فلٹر
GROUP_CONCAT(name)
گروپ شدہ ویلیوز جوڑیں
COUNT(DISTINCT city)
منفرد ویلیوز گنیں
ROW_NUMBER() OVER (ORDER BY id)
Window function ranking
ڈیٹا میں تبدیلی
8INSERT INTO users (name) VALUES ('Sam');
ایک row داخل کریں
INSERT INTO users (name) VALUES ('A'),('B');
کئی rows داخل کریں
UPDATE users SET active = 1 WHERE id = 5;
میچ کرنے والی rows اپ ڈیٹ کریں
DELETE FROM users WHERE id = 5;
میچ کرنے والی rows حذف کریں
TRUNCATE TABLE logs;
تمام rows تیزی سے ہٹائیں
INSERT ... ON DUPLICATE KEY UPDATE
unique key پر upsert
REPLACE INTO users ...
conflict پر delete + insert
INSERT IGNORE INTO ...
error والی rows چھوڑ دیں
Schema \/ DDL
9CREATE TABLE users (id INT PRIMARY KEY);
نیا table بنائیں
AUTO_INCREMENT
خودکار نمبر والا کالم
ALTER TABLE users ADD COLUMN age INT;
کالم شامل کریں
ALTER TABLE users DROP COLUMN age;
کالم ہٹائیں
ALTER TABLE users MODIFY name VARCHAR(100);
کالم کی ٹائپ تبدیل کریں
DROP TABLE IF EXISTS users;
table حذف کریں
FOREIGN KEY (user_id) REFERENCES users(id)
دوسرے table کا حوالہ دیں
ON DELETE CASCADE
children تک deletes cascade کریں
CREATE TABLE t2 LIKE t1;
table کا ڈھانچہ کاپی کریں
Indexes اور keys
8PRIMARY KEY (id)
منفرد row شناخت کنندہ
UNIQUE (email)
منفرد ویلیوز نافذ کریں
CREATE INDEX idx_name ON users (name);
کالم پر lookups تیز کریں
CREATE INDEX idx_ab ON t (a, b);
Composite (کئی کالم) index
DROP INDEX idx_name ON users;
index ہٹائیں
FULLTEXT (body)
Full-text search index
EXPLAIN SELECT ...;
query plan دکھائیں
SHOW INDEX FROM users;
table پر indexes کی فہرست
ڈیٹا ٹائپس
9INT, BIGINT, TINYINT
سائز کے لحاظ سے integer ٹائپس
DECIMAL(10, 2)
درست fixed-point نمبرز
VARCHAR(255)
متغیر لمبائی والی string
TEXT, LONGTEXT
بڑے text blobs
DATE, DATETIME, TIMESTAMP
Date اور time ٹائپس
BOOLEAN (TINYINT(1))
True\/false بطور 0\/1 محفوظ
JSON
Native JSON document کالم
ENUM('a', 'b')
مقررہ ویلیوز کے سیٹ میں سے ایک
UNSIGNED
غیر منفی عددی modifier
Type sizes & limits
20TINYINT
1 byte: -128..127 (0..255 UNSIGNED)
SMALLINT
2 bytes: -32,768..32,767 (0..65,535)
MEDIUMINT
3 bytes: -8.39M..8.39M (0..16.78M)
INT
4 bytes: -2.15B..2.15B (0..4.29B)
BIGINT
8 bytes: ±9.22×10^18 (0..1.84×10^19)
DECIMAL(M, D)
Exact: M up to 65 digits, D up to 30
FLOAT / DOUBLE
4 / 8 bytes approximate floating point
CHAR(M)
Fixed length, 0..255 characters
VARCHAR(M)
0..65,535 bytes (shared 64KB row limit)
TINYTEXT
Up to 255 bytes (~255 chars)
TEXT
Up to 65,535 bytes (64 KB)
MEDIUMTEXT
Up to 16,777,215 bytes (16 MB)
LONGTEXT
Up to 4,294,967,295 bytes (4 GB)
BLOB types
TINY/—/MEDIUM/LONG: 255B..4GB (binary)
JSON
Stored as LONGBLOB, up to ~4 GB
ENUM / SET
ENUM: 65,535 members; SET: 64 members
DATE
1000-01-01 to 9999-12-31 (3 bytes)
DATETIME
1000 to 9999, microseconds (5–8 bytes)
TIMESTAMP
1970-01-01 to 2038-01-19 UTC (4 bytes)
TIME / YEAR
±838:59:59 / 1901..2155
فنکشنز
9NOW(), CURDATE()
موجودہ datetime \/ date
DATE_FORMAT(d, '%Y-%m-%d')
تاریخ فارمیٹ کریں
DATEDIFF(a, b)
دو تاریخوں کے درمیان دن
CONCAT(a, ' ', b)
strings جوڑیں
COALESCE(a, b, 'n/a')
پہلی غیر null ویلیو
IFNULL(x, 0)
null کو ڈیفالٹ سے بدلیں
CASE WHEN x > 0 THEN '+' ELSE '-' END
مشروط expression
CAST(x AS CHAR)
ویلیو ٹائپ تبدیل کریں
ROUND(x, 2)
اعشاریہ تک round کریں
Transactions اور ایڈمن
9START TRANSACTION;
transaction شروع کریں
COMMIT;
transaction محفوظ کریں
ROLLBACK;
transaction واپس کریں
SAVEPOINT sp1;
rollback پوائنٹ سیٹ کریں
SHOW TABLES;
ڈیٹابیس میں tables کی فہرست
DESCRIBE users;
table کا ڈھانچہ دکھائیں
SHOW PROCESSLIST;
چلتے connections کی فہرست
GRANT ALL ON db.* TO 'u'@'%';
صارف کو اختیارات دیں
mysqldump -u root db > db.sql
ڈیٹابیس کا بیک اپ لیں (CLI)
کوئی اندراج “:q” سے میل نہیں کھاتا۔
مدد چاہیے؟
اس ٹول میں کوئی مسئلہ ملا؟ ہماری ٹیم کو بتائیں۔