Advertisement
Guest User

sql1

a guest
Feb 25th, 2020
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 4.59 KB | None | 0 0
  1. 25.02.2020
  2. jezyk SQL
  3.  
  4.  
  5. USE S1231
  6. GO
  7.  
  8. -- WPROWADZENIE
  9. CREATE TABLE t (id int, k1 VARCHAR(10))
  10.  
  11. INSERT INTO t VALUES
  12. (1, 'Styczen'),
  13. (2, 'Luty')
  14.  
  15. SELECT * FROM t;
  16.  
  17. -- Zmiana nazwy kolumny w tabeli
  18. sp_rename 't.k1', 'k2', 'column'
  19.  
  20. -- Zmiana nazwy tabeli
  21. sp_rename 't', 'tab'
  22.  
  23. SELECT * FROM tab;
  24.  
  25. -- Tworzenie kopii tabeli
  26. SELECT * INTO kopia FROM tab
  27.  
  28. SELECT * FROM kopia
  29.  
  30. -- Zmiana typu danych w kolumnie
  31. ALTER TABLE kopia ALTER COLUMN k2 CHAR(100)
  32.  
  33. -- Dodawanie nowej kolumny
  34. ALTER TABLE kopia ADD k3 NUMERIC(2)
  35.  
  36. SELECT * FROM kopia
  37.  
  38. -- Usuwanie kolumny
  39. ALTER TABLE kopia DROP COLUMN k2
  40.  
  41. SELECT * FROM kopia
  42.  
  43. -- Dodawanie indeksu do kolumny
  44. CREATE INDEX t_index ON tab(k2)
  45.  
  46. SELECT * FROM tab
  47.  
  48. -- Usuwanie indeksu
  49. DROP INDEX t_index ON tab
  50.  
  51. -- Usuwanie tabel
  52. DROP TABLE tab
  53. DROP TABLE kopia
  54.  
  55. -- Zadanie 1.
  56. CREATE TABLE Pracownicy(
  57.     idpracownika numeric(5) identity(1,1) primary key,
  58.     imie VARCHAR(20),
  59.     nazwisko VARCHAR(20),
  60.     wiek NUMERIC(3),
  61.     dzial CHAR(3)
  62. )
  63.  
  64. SELECT * FROM Pracownicy
  65.  
  66. INSERT INTO Pracownicy VALUES
  67. ('Jan', 'Nowak', 27, 'INF'),
  68. ('Adam', 'Kowalski', 26, 'MAN'),
  69. ('Anna', 'Nowak', 24, 'MGT'),
  70. ('Ewa', 'Kowalska', 23, 'ACC');
  71.  
  72. SELECT * FROM Pracownicy;
  73.  
  74. /* Zadanie 2: Na podstawie tabeli o nazwie Pracownicy, utworzyć jej kopię o nazwie Uzytkownicy,
  75.  kopiując całą tabelę za wyjątkiem kolumny Dział i zmieniając nazwę kolumny  idpracownika na iduzytkownika.
  76.  Wyświetlić zawartość tabeli Uzytkownicy. */
  77.  
  78. SELECT idpracownika AS iduzytkownika, imie, nazwisko, wiek
  79. INTO Uzytkownicy
  80. FROM Pracownicy
  81.  
  82. SELECT * FROM Uzytkownicy
  83.  
  84. /* 3. Na podstawie tabeli o nazwie Pracownicy,
  85.  utworzyć jej dokładną kopię o nazwie Studenci,
  86.  kopiując definicję oraz zawartość tej tabeli dla osób mających mniej niż 25 lat,
  87.  jednocześnie zmieniając nazwę kolumny idpracownika na idstudenta. Wyświetlić zawartość tabeli Studenci. */
  88.  
  89.  SELECT idpracownika AS idstudenta, imie, nazwisko, wiek, dzial
  90.  INTO studenci
  91.  FROM Pracownicy
  92.  WHERE wiek<25
  93.  
  94. SELECT * FROM studenci
  95.  
  96. -- 4. W tabeli Uzytkownicy usunąć wiersze dla osób, które mają mniej niż 25 lat i nazwisko rozpoczynające się od litery K. Zweryfikować poprawność.
  97. DELETE FROM Uzytkownicy WHERE wiek<25 AND nazwisko LIKE 'k%'
  98.  
  99. -- 5. Usunąć tabelę Uzytkownicy i Studenci.
  100. DROP TABLE Uzytkownicy
  101. DROP TABLE studenci;
  102.  
  103. -- 6. Utworzyć nową tabelę o nazwie Region według poniższych danych.
  104. CREATE TABLE region(
  105.     idregionu NUMERIC(2) PRIMARY KEY,
  106.     nazwa VARCHAR(20),
  107.     idpracownika NUMERIC(5) FOREIGN KEY (idpracownika)
  108.     references Pracownicy(idpracownika)
  109. )
  110.  
  111. INSERT INTO region VALUES
  112. (1, 'pomorskie', 4),
  113. (2, 'zachodniopomorskie', 2),
  114. (3, 'warminsko-mazurskie', 3)
  115.  
  116. SELECT * FROM region
  117.  
  118. --weryfikacja
  119. SELECT * FROM pracownicy p, region r
  120. WHERE p.idpracownika = r.idpracownika
  121.  
  122. /* 7. Utworzyc tabelę o nazwie Osoba */
  123. CREATE TABLE osoba(
  124.     id numeric(5) primary key,
  125.     imie VARCHAR(20),
  126.     nazwisko VARCHAR(20),
  127.     pesel VARCHAR(11) UNIQUE,
  128.     data_urodzenia DATE
  129. )
  130.  
  131. INSERT INTO osoba VALUES
  132. (1, 'Jan', 'Kowalski', '65121812434', '1965-12-18'),
  133. (2, 'Adam', 'Nowak', '54052314588', '1954-05-23'),
  134. (3, 'Ewa', 'Zielinska', '88111238273', '1988-11-12'),
  135. (4, 'Anna', 'Woźniak', '92012013728', '1992-01-12')
  136.  
  137. SELECT * FROM osoba;
  138.  
  139. -- 8. Zmienić nazwę tabeli Osoba na Pracownik.
  140. sp_rename 'osoba', 'pracownik'
  141.  
  142. SELECT * FROM pracownik;
  143.  
  144. -- 9. Dodać do tabeli Pracownik następujące kolumny: dzial, wyksztalcenie
  145. ALTER TABLE pracownik ADD dzial VARCHAR(20), wyksztalcenie VARCHAR(20)
  146.  
  147. UPDATE pracownik SET dzial='Organizacyjny'
  148. UPDATE pracownik SET wyksztalcenie='wyzsze' WHERE id<3
  149.  
  150. SELECT * FROM pracownik;
  151.  
  152. -- 10. Skopiować zawartość tabeli Pracownik do tabeli Pracownik_kopia.
  153. SELECT * INTO pracownik_kopia FROM pracownik
  154.  
  155. SELECT * FROM pracownik_kopia
  156.  
  157. -- 11.Usunąć z tabeli Pracownik_kopia kolumnę o nazwie pesel.
  158. ALTER TABLE pracownik_kopia DROP column pesel
  159. SELECT * FROM pracownik_kopia
  160.  
  161. -- 12. W tabeli Pracownik_kopia zmienić kolumnę nazwisko tak, aby pozwalała na wprowadzenie 40 znaków.
  162. ALTER TABLE pracownik_kopia ALTER COLUMN nazwisko VARCHAR(40)
  163.  
  164. -- 13.  W tabeli Pracownik_kopia zmienić nazwę kolumny id na id_pracownika.
  165. sp_rename 'pracownik_kopia.id', 'id_pracownika', 'column'
  166.  
  167. SELECT * FROM pracownik_kopia;
  168.  
  169. -- 14. Utworzyć indeks do tabeli Pracownik, indeksujący nazwisko i imię. Sprawdzić działanie.
  170. CREATE INDEX pracownik_imie_nazwisko ON pracownik(imie, nazwisko)
  171.  
  172. SELECT * FROM pracownik WHERE nazwisko LIKE '%ska';
  173.  
  174. -- 15. Usunąć indeks z tabeli Pracownik.
  175. DROP INDEX pracownik_imie_nazwisko;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement