INSERT, służy do dodawania rekordów do tabeli.
INSERT[INTO] { table_name | view_name | rowset_function_limited }[ ( column_list ) ]VALUES ( Values)
Przykład:
insert into oddzialy values (60,'SZCZECIN','Malwowa 5')
insert oddzialy(id, Adres) values (70,'Malinowa 5')
insert oddzialy(id, Adres) select id, nazwisko from pracownicy
UPDATE, służy do aktualizacji już istniejących rekordów.
UPDATE table_nameSET { column_name = { expression | NULL } }[ FROM from_clause ][ WHERE <search_condition> ]
Przykład:
Update Pracownicy set Placa_pod = 10000 where szef = 110;
DELETE pozwala na usunięcie określonych rekordów z tabeli
DELETE[ TOP ( expression ) ][ FROM ] table_source [ ,...n ] ][ WHERE { <search_condition> }
Przykład:
delete from oddzialy where nazwa is null
Pozwala na wczytywanie danych do tabeli z pliku TXT lub CSV.
Ściągnij i uruchom skrypt:
Ściągnij dane w txt:
Przykład:
Uwaga! Nie możemy go wykonać gdyż nie mamy na serwerze praw do wykonywania operacji bulk.
bulk
insert DIRECTOR
from 'J:\Desktop\IMBDDirectors.txt'
with
(
FIRSTROW = 2,
FIELDTERMINATOR = ',' ,
ROWTERMINATOR = '\n'
)
go
inaczej:
Wybierz prawym przyciskiem na nazwę bazy -> Tasks -> Import DataWybierz NextWybierz Flat File sourceWybierz NextWybierz plik z dyskuZmień row delimeter na przecinekWybierz Next NextJako destination wybierz SQL Server Native Client i swoją bazę danychWybierz NextWybierz jako bazę docelową u gory dbo.DIRECTORWybierz edit mappings i przypisz odpowiednie kolumny do siebieWybierz do końca Next i finish
sprawdż dane:
select * from Directors
Widok to sztuczna tabela która nie jest fizycznie przechowywana, aledo której możemy tworzyć zapytania (można to też traktować jako zapisane polecenie select).
Aby stworzyć widok użyjemy polecenia CREATE VIEW as
CREATE VIEW Poznan as
SELECT
*
FROM
Pracownicy
WHERE
ID_oddz = 10
Widok nie może zawierać polecenia INTO, COMPUTE, COMPUTE BY oraz ORDER BY, chyba że użyjemy polecenia TOP.
Następnie możemy odwoływać się do widoku jak do tabeli
select * from Poznan
Zmiany w widoku wprowadzamy za pomocą polecenia ALTER VIEW
ALTER VIEW Poznan as
SELECT
p.*, o.nazwa, o.adres
FROM
Pracownicy p INNER JOIN Oddzialy o
on p.ID_oddz = o.id
WHERE
p.ID_oddz = 10
Sprawdź wynik zmiany:
select * from Poznan
Widok usuwamy za pomocą polecenia DROP VIEW
DROP VIEW Poznan
Na widokach możemy także dokonywać operacji tablicowych jak insert, czy delete.
W celu związania tabeli z widokiem (tak, aby uniemożliwić wprowadzania zmian w tabeli, bez usunięcia widoku) korzystamy z opcji WITH SCHEMABINDING. W celu wymuszania sprawdzania poprawności wszelkich operacji na końcu definicji widoku dodajemy WITH CHECK OPTION.
CREATE VIEW dbo.Zmiana
WITH SCHEMABINDING
AS
Select
Nazwa AS [MIASTO],
ID
FROM dbo.Oddzialy
WITH CHECK OPTION
Co pozwala nam na wykonanie komendy:
INSERT into Zmiana values ('Lublin',100)
Jeżeli chcemy zaszyfrować nasz widok tak, aby nie można było odtworzyć zapytania, którego dotyczy możemy zastosować komendę WITH ENCRYPTION.
CREATE VIEW dbo.Zmiana2
WITH ENCRYPTION
AS
Select
Nazwa AS [MIASTO],
ID
FROM dbo.Oddzialy
UWAGA: W zadaniu 9.2 trzeba użyć funkcji dateadd().
Zadanie Domowe
Zadania 2,3,6,7,8 tematu z tematu 9.Manipulowanie danymi, oraz 2,4,5,6,7 z tematu 10.Widoki.
Termin wykonania zadania: Niedzieli 17.12.2017 do godziny 24.00.
Rozwiązania proszę przesłać przez stronę:
Logujemy się jak na komputery Wydziałowe, przesyłamy plik (jeden wspólny dla wszystkich) z rozwiązaniami.
UWAGA! Rozwiązania można przesłać tylko raz.
Wykorzystano materiały z
http://www.sql-kursy.pl/ms-sql-kurs-insert-update-delete-truncate-modyfikacja-danych-7.html
https://technet.microsoft.com/pl-pl/library/ms189245(v=sql.105).aspx
https://www.techonthenet.com/sql_server/delete.php
http://sql-kursy.pl/ms-sql-kurs-create-view-case-when-4.html
https://msdn.microsoft.com/en-us/library/ms187956.aspx
http://www.w3schools.com/sql/sql_view.asp
https://www.codeproject.com/articles/266985/views-in-sql-server