[]-----------------------[]
| MySQL feladatsor D |
[]-----------------------[]
a) Állítson elő egy iskola nevű adatbázist, majd tegye azt aktuális adatbázissá!
(Feladat nem tartalmazza, de ezt csak root felhasználói jogosultsággal tudjuk megtenni, így kell bejelentkezni a HeidiSQL indulásakor)
CREATE DATABASE iskola;
USE iskola;
SELECT DATABASE();
b) Készítsen egy tanulok nevű táblát az új adatbázisban a következő mezőkkel:
id int,
nev varchar(50)
CREATE TABLE tanulok (
id INT,
nev VARCHAR(50)
);
SHOW TABLES;
c) Módosítsa a tanulok táblát úgy, hogy a nev mezőt kötelező legyen kitölteni és maximális hossza 60 karakter legyen!
ALTER TABLE tanulok MODIFY COLUMN nev VARCHAR(60) NOT NULL;
DESCRIBE tanulok;
| Field |
Type |
Null |
Key |
Default |
Extra |
| id |
int(11) |
YES |
|
|
|
| nev |
varchar(60) |
NO |
|
|
|
d) Módosítsa a tanulok táblát úgy, hogy az id mező értéke automatikusan kapjon új sorszámot és elsődleges kulcs legyen!
ALTER TABLE tanulok MODIFY COLUMN id INT AUTO_INCREMENT PRIMARY KEY;
DESCRIBE tanulok;
| Field |
Type |
Null |
Key |
Default |
Extra |
| id |
int(11) |
NO |
PRI |
|
auto_increment |
| nev |
varchar(60) |
NO |
|
|
|
e) Egészítse ki a tanulok táblát egy új mezővel: oszt char(3)
ALTER TABLE tanulok ADD COLUMN oszt CHAR(3);
DESCRIBE tanulok;
| Field |
Type |
Null |
Key |
Default |
Extra |
| id |
int(11) |
NO |
PRI |
|
auto_increment |
| nev |
varchar(60) |
NO |
|
|
|
| oszt |
char(3) |
YES |
|
|
|
f) Egészítse ki a tanulok táblát egy új mezővel: dse bit
A dse mező alapértelmezett értéke legyen: 0
ALTER TABLE tanulok ADD COLUMN dse BIT DEFAULT 0;
DESCRIBE tanulok;
| Field |
Type |
Null |
Key |
Default |
Extra |
| id |
int(11) |
NO |
PRI |
|
auto_increment |
| nev |
varchar(60) |
NO |
|
|
|
| oszt |
char(3) |
YES |
|
|
|
| dse |
bit(1) |
YES |
|
b'0' |
|
g) Módosítsa a dse oszlop típusát datetime típusra úgy, hogy aktuális értéke a kitöltéskori
napi dátum legyen!
ALTER TABLE tanulok MODIFY COLUMN dse DATETIME DEFAULT CURRENT_DATE;
DESCRIBE tanulok;
| Field |
Type |
Null |
Key |
Default |
Extra |
| id |
int(11) |
NO |
PRI |
|
auto_increment |
| nev |
varchar(60) |
NO |
|
|
|
| oszt |
char(3) |
YES |
|
|
|
| dse |
datetime |
YES |
|
curdate() |
|
vagy:
ALTER TABLE tanulok MODIFY COLUMN dse DATETIME DEFAULT NOW();
DESCRIBE tanulok;
| Field |
Type |
Null |
Key |
Default |
Extra |
| id |
int(11) |
NO |
PRI |
|
auto_increment |
| nev |
varchar(60) |
NO |
|
|
|
| oszt |
char(3) |
YES |
|
|
|
| dse |
datetime |
YES |
|
current_timestamp() |
|
... de ha már a napi dátumnak kell lenni az alapértelmezett értéknek, akkor lehet szerencsésebb lenne az előírt "datetime helyett" csak a "date" adattípust használni:
ALTER TABLE tanulok MODIFY COLUMN dse DATE DEFAULT CURRENT_DATE;
DESCRIBE tanulok;
| Field |
Type |
Null |
Key |
Default |
Extra |
| id |
int(11) |
NO |
PRI |
|
auto_increment |
| nev |
varchar(60) |
NO |
|
|
|
| oszt |
char(3) |
YES |
|
|
|
| dse |
date |
YES |
|
curdate() |
|
h) Módosítsa az oszt mező típusát char(4) -re!
ALTER TABLE tanulok MODIFY COLUMN oszt CHAR(4);
DESCRIBE tanulok;
| Field |
Type |
Null |
Key |
Default |
Extra |
| id |
int(11) |
NO |
PRI |
|
auto_increment |
| nev |
varchar(60) |
NO |
|
|
|
| oszt |
char(4) |
YES |
|
|
|
| dse |
date |
YES |
|
curdate() |
|
i) Jelenítse meg a tanulok tábla aktuális szerkezetét!
desc tanulok;
Ezt a feladatot nem is értem itt...mindegy
DESCRIBE tanulok;
| Field |
Type |
Null |
Key |
Default |
Extra |
| id |
int(11) |
NO |
PRI |
|
auto_increment |
| nev |
varchar(60) |
NO |
|
|
|
| oszt |
char(4) |
YES |
|
|
|
| dse |
date |
YES |
|
curdate() |
|
j) A tanulok tábla új neve legyen: diakok (Nevezze át a táblát!)
RENAME TABLE tanulok TO diakok;
SHOW TABLES;
k) Készítsen egy diakok2 és egy diakok3 táblát, melyek szerkezete megegyezik a diakok tábla szerkezetével!
CREATE TABLE diakok2 LIKE diakok;
CREATE TABLE diakok3 LIKE diakok;
SHOW TABLES;
| Tables_in_iskola |
| diakok |
| diakok2 |
| diakok3 |
Ha adatok is vannak a forrás táblában, és azokat is szeretnénk az újonnan létrehozott táblákba átvinni, akkor:
INSERT INTO diakok2 SELECT * FROM diakok;
INSERT INTO diakok2 SELECT * FROM diakok;
l) Törölje ki egy utasítással a diakok2 és a diakok3 táblát!
DROP TABLE diakok2, diakok3;
SHOW TABLES;
m) Készítsen egy indexfájlt a diakok tábla nev oszlopához nev_idx néven!
CREATE INDEX nev_idx ON diakok (nev);
SHOW INDEX FROM diakok;
| Table |
Non_unique |
Key_name |
Seq_in_index |
Column_name |
Collation |
Cardinality |
Sub_part |
Packed |
Null |
Index_type |
Comment |
Index_comment |
| diakok |
0 |
PRIMARY |
1 |
id |
A |
1 |
|
|
|
BTREE |
|
|
| diakok |
1 |
nev_idx |
1 |
nev |
A |
1 |
|
|
|
BTREE |
|
|
n) Adjon hozzá a diakok táblához egy új mezőt: menza int unsigned
ALTER TABLE diakok ADD COLUMN menza INT UNSIGNED;
DESCRIBE diakok;
| Field |
Type |
Null |
Key |
Default |
Extra |
| id |
int(11) |
NO |
PRI |
|
auto_increment |
| nev |
varchar(60) |
NO |
MUL |
|
|
| oszt |
char(4) |
YES |
|
|
|
| dse |
date |
YES |
|
curdate() |
|
| menza |
int(10) unsigned |
YES |
|
|
|
o) Adjon hozzá a diakok táblához egy új mezőt: suly int
ALTER TABLE diakok ADD COLUMN suly INT;
DESCRIBE diakok;
| Field |
Type |
Null |
Key |
Default |
Extra |
| id |
int(11) |
NO |
PRI |
|
auto_increment |
| nev |
varchar(60) |
NO |
MUL |
|
|
| oszt |
char(4) |
YES |
|
|
|
| dse |
date |
YES |
|
curdate() |
|
| menza |
int(10) unsigned |
YES |
|
|
|
| suly |
int(11) |
YES |
|
|
|
p) Módosítsa a suly mező típusát úgy, hogy tizedes értékek is tárolhatók legyenek benne!
ALTER TABLE diakok MODIFY COLUMN suly FLOAT;
DESCRIBE diakok;
| Field |
Type |
Null |
Key |
Default |
Extra |
| id |
int(11) |
NO |
PRI |
|
auto_increment |
| nev |
varchar(60) |
NO |
MUL |
|
|
| oszt |
char(4) |
YES |
|
|
|
| dse |
date |
YES |
|
curdate() |
|
| menza |
int(10) unsigned |
YES |
|
|
|
| suly |
float |
YES |
|
|
|
q) A diakok tábla új neve legyen: tanulok (Nevezze át a táblát!)
RENAME TABLE diakok TO tanulok;
SHOW TABLES;
r) Törölje a tanulok táblából a suly mezőt!
s) Jelenítse meg a tanulok tábla aktuális szerkezetét!
ALTER TABLE tanulok DROP COLUMN suly;
DESCRIBE tanulok;
| Field |
Type |
Null |
Key |
Default |
Extra |
| id |
int(11) |
NO |
PRI |
|
auto_increment |
| nev |
varchar(60) |
NO |
MUL |
|
|
| oszt |
char(4) |
YES |
|
|
|
| dse |
date |
YES |
|
curdate() |
|
| menza |
int(10) unsigned |
YES |
|
|
|
t) Szüntesse meg a tanulok táblát!
DROP TABLE tanulok;
SHOW TABLES;
u) Szüntesse meg az iskola nevű adatbázist!
v) Jelenítse meg az elérhető adatbázisok listáját!
DROP DATABASE iskola;
SHOW DATABASES;
| Database |
| information_schema |
| mysql |
| performance_schema |
| sqlguru |
generated 2023-01-04 11:34:36 by HeidiSQL 10.2.0.5723