Elemi alkalmazások fejlesztése IV.

Hasonló dokumentumok
Készítette: Szabóné Nacsa Rozália

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14

Adatbázisok* tulajdonságai

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

BEVEZETÉS Az objektum fogalma

B I T M A N B I v: T M A N

Adatbázis használat I. 5. gyakorlat

Adatbázis kezelés Delphiben. SQL lekérdezések

A könyv tartalomjegyzéke

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

Elemi alkalmazások fejlesztése IV.

Adatbázis-kezelés. Harmadik előadás

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

Adatbázis rendszerek SQL nyomkövetés

Java és web programozás

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

Webfejlesztés 4. alkalom

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)

Az SQL*Plus használata

Java és web programozás

Adatbázisok elmélete 9. előadás

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

Adatbázisok elmélete 9. előadás

Adatbázis-kezelés, információs-rendszerek

SQL parancsok feldolgozása


Adatbázis Rendszerek II. 8. Gyakorló környezet

Bevezetés: az SQL-be

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

LOGISZTIKAI ADATBÁZIS RENDSZEREK BEVEZETÉS

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

Elemi alkalmazások fejlesztése IV.

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

MySql elindítása. Elemi alkalmazások fejlesztése IV. Feladat. Az alkalmazás adatbázisa

Az SQL nyelv. SQL (Structured Query Language = Strukturált Lekérdező Nyelv).

Adatbázisok elmélete 10. előadás

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

LEKÉRDEZÉSEK SQL-BEN. A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS. Adatbázis alapú alkalmazások készítése PHP-ben

Adatbázis-kezelés alapok Adatbázisok című tárgyhoz, ismétlés kapcsán

Adatbázisok I A relációs algebra

Táblakezelés: Open SQL Internal table. Tarcsi Ádám: Az SAP programozása 1.

Relációsémák létrehozása SQL nyelvben

Adatbáziskezelı-szerver SQL. Relációs adatbázis-kezelık. Relációs adatszerkezet. Házi feladat

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Adatbáziskezelés. SQL parancsok. Függvények

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

3. Előadás. Az SQL adatbázisnyelv (Tartalom) Az SQL története. Az SQL felépítése. Adattípúsok. SQL utasítások

GEIAL Kovács László. GEIAL Kovács László GEIAL Kovács László

Adatbáziskezelés php-ben MySQL adatbáziskezelı rendszert használva

Gazdasági folyamatok térbeli elemzése. 5. elıadás

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Adatbázis tartalmának módosítása

Az SQL adatbázisnyelv: DML

ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

WHERE záradék (további lehetıségek) SQL specialitások, nem írhatók át relációs algebrába: LIKE. NULL értékek. Az ismeretlen (unknown) igazságérték

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

Adatbázis-kezelés ODBC driverrel

ADATBÁZIS RENDSZEREK I BEADANDÓ

SQL DDL-2 (aktív elemek) triggerek

Adatbázis rendszerek tervezése

Csoportosított adatok megjelenítése összesítı függvények használatával. Copyright 2004, Oracle. All rights reserved.

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

Adatbáziskezelés - SQL. Forrás: dr. Kovács László: Adatbázisok tervezésének és kezelésének módszertana Computerbooks

SQL DDL-1: táblák és megszorítások

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

SQL gyakorló feladatok. 6. Adatbázis gyakorlat április 5.

B I T M A N B I v: T M A N

Csomag. Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll. specifikáció törzs (opcionális)

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

Keskeny Zoltán 2007/08 SQL. Structured Query Language. (gyakorlat az SQL2 szabvány alapján) Keskeny Zoltán tanév

MySQL. Elektronikus jegyzet Széchenyi István Egyetem Távközlési tanszék

SQLServer. DB Recovery modes

A relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós. operandusok. Egy reláció megadható a nevével vagy közvetlenül, sorainak

Vizuális programozás gyakorlat

Indexek és SQL hangolás

Adatbázisok elmélete 12. előadás

Átírás:

Structured Query Language (Struktúrált lekérdez ı nyelv) Relációs adatbázisok kezelésére kifejlesztett szabvány né Nacsa Rozália nacsa@inf.elte.hu Fejlesztı : MySQLAB weboldal: www.mysql.com MySQL installálása. 3 MySQL installálása. MySQL installálása 3. Legyen a célkönyvtár neve mysql. A mysql-.0.-win.zip kicsomagolása után indítsa el a setup.exe programot. 5 6 ELTE Informatikai Kar

MySQL installálása. MySQL adatbáziskezelı szerver indítása WinMySQLadmin program indítása Csomagolja ki a mysql++-.7.--win3-vc++.zip fájlt. Legyen a célkönyvtár neve én mysql. 7 8 WinMySQLadmin Relációs adatbázis vnév 00 00 00 00...... Reláció ORAK ang0 :00:00 A zöld szemafor jelzi, ha fut a MySQL szerver. 9 nem0 :00:00 :00:00 0 vnév 00 00 003 00 Kinga 005 Hajnalka 006 00 Péter ORAK ISKOLA 00 00 003 00 005 006 00 vnév 00 00 003 00 Kinga 005 Hajnalka 006 00 Péter ORAK ISKOLA 00 00 003 00 005 006 00 ang0 :00:00 ang0 :00:00 :00:00 :00:00 nem0 :00:00 nem0 :00:00 ELTE Informatikai Kar

Kulcs vnév 00 00 003 00 Kinga 005 Hajnalka 006 00 Péter ORAK ISKOLA 00 00 003 Kulcs 00 005 006 00 Microsoft Windows XP [verziószám: 5..600] (C) Copyright 985-00 Microsoft Corp. C:\Documents and Settings\User>cd \mysql\bin C:\mysql\bin>mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 to server version: 3.3.5-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> MySQL: parancssor ablak ang0 :00:00 nem0 :00:00 :00:00 3 Ha parancssor ablakból indítjuk a mysql.exe programot, akkor közvetlenül adhatunk ki parancsokat a MySQL adatbáziskezelı nek. MySQL parancsok: Help mysql> \h MySQL commands: Note that all text commands must be first on line and end with ';' Help (\h) Display this help.? (\?) Synonym for `help'. Clear (\c) Clear command. connect (\r) Reconnect to the server. Optional arguments are db and host. Ego (\G) Send command to mysql server, display result vertically. Exit (\q) Exit mysql. Same as quit. Go (\g) Send command to mysql server. Note (\t) Don't write into outfile. Print (\p) Print current command. Quit (\q) Quit mysql. Rehash (\#) Rebuild completion hash. Source (\.) Execute a SQL script file. Takes a file name as an argument. Status (\s) Get status information from the server. Tee (\T) Set outfile [to_outfile]. Append everything into given outfile. Use (\u) Use another database. Takes database name as argument. Connection id: 5 (Can be used with mysqladmin kill) 5 Szintaxis: Példa: Adatbázis létrehozása: CREATE DATABASE mysql> create database iskola; Query OK, row affected (0.00 sec) mysql> CREATE DATABASE táblanév ; 6 Szintaxis: Példa: Adatbázis használatbavétele: USE USE táblanév ; mysql> use iskola; Database changed mysql> 7 CHAR(méret): INT(méret): DATE: TIME: Egyszer ő VARCHAR(méret): bb adattípusok fix (maximum méret) hosszúságú karakterlánc. Max: 55 hosszú. változó (maximum méret) hosszúságú karakterlánc. egész szám ( éé-hh-nn alakban); idő ( oo:pp:mm alakban) VARCHAR Péter DATE -09-3 TIME 08:30:00 8 ELTE Informatikai Kar 3

CREATE TABLE - Diakok; CREATE TABLE - Regisztracio; vnév CREATE TABLE diakok (dkod int() MARY KEY NOT, vnev VARCHAR(0), knev VARCHAR(0)); CREATE TABLE regisztracio ( dkod INT() NOT, CHAR() NOT, datum DATE, MARY KEY(dkod,) ); mysql> CREATE TABLE diakok -> (dkod int() MARY KEY NOT, -> vnev VARCHAR(0), -> knev VARCHAR(0)); Query OK, 0 rows affected (0.05 sec) 9 mysql> CREATE TABLE regisztracio -> ( dkod INT() NOT, -> CHAR() not null, -> datum DATE, -> MARY KEY(dkod,) ); Query OK, 0 rows affected (0.0 sec) 0 CREATE TABLE - Orak; DESCRIBE diakok; Field Type Null Key Default Extra dkod int() 0 vnev varchar(0) knev varchar(0) CREATE TABLE orak ( char(5) MARY KEY NOT, targy CHAR(0) NOT, INT(), VARCHAR(9), TIME, vege TIME); CREATE TABLE diakok mysql> CREATE TABLE orak ( char(5) MARY KEY NOT, targy CHAR(0) NOT, INT(), VARCHAR(9), TIME, vege TIME); Query OK, 0 rows affected (0.0 sec) (dkod int() MARY KEY NOT, vnev VARCHAR(0), knev VARCHAR(0)); DESCRIBE regisztracio; DESCRIBE orak; Field dkod datum Type int() char() date Null Key Default 0 Extra Field targy Type varchar(5) varchar(0) int() varchar(9) Null Key Default 0 Extra time vege time CREATE TABLE regisztracio ( dkod INT() NOT, CHAR() NOT, datum DATE, MARY KEY(dkod,) ); 3 CREATE TABLE orak ( char(5) MARY KEY NOT, targy CHAR(0) NOT, INT(), VARCHAR(9), TIME, vege TIME); ELTE Informatikai Kar

Táblázat struktúra módosítása: ALTER ALTER [IGNORE] TABLE táblanév alter_spec [,oszlopnév...] Field dkod vnev knev Type int() varchar(0) varchar(0) Null Key Default 0 Extra alter_spec: ADD [COLUMN] oszlop_def [FIRST AFTER oszlopnév ] or ADD [COLUMN] (oszlop_def, oszlop_def,...) or CHANGE [COLUMN] régi_oszlopnév oszlop_def 3 or MODIFY [COLUMN] oszlop_def or DROP [COLUMN] oszlopnév or DROP MARY KEY 6 or RENAME [TO] új_tablanév 7 or ORDER BY oszlop 8 oszlop def: oszlopnév típus [megszorítás] Field dkod vnev knev ALTER TABLE diakok CHANGE vnev vnev VARCHAR(5) NOT ; Type int() varchar(5) varchar(0) Null Key Default 0 mysql> alter table diakok change vnev vnev varchar(5) not null; Query OK, 0 rows affected (0.0 sec) Records: 0 Duplicates: 0 Warnings: 0 Extra 5 6 Új adatsor beszúrása: INSERT Új adatsor beszúrása: INSERT 00 vnév 00 vnév 00 INSERT INTO diakok VALUES (00,, ); INSERT INTO diakok VALUES (00,, ); INSERT INTO diakok VALUES (00,, ); mysql> INSERT INTO diakok -> VALUES (00,'',''); Query OK, row affected (0.0 sec) mysql> INSERT INTO diakok -> VALUES (00,'',''); Query OK, row affected (0.0 sec) 7 8 INSERT - Orak; INSERT - Regisztracio; 00 INSERT INTO orak VALUES (,,, Hétfı,, ); INSERT INTO regisztracio VALUES (00,, ); mysql> insert into orak VALUES('','',,'','',''); Query OK, row affected (0.00 sec) mysql> INSERT INTO regisztracio VALUES (00,'',''); Query OK, row affected (0.00 sec) 9 30 ELTE Informatikai Kar 5

Update - példa Delete - példa ang0 :00:00 ang0 :00:00 :00:00 nem0 :00:00 :00:00 nem0 :00:00 UPDATE orak SET =, vege=, = Szerda WHERE = AND = ; DELETE FROM orak WHERE targy= AND =; ang0 nem0 :00:00 3 ang0 :00:00 :00:00 3 ang0 nem0 Ha nem adunk where kiegészítést, akkor a táblázat összes sorát törli. NEM KÉRDEZ!!! Delete - példa :00:00 :00:00 :00:00 DELETE FROM orak; Táblázat (struktúra) törlése: DROP TABLE DROP TABLE táblanév;! NEM KÉRDEZ!!! 33 3 3 5 6 7 8 9 0 vnév 00 00 003 00 005 006 00 Kinga Hajnalka Péter SELECT * FROM diakok; 3 vnév 00 00 003 00 005 006 00 Kinga Hajnalka Péter SELECT dkod,knev FROM diakok WHERE vnev=""; 35 36 ELTE Informatikai Kar 6

3 00 00 003 00 005 SELECT dkod,datum FROM regisztracio WHERE LIKE '%0'; 00 00 003 Összetett lekérdezések - példa SELECT FROM regisztracio; 006 00 5 6 7 00 005 006 00 37 38 Összetett lekérdezések - példa 00 00 003 00 005 006 00 SELECT DISTINCT FROM regisztracio; vnév 00 00 003 00 005 006 00 Összetett lekérdezések - példa Kinga Hajnalka Péter SELECT COUNT(*) FROM diakok; 39 0 Összetett lekérdezések - példa Statisztikai függvények TANDIJAK tandij ang0 0000 nem0 SELECT AVG (tandij) FROM tandijak; MIN MAX SUM AVG COUNT COUNT(*) Az adott oszlop legkisebb értéke Az adott oszlop legnagyobb értéke Az adott oszlop adatainak összege Az adott oszlop adatainak átlaga Az adott oszlopban szereplő sorok száma A táblázatban szereplő sorok száma ELTE Informatikai Kar 7

abs(x) sign(x) mod(x,y) floor(x) ceiling(x) or ceil(x) power(x,y) round(x) round(x,d) sqrt(x) x abszolút értéke x y x négyzetgyöke Matematikai m ő veletek Matematikai függvények x előjelétől függően értéke -, 0, vagy (negatív, zéró, vagy pozitiv) Ugyanaz, mint az x%y Az x-nél kisebb vagy egyenlő legnagyobb egész érték Az x-hez legközelebb álló, x-nél nagyobb vagy egyenlő érték Egészre kerekített érték d db tizedesre kerekített érték 3 GROUP BY - Példa 00 00 003 00 005 006 00 SELECT, COUNT (dkod) FROM regisztracio GROUP BY ; A GROUP BY kikötéssel összegyő jtjük azokat a sorokat, amelyek értéke a jelölt oszlopban megegyezik, és ezekre a sorokra együttesen végzi el a megadott mő veletet. Having - Példa 00 00 003 00 005 006 00 SELECT, COUNT (dkod) FROM regisztracio GROUP BY HAVING COUNT (dkod) > 3; Group by - Having SELECT, COUNT (dkod) FROM regisztracio GROUP BY ; SELECT, COUNT (dkod) FROM regisztracio GROUP BY HAVING COUNT (dkod) > 3; A GROUP BY b ı vítménnyel kialakított csoportokból csak azok kerülnek be a listába, amelyek a HAVING feltételnek is eleget tesznek. 5 6 00 00 003 00 005 006 00 count(dkod) 3 count(dkod) Order by - Példa vnév 00 00 003 00 Kinga 6 005 Hajnalka 3 006 7 00 Péter 5 SELECT vnev, knev, dkod FROM diakok WHERE knev<>"" ORDER BY vnev, knev; In - Példa vnév 00 00 003 00 Kinga 005 Hajnalka 006 00 Péter SELECT vnev, knev FROM diakok WHERE knev IN ("","Kinga"); Az ORDER BY egy olyan tetsz ı legesen választható kiegészítés, amellyel az ORDER BY után megadott oszlopok szerint rendezett listát készíthetünk. 7 Az IN feltételes operátor egy igazi halmazelméleti eleme operator. Az eredmény listába csak azok a tételek kerülnek be, amelyek eleget tesznek az eleme feltételnek. 8 ELTE Informatikai Kar 8

Between - példa vnév 00 00 003 00 005 006 00 Kinga Hajnalka Péter SELECT dkod, vnev, knev FROM diakok WHERE dkod BETWEEN 003 AND ORDER BY dkod; A BETWEEN feltételes operátorral eldönthetjük, hogy a megjelölt oszlop adatai benne vannak-e a megadott intervallumban. 9 ang0 nem0 Több táblázat összekapcsolása: JOIN TANDIJAK tandij SELECT regisztracio.,tandij FROM tandijak, regisztracio; 0000 00 00 003 00 005 006 00 50 SELECT * FROM regisztracio, tandijak; SELECT * FROM regisztracio, tandijak; 00 00 003 00 005 006 00 ang0 0000 00 00 003 00 005 006 00 00 00 003 00 005 006 00 5 5 SELECT * FROM regisztracio, tandijak; 00 00 00 003 00 00 003 00 005 00 00 ang0 0000 006 005 003 00 006 00 00 005 006 00 nem0 00 00 003 00 00 00 005 003 006 00 00 005 006 00 53 SELECT * FROM regisztracio, tandijak WHERE regisztracio.=tandijak.; ang0 nem0 0000 00 00 003 00 005 006 00 5 ELTE Informatikai Kar 9

ELTE Informatikai Kar 0 55 00 006 005 00 003 00 00 SELECT * FROM regisztracio, tandijak WHERE regisztracio.=tandijak.; 0000 ang0 nem0 00 006 005 00 003 00 00 56 00 006 005 00 003 00 00 SELECT * FROM regisztracio, tandijak WHERE regisztracio.=tandijak.; 0000 ang0 nem0 00 006 005 00 003 00 00 00 006 005 00 003 00 00 00 006 005 00 003 00 00 00 006 005 00 003 00 00 57 SELECT * FROM regisztracio, tandijak WHERE regisztracio.=tandijak.; 00 006 00 00 00 005 003 tandij datum dkod 58 SELECT regisztracio., tandij FROM regisztracio, tandijak WHERE regisztracio.=tandijak.; tandij 00 006 005 00 003 00 00 nem0 0000 ang0 tandij TANDIJAK 59 00 006 005 00 003 00 00 nem0 0000 ang0 tandij TANDIJAK SELECT regisztracio., SUM(tandij) FROM regisztracio, tandijak WHERE regisztracio.=tandijak. GROUP BY ; sum(tandij) 60