CONTENT
  • CHANGES
Szukaj
counter

#top Przydatne informacje


#top Timeout


Zobacz także Timeout dla: Apache | Nginx | Lighttpd | thttpd | HAProxy | Varnish | SQUID
Zobacz także Timeout dla: ProFTPd | Pure-FTPd | vsftpd | Dovecot | Postfix | OpenLDAP
Zobacz także Timeout dla: pgpool | PostgreSQL | MySQL | Firebird | SQLite | MsSQL | Oracle | DB2 | Informix | Sybase

(Zobacz sekcję Timeout)



#top Database Storage Layout


Zobacz także Database Storage Layout dla: PostgreSQL | MySQL | Firebird | SQLite | MsSQL | Oracle | DB2 | Informix | Sybase



#top Tablespace


Zobacz także Tablespace dla: PostgreSQL | MySQL | Firebird | SQLite | MsSQL | Oracle | DB2 | Informix | Sybase

Definicja:

Dokumentacja MsSQL:

Dokumentacja MsSQL: Zapytania SQL:
Zapytania SQL: Składnia SQL: CREATE TABLESPACE | ALTER TABLESPACE | DROP TABLESPACE



#top SQL JOIN Visual Explanation


Zobacz także SQL JOIN Visual Explanation dla: PostgreSQL | MySQL | Firebird | SQLite | MsSQL | Oracle | DB2 | Informix | Sybase

Dokumentacja MsSQL: SELECT (Transact-SQL) - Logical Processing - JOIN, FROM (Transact-SQL)

SQL JOIN jak sama nazwa wskazuje jest to zapytanie łączące, a dokładniej zapytanie pobierające dane z więcej niż jednej tabeli łączące wybierane wiersze po wspólnej kolumnie.
Dostępnych jest wiele możliwości łączenia tabel zaleźnych od dopasowania wierszy. Wyróżnić można następujące typy łączenia tabel:
  • [INNER] JOIN - słowo kluczowe INNER jest opcjonalne, złączenia JOIN i INNER JOIN są równoważne,
  • LEFT [OUTER] JOIN - słowo kluczowe OUTER jest opcjonalne, złączenia LEFT JOIN i LET OUTER JOIN są równoważne,
  • RIGHT [OUTER] JOIN - słowo kluczowe OUTER jest opcjonalne, złączenia RIGHT JOIN i RIGHT OUTER JOIN są równoważne,
  • FULL [OUTER] JOIN - słowo kluczowe OUTER jest opcjonalne, złączenia FULL JOIN i FULL OUTER JOIN są równoważne,
  • CROSS JOIN

-- utworzenie tabel
CREATE TABLE join01 (
idjoin integer NOT NULL,
name varchar(255) NOT NULL,
PRIMARY KEY(idjoin)
);

CREATE TABLE join02 (
idjoin integer NOT NULL,
name varchar(255) NOT NULL,
PRIMARY KEY(idjoin)
);

-- dodanie przykładowych danych
INSERT INTO join01(idjoin,name) VALUES(1,'t01name01');
INSERT INTO join01(idjoin,name) VALUES(2,'t01name02');
INSERT INTO join01(idjoin,name) VALUES(3,'t01name03');
INSERT INTO join01(idjoin,name) VALUES(4,'t01name04');
INSERT INTO join01(idjoin,name) VALUES(5,'t01name05');

INSERT INTO join02(idjoin,name) VALUES(3,'t02name03');
INSERT INTO join02(idjoin,name) VALUES(4,'t02name04');
INSERT INTO join02(idjoin,name) VALUES(5,'t02name05');
INSERT INTO join02(idjoin,name) VALUES(6,'t02name06');
INSERT INTO join02(idjoin,name) VALUES(7,'t02name07');



#top SQL JOIN INNER JOIN


Zobacz także SQL JOIN INNER JOIN dla: PostgreSQL | MySQL | Firebird | SQLite | MsSQL | Oracle | DB2 | Informix | Sybase



Przykład bez słowa kluczowego INNER oraz ze słowem kluczowym INNER
SELECT * FROM join01 JOIN join02 ON (join01.idjoin=join02.idjoin);
SELECT * FROM join01 INNER JOIN join02 ON (join01.idjoin=join02.idjoin);
Po wykonaniu powyższego zapytania otrzymany rezultat powinien być analogiczny do poniższego:
|idjoin|name     |idjoin|name     |
+------+---------+------+---------+
|3     |t01name03|3     |t02name03|
|4     |t01name04|4     |t02name04|
|5     |t01name05|5     |t02name05|
Retrieved 3 rows in 0.006 seconds.



#top SQL JOIN LEFT JOIN


Zobacz także SQL JOIN LEFT JOIN dla: PostgreSQL | MySQL | Firebird | SQLite | MsSQL | Oracle | DB2 | Informix | Sybase



Przykład bez słowa kluczowego OUTER oraz ze słowem kluczowym OUTER
SELECT * FROM join01 LEFT JOIN join02 ON (join01.idjoin=join02.idjoin);
SELECT * FROM join01 LEFT OUTER JOIN join02 ON (join01.idjoin=join02.idjoin);
Po wykonaniu powyższego zapytania otrzymany rezultat powinien być analogiczny do poniższego:
|idjoin|name     |idjoin|name     |
+------+---------+------+---------+
|1     |t01name01|      |         |
|2     |t01name02|      |         |
|3     |t01name03|3     |t02name03|
|4     |t01name04|4     |t02name04|
|5     |t01name05|5     |t02name05|
Retrieved 5 rows in 0.005 seconds.



#top SQL JOIN RIGHT JOIN


Zobacz także SQL JOIN RIGHT JOIN dla: PostgreSQL | MySQL | Firebird | SQLite | MsSQL | Oracle | DB2 | Informix | Sybase



Przykład bez słowa kluczowego OUTER oraz ze słowem kluczowym OUTER
SELECT * FROM join01 RIGHT JOIN join02 ON (join01.idjoin=join02.idjoin);
SELECT * FROM join01 RIGHT OUTER JOIN join02 ON (join01.idjoin=join02.idjoin);
Po wykonaniu powyższego zapytania otrzymany rezultat powinien być analogiczny do poniższego:
|idjoin|name     |idjoin|name     |
+------+---------+------+---------+
|3     |t01name03|3     |t02name03|
|4     |t01name04|4     |t02name04|
|5     |t01name05|5     |t02name05|
|      |         |6     |t02name06|
|      |         |7     |t02name07|
Retrieved 5 rows in 0.006 seconds.



#top SQL JOIN FULL JOIN


Zobacz także SQL JOIN FULL JOIN dla: PostgreSQL | MySQL | Firebird | SQLite | MsSQL | Oracle | DB2 | Informix | Sybase



Przykład bez słowa kluczowego OUTER oraz ze słowem kluczowym OUTER
SELECT * FROM join01 FULL JOIN join02 ON (join01.idjoin=join02.idjoin);
SELECT * FROM join01 FULL OUTER JOIN join02 ON (join01.idjoin=join02.idjoin);
Po wykonaniu powyższego zapytania otrzymany rezultat powinien być analogiczny do poniższego:
|idjoin|name     |idjoin|name     |
+------+---------+------+---------+
|1     |t01name01|      |         |
|2     |t01name02|      |         |
|3     |t01name03|3     |t02name03|
|4     |t01name04|4     |t02name04|
|5     |t01name05|5     |t02name05|
|      |         |6     |t02name06|
|      |         |7     |t02name07|
Retrieved 7 rows in 0.007 seconds.



#top SQL JOIN LEFT JOIN IS NULL


Zobacz także SQL JOIN LEFT JOIN IS NULL dla: PostgreSQL | MySQL | Firebird | SQLite | MsSQL | Oracle | DB2 | Informix | Sybase



Przykład bez słowa kluczowego OUTER oraz ze słowem kluczowym OUTER
SELECT * FROM join01 LEFT JOIN join02 ON (join01.idjoin=join02.idjoin) WHERE join02.idjoin IS NULL;
SELECT * FROM join01 LEFT OUTER JOIN join02 ON (join01.idjoin=join02.idjoin) WHERE join02.idjoin IS NULL;
Po wykonaniu powyższego zapytania otrzymany rezultat powinien być analogiczny do poniższego:
|idjoin|name     |idjoin|name|
+------+---------+------+----+
|1     |t01name01|      |    |
|2     |t01name02|      |    |
Retrieved 2 rows in 0.182 seconds.



#top SQL JOIN RIGHT JOIN IS NULL


Zobacz także SQL JOIN RIGHT JOIN IS NULL dla: PostgreSQL | MySQL | Firebird | SQLite | MsSQL | Oracle | DB2 | Informix | Sybase



Przykład bez słowa kluczowego OUTER oraz ze słowem kluczowym OUTER
SELECT * FROM join01 RIGHT JOIN join02 ON (join01.idjoin=join02.idjoin) WHERE join01.idjoin IS NULL;
SELECT * FROM join01 RIGHT OUTER JOIN join02 ON (join01.idjoin=join02.idjoin) WHERE join01.idjoin IS NULL;
Po wykonaniu powyższego zapytania otrzymany rezultat powinien być analogiczny do poniższego:
|idjoin|name|idjoin|name     |
+------+----+------+---------+
|      |    |6     |t02name06|
|      |    |7     |t02name07|
Retrieved 2 rows in 0.056 seconds.



#top SQL JOIN FULL JOIN IS NULL


Zobacz także SQL JOIN FULL JOIN IS NULL dla: PostgreSQL | MySQL | Firebird | SQLite | MsSQL | Oracle | DB2 | Informix | Sybase



Przykład bez słowa kluczowego OUTER oraz ze słowem kluczowym OUTER
SELECT * FROM join01 FULL JOIN join02 ON (join01.idjoin=join02.idjoin) WHERE join01.idjoin IS NULL OR join02.idjoin IS NULL;
SELECT * FROM join01 FULL OUTER JOIN join02 ON (join01.idjoin=join02.idjoin) WHERE join01.idjoin IS NULL OR join02.idjoin IS NULL;
Po wykonaniu powyższego zapytania otrzymany rezultat powinien być analogiczny do poniższego:
|idjoin|name     |idjoin|name     |
+------+---------+------+---------+
|1     |t01name01|      |         |
|2     |t01name02|      |         |
|      |         |6     |t02name06|
|      |         |7     |t02name07|
Retrieved 4 rows in 0.128 seconds.



#top SQL JOIN CROSS JOIN


Zobacz także SQL JOIN CROSS JOIN dla: PostgreSQL | MySQL | Firebird | SQLite | MsSQL | Oracle | DB2 | Informix | Sybase

SELECT * FROM join01 CROSS JOIN join02;
Po wykonaniu powyższego zapytania otrzymany rezultat powinien być analogiczny do poniższego:
|idjoin|name      |idjoin|name     |
+------+----------+------+---------+
|1     |t01name01 |3     |t02name03|
|2     |t01name02 |3     |t02name03|
|3     |t01name03 |3     |t02name03|
|4     |t01name04 |3     |t02name03|
|5     |t01name05 |3     |t02name03|
|1     |t01name01 |4     |t02name04|
|2     |t01name02 |4     |t02name04|
|3     |t01name03 |4     |t02name04|
|4     |t01name04 |4     |t02name04|
|5     |t01name05 |4     |t02name04|
|1     |t01name01 |5     |t02name05|
|2     |t01name02 |5     |t02name05|
|3     |t01name03 |5     |t02name05|
|4     |t01name04 |5     |t02name05|
|5     |t01name05 |5     |t02name05|
|1     |t01name01 |6     |t02name06|
|2     |t01name02 |6     |t02name06|
|3     |t01name03 |6     |t02name06|
|4     |t01name04 |6     |t02name06|
|5     |t01name05 |6     |t02name06|
|1     |t01name01 |7     |t02name07|
|2     |t01name02 |7     |t02name07|
|3     |t01name03 |7     |t02name07|
|4     |t01name04 |7     |t02name07|
|5     |t01name05 |7     |t02name07|
Retrieved 25 rows in 0.007 seconds.



#top Database Objects Size


Zobacz także Database Objects Size dla: PostgreSQL | MySQL | Firebird | SQLite | MsSQL | Oracle | DB2 | Informix | Sybase



#top Find Multiple Indexes


Zobacz także Find Multiple Indexes dla: PostgreSQL | MySQL | Firebird | SQLite | MsSQL | Oracle | DB2 | Informix | Sybase

Więcej informacji w analogicznym zagadnieniu: Find Duplicate Indexes



#top Find Duplicate Indexes


Zobacz także Find Duplicate Indexes dla: PostgreSQL | MySQL | Firebird | SQLite | MsSQL | Oracle | DB2 | Informix | Sybase



#top Find Unused Indexes


Zobacz także Find Unused Indexes dla: PostgreSQL | MySQL | Firebird | SQLite | MsSQL | Oracle | DB2 | Informix | Sybase

Dokumentacja MsSQL: Finding Missing Indexes and Unused Indexes using DMVs



#top Performance Tuning


Zobacz także Performance Tuning dla: PostgreSQL | MySQL | Firebird | SQLite | MsSQL | Oracle | DB2 | Informix | Sybase


















































Zmodyfikowany ostatnio: 2018/02/04 22:25:05 (6 lat temu), textsize: 18,1 kB, htmlsize: 33,5 kB

Zapraszam do komentowania, zgłaszania sugestii, propozycji, własnych przykładów, ...
Dodaj komentarzKomentarze użytkowników