| SQL časť: 1. |
|
|
|
| Napísal Jan Zabka |
| Streda, 03 Február 2010 19:07 |
|
98
Ohodnoť!Chcel by som Vam predstavit jazyk SQL (Structured query language). S jazykom SQL som sa prvy krat stretol u nas na skole, ked sa preberali informacne a databazove systemy a vyuzijem aj moje poznamky. :) Myslim, ze ked sa chcete ucit napriklad databazy MySQL, ORACLE alebo ine treba tento jazyk poznat. V tejto casti preberiem zakladne prikazy pre vytvorenie tabulky, selektovanie, zobrazovanie a inzertovanie. Čo je SQL?SQL je standard pre relacne systemy riadena bazy dat (SRBD). Cielom SQL - 92 Standard
SQL3 ISO 9075:1999 (Zavadza OO prvky)
SQL prostredie
SQL datove typy
SQL - Data Definition LanguageZakladne prikazy: CREATE
Ukazeme si prikladik:CREATE TABLE FAKTURA ( ID_CIS_FAK NUMBER(5) NOT NULL, 1. identifikacia datovych typov pre atributy ID_ICO_ZAK NUMBER(5) NOT NULL, 2. identifikacia typov ktore mozu alebo nemozu ID_C_ZAM NUMBER(5) NOT NULL, byt NULL DATUMF VARCHAR2(8) NOT NULL, CELKOVA_SUMA NUMBER(7) NOT NULL, PRIMARY KEY (ID_CIS_FAK), 3. identifikacia PK a FK FOREIGN KEY (ID_ICO_ZAK) REFERENCES ZAKAZNIK, 4. stanovenie default hodnot FOREIGN KEY (ID_C_ZAM) REFERENCES ZAMESTNANEC 5. Identifikacia obmmedzeni pre stlpce(check) ); prikazy v SQL sa odeluju bodkociarkou ; hodnoty NOT NULL musia byt zadane Pouzitie pohladov VIEW : pohlady poskytuju riadeny pristup k jednotlivym tabulkam databazy vyhody pohladov: zjednoduhsenie prikazov, vyssia ochrana a bezpecnost dat, vyssia programatorska produktivita VIEW je virtualna tabulka, vytvorena dynamicky uzivatelom a neuchovava ziadne data. Je zalozeny na SQL select prikaze. Data su uchovavane a musia byt aktualizovane zmeny, aby korespondovali so zakladnou tabulkou Prikladik:CREATE VIEW Senior AS SELECT Meno, Priezvisko, RC FROM Osoba WHERE DATUMNASTUPU < ”1.1.1985” ; Prikazy Alter a Drop pre tabulkyALTER TABLE Osoba ADD (VYSKA Varchar2(3)); prida stlpec VYSKA typu Varchar2 do tabulkyALTER TABLE Osoba MODIFY (VYSKA Number ); zmena atributu VYSKA na typ Number DROP TABLE Osoba; zmaze tabulku Osoba Vytvorenie Index-u Indexacia urychluje pristup k datam tabulky CREATE UNIQUE INDEX XUOSOBA ON OSOBA ( RC ); podla rodneho cisla CREATE INDEX XOSOBA ON OSOBA (PRIEZVISKO ); podla priezviska SQL - Data Manipulation Languageprikaz INSERT sluzi na naplnanie tabuliek (vkladanie udajov)INSERT INTO ( ) VALUES ( ) prikladiky:INSERT INTO Osoba VALUES (7009157046,’Igor’, ’Dvorský’, ’Mgr’, ’Muz’, 17,‘25.3.1996’); Insert, ak vynechate niektory stlpec: INSERT INTO Osoba (RC, Meno, Priezvisko, Pohlavie, Cislovzdelania) VALUES (7009157046, ’Igor’, ’Dvorsky’, ’Muz’, 17); Insert z inej tabulky: INSERT INTO Manager (ID, Person , PersNr , Typ) SELECT * FROM Personal where ID> 1000; Prikaz Delete
Priezvisko = ‘Dvorsky’;
Prikaz Update UPDATE SET = [ , = ] . . . WHERE prikladik:UPDATE OSOBA SET Titul = ‘Ing’ WHERE RC = 7009157046; Prikaz SELECT
SELECT [DISTINCT] { * | } FROM [ , ] [ , ] [ WHERE ] [ GROUP BY [ HAVING ]] [ ORDER BY [ ASC | DESC ] [ , [ ASC | DESC ] ]]: DISTINCT - zamedzenie duplicity * - vyhladaj vsetko DESC, ASC urcuju zostupny alebo vzostupny sposob triedeniaporovnavacie operatory v SQL: = rovna sa > vacsie ako < mensie ako > vacsie alebo rovne =, vedla seba (problem so zobrazenim vedla seba) < mensie alebo rovne =, vedla seba (problem so zobrazenim vedla seba) nerovna sa sa pisu vedla seba lomene zatvorky (problem so zobrazenim vedla seba) != nerovna sa SELECT- s pouzitim ALIASAlias je alternativny stlpec alebo nazov tabulky SELECT C.CUSTOMER_NAME AS NAME, C.CUSTOMER_ADDRESS FROM CUSTOMER C WHERE NAME = ‘Home-Furnishings’; Agregovane funkcieCOUNT ( ) - zistuje pocet riadkov daneho stlpca, nie hodnoty NULL SUM ( ) - sucet hodnot poli v numerickom poli MIN ( ) - najmensia hodnota pola v stlpci MAX ( ) - najväcsia hodnota pola v stlpci AVG ( ) - priemerna hodnota pola v stlpci SELECT AVG(VYSKA) FROM OSOBA WHERE VYSKA > 170; SELECT – Boolean operátoryJedna sa o operatory AND, OR, and NOT vyuzivane v klauzule WHERE SELECT RC, Meno, Priezvisko FROM Osoba WHERE Datumnastupu > ”1.1.1995” and Datumnastupu < ”1.1.2002” or ( Cislovzdelania = (2 or 3) ); SELECT – Predikáty SELECT COUNT (*) FROM Cenik WHERE Cena BETWEEN 1000 AND 2000; BETWEEN medzi hodnotami - SELECT SUM (Cena) FROM Cenik WHERE Vyrobca IN ( ‘Japan ‘, ‘ Slovakia ‘, ‘ UK ‘ ); IN v niecom - SELECT SUM (Cena) FROM Cenik WHERE NazovTovaru LIKE ‘Radio% ‘ ); LIKE % Radiomagnetofon .... SELECT – ORDER BY SELECT Vyska, Priezvisko, Meno FROM Osoba WHERE Vyska > 175 ORDER BY Vyska DESC, Priezvisko ASC; Najskor sortuje podľa stlpca Vyska a nasledne podla stlpca Priezvisko SELECT – GROUP BY SELECT Meno, AVG (Vyska) FROM Osoba GROUP BY Meno; vysledok: Meno AVG(Vyska) Ivan 183,81 Peter 182,86 Jano 178,26 Viera 166,58 SELECT – HAVING Pouziva sa s klauzulou GROUP BY SELECT Meno, AVG (Vyska) FROM Osoba GROUP BY Meno HAVING AVG (Vyska) > 170; V dalsej casti sa dozviete o rozsireni SQL(Advanced), Select - Join, vnorene selekty atd... tesim sa na buduce :) |
| Posledná zmena v Štvrtok, 04 Február 2010 09:51 |









Btw, ta captcha tu na blogoch ma zabija :D
Aj ja sa tesim SQL. Ked som zbadal z uvodu tak som sa potesil. Good Work