tabeli muutmine

  1. tabeli muuta ja lisada uus veerg –
	
ALTER TABLE kasutaja ADD elukoht varchar(15);

2.tabeli muutmine ja olemasoleva veeru kustutamine

ALTER TABLE kasutaja DROP COLUMN elukoht;
select * from kasutaja;

3.tabeli muutmine ja veeru andmetüübi vahetamine

--SQL Server
ALTER TABLE kasutaja ALTER COLUMN parool varchar(50);
 
--mariaDB/XAMPP
ALTER TABLE kasutaja MODIFY parool varchar(50); 

Protseduuti loomine – mis küsib kas lisada või kustutada veergu ja mis veerunimi on!

CREATE procedure muudaTabeli
@tegevus varchar(15),
@tabelinimi varchar(15),
@veerunimi varchar(15),
@andmetyyp varchar(15) =null
AS
Begin
    DECLARE @sqltegevus AS varchar(max)
    SET @sqltegevus=case
        when @tegevus='add' then
        concat('ALTER TABLE ', @tabelinimi, ' ADD ', @veerunimi,' ', @andmetyyp)
 
        when @tegevus='drop' then
        concat('ALTER TABLE ', @tabelinimi, ' DROP COLUMN ', @veerunimi)
        END;
print @sqltegevus;
begin
EXEC(@sqltegevus);
END;
END;
 
 
--kutse 
EXEC muudaTabeli @tegevus='add', @tabelinimi='kasutaja', @veerunimi='test', @andmetyyp='int';
select * from kasutaja;
 
EXEC muudaTabeli @tegevus='drop', @tabelinimi='kasutaja', @veerunimi='test';

Piirangute lisamine

UNIQUE, NOT NULL, PRIMARY KEY, FOREIGN KEY, CHECK

--PK lisamine
ALTER TABLE City
ADD CONSTRAINT pk_ID PRIMARY KEY(ID);
--Unique lisamine
ALTER TABLE City
ADD CONSTRAINT cityName_unique UNIQUE(cityName);
--andmete lisamine
INSERT INTO City(ID, cityName)
Values (2, 'Tartu');
 
select * from city;
CREATE TABLE Country(
ID int NOT NULL primary key identity(1,1),
countryName varchar(30),
Capital int);
 
--FK lisamine
ALTER TABLE Country
ADD CONSTRAINT fk_city FOREIGN KEY(Capital)
REFERENCES City(ID);
INSERT INTO Country(countryName, Capital)
VALUES ('Eesti', 1);