A DDL a Data Definition Language rövidítése.
create database aranybt character set utf8 collate utf8_hungarian_ci;
Ellenőrzés:
show databases; select @@character_set_database; select @@collation_database;
create table dolgozok( az int not null primary key auto_increment, nev varchar(20), city varchar(20), salary double, birth date, active boolean );
alter table megrendelesek add szallitoaz int;
alter table tabla1 add id int first; alter table tabla1 add nev varchar(30) after id;
Elsődleges kulcs módosítása:
alter table tabla1 modify id integer not null auto_increment;
A varchar(30) helyett szeretnénk beállítani varchar(150)-t:
alter table konyvek modify cim varchar(150);
alter table konyvek modify column cim varchar(150);
alter table Transactions change column `targetNumber` -- régi név targetId -- új név int; -- minden típusinformáció
Másik példa:
alter table dolgozok change nev vnev varchar(100);
Kulcs eldobása:
alter table Accounts drop primary key;
Kulcs beállítása:
alter table Accounts add id int not null primary key auto_increment first;
Összetett kulcs:
alter table Tablanev add primary key (fid, vid);
alter table dolgozok add primary key(az)
Vagy:
alter table dolgozok add constraint dolgozok_pk primary key(az)
-- Elsődleges kulcs törlése alter table dolgozok drop primary key;
A MySQL-ben hivatkozási integritás az idegenkulcs beállításával valósítható meg.
Hivatkozási integritás:
CREATE TABLE ugyfelek ( ugyfelAz INT NOT NULL, nev VARCHAR (50 ), PRIMARY KEY( ugyfelAz ) ) ENGINE=InnoDB
CREATE TABLE rendelesek ( rendelesAz INT NOT NULL, koltseg INT, ugyfelAz INT NOT NULL, PRIMARY KEY(rendelesAz), INDEX ( ugyfelAz ), FOREIGN KEY(ugyfelAz) REFERENCES ugyfelek(ugyfelAz) ) ENGINE = InnoDB;
Kapcsolt (kaszkádolt) frissítés, amikor mindkét kapcsolódó táblában egyszerre változtatjuk az értéket.
ON DELETE CASCADE ON UPDATE CASCADE
create table rendelesek ( rendelesAz int not null, koltseg int, ugyfelAz int not null, primary key(rendelesAz), index( ugyfelAz ), foreign key(ugyfelAz) references ugyfelek(ugyfelAz) on delete cascade on update cascade ) ENGINE = InnoDB
Idegenkulcs hozzáadása:
alter table Szemelyek add foreign key(beosztasAz) references Bosztasok(az);
Megadhatjuk az idegenkulcs nevét:
alter table Szemelyek add constraint `FK_Nev` foreign key(beosztasAz) references Bosztasok(az);
Ellenőrzés:
show create table Szemelyek;
Idegenkulcs törlése:
alter table táblanév drop foreign key fk_name;
Idegenkulcs meghatározásának cseréje, egyetlen utasítással:
alter table táblanév drop foreign key `fk_nev`, add constraint `fk_nev2` foreign key (`idegenkulcsAz`) references `Masik_tabla` (`az`) on delete cascade;
Idegenkulcs másként:
alter table Tablanev add primary key (fid)
Összetett kulcs megadása:
alter table Tablanev add primary key (fid, vid)
Boolean típus alapértelmezéssel:
alter table dolgozok add enabled boolean not null default true after `fizetes`;
create table dolgozok (nev varchar(50) with system versioning);
insert into dolgozok set nev="Pál"; insert into dolgozok set nev="Béla"; insert into dolgozok set nev="Teri";
update dolgozok set nev="Lola" where nev="Teri";
select * from dolgozok for system_time all;
Szerkezet változtatásának engedélyezése:
SET @@system_versioning_alter_history = 1;
Törlés:
alter table dolgozok drop system versioning;
Forrás: