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)