Uploaded by User699

SQL

advertisement
COALESCE(dodatek,0) – zamienia wartości NULL w kolumnie „dodatek” na zero
DATEDIFF (day/month/year,start_date,end_date) – zwraca ilość dni/miesięcy/lat pomiędzy
start_date i end_date
GETDATE() – pobiera aktualną datę z systemu
HAVING – stosowana po GROUP BY, klauzula having została dodana do SQL ponieważ
WHERE nie można używać z funkcjami agregującymi
STUFF (co_chcemy_zastapic,start,koniec,tekst_ktory_ma_zastapic) - usuwa znaki od start do
koniec z wyrazenia, ktore chcemy zastapic i w jego miejsce wstawia to czym chcemy zastapic
POZIOMY IZOLACJI: READ UNCOMMITED, READ COMMITED, REPEATABLE READ,
SNAPSHOT, SERIALIZABLE,
FUNKCJE AGREGUJĄCE:
Z GRUPOWANIEM – GROUP BY (PO GROUP BY NIE MOŻNA STOSOWAĆ F.
AGREUJĄCYCH BEZ GRUPOWANIA, JEŚLI GRUPUJEMY PO ID TO MAMY NA
MYŚLI KONKRETNY REKORD W BAZIE)
BEZ GRUPOWANIA – MIN, MAX, SUM, AVG, COUNT
ZBIORY:
UNION – suma zbiorów bez duplikatów, UNION ALL – suma zbiorów z duplikatami,
INTERSECT – część wspólna zbiorów, EXCEPT – różnica zbiorów
ALTER TABLE:
ADD - dodaje kolumne (ALTER TABLE table_name ADD column_name datatype;)
DROP COLUMN - usuwa kolumne (ALTER TABLE table_name DROP COLUMN
column_name;)
ALTER COLUMN - zmienia typ danych kolumny, rowniez w przypadku not null (ALTER
TABLE table_name ALTER COLUMN column_name datatype;)
ADD CONSTRAINT nazwa_constraint WARTOSC(wiersz na ktory ma dzialac) - dodaje
ogarniczenie na kolumne
ADD CONSTRAINT fk_nazwa FOREIGN KEY (nazwa_klucza) REFERENCES
tabela(nazwa_klucza) - dodaje klucz obcy
CREATE PROCEDURE nazwa_procedury @wartosci int,char itp
AS
KOMENDA SQL
GO
CREATE FUNCTION nazwa_funkcji (
@wartosci int, char itp
) RETURNS INT
BEGIN
RETURN (KOMENDA SQL)
END;
GO
PRZY WIDOKACH NIE MOŻNA STOSOWAĆ ORDER BY
CREATE VIEW nazwa_widoku
AS
KOMENDA SQL (JOINY)
GO
Tabela 1:
id_kraj | Kraj
1 | Hiszpania
2 | Rosja
3 | Niemcy
Tabela 2:
id_miasto
1
2
3
4
| id_kraj | Miasto
|
1 | Barcelona
|
1 | Sevilla
|
2 | Moskwa
| NULL| Warszawa
INNER JOIN - wyświetla tylko rekordy wspólne dla obu tabel (nie wyświetla NULLI!) -> wyświetli
każdy rekord tabeli II, który zawiera id (wyznaczone po ON) z tabeli I
select * from Kraj k INNER JOIN Miasto m ON k.id_kraj=m.id_kraj;
id_kraj | Kraj
| id_miasto | id_kraj | Miasto
1 | Hiszpania |
1|
1 | Barcelona
2 | Hiszpania |
2|
1 | Sevilla
3 | Rosja
|
3|
2 | Moskwa
LEFT JOIN - wyświetla rekordy wspólne dla obu tabel, oraz dodatkowo wszystkie elementy tabeli
po lewej stronie zapytania ON, puste rekordy zastąpione zostaną NULLAMI
select * from Kraj k LEFT JOIN Miasto m ON k.id_kraj=m.id_kraj;
id_kraj| Kraj
| id_miasto | id_kraj | Miasto
1| Hiszpania |
1|
1 | Barcelona
2| Hiszpania |
2|
1 | Sevilla
3| Rosja
|
3|
2 | Moskwa
4| Niemcy |
NULL| NULL| NULL
RIGHT JOIN - wyświetla rekordy wspólne dla obu tabel, oraz dodatkowo wszystkie elementy
tabeli po prawej stronie zapytania ON, puste rekordy zastąpione zostaną NULLAMI
select * from Kraj k RIGHT JOIN Miasto m ON k.id_kraj=m.id_kraj;
id_kraj | Kraj
| id_miasto | id_kraj | Miasto
1| Hiszpania|
1|
1 | Barcelona
2| Hiszpania|
2|
1 | Sevilla
3| Rosja
|
3|
2 | Moskwa
NULL| NULL
|
4 | NULL| Warszawa
FULL JOIN - złączenie INNER, LEFT i RIGHT JOIN, wyświetla część wspólną tabel, oraz elementy
(które nie mają swoich odpowiedników) tabeli po lewej i prawej stronie a puste kolumny
uzupełnia NULLAMI
select * from Kraj k FULL JOIN Miasto m ON k.id_kraj=m.id_kraj;
id_kraJ| Kraj
| id_miasto | id_kraj | Miasto
1| Hiszpania |
1|
1 | Barcelona
2| Hiszpania |
2|
1 | Sevilla
3| Rosja
|
3|
2 | Moskwa
4| Niemcy |
NULL| NULL| NULL
NULL| NULL |
4 | NULL| Warszawa
CROSS JOIN - łączy każdy wiersz tabeli I z każdym wierszem tabeli II (wszystko ze wszystkim),
rzadko stosowane (dwie tabele po 100 rekordow dadza 10000 rekordów)
DELETE & UPDATE CASCADE – USUWANIE I AKTUALIZOWANIE KASKADOWE (AUTOMATYCZNE)
Download