rewriting
All checks were successful
learn org at code.softwareshinobi.com/databases.softwareshinobi.com/pipeline/head This commit looks good

This commit is contained in:
2025-06-19 13:04:08 -04:00
parent 89c04a328f
commit caa5bbb983
34 changed files with 2384 additions and 2401 deletions

View File

@@ -0,0 +1,151 @@
# DDL, DQL, DML, DCL, TCL
SQL provides the standard interface for interacting with databases. Understanding its command categories is fundamental for building applications that manage and retrieve data efficiently. This document outlines the core SQL command types and their practical use cases for Java developers.
## Data Definition Language (DDL )
DDL commands manage database schema structure. They define, modify, or drop database objects. Developers typically use DDL during application setup, migration scripts, or when evolving the data model.
### DDL Commands:
* `CREATE`: Constructs a new database, table, index, view, stored procedure, or trigger. Defines the schema for persistent data storage.
```sql
CREATE TABLE Persons (
PersonID int,
LastName varchar(25 5),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
```
* `DROP`: Deletes objects from the database. Irreversible and should be used with caution, particularly in production environments.
```sql
DROP TABLE table_name;
```
* `ALTER`: Modifies the structure of existing database objects, such as adding, deleting, or modifying columns in a table. Essential for schema evolution.
```sql
ALTER TABLE Persons
ADD Age int;
```
* `TRUNCATE`: Removes all rows from a table. This operation is significantly faster than `DELETE` for clearing an entire table because it logs fewer operations and resets the table's identity column.
```sql
TRUNCATE TABLE Persons;
```
* `COMMENT`: Adds descriptive text to the data dictionary. Useful for documenting schema elements.
```sql
-- Example of an inline comment
SELECT * FROM Persons;
```
* `RENAME`: Changes the name of a database object.
```sql
ALTER TABLE Persons
RENAME COLUMN Age TO Year;
```
## Data Query Language (DQL)
DQL commands retrieve data from the database based on specified criteria. The `SELECT` statement is the primary command. Understanding DQL is critical for fetching the necessary information to populate application interfaces or perform backend logic.
### DQL Command:
* `SELECT`: Fetches data from one or more tables. The foundation for most read operations in applications.
```sql
SELECT * FROM table_name;
```
Example Result Set:
```
+--------+--------------+------------+--------+---------+
| emp_id | emp_name | hire_date | salary | dept_id |
+--------+--------------+------------+--------+---------+
| 1 | Ethan Hunt | 2001-05-01 | 5000 | 4 |
| 2 | Tony Montana | 2002-07-15 | 6500 | 1 |
| 3 | Sarah Connor | 2005 -10-18 | 8000 | 5 |
| 4 | Rick Deckard | 2007-01-03 | 7200 | 3 |
| 5 | Martin Blank | 2008-06-24 | 5600 | NULL |
+--------+--------------+------------+--------+---------+
```
## Data Manipulation Language (DML)
DML commands manage the data *within* schema objects. They perform insert, update, and delete operations. DML operations form the core of application logic interacting with the database's contents.
### DML Commands :
* `INSERT`: Adds new rows of data into a table. Essential for persisting new records created by the application.
```sql
INSERT INTO Customers
(CustomerName, ContactName, Address, City, PostalCode, Country )
VALUES
('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');
```
* `UPDATE`: Modifies existing data within a table. Used to reflect changes to records from the application.
```sql
UPDATE Customers
SET ContactName='Alfred Schmidt', City='Frankfurt'
WHERE CustomerID = 1;
```
* `DELETE`: Removes one or more rows from a table. Use `WHERE` clauses carefully to avoid unintended data loss.
```sql
DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';
``` * `LOCK`: Controls concurrent access to tables. Important for managing transactional integrity in high-concurrency applications.
```sql
LOCK TABLES table_name [READ | WRITE]
UNLOCK TABLES;
```
* `CALL `: Executes a stored procedure or function. Useful for encapsulating complex database logic.
```sql
-- Example Stored Procedure Definition (database specific syntax may vary)
CREATE PROCEDURE procedure_name
AS sql_statement
GO ;
-- Example Execution
EXEC procedure_name;
```
* `EXPLAIN PLAN`: (Database specific, e.g., Oracle, PostgreSQL) Provides details on how the database will execute a query. In valuable for performance tuning.
## Data Control Language (DCL)
DCL commands manage database security by defining privileges and permissions for users. `GRANT` and `REVOKE` control user access to database objects and capabilities.
### DCL Commands :
* `GRANT`: Assigns specific access privileges on database objects to users or roles.
```sql
-- Grant SELECT privilege on the Persons table to a user
GRANT SELECT ON Persons TO 'username';
```
* `REVOKE`: Removes previously granted access privileges.
```sql
-- Revoke the SELECT privilege on the Persons table from a user
REVOKE SELECT ON Persons FROM 'username';
```
## Transaction Control Language (TCL)
TCL commands manage transactions within a database. A transaction is a sequence of operations performed as a single logical unit of work. TCL ensures data integrity by guaranteeing that transactions are atomic, consistent, isolated, and durable (ACID).
### TCL Commands:
* `COMMIT`: Makes all changes performed in the current transaction permanent. Essential after a series of successful DML operations.
* `ROLLBACK`: Undoes all changes performed in the current transaction since the last `COMMIT` or `SAVEPOINT`. Used to revert changes if an error occurs or business logic dictates.
* `SAVEPOINT`: Sets a marker within a transaction. Allows rolling back to a specific point without rolling back the entire transaction.
* `SET TRANSACTION`: Configures characteristics of the current transaction, such as isolation level.
These command categories provide the fundamental building blocks for database interaction. Mastery of DDL, DQL, DML, DCL, and TCL empowers developers to build robust, efficient, and secure database-driven applications.