SQL keel. Harjutus. Auto tabeli loomine.

  1. Loo tabel AUTOD
create table AUTOD (
	Mark VARCHAR(20),
	RegNr VARCHAR(7) PRIMARY KEY,
	Aasta VARCHAR(4),
	RegPiir INT
);

2. ·         Järjesta autod tootmisaasta järgi kahanevasse järjekorda

SELECT Aasta FROM autod ORDER BY Aasta DESC;

3. Väljasta kõik erinevad margid (kasuta DISTINCT)

--SELECT DISTINCT TEEB NIMODI ET VÄLJENDAB SAMA MARK AINULT 1 KORD
SELECT DISTINCT mark FROM AUTOD

4.  Väljasta enne 1993. aastat toodetud autode registrinumbrid

SELECT RegNr, Aasta FROM AUTOD WHERE  Aasta <= 1993

5. Väljasta enne 1993. aastat toodetud autode registrinumbrid tähestiku järjekorras

SELECT RegNr, Aasta FROM AUTOD WHERE  Aasta &lt;= 1993 ORDER BY RegNr

6. Väljasta autode kõige varasem väljalaskeaasta (MIN)

SELECT MIN(Aasta) as ' varasem väljalaskeaasta' FROM AUTOD

7.   Muuda registrinumbrit autol, mille id on 3 (uus number 333 KKK)

UPDATE AUTOD
	SET RegNr = '333 KKK'
	WHERE RegNr = '#2b5b4a'
	SELECT * FROM AUTOD

8. Kustuta auto id-ga 4

DELETE FROM AUTOD 
	WHERE RegNr = '#552188'

9.Lisa uus masin nimekirja. Vaata tabeli sisu.

CREATE PROCEDURE LISAAUTOD
@Mark VARCHAR(20),
@RegNr VARCHAR(7),
@Aasta VARCHAR(4),
@RegPiir INT
AS
BEGIN
INSERT INTO AUTOD(Mark, RegNr, Aasta, RegPiir)
VALUES (@Mark, @RegNr, @Aasta, @RegPiir);
SELECT * FROM AUTOD
END;

EXEC LISAAUTOD 'Nissan', '555 NNN','2007', 2

10. — 3 LISA SELECT FUNKTSIOONID

1.Loe autod kogus RegPiiriga

CREATE PROCEDURE KOGUS_REG
@RegPiir INT
AS
BEGIN
SELECT RegPiir, COUNT(*) AS AutodeKogus
FROM AUTOD
WHERE RegPiir = @RegPiir
GROUP BY RegPiir;
END;

2.Loe autod kogus Markiga

CREATE PROCEDURE KOGUS_AUTOMARK
@Mark VARCHAR(20)
AS
BEGIN
SELECT Mark, COUNT(*) AS AutodKogus
FROM AUTOD
WHERE Mark = @Mark
GROUP BY Mark;
END;

EXEC KOGUS_AUTOMARK 'BMW'

3. Leia AUTOD Esimene Marki tähtedega

CREATE PROCEDURE FINDMARK
@firstchar VARCHAR(1)
AS
BEGIN
SELECT *
FROM AUTOD
WHERE Mark LIKE @firstchar + '%';
END;

exec FINDMARK b

XAMPP

  1. Loo tabel AUTOD
create table AUTOD (
	Mark VARCHAR(20),
	RegNr VARCHAR(7) PRIMARY KEY,
	Aasta VARCHAR(4),
	RegPiir INT
);

2. ·         Järjesta autod tootmisaasta järgi kahanevasse järjekorda

SELECT * FROM autod ORDER BY Aasta DESC;

3. Väljasta kõik erinevad margid (kasuta DISTINCT)

--SELECT DISTINCT TEEB NIMODI ET VÄLJENDAB SAMA MARK AINULT 1 KORD
SELECT DISTINCT mark FROM AUTOD

4.  Väljasta enne 1993. aastat toodetud autode registrinumbrid

SELECT RegNr, Aasta FROM AUTOD WHERE  Aasta <= 1993

5. Väljasta enne 1993. aastat toodetud autode registrinumbrid tähestiku järjekorras

SELECT RegNr, Aasta FROM AUTOD WHERE  Aasta &lt;= 1993 ORDER BY RegNr

6. Väljasta autode kõige varasem väljalaskeaasta (MIN)

SELECT MIN(Aasta) as ' varasem väljalaskeaasta' FROM AUTOD

7.   Muuda registrinumbrit autol, mille id on 3 (uus number 333 KKK)

UPDATE AUTOD
	SET RegNr = '333 KKK'
	WHERE RegNr = '#2b5b4a'
	SELECT * FROM AUTOD

8. Kustuta auto id-ga 4

DELETE FROM AUTOD 
	WHERE RegNr = '#552188'

9.Lisa uus masin nimekirja. Vaata tabeli sisu.

CREATE PROCEDURE LISAAUTOD
@Mark VARCHAR(20),
@RegNr VARCHAR(7),
@Aasta VARCHAR(4),
@RegPiir INT
AS
BEGIN
INSERT INTO AUTOD(Mark, RegNr, Aasta, RegPiir)
VALUES (@Mark, @RegNr, @Aasta, @RegPiir);
SELECT * FROM AUTOD
END;

EXEC LISAAUTOD 'Nissan', '555 NNN','2007', 2

10. — 3 LISA SELECT FUNKTSIOONID

1.Loe autod kogus RegPiiriga

CREATE PROCEDURE KOGUS_REG
@RegPiir INT
AS
BEGIN
SELECT RegPiir, COUNT(*) AS AutodeKogus
FROM AUTOD
WHERE RegPiir = @RegPiir
GROUP BY RegPiir;
END;

2.Loe autod kogus Markiga

CREATE PROCEDURE KOGUS_AUTOMARK
@Mark VARCHAR(20)
AS
BEGIN
SELECT Mark, COUNT(*) AS AutodKogus
FROM AUTOD
WHERE Mark = @Mark
GROUP BY Mark;
END;

EXEC KOGUS_AUTOMARK 'BMW'

3. Leia AUTOD Esimene Marki tähtedega

CREATE PROCEDURE FINDMARK
@firstchar VARCHAR(1)
AS
BEGIN
SELECT *
FROM AUTOD
WHERE Mark LIKE @firstchar + '%';
END;

exec FINDMARK b

XAMPP

create table AUTOD (
    Mark VARCHAR(20),
    RegNr VARCHAR(7),
    Aasta VARCHAR(4),
    RegPiir INT
);

2. ·         Järjesta autod tootmisaasta järgi kahanevasse järjekorda

SELECT * FROM autod ORDER BY Aasta DESC;

3. Väljasta kõik erinevad margid (kasuta DISTINCT)

--SELECT DISTINCT TEEB NIMODI ET VÄLJENDAB SAMA MARK AINULT 1 KORD
SELECT DISTINCT mark FROM AUTOD

4.  Väljasta enne 1993. aastat toodetud autode registrinumbrid

SELECT RegNr, Aasta FROM AUTOD WHERE  Aasta <= 1993

5. Väljasta enne 1993. aastat toodetud autode registrinumbrid tähestiku järjekorras

SELECT RegNr, Aasta
FROM AUTOD
WHERE Aasta &lt;= 1993
ORDER BY Aasta ASC;

6. Väljasta autode kõige varasem väljalaskeaasta (MIN)

SELECT MIN(Aasta) as ' varasem väljalaskeaasta' FROM AUTOD

7.   Muuda registrinumbrit autol, mille id on 3 (uus number 333 KKK)

UPDATE AUTOD
SET RegNr = '333 KKK'
WHERE RegNr = '#2b5b4a';
SELECT * FROM AUTOD

8. Kustuta auto id-ga 4

DELETE FROM AUTOD 
	WHERE RegNr = '#552188'

9.Lisa uus masin nimekirja. Vaata tabeli sisu.

BEGIN
INSERT INTO AUTOD(Mark, RegNr, Aasta, RegPiir)
VALUES (Mark, RegNr, Aasta, RegPiir);
SELECT * FROM AUTOD;
END

10. — 3 LISA SELECT FUNKTSIOONID

1.Loe autod kogus RegPiiriga

BEGIN
SELECT RegPiir, COUNT(*) AS AutodeKogus
FROM AUTOD
WHERE RegPiir = RegPiir
GROUP BY RegPiir;
END;

2.Loe autod kogus Markiga

BEGIN
SELECT Mark, COUNT(*) AS AutodKogus
FROM AUTOD
WHERE Mark = Mark
GROUP BY Mark;
END;

3. Leia AUTOD Esimene Marki tähtedega

BEGIN
SELECT *
FROM AUTOD
WHERE Mark LIKE CONCAT(firstchar, '%');
END;