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

Hasonló dokumentumok
Adatbázis-kezelés alapjai SQL 1: DDL, DML. v: B IT MAN 92/1B IT MAN

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

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

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

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

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

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

Adatbázis rendszerek SQL nyomkövetés

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

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

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

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

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

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

Adatbázis használat I. 5. gyakorlat

Adatbázis Rendszerek II. 3. SQL alapok

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

Adattípusok. Max. 2GByte

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

Adattípusok. Max. 2GByte

ADATBÁZIS RENDSZEREK I BEADANDÓ

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

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

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

Bevezetés: az SQL-be

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

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

Adatbázisok* tulajdonságai

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

Adatbázis Rendszerek II. 2. Ea: Gyakorló környezet

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

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

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ázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)

Java és web programozás

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

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

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

BEVEZETÉS Az objektum fogalma

Az SQL adatbázisnyelv: DML

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

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

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

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

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

Webfejlesztés 4. alkalom

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

Adatbázis Rendszerek II. 6. PLSQL Triggerek 32/1B IT MAN

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

LBRA6i integrált rendszer

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

Vizuális programozás gyakorlat

Megszorítások. AB1_06A_Megszorítások - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

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

Adatbázis rendszerek Ea: Eskúel. Structured Query Language

Adatbázis rendszerek Ea: Esqúel. Structured Query Language

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

Java és web programozás

Tranzakciókezelés PL/SQL-ben

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

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

Adatbázis I. 11. előadás. Kulcsok az SQL ben. Hivatkozásépségi megszorítások és idegen kulcsok.

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

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

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

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

Adatbázis, adatbázis-kezelő

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

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ázisok elmélete 9. előadás

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

Dolgozó Kód Név Város Beosztás Belépés Fizetés Osztály. Adatbázis-kezelés alapjai SQL 2: DQL. v: B IT MAN 169/1

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

6.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

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

Elemi alkalmazások fejlesztése IV.

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ázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

SQLServer. DB Recovery modes

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

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

Spatial a gyakorlatban

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

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

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

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

A trigger egy aktualizálási művelet esetén végrehajtandó programrészletet definiál. Alakja:

SQL parancsok feldolgozása

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

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

Adatbázisok I A relációs algebra


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

SQL DDL-2 (aktív elemek) triggerek

Adatbázisok II. Jánosi-Rancz Katalin Tünde 327A

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

11. Gyakorlat Adatbázis-tervezés, normalizálás. Redundancia: egyes adatelemek feleslegesen többször is le vannak tárolva

Kalmár György Adatbázis alapú rendszerek

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

Átírás:

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány) 23/1 B IT v: 2018.10.31 MAN

DML adatokon műveletet végző utasítások DML Data Manipulation Language Rekordok (sorok) beszúrása (felvitele) Mezők értékének módosítása Rekordok törlése 23/2

Rekordok beszúrása INSERT INTO táblanév [(oszloplista)] VALUES (értéklista); INSERT INTO Autó VALUES ('AKT-392', 'Trabant', 'Kék', 32); Rendszám Típus Szín Kor GBC-765 Opel Fehér 6 JED-123 Nissan Ezüst 5 Az oszloplista elhagyható, de ekkor az összes mező értékét meg kell adni, a megfelelő sorrendben! INSERT INTO Autó (Rendszám, Típus, Kor) VALUES ('ASD-602', 'Mazda', 7); INSERT INTO Autó VALUES ('ALM-332', 'Renault', Null, 8); INSERT INTO Autó VALUES ('IJK-222', 'Lada', Default, 25); 23/3 Ha van megadott default érték!

Rekordok beszúrása Kod Nev Szido 1 Kis Béla 2018.10.31 2 Nagy Éva 2018.10.03 select sysdate from dual 10/31/2018 insert into emberek values (1, 'Kis Béla', '10/31/2018'); insert into emberek values (2, 'Nagy Éva', to_date('2018.10.03', 'YYYY.MM.DD'); to_date dátummá alakítja a szöveget a megadott formátum mellett: YYYY év 4 számjeggyel MM hónap 2 számjeggyel DD nap, 2 számjeggye 23/4

Mezők értékének módosítása UPDATE táblanév SET mező = kifejezés,..., mező = kifejezés [ WHERE feltétel ]; A feltételnek eleget tevő mezők módosulnak, Where feltétel nélkül minden mezőt módosít! UPDATE Autó SET Kor=10 WHERE Rendszám='JED-123'; UPDATE Autó SET Szín= 'Barna'; UPDATE Autó SET Kor=10, Szín='Kék' WHERE Rendszám='JED-123'; A mezőben lévő aktuális érték is felhasználható: UPDATE Autó SET Ár = Ár * 1.2 WHERE Ár<1000000; 23/5

Mezők értékének módosítása Kod Nev Szido 1 Kis Béla 2018.10.31 2 Nagy Éva 2018.10.03 update emberek set szido=szido+1 where kod=1; 1 Kis Béla 2018.11.01 update emberek set szido= add_month(szido, 3) where kod=1; 1 Kis Béla 2019.02.01 23/6

Rekordok törlése DELETE FROM táblanév [ WHERE feltétel ]; Where feltétel nélkül minden sor törlődik! DELETE FROM Autó WHERE Kor>15; Az összes rekord törlésére használható: TRUNCATE TABLE Autó; delete from autó; 23/7

Nyomkövetési feladat 23/8

Órai feladat (1) Kövesd a parancsokat! create sequence st_seq; Szekvencia: automatikusan növekvő érték. Paraméterek nélkül 1-ről indulva egyesével növekszik. create table Student( ID int default st_seq.nextval primary key, Name varchar(30), BirthDay date, EntryDate date default sysdate, Score number(5), TelNo varchar(12), Email varchar(40)); Student nextval: következő érték lekérése a szekvenciából ID Name BirthDay EntryDate Score TelNo Email 23/9

Órai feladat (2) Student ID Name BirthDay EntryDate Score TelNo Email ALTER TABLE student ADD CONSTRAINT stc1 CHECK (score < 1000); ALTER TABLE student ADD CONSTRAINT stc2 CHECK (regexp_like (telno,'^(\d{2}-\d{3}-\d{2}-\d{2})$')); ALTER TABLE student ADD CONSTRAINT stc3 CHECK (email like ' %@%. %'); 3 db aláhúzás jel 2 db aláhúzás jel Jelentése: kötelező karakter TelNo formai ellenőrzése: 2számjegy 3számjegy 2számjegy 2számjegy Email formai ellenőrzése: Min. 3 karakter, aztán @, aztán karakterek, pont, és min 2 karakter a végén 23/10

Órai feladat (3) Student ID Name BirthDay EntryDate Score TelNo Email Melyik parancs nem működik, és miért nem? 1. 2. 3. 4. 5. 6. insert into student values (default,'kis Géza','05/30/1998',default,300, '30-566-23-48','abc@bolt.hu'); insert into student values (3,'Theo Dóra','02/29/1996',default,175, '70-555-30-30','t.dora@gmail.com'); insert into student values (default,'dugó Béla','12/12/1997','10/16/2017',120, '30-985-55-34','dugo@bela.com'); insert into student values(2,'pró Balázs','07/16/1999',default,211, '46-755-655','probali@gmail.com'); insert into student values(1,'bó Nóra','01/22/1999',default,166, '20-666-11-15','bonora@gmail.com'); insert into student values(default,'bor Virág','03/08/1999',default,199, '30-300-60-90','bor.virag@piasok.com'); 23/11

Órai feladat (4) Student ID Name BirthDay EntryDate Score TelNo Email Melyik parancs nem működik, és miért nem? 7. 8. 9. 10. 11. insert into student (id,name,birthday,entrydate) values (null,'nagy Emil','08/20/1999',default); insert into student (id,name) values(default,'null'); insert into student (id,name) values(default,'maci Laci'); insert into student (name,birthday) values ('Nagy Judit',TO_DATE('1996.05.15', 'YYYY.MM.DD')); insert into student (name,birthday,email) values ('Kovács Lajos','05/18/1997','ab@retek.hu'); 23/12

Órai feladat (5) Állítson be a TelNo mezőre új ellenőrzési feltételt: A telefonszám lehessen 2számjegy 3számjegy 3számjegy alakú is! regexp_like (telno,'^(\d{2}-\d{3}-\d{2}-\d{2} \d{2}-\d{3}-\d{3})$') W Jelentése: vagy Javasolt törölni a meglévő megszorítást, aztán beszúrni az újat! Alter table student drop constraint stc2; ALTER TABLE student ADD CONSTRAINT stc2 CHECK (regexp_like (telno,'^(\d{2}-\d{3}-\d{2}-\d{2} \d{2}-\d{3}-\d{3})$')); Ha kész az új megszorítás, szúrja be újra a 4. rekordot. 23/13

Órai feladat (6) Javítsuk ki a 7. rekord beszúrás parancsát: insert into student (name,birthday,entrydate) values ('Nagy Emil','08/20/1999',default); Javítsuk ki a 11. rekord beszúrás parancsát: insert into student (name,birthday,email) values ('Kovács Lajos','05/18/1997','abc@retek.hu'); Írassuk ki a Student tábla tartalmát Select * from student; 23/14

Órai feladat (7) 23/15

Órai feladat (8) Student ID Name BirthDay EntryDate Score TelNo Email Adjuk meg Nagy Emil hiányzó telefonszámát: UPDATE student SET telno='70-233-45-56' where name='nagy Emil'; Adjuk meg Nagy Emil további hiányzó adatait: update student set score=320, email='emil@posta.hu' where name='nagy Emil'; Adjuk meg Maci Laci születési dátumát: update student set birthday=to_date('1998.07.14', 'YYYY.MM.DD') where name='maci Laci'; Legyen az eredmény 150, mindenkinél, akinél nincs megadva: update student set score=150 where score is null; A 8. rekord beszúrásakor a név null érték lett. Javítsuk ki: update student set name='hó Fehérke' where name is null; Ellenőrizd! Működik a parancs? Miért nem? Javítsd! update student set name='hó Fehérke' where name='null'; 23/16

Órai feladat (9) Student ID Name BirthDay EntryDate Score TelNo Email Hó Fehérkének, Maci Lacinak, és Nagy Juditnak ugyanaz az email címe, javítsuk ki, egyetlen paranccsal! Ehhez keresd ki mindhármuk ID-jét! (más lesz mint itt) update student set email='john@anim.com' where id in(101,102,103); Hó Fehérke és Maci Laci ledoktorált. Tegyük a nevük elé a Dr.-t! update student set name = 'Dr. ' name where id in (101, 102); Funkciója: sztringek összefűzése Akinek 200 pontnál kevesebb van, annak növeljük a pontszámát 50-el! update student set score=score+50 where score < 200; Dr. Hó Fehérke épp 18 éve született. Írjuk be a születési dátumát! update student set birthday= add_months(sysdate,-18*12) where id=101 W 23/17

Órai feladat (10) Student ID Name BirthDay EntryDate Score TelNo Email City Néhány hallgatónak nincs mobilja. Ők egy cégtől kapnak telefont. A számok 70-777-22-25-ről indulnak, és rendre 26-, 27-, 28-ra végződnek. Frissítse a telefonszámokat! create sequence bd_seq start with 25 increment by 1 update student set telno='70-777-22-' bd_seq.nextval where telno is null Szúrjon be egy City nevű mezőt (20 karakter) alter table student ADD city varchar(20); Az első három rekordban javítsa ki a várost MISKOLC-ra! update student set city='miskolc' where city is null and rownum < 4 Újabb három rekordban javítsa ki a várost miskolc-ra! update student set city='miskolc' where city is null and rownum < 4 A többi rekordban javítsa ki a várost miskolc-ra! update student set city='miskolc' where city is null Javítsa ki az összes várost nagy kezdőbetűs Miskolc-ra! update student set city=initcap(city) 23/18

Órai feladat (11) Student ID Name BirthDay EntryDate Score TelNo Email City Age Szúrjunk be egy új oszlopot, melynek neve Age. alter table student ADD Age number(3); Határozzuk meg a hallgatók korát, és módosítsuk az Age mező értékét! Először írassuk ki a hallgatók korát: select name, floor((sysdate-birthday)/365) from student; Módosítsuk az Age mező tartalmát: update student set Age=floor((sysdate-birthday)/365); Töröljük ki Dr. Maci Laci email címét update student set email=null where id=102 Funkciója: egész rész Módosítsuk Kis Géza ID-jét 42-re! update student set id=42 where name='kis Géza' Működik, de elsődleges kulcs értékét veszélyes módosítani! 23/19

Órai feladat (12) Student ID Name BirthDay EntryDate Score TelNo Email City Age Kövesd a parancsokat! CREATE TABLE stud2 AS SELECT name, email FROM student WHERE 1=0; create sequence s2_seq; alter table stud2 ADD sid int default s2_seq.nextval primary key; insert into stud2 (name) select name from student; Stud2 Name Email Stud2 Name Email SID 23/20 Stud2 Name Pró Balázs Nagy Emil Bó Nóra Email SID 1 2 3

Órai feladat (13) Student ID Name BirthDay EntryDate Score TelNo Email City Age Kövesd a parancsokat! update stud2 set email=(select email from student where stud2.name=student.name) Stud2 Name Pró Balázs Nagy Emil Bó Nóra Email probali@gmail.com emil@posta.hu bonora@gmail.com SID 1 2 3 23/21

23/22

VÉGE VÉGE 23/23