diff --git a/databases/postgresql.md b/databases/postgresql.md index deb3703..ec11061 100644 --- a/databases/postgresql.md +++ b/databases/postgresql.md @@ -21,21 +21,21 @@ Query data in columns c1, c2 form a table ``` SELECT * FROM t; ``` -#### Query all rows and columns from a table +Query all rows and columns from a table
``` SELECT c1, c2 FROM t WHERE condition; ``` -#### Query data and filter rows with a condition +Query data and filter rows with a condition
``` SELECT DISTINCT c1 FROM t WHERE condition; ``` -#### Query distinct rows from a table +Query distinct rows from a table
``` @@ -43,7 +43,7 @@ SELECT c1, c2 FROM t ORDER BY c1 ASC[DESC]; ``` -#### Sort the result set in ascending or descending order +Sort the result set in ascending or descending order
``` @@ -52,7 +52,7 @@ FROM t ORDER BY c1 LIMIT n OFFSET offset; ``` -#### Skip offset of rows and return the next n rows +Skip offset of rows and return the next n rows
``` @@ -60,7 +60,7 @@ SELECT c1, aggregate(c2) FROM t GROUP BY c1; ``` -#### Group rows using in aggregate function +Group rows using in aggregate function
``` @@ -69,10 +69,10 @@ FROM t GROUP BY c1 HAVING condition; ``` -#### Filter groups using HAVING clause +Filter groups using HAVING clause -### QUERYING FROM MULTIPLE TABLES +### 2️⃣ QUERYING FROM MULTIPLE TABLES
View Queries @@ -81,7 +81,7 @@ SELECT c1, c2 FROM t1 INNER JOIN t2 ON condition; ``` -#### Inner join t1 and t2 +Inner join t1 and t2
``` @@ -89,7 +89,7 @@ SELECT c1, c2 FROM t1 LEFT JOIN t2 ON condition; ``` -#### Left join t1 and t1 +Left join t1 and t1
``` @@ -97,7 +97,7 @@ SELECT c1, c2 FROM t1 RIGHT JOIN t2 ON condition; ``` -#### Right join t1 and t2 +Right join t1 and t2
``` @@ -105,7 +105,7 @@ SELECT c1, c2 FROM t1 FULL OUTER JOIN t2 ON condition; ``` -#### Perform full outer join +Perform full outer join
``` @@ -113,14 +113,14 @@ SELECT c1, c2 FROM t1 CROSS JOIN t2; ``` -#### Produce a Cartesian product of rows in tables +Produce a Cartesian product of rows in tables
``` SELECT c1, c2 FROM t1, t2; ``` -#### Another way to perform cross join +Another way to perform cross join
``` @@ -128,11 +128,11 @@ SELECT c1, c2 FROM t1 A INNER JOIN t2 B ON condition; ``` -#### Join t1 to itself using INNER JOIN clause +Join t1 to itself using INNER JOIN clause
-### USING SQL OPERATORS +### 3️⃣ USING SQL OPERATORS
View Queries @@ -142,7 +142,7 @@ FROM t1 UNION [ALL] SELECT c1, c2 FROM t2; ``` -#### Combine rows from tow queries +Combine rows from tow queries
``` @@ -150,7 +150,7 @@ SELECT c1, c2 FROM t1 INTERSECT SELECT c1, c2 FROM t2; ``` -#### Return the intersection of two queries +Return the intersection of two queries
``` @@ -158,39 +158,38 @@ SELECT c1, c2 FROM t1 EXCEPT SELECT c1,c2 FROM t2; ``` -#### Subtract a result set from another result set +Subtract a result set from another result set
``` SELECT c1, c2 FROM t WHERE c1[NOT] LIKE pattern; ``` -#### Query rows using pattern matching %, _ +Query rows using pattern matching %, _
``` SELECT c1, c2 FROM t WHERE c1[NOT] IN value_list; ``` -#### Query rows in a list +Query rows in a list
``` SELECT c1, c2 FROM t WHERE c1 BETWEEN low_value AND high_value; ``` -#### Query rows between two values +Query rows between two values
``` SELECT c1, c2 FROM t WHERE c1 IS [NOT]NULL; ``` -#### Check if values in a table is NULL or not - +Check if values in a table is NULL or not
-### MANAGING TABLES +### 4️⃣ MANAGING TABLES
View Queries @@ -201,58 +200,58 @@ CREATE TABLE( price NUMERIC(10,2) DEFAULT 0 ); ``` -#### Create a new table with three columns +Create a new table with three columns
``` DROP TABLE t CASCADE; ``` -#### Delete the table from the database +Delete the table from the database
``` ALTER TABLE t ADD column; ``` -#### Add a new column to the table +Add a new column to the table
``` ALTER TABLE t DROP COLUMN c; ``` -#### Drop column c from the table +Drop column c from the table
``` ALTER TABLE t ADD contraint; ``` -#### Add a constraint +Add a constraint
``` ALTER TABLE t DROP constraint; ``` -#### Drop a constraint +Drop a constraint
``` ALTER TABLE t1 RENAME TO t2; ``` -#### Rename a table from t1 to t2 +Rename a table from t1 to t2
``` ALTER TABLE t1 RENAME c1 to c2; ``` -#### Rename column c1 to c2 +Rename column c1 to c2
``` TRUNCATE TABLE t CASCADE; ``` -#### Remove all data in a table +Remove all data in a table
-### USING SQL CONSTRAINTS +### 5️⃣ USING SQL CONSTRAINTS
View Queries @@ -262,7 +261,7 @@ CREATE TABLE t( PRIMARY KEY(c1, c2) ); ``` -#### Set c1 and c2 as a primary key +Set c1 and c2 as a primary key
``` @@ -272,7 +271,7 @@ CREATE TABLE t1( FOREIGN KEY (c2) REFERENCES ts(c2) ); ``` -#### Set c2 column as a foreign key +Set c2 column as a foreign key
``` @@ -281,7 +280,7 @@ CREATE TABLE t( UNIQUE(c2, c3) ); ``` -#### Make the values in c1 and c2 unique +Make the values in c1 and c2 unique
``` @@ -290,7 +289,7 @@ CREATE TABLE t( CHECK(c1 > 0 AND c1 >= c2) ); ``` -#### Ensure c1 > 0 and values in c1 >= c2 +Ensure c1 > 0 and values in c1 >= c2
``` @@ -299,10 +298,10 @@ CREATE TABLE t( c2 VARCHAR NOT NULL ); ``` -#### Set values in c2 column not null +Set values in c2 column not null
-### MODIFIYING DATA +### 6️⃣ MODIFIYING DATA
View Queries @@ -310,7 +309,7 @@ CREATE TABLE t( INSERT INTO t(column_list) VALUES(value_list); ``` -#### Insert one row into a table +Insert one row into a table
``` @@ -318,7 +317,7 @@ INSERT INTO t(column_list) VALUES(value_list), (value_list), ....; ``` -#### Insert multiple rows into a table +Insert multiple rows into a table
``` @@ -326,14 +325,14 @@ INSERT INTO t1(column_list) SELECT column_list FROM t2; ``` -#### Insert rows from t2 into t1 +Insert rows from t2 into t1
``` UPDATE t SET c1 = new_value; ``` -#### Update new value in the column c1 for all rows +Update new value in the column c1 for all rows
``` @@ -342,23 +341,23 @@ SET c1 = new_value, c2 = new_value WHERE condition; ``` -#### Update values in the column c1, c2 that match the condition +Update values in the column c1, c2 that match the condition
``` DELETE FROM t; ``` -#### Delete all data in a table +Delete all data in a table
``` DELETE FROM t WHERE condition; ``` -#### Delete subset of rows in a table +Delete subset of rows in a table
-### MANAGING VIEWS +### 7️⃣ MANAGING VIEWS
View Queries @@ -368,7 +367,7 @@ AS SELECT c1, c2 FROM t; ``` -#### Create a new view that consists of c1 and c2 +Create a new view that consists of c1 and c2
``` @@ -378,7 +377,7 @@ SELECT c1, c2 FROM t WITH[CASCADED | LOCAL]CHECK OPTION; ``` -#### Create a new view with check option +Create a new view with check option
``` @@ -388,7 +387,7 @@ select-statement --anchor part UNION[ALL] select-statement; --recursive part ``` -#### Create a recursive view +Create a recursive view
``` @@ -397,17 +396,17 @@ AS SELECT c1, c2 FROM t; ``` -#### Create a temporary view +Create a temporary view
``` DROP VIEW view_name; ``` -#### Delete a view +Delete a view
-### MANAGING INDEXES +### 8️⃣ MANAGING INDEXES
View Queries @@ -415,24 +414,24 @@ DROP VIEW view_name; CREATE INDEX inx_name ON t(c1, c2); ``` -#### Create an index on c1 and c2 of the table t +Create an index on c1 and c2 of the table t
``` CREATE UNIQUE INDEX inx_name ON t(c3, c4); ``` -#### Create unique index on c3, c4 of the table t +Create unique index on c3, c4 of the table t
``` DROP INDEX idx_name; ``` -#### Drop an index +Drop an index
-### MANAGING TRIGGERS +### 9️⃣ MANAGING TRIGGERS
View Queries @@ -442,7 +441,7 @@ WHEN EVENT ON table_name TRIGGER_TYPE EXECUTE stored_procedure; ``` -#### Create or modify a trigger +Create or modify a trigger
``` @@ -473,17 +472,17 @@ BEFORE INSERT ON person FOR EACH ROW EXECUTE stored_procedure; ``` -#### Create a trigger invoked before a new row is inserted into the person table +Create a trigger invoked before a new row is inserted into the person table
``` DROP TRIGGER trigger_name ``` -#### Delete a specific trigger +Delete a specific trigger
-### SQL AGGREGATE FUNCTIONS +### 🔟 SQL AGGREGATE FUNCTIONS
View Queries