[]-----------------------[]
| 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