Zapytania nr 5

Typy danych:

MS SQL Server: char, varchar, nchar, ntext, nvarchar, int, smallint, bigint, tinyint, float, real, decimal, numeric, datetime, smalldatetime, date, time, binary, varbinary, money, smallmoney, text, image, xml, bit

http://www.centrumxp.pl/dotNet/301,1,08_Co_to_jest_typ_danych_Jakie.aspx http://www.microsoft.com/poland/technet/bazawiedzy/centrumrozwiazan/cr314_01.mspx MySQL: char, varchar, tiny/-/medium/longtext, tiny/small/medium/-/bigint, float, double, decimal, date, datetime, timestamp, time, enum, set, tiny/-/medium/longblob http://compzone.org/art-Typy+danych+w+kolumnach+w+MySQL-21.html SQLite: text, numeric, integer, real, none (null, integer, real, text, blob) http://www.sqlite.org/datatype3.html

słowa kluczowe: CREATE (DATABASE|TABLE|VIEW), DROP (DATABASE|TABLE|VIEW), ALTER TABLE ... ADD

INSERT INTO, UPDATE ... SET, DELETE FROM

UNIQUE, (NOT) NULL, DEFAULT, PRIMARY KEY

1. Wyświetl kod tworzący tabelę Piwa.

.schema Piwa

2. W drugim oknie linii komend utwórz nową bazę o nazwie dziekanat (SQLite: dziekanat.s3db) 3. W nowej bazie utwórz tabelę Studenci

CREATE TABLE Studenci(

imie varchar(20) NOT NULL,

nazwisko varchar(30) NOT NULL

);

4. Dodaj pole nr_albumu

ALTER TABLE Studenci ADD nr_albumu char(6);

5. Dodaj pole id

ALTER TABLE Studenci ADD id int;

6. Dodaj rekord 'Józef', 'Konopka', 120998, 1

INSERT INTO Studenci VALUES('Józef','Konopka',120998,1); 7. Dodaj rekord ' Marcin', 'Mlecz'

INSERT INTO Studenci VALUES('Marcin','Mlecz'); -- błąd

INSERT INTO Studenci VALUES('Marcin','Mlecz',NULL,NULL); INSERT INTO Studenci(imie, nazwisko) VALUES('Marcin','Mlecz');

8. Wyświetl imiona i nazwiska studentów sortując wg imienia.

9. Dodaj rekord 'Karpińska', 120998.

INSERT INTO Studenci(nazwisko, nr_albumu) VALUES ('Karpińska',120998); -- błąd, bo brak imienia

10. Dodaj rekord 'Iwona','Karpińska', 120998.

INSERT INTO Studenci(nazwisko,imie, nr_albumu) VALUES ('Karpińska','Iwona',120998); 11. Zmień numer albumu studentki o nazwisku Karpińska na 120999.

UPDATE ... SET ... WHERE

12. Usuń studenta o nazwisku Mlecz.

DELETE FROM ... WHERE...

13. Usuń tabelę Studenci

DROP TABLE Studenci;

14. Utwórz tabelę wydziały posiadającą dwie kolumny:

id - liczba całkowita, klucz główny, automatyczna numeracja nazwa - tekst o maksymalnej długości 5 znaków, wymagany (niepusty) CREATE TABLE Wydzialy(

id INTEGER PRIMARY KEY,

nazwa varchar(5) NOT NULL

);

15. Wstaw do tabeli wydziały następujące rekordy: rar, rau, rch, rmf, roz INSERT INTO Wydzialy VALUES (null,'rar');

INSERT INTO Wydzialy VALUES (3,'rch');

INSERT INTO Wydzialy(nazwa) VALUES ('rmf');

INSERT INTO Wydzialy VALUES (2,'rau');

INSERT INTO Wydzialy VALUES (null,'roz');

16. Sprawdź co się stanie, jeśli spróbujesz wstawić do tabeli rekord o tej samej wartości pola id.

17. Utwórz tabelę Studenci posiadającą pięć kolumn:

id - liczba całkowita, klucz główny

imie - tekst o maks. długości 20 znaków, wymagany

nazwisko - tekst o maks. długości 30 znaków, wymagane

nr_albumu - tekst o stałej długości 6 znaków, wymagany, unikalny (UNIQUE) id_wydzialu - liczba całkowita, wymagana, domyślnie 5 (DEFAULT 5)

18. Wstaw do tabeli Studenci następujące rekordy:

id

imie

nazwisko

nr_albumu

id_wydzialu

1

Józef Konopka

120998

1

2

Marcin Mlecz

344228

3

3

Iwona Karpińska

667656

4

4

Barbara Nowacka

667554

5

Tomasz Koj

233465

3

6

Anna Kowalczyk

120942

1

INSERT INTO Studenci(id,imie,nazwisko,nr_albumu,id_wydzialu) values (1,'Józef','Konopka','120998',1);

INSERT INTO Studenci values (2,'Marcin','Mlecz','344228',3); INSERT INTO Studenci values (3,'Iwona','Karpińska','667656',4); INSERT INTO Studenci(id,imie,nazwisko,nr_albumu) values (4,'Barbara','Nowacka','667554'); 19. Utwórz widok (inaczej perspektywę) vw_studenci_wydzialy, który w pierwszej kolumnie wypisuje imię i nazwisko studenta, a w drugiej nazwę jego wydziału.

CREATE VIEW vw_studenci_wydzialy AS

SELECT s.imie||' '||s.nazwisko 'student', w.nazwa 'nazwa wydziału'

FROM Studenci s JOIN Wydzialy w

ON (dokończ samodzielnie)

Po wykonaniu kaŜdego z poniŜszych poleceń sprawdzaj rezultat wyświetlając wszystkie kolumny z widoku vw_studenci_wydzialy, tzn. wywołując zapytanie:

SELECT * FROM vw_studenci_wydzialy;

20. Marcin Mlecz zmienił wydział na matematyczno-fizyczny. Dokonaj aktualizacji tabeli Studenci.

21. Józef Konopka oblał pierwszy semestr i postanowił zrezygnować ze studiów. Dokonaj aktualizacji tabeli Studenci.(DELETE)

22. Wszystkie dziewczyny przechodzą na wydział Organizacji i Zarządzania (roz). Dokonaj aktualizacji tabeli Studenci.

UPDATE Studenci SET id_wydzialu = 5 WHERE imie LIKE '%a';