Zapytania 5
Transkrypt
Zapytania 5
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';