[]-----------------------[]
 | MySQL feladatsor E |
[]-----------------------[]

Indítsa saját gépén a MySQL szervert, majd a kliens programot is!
A kliens programot használva végezze el a következő feladatokat...
a) Állítson elő egy kereskedo nevű adatbázist és tegye aktuális azt!
(Feladat nem tartalmazza, de ezt csak root felhasználói jogosultsággal tudjuk megtenni, így kell bejelentkezni a HeidiSQL indulásakor)

CREATE DATABASE kereskedo;
USE kereskedo;
SELECT DATABASE();

b) Készítsen egy vasarlo nevű táblát a kereskedo adatbázisban a következő mezőkkel és adatokkal:

+-------+---------+--------+-----+
| vasID |  veznev | kernev | kor |
+-------+---------+--------+-----+
|     1 | Karakas | György | 40  |
|     2 | Sárosi  | Sándor | 27  |
|     3 | Teszt   | Elek   | 20  |
+-------+---------+--------+-----+

CREATE TABLE vasarlo (
	vasID INT,
	veznev VARCHAR(25),
	kernev VARCHAR(25),
	kor INT);
INSERT INTO vasarlo (vasID, veznev, kernev, kor) VALUES 
(1,'Karakas', 'György', 40),
(2,'Sárosi', 'Sándor', 27),
(3,'Teszt', 'Elek', 20);
SELECT * FROM vasarlo;
vasID veznev kernev kor
1 Karakas György 40
2 Sárosi Sándor 27
3 Teszt Elek 20

c) Készítsen egy rendeles nevű táblát a kereskedo adatbázisban a következő mezőkkel és adatokkal:

+--------+----------+-------+
| rendID | rendSzam | vasID |
+--------+----------+-------+
|      1 | 0077895  |     3 |
|      2 | 0044678  |     3 |
|      3 | 0022456  |     2 |
|      4 | 0024562  |     1 |
+--------+----------+-------+

CREATE TABLE rendeles (
	rendID INT,
	rendSzam CHAR(7),
	vasID INT);
INSERT INTO rendeles (rendID, rendSzam, vasID) VALUES
(1, '0077895', 3),
(2, '0044678', 3),
(3, '0022456', 2),
(4, '0024562', 1);
SELECT * FROM rendeles;
rendID rendSzam vasID
1 0077895 3
2 0044678 3
3 0022456 2
4 0024562 1

d) Állítsa be vasarlo.vasID mezőjét a következők szerint:
- Legyen előjel nélküli egész típusú... unsigned
- Kötelező legyen a kitöltése...not null
- Legyen elsődleges kulcs... primary key

ALTER TABLE vasarlo MODIFY vasID INT UNSIGNED PRIMARY KEY NOT NULL;
DESCRIBE vasarlo;
show index from vasarlo;
Field Type Null Key Default Extra
vasID int(10) unsigned NO PRI
veznev varchar(25) YES
kernev varchar(25) YES
kor int(11) YES

Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
vasarlo 0 PRIMARY 1 vasID A 3 BTREE

e) Állítsa be rendeles.rendID mezőjét a következők szerint:
- Legyen előjel nélküli egész típusú...
- Kötelező legyen a kitöltése...
- Legyen elsődleges kulcs...

ALTER TABLE rendeles MODIFY COLUMN rendID INT UNSIGNED NOT NULL PRIMARY KEY;
DESCRIBE rendeles;
SHOW INDEX FROM rendeles;
Field Type Null Key Default Extra
rendID int(10) unsigned NO PRI
rendSzam char(7) YES
vasID int(11) YES

Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
rendeles 0 PRIMARY 1 rendID A 4 BTREE

f) Állítson be vasarlo.veznev és vasarlo.kernev mezőkre kitöltési kényszert!

ALTER TABLE vasarlo MODIFY COLUMN veznev VARCHAR(25) NOT NULL;
ALTER TABLE vasarlo MODIFY COLUMN kernev VARCHAR(25) NOT NULL;
DESCRIBE vasarlo;
Field Type Null Key Default Extra
vasID int(10) unsigned NO PRI
veznev varchar(25) NO
kernev varchar(25) NO
kor int(11) YES

g) Állítson be rendeles.rendSzam mezőre kitöltési kényszert!

ALTER TABLE rendeles MODIFY COLUMN rendSzam CHAR(7) NOT NULL;
DESCRIBE rendeles;
Field Type Null Key Default Extra
rendID int(10) unsigned NO PRI
rendSzam char(7) NO
vasID int(11) YES

h) Állítsa be rendeles.rendSzam mezőre, hogy kitöltetlen is maradhat, de ekkor, 0000000 értéket kapjon alapértelmezetten!

ALTER TABLE rendeles MODIFY COLUMN rendSzam CHAR(7) NULL DEFAULT '0000000';
DESCRIBE rendeles;
Field Type Null Key Default Extra
rendID int(10) unsigned NO PRI
rendSzam char(7) YES 0000000
vasID int(11) YES

i) Hozzon létre egy veznev_ind nevű indexet a vasarlo táblához a veznev mező tartalma alapján!

CREATE INDEX veznev_ind ON vasarlo (veznev);
SHOW INDEX FROM vasarlo;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
vasarlo 0 PRIMARY 1 vasID A 3 BTREE
vasarlo 1 veznev_ind 1 veznev A 3 BTREE

j) Hozzon létre egy kernev_ind nevű indexet a vasarlo táblához a kernev mező tartalma alapján!

CREATE INDEX kernev_ind ON vasarlo (kernev);
SHOW INDEX FROM vasarlo;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
vasarlo 0 PRIMARY 1 vasID A 3 BTREE
vasarlo 1 veznev_ind 1 veznev A 3 BTREE
vasarlo 1 kernev_ind 1 kernev A 3 BTREE

k) Listázza ki a vasarlo és rendeles tábla szerkezetét, valamint a táblák teljes tartalmát!

desc vasarlo;
desc rendeles;
select * from vasarlo;
select * from rendeles;
Field Type Null Key Default Extra
vasID int(10) unsigned NO PRI
veznev varchar(25) NO MUL
kernev varchar(25) NO MUL
kor int(11) YES

Field Type Null Key Default Extra
rendID int(10) unsigned NO PRI
rendSzam char(7) YES 0000000
vasID int(11) YES

vasID veznev kernev kor
1 Karakas György 40
2 Sárosi Sándor 27
3 Teszt Elek 20

rendID rendSzam vasID
1 0077895 3
2 0044678 3
3 0022456 2
4 0024562 1

l) Az előző feladatban kapott listák alapján készítse el azon SQL utasítások sorozatát, melyeket lefuttatva előállíható a két tábla végleges szerkezete! Jó munkát!

DROP DATABASE kereskedo;
CREATE DATABASE kereskedo;
USE kereskedo;
SELECT DATABASE();

CREATE TABLE vasarlo (
	vasID INT UNSIGNED NOT NULL PRIMARY KEY,
	veznev VARCHAR(25) NOT NULL,
	kernev VARCHAR(25) NOT NULL,
	kor INT);

CREATE TABLE rendeles (
	rendID INT UNSIGNED NOT NULL PRIMARY KEY,
	rendSzam CHAR(7) DEFAULT '0000000',
	vasID INT);
	
CREATE INDEX veznev_ind ON vasarlo (veznev);
CREATE INDEX kernev_ind ON vasarlo (kernev);


Nem feladat, de nem árt az ismétlés:
INSERT INTO vasarlo (vasID, veznev, kernev, kor) VALUES 
(1, 'Karakas', 'György', 40),
(2, 'Sárosi', 'Sándor', 27),
(3, 'Teszt', 'Elek', 20);
INSERT INTO rendeles (rendID, rendSzam, vasID) VALUES 
(1, '0077895', 3),
(2, '0044678', 3),
(3, '0022456', 2),
(4, '0024562', 1);

generated 2023-01-05 18:49:07 by HeidiSQL 10.2.0.5723