Skip to content

Commit d012537

Browse files
Merge branch 'CodeHarborHub:main' into py
2 parents 7d68499 + 29870a9 commit d012537

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+5521
-19
lines changed

docs/SQL/index.md

Lines changed: 372 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,372 @@
1+
# Introduction to SQL
2+
3+
SQL (Structured Query Language) is a powerful language used for managing and manipulating relational databases. Developed initially in the 1970s, SQL has become the standard language for interacting with databases across various platforms and environments. It provides a structured approach to defining, querying, updating, and managing data stored in relational database management systems (RDBMS) such as MySQL, PostgreSQL, Oracle, SQL Server, and SQLite.
4+
5+
SQL operates through a set of declarative commands that enable users to perform essential operations such as retrieving data with `SELECT` statements, inserting new records with `INSERT INTO`, updating existing records with `UPDATE`, and deleting records with `DELETE FROM`. These commands form the foundation for creating, modifying, and maintaining database schemas and ensuring data integrity.
6+
7+
Beyond basic CRUD (Create, Read, Update, Delete) operations, SQL supports advanced capabilities including:
8+
9+
- **Aggregation functions** (`SUM`, `AVG`, `COUNT`, etc.) for data analysis
10+
- **Joins** to combine data from multiple tables
11+
- **Transaction management** for ensuring data consistency and reliability
12+
- **Indexing** for optimizing query performance
13+
- **Views, stored procedures, and triggers** for encapsulating complex logic within the database
14+
15+
SQL’s versatility and standardized syntax make it indispensable in various domains such as software development, data analysis, business intelligence, and system administration. Its ability to handle both simple and complex queries efficiently makes SQL a cornerstone of modern data management practices.
16+
17+
# Wide Operations in SQL
18+
19+
## Data Retrieval
20+
- **Retrieve specific data from databases using `SELECT` statements.**
21+
22+
## Data Manipulation
23+
- **Insert, update, and delete records with `INSERT INTO`, `UPDATE`, and `DELETE` statements.**
24+
25+
## Data Definition
26+
- **Define and modify database schemas, tables, indexes, and constraints.**
27+
28+
## Advanced Capabilities
29+
- **Joins**: Combine data from multiple tables using `INNER JOIN`, `LEFT JOIN`, etc.
30+
- **Aggregation**: Perform calculations on grouped data using functions like `SUM`, `AVG`, `COUNT`, etc.
31+
- **Transactions**: Ensure data consistency and integrity by grouping operations into atomic units.
32+
- **Stored Procedures and Functions**: Store and execute reusable procedural logic directly in the database.
33+
34+
## SQL Commands
35+
36+
### Extract and Transform Data
37+
- **SELECT**: Extracts data from a database.
38+
- **Syntax**:
39+
```sql
40+
SELECT column1, column2, ... FROM table_name;
41+
```
42+
- **Example**:
43+
```sql
44+
SELECT * FROM Customers;
45+
```
46+
47+
### Modify Existing Data
48+
- **UPDATE**: Updates data in a database.
49+
- **Syntax**:
50+
```sql
51+
UPDATE table_name
52+
SET column1 = value1, column2 = value2, ...
53+
WHERE condition;
54+
```
55+
- **Example**:
56+
```sql
57+
UPDATE Customers
58+
SET ContactName = 'Alfred Schmidt'
59+
WHERE CustomerID = 1;
60+
```
61+
62+
### Remove Unnecessary Data
63+
- **DELETE**: Deletes data from a database.
64+
- **Syntax**:
65+
```sql
66+
DELETE FROM table_name
67+
WHERE condition;
68+
```
69+
- **Example**:
70+
```sql
71+
DELETE FROM Customers
72+
WHERE CustomerID = 1;
73+
```
74+
75+
### Add New Entries
76+
- **INSERT INTO**: Inserts new data into a database.
77+
- **Syntax**:
78+
```sql
79+
INSERT INTO table_name (column1, column2, column3, ...)
80+
VALUES (value1, value2, value3, ...);
81+
```
82+
- **Example**:
83+
```sql
84+
INSERT INTO Customers (CustomerName, ContactName)
85+
VALUES ('Cardinal', 'Tom B. Erichsen');
86+
```
87+
88+
### Database Management
89+
- **CREATE DATABASE**: Creates a new database.
90+
- **Syntax**:
91+
```sql
92+
CREATE DATABASE database_name;
93+
```
94+
- **Example**:
95+
```sql
96+
CREATE DATABASE myDatabase;
97+
```
98+
99+
- **ALTER DATABASE**: Modifies a database.
100+
- **Syntax**:
101+
```sql
102+
ALTER DATABASE database_name [MODIFY <option> ...];
103+
```
104+
- **Example**:
105+
```sql
106+
ALTER DATABASE myDatabase
107+
MODIFY NAME = newDatabaseName;
108+
```
109+
110+
### Table Operations
111+
- **CREATE TABLE**: Creates a new table.
112+
- **Syntax**:
113+
```sql
114+
CREATE TABLE table_name (
115+
column1 datatype,
116+
column2 datatype, ...
117+
);
118+
```
119+
- **Example**:
120+
```sql
121+
CREATE TABLE Customers (
122+
CustomerID int,
123+
CustomerName varchar(255)
124+
);
125+
```
126+
127+
- **ALTER TABLE**: Modifies a table.
128+
- **Syntax**:
129+
```sql
130+
ALTER TABLE table_name
131+
ADD column_name datatype;
132+
```
133+
- **Example**:
134+
```sql
135+
ALTER TABLE Customers
136+
ADD Email varchar(255);
137+
```
138+
139+
- **DROP TABLE**: Deletes a table.
140+
- **Syntax**:
141+
```sql
142+
DROP TABLE table_name;
143+
```
144+
- **Example**:
145+
```sql
146+
DROP TABLE Customers;
147+
```
148+
149+
### Index Management
150+
- **CREATE INDEX**: Creates an index (search key).
151+
- **Syntax**:
152+
```sql
153+
CREATE INDEX index_name
154+
ON table_name (column1, column2, ...);
155+
```
156+
- **Example**:
157+
```sql
158+
CREATE INDEX idx_lastname
159+
ON Customers (LastName);
160+
```
161+
162+
- **DROP INDEX**: Deletes an index.
163+
- **Syntax**:
164+
```sql
165+
DROP INDEX index_name ON table_name;
166+
```
167+
- **Example**:
168+
```sql
169+
DROP INDEX idx_lastname;
170+
```
171+
172+
## Diving Deeper into SQL: Beyond the Basics
173+
174+
### Advanced Data Retrieval
175+
- **SELECT DISTINCT**: Retrieves unique values from a column.
176+
- **Example**:
177+
```sql
178+
SELECT DISTINCT Country
179+
FROM Customers;
180+
```
181+
182+
- **SELECT COUNT()**: Counts the number of rows that match a specified condition.
183+
- **Example**:
184+
```sql
185+
SELECT COUNT(CustomerID)
186+
FROM Customers;
187+
```
188+
189+
- **SELECT AVG()**: Calculates the average value of a numeric column.
190+
- **Example**:
191+
```sql
192+
SELECT AVG(OrderAmount)
193+
FROM Orders;
194+
```
195+
196+
- **SELECT SUM()**: Calculates the total sum of a numeric column.
197+
- **Example**:
198+
```sql
199+
SELECT SUM(OrderAmount)
200+
FROM Orders;
201+
```
202+
203+
### Data Filtering and Sorting
204+
- **WHERE**: Filters records.
205+
- **Example**:
206+
```sql
207+
SELECT *
208+
FROM Customers
209+
WHERE Country = 'Germany';
210+
```
211+
212+
- **AND/OR**: Combines multiple conditions.
213+
- **Example**:
214+
```sql
215+
SELECT *
216+
FROM Customers
217+
WHERE Country = 'Germany'
218+
AND City = 'Berlin';
219+
```
220+
221+
- **ORDER BY**: Sorts the result set.
222+
- **Example**:
223+
```sql
224+
SELECT *
225+
FROM Customers
226+
ORDER BY Country ASC, CustomerName DESC;
227+
```
228+
229+
### Joins and Subqueries
230+
- **INNER JOIN**: Returns records that have matching values in both tables.
231+
- **Example**:
232+
```sql
233+
SELECT Orders.OrderID, Customers.CustomerName
234+
FROM Orders
235+
INNER JOIN Customers
236+
ON Orders.CustomerID = Customers.CustomerID;
237+
```
238+
239+
- **LEFT JOIN**: Returns all records from the left table, and the matched records from the right table.
240+
- **Example**:
241+
```sql
242+
SELECT Customers.CustomerName, Orders.OrderID
243+
FROM Customers
244+
LEFT JOIN Orders
245+
ON Customers.CustomerID = Orders.CustomerID;
246+
```
247+
248+
- **RIGHT JOIN**: Returns all records from the right table, and the matched records from the left table.
249+
- **Example**:
250+
```sql
251+
SELECT Orders.OrderID, Customers.CustomerName
252+
FROM Orders
253+
RIGHT JOIN Customers
254+
ON Orders.CustomerID = Customers.CustomerID;
255+
```
256+
257+
- **FULL JOIN**: Returns all records when there is a match in either left or right table.
258+
- **Example**:
259+
```sql
260+
SELECT Customers.CustomerName, Orders.OrderID
261+
FROM Customers
262+
FULL JOIN Orders
263+
ON Customers.CustomerID = Orders.CustomerID;
264+
```
265+
266+
- **Subquery**: A query nested inside another query.
267+
- **Example**:
268+
```sql
269+
SELECT CustomerName
270+
FROM Customers
271+
WHERE CustomerID IN (SELECT CustomerID
272+
FROM Orders
273+
WHERE OrderAmount > 500);
274+
```
275+
276+
### Data Grouping and Aggregation
277+
- **GROUP BY**: Groups rows that have the same values into summary rows.
278+
- **Example**:
279+
```sql
280+
SELECT COUNT(CustomerID), Country
281+
FROM Customers
282+
GROUP BY Country;
283+
```
284+
285+
- **HAVING**: Filters records after the `GROUP BY` statement.
286+
- **Example**:
287+
```sql
288+
SELECT COUNT(CustomerID), Country
289+
FROM Customers
290+
GROUP BY Country
291+
HAVING COUNT(CustomerID) < 5;
292+
```
293+
294+
### Data Constraints
295+
- **NOT NULL**: Ensures that a column cannot have a NULL value.
296+
- **Example**:
297+
```sql
298+
CREATE TABLE Orders (
299+
OrderID int NOT NULL,
300+
OrderNumber int NOT NULL
301+
);
302+
```
303+
304+
- **UNIQUE**: Ensures all values in a column are unique.
305+
- **
306+
307+
Example**:
308+
```sql
309+
CREATE TABLE Customers (
310+
CustomerID int UNIQUE,
311+
CustomerName varchar(255)
312+
);
313+
```
314+
315+
- **PRIMARY KEY**: Uniquely identifies each record in a table.
316+
- **Example**:
317+
```sql
318+
CREATE TABLE Customers (
319+
CustomerID int PRIMARY KEY,
320+
CustomerName varchar(255)
321+
);
322+
```
323+
324+
- **FOREIGN KEY**: Uniquely identifies a record in another table.
325+
- **Example**:
326+
```sql
327+
CREATE TABLE Orders (
328+
OrderID int,
329+
CustomerID int,
330+
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
331+
);
332+
```
333+
334+
- **CHECK**: Ensures that the values in a column satisfy a specific condition.
335+
- **Example**:
336+
```sql
337+
CREATE TABLE Orders (
338+
OrderID int,
339+
OrderAmount int CHECK (OrderAmount > 0)
340+
);
341+
```
342+
343+
- **DEFAULT**: Sets a default value for a column if no value is specified.
344+
- **Example**:
345+
```sql
346+
CREATE TABLE Orders (
347+
OrderID int,
348+
OrderStatus varchar(255) DEFAULT 'Pending'
349+
);
350+
```
351+
352+
## RDBMS
353+
354+
A Relational Database Management System (RDBMS) is a software system that facilitates the creation, management, and use of relational databases. RDBMSes are built on the principles of relational algebra and structured query language (SQL), providing a structured approach to storing and retrieving data.
355+
356+
### Key Components of RDBMS
357+
- **Tables**: Data in RDBMSes is organized into tables, which consist of rows and columns. Each row represents a record, and each column represents a specific attribute or field of the data.
358+
- **Relationships**: RDBMSes support relationships between tables through keys. Primary keys uniquely identify each row in a table, while foreign keys establish relationships between tables.
359+
- **SQL**: SQL is the standardized language used to interact with RDBMSes. It allows users to define, manipulate, query, and control data within the database.
360+
- **Data Integrity**: RDBMSes enforce data integrity constraints such as entity integrity (ensuring each row is unique with a primary key), referential integrity (maintaining relationships between tables), and domain integrity (ensuring valid data types and values).
361+
- **Transactions**: RDBMSes support transactions, which are atomic units of work that ensure all operations within a transaction either succeed completely or fail completely, preserving data consistency.
362+
- **Indexing**: Indexes are used to optimize data retrieval by providing fast access paths to data based on indexed columns.
363+
364+
### Applications of RDBMS
365+
RDBMSes are widely used across various industries and applications:
366+
1. **Web Applications**: Storing user data, session management, and content management systems.
367+
2. **Enterprise Applications**: Managing business data, transactions, and customer relationships.
368+
3. **Data Warehousing**: Storing and analyzing large volumes of data for business intelligence and decision-making.
369+
4. **E-commerce**: Handling product catalogs, order processing, and customer transactions.
370+
371+
## Conclusion
372+
SQL plays a crucial role in managing structured data and is essential for anyone involved in database-driven applications or systems. This introduction provides a concise overview of SQL, highlighting its importance, capabilities, and widespread use in database management. Adjustments can be made based on specific audience or detailed requirements as needed.

docs/dsa/algorithms/image-3.png

-7.3 KB
Loading

docs/dsa/algorithms/image-4.png

-9.95 KB
Loading

0 commit comments

Comments
 (0)