# Databases तयार करा आणि निवडा

Source: https://ravindrabagale.com/mr/cyber/part-05/ch10-mysql-part-1-install-create-insert-and-select/10-2-working-with-databases.html
Language: mr (Marathi with English technical terms)

Database म्हणजे संबंधित tables आणि इतर objects चा logical समूह. प्रत्येक application साठी वेगळा database ठेवला तर organization आणि permissions स्पष्ट ठेवता येतात.

CREATE DATABASE cybercourse;                  -- create
CREATE DATABASE IF NOT EXISTS cybercourse;    -- no error if it already exists
SHOW DATABASES;                               -- list all
USE cybercourse;                              -- select it for the next commands
SELECT DATABASE();                            -- which one am I using?
SHOW TABLES;                                  -- tables inside it
-- DROP DATABASE cybercourse;                 -- deletes everything inside! (commented on purpose)

CREATE DATABASE तयार करतो; IF NOT EXISTS असल्यास आधीपासून असेल तर duplicate-create error टाळतो. SHOW DATABASES तुमच्या permissions नुसार visible databases दाखवतो. USE पुढच्या unqualified queries साठी default database निवडतो. SELECT DATABASE() सध्याची निवड दाखवतो; SHOW TABLES tables दाखवतो.

Source मधला DROP DATABASE comment केलेला आहे: तो database आणि त्यातले objects delete करतो. फक्त disposable testdb exercise मध्येच वापरा.

 | Statement type
 | Meaning
 | Examples

 | DDL – Data Definition
 | Structure
 | CREATE, ALTER, DROP, TRUNCATE, RENAME

 | DML – Data Manipulation
 | Rows
 | INSERT, UPDATE, DELETE

 | DQL – Data Query
 | Reading
 | SELECT

 | DCL – Data Control
 | Permissions
 | GRANT, REVOKE

 | TCL – Transaction Control
 | Transactions
 | START TRANSACTION, COMMIT, ROLLBACK

SQL statements चे प्रकार

DDL structure, DML rows बदलणे, DQL data वाचणे, DCL permissions आणि TCL transactions manage करणे—हे शिकण्यासाठीचे गट आहेत.

Security मध्ये उपयोग

Vulnerable SQL मध्ये schema metadata queries वापरून database रचना ओळखता येऊ शकते. Source उदाहरण SELECT schema_name FROM information_schema.schemata हे metadata वाचतं. App user ला स्वतःच्या कामापुरत्याच permissions दिल्यास exposure मर्यादित होतं; metadata visibility आणि privileges database version/config वरही ठरतात.

Practice

cybercourse आणि disposable testdb तयार करा, list पहा, USE ने दोन्हींत switch करा. SELECT DATABASE() ने खात्री झाल्यावर फक्त testdb drop करा.

रवींद्र बागले यांची tip

“No database selected” आला तर USE cybercourse; करा. नवीन login मध्ये default database पुन्हा निवडावा लागू शकतो. Prompt -> दिसल्यास statement पूर्ण नाही—semicolon, quotes आणि brackets तपासा.
