![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| C/C++ / CGI / Sieć Novell / PHP / Java / SQL / Oracle / WebSphere MQ / WebSphere Message Broker / JavaScript / Humor / IT Quiz | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|
![]() |
Informacje podstawowe Wstęp : Instrukcje podstawowe Data i czas Typy danych Funkcje agregujące : Funkcje łańcuchowe Funkcje numeryczne : Klucze : Konwersja typów : Grupowanie : Kopiowanie tabel : Indeksy : Podzapytania : Złączenia : Wyrażenia logiczne Wyrażenie CASE : Servery SQL : Literatura Jeden plik Legenda w przygotowaniu * w trakcie tworzenia
alter table : Zmienia definicje tablicy Składnia ALTER TABLE nazwa tablicy { ADD [COLUMN] definicja kolumny } { ALTER [COLUMN] nazwa kolumny akcja } { DROP [COLUMN] nazwa kolumny RESTRICT | CASCADE } { ADD ograniczenia tablicy } { DROP CONSTTRAINT nazwa ograniczenia RESTRICT | CASCADE } akcja Przykład ALTER TABLE shop ADD info varchar(125) DEFAULT 'brak' Patrz create table : tworzy tabelę drop table : usuwa tabele create table : Tworzy tabelę Składnia CREATE [ {GLOBAL | LOCAL } TEMPORARY ] TABLE nazwa tablicy { definicja kolumny [ograniczenia tablicy] } definicja kolumny [ DEFAULT wartość domyślna ] [ COLLATE porównanie ] Przykład CREATE TABLE shop { id int PRIMARY KEY, name varchar(40) NOT NULL, maxcount int DEFAULT 200 Patrz alter table : zmienia definicje kulumn w tabeli drop table : usuwa tabele delete : usuwa wiersze z tabeli Składnia DELETE FROM nazwa tablicy { WHERE( wyrażenie } Przykład DELETE FROM shop WHERE maxcount<>50 Patrz insert : wstawia wiersze do tabeli drop table : Usuwa tablicę Składnia DROP TABLE nazwa tablicy CASCADE | RESTRICT Przykład DROP TABLE shop Patrz alter table : zmienia definicje kulumn w tabeli drop table : usuwa tabele grant : ustawia uprawnienia użytkownikowi na wykonanie określonego zadania na obiekcie Składnia GRANT uprawnienie, ... ON nazwa obiektu TO {użytkownik, ...} | PUBLIC uprawnienia obiekty Przykład GRANT UPDATE ON shop TO User1 Patrz revoke : zdejmuje uprawnienia do obiektu insert : zapisuje wiersz do tabeli Składnia INSERT INTO nazwa tablicy { (nazwa kolumny,...) values (wartości kolumny,...) Przykład INSERT INTO shop (name, maxcount) VALUES ('Sklep próbny', 400) Patrz alter table : zmienia definicje kulumn w tabeli drop table : usuwa tabele select : pobiera wiersze z tabel revoke : zdejmuje uprawnienia użytkownikowi na wykonanie określonego zadania na obiekcie Składnia REVOKE { ALL PRIVILEGES} | uprawnienie, ... } ON obiekt FROM PUBLIC | {uzytkownik, ...} CASCADE | RESTRICT Przykład REVOKE INSERT ON shop FROM User1 CASCADE Patrz grant : ustawia uprawnienia do obiektu select : Pobiera wiersze z tabeli Składnia SELECT [DISTINCT] * | nazwa_kolumny | nazwa_tablicy.* | nazwa_tablicy.nazwa_kolumny | funkcja agregująca [AS] nazwa_kolumny, ... FROM( nazwa tablicy, ... } WHERE( predykad } GROUP BY( nazwa_tablicy, nazwa_kolumny , ... } HAVING( predykad } ORDER BY( nazwa_kolumny[ASC | DESC], ... } Przykład SELECT name FROM shop WHERE maxcount=50 ORDER BY name Patrz create table : tworzy tabelę insert : wstawia wiersze do tabeli update : zmienia pola w wierszu tabeli Składnia UPDATE nazwa tablicy SET( nazwa kolumny={wyrażebie | NULL | DEFAULT }},.. { WHERE( wyrażenie } Przykład UPDATE shop SET maxcount=300 WHERE maxcount<>50 Patrz create table : tworzy tabelę insert : wstawia wiersze do tabeli Język SQL udostępnia nam cztery typy danych związanych z datą i czasem. Są to: DATE, TIME, TIMESTAMP oraz INTERVAL. W zapytaniach możemy używać zmiennych związanych z datą i czasem oferowanych przez system bazodanowy, a są to: CURRENT_DATE : aktualna data CURRENT_TIME : aktualna godzina CURRENT_TIMESTAMP : aktualna data i godzina Na wszystkich typach danych związanych z datą możemy dokonywać wszelkich operacji dodawania lub odejmowania, wynikiem czego otrzymamy daną typu INTERVAL. Dodatkowo dla typu interval dozwolone są operacje mnożenia i dzielenia. W rezultacie tych operacji uzyskamy wynik również typu INTERVAL. Formatowanie wyników typu INTERVAL W skład typu INTERVAL wchodzą pola wewnętrz takie jak: YEAR, MONTH, DAY, HOUR, MINUTE oraz SECOND, co pozwala nam na określenie sposoby wyświetlania wyników zapytania. Możemy więc wymusić aby przedział czasowy był wyświetlany w postaci dni lub np. w postaci godzin i sekund. Przykłady select * from users where expiration >= CURRENT_DATE : Zwróci wszystkie wiersze których pole expiration jest większe równe od bieżącej daty update users set expiration=expiration + interval '1' MONTH : Zwiększa w kazdym wierszu tabeli pole expiration o jeden miesiąc select CURRENT_DATE-birth_day YEAR from users : Wyświetla przedział czasowy w postać lat select CURRENT_DATE-birth_day YEAR TO MONTH from users : Wyświetla przedział czasowy w postać lat i miesięcy bit (n) : pole składające się z określonej ilości bitów o stałej długości bit varying (n) : pole składające się maksymalnie z określonej ilości bitów char ( n ) : łańcuch tekstowy o stałej długości char varying ( n ) : łańcuch tekstowy o zmiennej długości nie większej niż n date : data decimal : liczba rzeczywista double : liczba rzeczywista o podwójnej precyzji float : liczba rzeczywista o wybranej precyzji integer ( int ) : liczba całkowita interval : przedział czasowy numeric (n,m) : liczba rzeczywista formatowana do określonej ilości miejsc po przecinku ( m ) smallint : liczba całkowita o połowę krótsza od typu int time : godzina timestamp : data i godzina || - operator łączenia select nazwisko || ' ' || imie from osoby : Zwróci łańcuch tekstowy powstały z połączenia pola o nazwie nazwisko, spacji i pola o nazwie imie UPPER lub LOWER - konwersja na wielkie lub małe litery select * from osoby where UPPER(nazwsiko)='KOWALSKI' : Zwróci wszystkie osoby o nazwisku Kowalski niezależnie od tego jakimi literami jest ta osoba zapisana w bazie TRIM - obcinanie łańcucha TRIM (BOTH '' FROM łańcuch) : Usuwa znaki spacji z obu stron łańcucha TRIM (LEADING '' FROM łańcuch) : Usuwa znaki spacji na początku łańcucha TRIM (TRAILING '' FROM łańcuch) : Usuwa znaki spacji na końcu łańcucha SUBSTRING - pobranie z łańcucha źródłowego jego części SUBSTRING (łańcuch FROM indeks FOR ilość ) : wycina z łańcucha określoną ilość liter poczynając od litery o indeksie indeks select SUBSTRING (nazwisko FROM 1 FOR 1 ) from osoby : wyświetla pierwsze litery nazwiska wszystkich osób z bazy Są to wyrażenia precyzujące zakres wyszukiwania wierszy w podstawowych instrukcjach SQL. Występują one po słowie kluczowym where. Są to podstawowe wyrażenia z jakimi mamy do czynienia w językach programowania ( <,>,<=,>=,=,<> ). Operatory logiczne Poza powyższymi operatorami związków mamy do czynienia z operatorami logicznymi (or, and, not). Poniżej znajduje się kilka przykładów ilustrujących te operatory. Wszyscy mężczyźni plus kobiety urodzone przed 2000 rokiem ... where plec='M' or datau<'2000-01-01' Wszyscy mężczyźni urodzeni przed 2000 rokiem ... where plec='M' and datau<'2000-01-01' Wszyscy nie spełniający warunek w nawiasie ... where not (plec='M' and datau<'2000-01-01') Operatory specjalne Wszyscy, których data urodzenia zawiera się w zadanym przedziale ... where datau between '1999-01-01' and '2000-01-01' Wszyscy, którzy urodzili się w jednym z dni podanych w nawiasie ... where datau in ('1998-01-01','1999-01-01','2000-01-01') Wszyscy, których nazwisko rozpoczyna się od Kas ... where nazwisko like 'Kas%' Wszyscy, których nazwisko kończy się na ki ... where nazwisko like '%ki' Wszyscy, których nazwisko zawiera łańcuch iński ... where nazwisko like '%iński% Wszyscy, których nazwisko rozpoczyna się od Kasińsk i po tym łańcuchu następuje najwyżej jeden znak ... where nazwisko like 'Kasińsk_' Wszyscy , którym nie przypisaliśmy w bazie daty urodzenia (to pole jest puste) ... where datau is null Operatory te możemy łączyć z operatorem logicznym NOT co spowoduje zanegowanie całego wyrażenia np: Wszyscy, których nazwisko nie pasuje do zadanego wzorca ... nazwisko not like 'Kas%' "SQL" : Martin Gruber ISBN 83-86718-32-3 Helion 1996 "SQL dla każdego" : Jan L. Harrington ISBN 83-87102-55-5 Mikom 1998 "Poznaj Oracle 8" : David Austin ISBN 83-7158-153-X Mikom 1999 |
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||