Download as pdf or txt
Download as pdf or txt
You are on page 1of 44

Bazy danych

Wykład 6: SQL.

dr inż. Magdalena Krakowiak


makrakowiak@wi.zut.edu.pl
Agenda
◼ Co to jest SQL?
◼ Cechy języków zapytań
◼ SQL w klasyfikacji relacyjnych języków
zapytań
◼ Rys historyczny – geneza i standardy
◼ Formy SQL-a
◼ Składniki SQL-a

Bazy danych - SQL


Co to jest SQL?
◼ SQL to skrót oznaczający Structured Query
Language (strukturalny język zapytań).
◼ SQL to standardowy język dostępu i
zarządzania bazami danych. Poprzez komendy
SQL-a realizowane są m.in. takie operacje jak:

◼ definicja i modyfikacja obiektów baz danych


◼ dostęp i aktualizacja bazy danych
◼ czynności administracyjne
◼ tworzenie procedur składowanych

Bazy danych - SQL


Cechy języków zapytań
◼ proceduralność wynika z budowy kwerendy:
◼ postać procedury (metoda wyszukiwania i uzyskania
określonych danych) - języki proceduralne
◼ postać żądania (schemat relacji wynikowej i opis warunków,
jakie muszą spełnić krotki tej relacji) – języki
nieproceduralne
◼ postać kwerendy implikuje sposób manipulowania
danymi:
◼ algebra relacji - języki proceduralne
◼ rachunek predykatu - języki nieproceduralne
◼ pełność oznacza możliwość utworzenia kwerendy,
która pozwoli na dostęp do każdej dowolnej
informacji zapisanej w bazie danych
Bazy danych - SQL
SQL w klasyfikacji relacyjnych języków zapytań

Bazy danych - SQL


SQL w klasyfikacji relacyjnych języków zapytań

Język SQL należy do grupy języków


nieproceduralnych i deklaratywnych, zatem daje
użytkownikowi możliwość określenia (deklaracji) potrzeb
bez podawania sposobu realizacji. Problem metody
rozwiązania został przerzucony na SZBD.

Bazy danych - SQL


Rys historyczny – geneza i standardy
Początki SQL-a: Standardy (ISO, ANSI):

◼ IBM 1974 – SEQUEL ◼ SQL 86


◼ IBM 1976 – SQUARE ◼ SQL 89 (1)
◼ Oracle SQL ◼ SQL 92 (2)
◼ Ingres QUEL ◼ SQL 99 (3)
◼ … ◼ SQL 2003
◼ SQL 2006

Bazy danych - SQL


Formy SQL-a
Dostęp do bazy danych realizowany jest przez język SQL w dwóch
trybach:
◼ interaktywnym (ang. Interactive SQL)– instrukcje
wprowadzane są interakcyjnie (spoza środowiska aplikacji)
bezpośrednio do SZBD, który natychmiast prezentuje wyniki
odpowiedzi
◼ zanurzonym (ang. Embedded SQL)- instrukcje umieszczone są
wewnątrz konstrukcji języka programowania aplikacji na dwa
sposoby:
◼ kod statyczny (ang. Static SQL) – stały kod tworzony przy projektowaniu
aplikacji przez jej projektanta
◼ kod dynamiczny (ang. Dynamic SQL) – jest odpowiedzią na działanie
użytkownika a nie projektanta aplikacji, zatem generowany jest w trakcie
działania aplikacji

Bazy danych - SQL


Składniki SQL-a
Podział funkcjonalny instrukcji SQL-a:
◼ definiowanie i modyfikacja obiektów bazy danych
◼ wyszukiwanie i aktualizacja bazy danych
◼ administrowanie bazą danych.

Zbiory instrukcji poszczególnych grup funkcjonalnych stanowią


odpowiednio:
◼ język definiowania danych (ang. Data Definition Language
DDL)
◼ język manipulowania danymi (ang. Data Manipulation
Language DML)
◼ język kontroli danych (ang. Data Control Language DCL)

Bazy danych - SQL


Instrukcje DDL-a
Język DDL stanowi zbiór instrukcji, które operują na
obiektach bazy danych:

◼ Create {table, view, index, domain, schema} –


tworzenie nowego obiektu (tablicy, perspektywy,
indeksu, domeny lub schematu)
◼ Alter {table, domain} – modyfikacja tablicy lub
domeny
◼ Drop {table, view, index, domain, schema} –
usunięcie obiektu (tablicy, perspektywy, indeksu,
domeny lub schematu)

Bazy danych - SQL


Instrukcje DML-a
Język DML stanowi zbiór instrukcji, które operują na
danych w bazy danych:

◼ Select – wyszukiwanie danych


◼ Insert – tworzenie nowego rekordu w tablicy
◼ Update – tworzenie lub modyfikacja danych w
istniejącym rekordzie
◼ Delete – usunięcie rekordu w tablicy

Bazy danych - SQL


Instrukcje DCL-a
Język DCL stanowi zbiór instrukcji, które odpowiadają
czynnościom administracyjnym:
◼ Describe – opis struktury zadanej tablicy

◼ Grant/Revoke – nadawanie/usuwanie uprawnień

◼ Connect – ustanowienie połączenia

◼ Commit/Rolback– zatwierdzenie/cofnięcie
transakcji
◼ Open/Close – otwieranie/zamykanie kursora

◼ Execute – wykonanie przygotowanego kodu

Bazy danych - SQL


Składnia SQL-a – zasady ogólne
◼ Język SQL nie rozróżnia małych i dużych liter w słowach kluczowych i
nazwach (baz danych, tabel, indeksów i kolumn)
◼ Nazwy w SQL-u składają się ze znaków alfanumerycznych, nie
rozpoczynających się od cyfr. Nazwa nie może składać się z samych
cyfr lub zawierać znaki przestankowe bądź „@”
◼ Każda komenda SQL-a kończy się średnikiem (;) i może składać się z
wielu linii tekstu
◼ Wartości tekstowe podaje się w cudzysłowie (”napis”) lub w
apostrofach (’napis’)
◼ Wartości liczbowe podaje się bezpośrednio; z kropką dziesiętną (liczby
dziesiętne) lub w notacji wykładniczej (liczby zmiennoprzecinkowe)
◼ SQL nie zawiera zwykłych instrukcji sterowania typu: IF…THEN,
DO…WHILE itp.

Bazy danych - SQL


Polecenia SQL-a – zasady ogólne
Polecenia języka SQL składają się z dwóch typów słów:
◼ zarezerwowanych, które stanowią integralną część
języka i nie mogą być modyfikowane ani dzielone
pomiędzy wierszami; słowa kluczowe zwykle pisane
są wielkimi literami (SELECT, GROUP BY, CREATE
VIEW itp.)
◼ zdefiniowanych przez użytkownika, które
reprezentują nazwy różnych, stworzonych przez
użytkownika, obiektów pisanych zwyczajowo małymi
literami

Bazy danych - SQL


Polecenia SQL-a - instrukcje

W języku SQL występują dwa typy instrukcji:

◼ polecenia ujęte w standardzie


◼ rozszerzenia standardu – dodatkowe polecenia
typowe dla konkretnego systemu zarządzania bazami

Kod SQL wykorzystujący rozszerzenia specyficzne dla


wybranego systemu zarządzania bazami danych nie jest
przenaszalny!

Bazy danych - SQL


SQL-owe SZBD
Język SQL jest zaimplementowany w większości
komercyjnych systemów zarządzania bazami danych.
Serwery wykorzystujące SQL-a jako język dostępu do
ich baz danych to m.in.:
◼ Oracle
◼ MS SQL
◼ DB2
◼ InterBase
◼ Sybase
◼ MySQL
◼ Informix
◼ Paradox

Bazy danych - SQL


Obiekty SQL-a
◼ Database - baza danych
◼ Table – tablela (relacja) w bazie danych
◼ Column – kolumna (atrybut) tabeli
◼ Index – tablica indeksów do tabeli
◼ View – perspektywa, widok tabeli lub tabel
◼ Synonym – alternatywna nazwa tabeli lub widoku
◼ Schema – schemat, grupa powiązanych ze sobą
obiektów, posiadająca nazwę i znajdująca się pod
kontrolą jednego identyfikatora uprawnień
◼ Domena – określa typ danych, logiczne kategorie
porównywalnych wartości

Bazy danych - SQL


Definicja danych
Do utworzenia nowej tabeli służy instrukcja
CREATE TABLE, która wymaga podania nazwy tabeli,
wszystkich kolumn (nazwa kolumny, typ danych,
opcjonalnie maksymalna długość danych w kolumnie i
opcja kolumny) oraz ewentualnych opcji.

CREATE TABLE nazwa_tabeli


( nazwa_kolumny_1 typ_danych [(długość) opcja_kol],
nazwa_kolumny_2 typ_danych [(długość) opcja_kol],

nazwa_kolumny_n typ_danych [(długość) opcja_kol])
[opcja_tab];

Bazy danych - SQL


Typy danych
◼ Typy tekstowe:
CHAR (N) – pole o stałej długości N znaków (ew. uzupełniane spacjami)
VARCHAR (N) – pole o zmiennej długości nie przekraczającej N znaków
BIT (N) – pole o stałej długości N bitów
BIT VARING (N) - pole o zmiennej długości nie przekraczającej N bitów
◼ Typy liczbowe:
◼ różniące się zakresem (zależnym od SZBD)
INT lub INTEGER – liczba całkowita
BIGINT – (duża) liczba całkowita o większej liczbie cyfr
SMALLINT – (mała) liczba całkowita o mniejszej liczbie cyfr
◼ różniące się precyzją
REAL lub FLOAT – liczba rzeczywista zmiennoprzecinkowa
DOUBLE PRECISION - liczba zmiennoprzecinkowa
DECIMAL(M,N) lub NUMERIC(M,N) – liczba stałoprzecinkowa o M
cyfrach znaczących i N miejscach po przecinku

Bazy danych - SQL


Typy danych cd..
◼ Typy daty i godziny:
DATE – typ do zapisu daty
TIME – typ do zapisu godziny
TIMESTAMP - typ do zapisu kombinacji daty i czasu
INTERVAL – typ do zapisu przedziałów czasowych

◼ Inne typy danych:


LOGICAL – typ logiczny przyjmujący tylko dwie wartości (0 lub 1, TRUE
lub FALSE)

Różnorodność typów danych i możliwość określania ich


długości służy optymalizacji definicji tabeli pod
kątem zużycia miejsca i do kontroli integralności
wprowadzanych lub wynikowych wartości.

Bazy danych - SQL


Opcje kolumn
NULL/NOT NULL – pole w tej kolumnie może/nie może przyjmować wartości
pustej (NULL)
UNIQUE – wartość pola musi być unikatowa w kolumnie
PRIMARY KEY – kolumna stanowi klucz główny tabeli
REFERENCES [nazwa_tablicy] – kolumna stanowi klucz obcy wskazujący na
podaną tablicę
DEFAULT wartość_domyślna – wszystkie pola kolumny wypełnione są wartością
domyślną
[NOT] CASE-SENSITIVE – określa, czy przy porównywaniu wartości w kolumnie
znakowej mają być rozróżniane małe i wielkie litery
AUTOINCREMENT – automatyczne nadawanie wartości pola w kolumnie podczas
wstawianie nowego wiersza
FORMAT format –wartości pól w kolumnie wyświetlane będą w podanym formacie
LABEL etykieta – nadanie etykiety (nagłówka) kolumnie przy wyświetlaniu
wartości jej pól

UWAGA! Opcja PRIMARY KEY automatycznie włącza opcje NOT NULL i UNIQUE!

Bazy danych - SQL


Modyfikacja schematu
Do modyfikacji schematu tablicy służy instrukcja
ALTER TABLE, która wymaga podania nazwy tablicy
oraz opcji modyfikacji (dodanie kolumny, usunięcie
kolumny lub modyfikacja kolumny).

ALTER TABLE nazwa_tabeli


{ opcja_mod|
opcja_mod|

opcja_mod};

Bazy danych - SQL


Opcje modyfikacji schematu
Opcje modyfikacji schematu dotyczą modyfikacji kolumn
w zadanej tablicy:
◼ ADD COLUMN nazwa_kolumny typ_danych [(długość) opcja_kol] -
dodanie nowej kolumny do tablicy wymaga podanie parametrów i opcji
kolumny takich jak przy tworzeniu tablicy
◼ DROP COLUMN nazwa_kolumny - usunięcie kolumny o podanej
nazwie
◼ ALTER COLUMN nazwa_kolumny [opcja_kol] - modyfikacja kolumny
o podanej nazwie

Bazy danych - SQL


Usunięcie schematu tablicy
Do usuwania schematu tablicy służy instrukcja
DROP TABLE, która wymaga podania nazwy tablicy.

DROP TABLE nazwa_tabeli;

Bazy danych - SQL


Wyszukiwanie danych
Do wyszukiwania danych służy instrukcja SELECT,
która jest najbardziej rozbudowanym poleceniem języka
SQL. W swojej najprostszej postaci (odwołującej się do
bazy danych!) wymaga słowa kluczowego FROM i
podania po nim nazwy tablicy, z której mają pochodzić
dane.

SELECT * FROM nazwa_tabeli;

* - oznacza wyświetlenie wszystkich kolumn podanej tablicy

Bazy danych - SQL


Składnia instrukcji SELECT
SELECT opcje_projekcji
FROM nazwa_tabeli_1 [alias_1] [opcje_złączenia],
nazwa_tabeli_2 [alias_2] [warunek_złączenia]
[WHERE opcje_selekcji]
[GROUP BY parametry_grupowania_wyników
[HAVING warunek_dla_grupy]]
[UNION instrukcja_SELECT]
[ORDER BY parametry_porządkowania_wyników];

Bazy danych - SQL


Opcje projekcji w instrukcji SELECT
Opcje projekcji to parametry operacji rzutowania
(„cięcia pionowego”) na tabelach wymienionych po
frazie FROM (definicja kolumn tabeli wynikowej).
◼ Stanowią wybrane lub wszystkie (*) nazwy kolumn i/lub
działające na nich funkcje agregujące oraz operatory.
◼ Powtarzające się nazwy kolumn pochodzących z różnych tabel
poprzedza się nazwą tabeli (nazwa_tabeli.nazwa_kolumny) lub
jej aliasem (alias.nazwa_kolumny)
◼ Występują z następującymi opcjami:
◼ klauzula DISTINCT ignoruje duplikaty wartości we wskazanej kolumnie w
przeciwieństwie do domyślnej klauzuli ALL nakazującej wybrać wszystkie
wiersze
◼ klauzula TOP n [PERCENT] tworzy listę tylko n początkowych wierszy lub
n procent początkowych wierszy
◼ klauzula AS po nazwie kolumny tworzy jej alias

Bazy danych - SQL


Funkcje agregujące
◼ W języku SQL dostępne są następujące funkcje
agregujące:
◼ count () – zwraca liczność zbioru
◼ count ([DISTINCT] nazwa kolumny) – zwraca liczbę wierszy we wskazanej
kolumnie
◼ sum ([DISTINCT] nazwa kolumny) – zwraca sumę wartości podanej kolumny
◼ avg ([DISTINCT] nazwa kolumny) – zwraca średnią wartość podanej kolumny
◼ min ([DISTINCT] nazwa kolumny) – zwraca minimalną wartość podanej
kolumny
◼ max ([DISTINCT] nazwa kolumny) – zwraca maksymalną wartość podanej
kolumny
◼ Funkcje sum() i avg() dostępne są tylko dla typów liczbowych, a
dla min() i max() kolumna może być także typu znakowego lub
daty.

Bazy danych - SQL


Operatory występujące we frazie SELECT
W parametrach rzutowania występujących po słowie
kluczowym SELECT dostępne są następujące operatory:
◼ operatory arytmetyczne działające na kolumnach typu
liczbowego i/lub wartościach liczbowych:
◼ „+” - dodawanie
◼ „-” - odejmowanie
◼ „*” - mnożenie
◼ „/” - dzielenie
◼ operator konkatenacji „||” czyli złączania działający na
kolumnach typu znakowego

Bazy danych - SQL


Opcje selekcji w instrukcji SELECT
Opcje selekcji występujące we frazie WHERE to
parametry selekcji („cięcia poziomego”).
◼ Stanowią warunek w postaci jednego wyrażenia lub

wielu wyrażeń połączonych operatorami


logicznymi – OR (suma) lub AND (iloczyn)
◼ Każde z wyrażeń może zawierać operatory

porównania lub operatory specjalne, które mogą


zostać poprzedzone operatorem negacji NOT

Bazy danych - SQL


Operatory występujące we frazie WHERE
W parametrach selekcji występujących po słowie
kluczowym WHERE dostępne są następujące operatory:
◼ operatory porównania:
◼ „=” - równy
◼ „>” - większy
◼ „<” - mniejszy
◼ „>=” - większy lub równy
◼ „<=” - mniejszy lub równy
◼ „<>” - różny

Bazy danych - SQL


Operatory występujące we frazie WHERE
◼ operator specjalne:
◼ IN - równy wartości z listy podanej przez użytkownika
(odpowiada przyrównaniom do różnych wartości
połączonych operatorem OR) lub będącej wynikiem
instrukcji SELECT
◼ BETWEEN – równy jednej z wartości z podanego przedziału
(odpowiada dwóm wyrażeniom: z operatorem „>” i
dolną granicą przedziału oraz z operatorem „<” i
górną granicą przedziału połączonym operatorem
AND)
◼ LIKE - równy z podanym wzorcem (dla kolumn
tekstowych), który może zawierać symbole
wieloznaczne: _ (podkreślenie) oznacza
dopasowanie do dowolnego pojedynczego znaku, %
oznacza dopasowanie do dowolnej liczby dowolnych
znaków
◼ IS NULL - równy wartości pustej

Bazy danych - SQL


Parametry grupowania wyników
w instrukcji SELECT
Grupowanie ma na celu powiązanie ze sobą wierszy
wynikowych w grupy wierszy, w których wskazane
kolumny (parametry grupowania) mają tę samą
wartość, a następnie redukowanie tych grup do jednego
wiersza.
◼ Parametry grupowania wyników występujące we frazie
GROUP BY to wybrane lub wszystkie opcje projekcji zapytania.
◼ Ewentualnie występujące funkcje agregujące działają na każdej
z grup osobno.
◼ Opcjonalna (tylko i wyłącznie dla grupowania!) klauzula HAVING
umożliwia nałożenie warunków selekcji na powstałe grupy.
◼ W przeciwieństwie do opcji selekcji występujących po frazie
WHERE w warunkach występujących po frazie HAVING mogą
wystąpić funkcje agregujące.
Bazy danych - SQL
Parametry porządkowania wyników
w instrukcji SELECT
Parametry porządkowania wyników – stanowią
wybrane lub wszystkie nazwy kolumn lub numer(y)
kolumn(y) oznaczający pozycję kolumny na liście opcji
projekcji oraz opcje porządkujące kolejność
wyświetlania wierszy wynikowych.
◼ domyślnie przyjęty jest porządek rosnący ASC w

przeciwieństwie do porządku malejącego


oznaczanego opcją DESC

SELECT … ORDER BY <nazwa_kolumny_1/numer> [ASC/DESC],


<nazwa_kolumny_2/numer> [ASC/DESC]

Bazy danych - SQL


Fraza UNION w instrukcji SELECT
Fraza UNION służy do obliczenia sumy wyników dwóch instrukcji
SELECT (głównej i występującej po frazie UNION) eliminując
powtarzające się wiersze. Opcje projekcji obu zapytań muszą być
zgodne co do ilości, kolejności oraz typów danych kolumn! Nie
dotyczy to ich nazw.
SELECT … UNION SELECT…
Oprócz sumy zbiorów w ramach instrukcji SELECT możemy także
zrealizować na zbiorach (wynikach dwóch instrukcji SELECT)
następujące operacje:
◼ Fraza INTERSECT (przecięcie zbiorów wierszy)

SELECT … INTERSECT SELECT…


◼ Fraza MINUS (różnica zbiorów wierszy)

SELECT … MINUS SELECT…

Bazy danych - SQL


Złączenia tabel w zapytaniach
Jeżeli po frazie FROM występuje więcej niż jedna tabela (lub
powtórzenie tej samej tabeli) instrukcja SELECT dokonuje ich
złączenia. Wyróżnia się następujące typy złączeń:
◼ iloczyn kartezjański – występuje, gdy brak w zapytaniu
parametrów złączenia tabel. W wyniku otrzymuje się wszystkie
kombinacje wierszy z pierwszej tabeli z wierszami z drugiej
tabeli (obszerny wynik!), co w praktyce zazwyczaj nie ma sensu.

◼ bez opcji złączenia – najprostsza forma zapisu bez frazy JOIN


SELECT… FROM tabela_1, tabela_2
◼ z najprostszą opcją złączenia – z wykorzystaniem frazy JOIN
SELECT … FROM tabela_1 CROSS JOIN tabela_2

Bazy danych - SQL


Złączenia tabel w zapytaniach cd…
◼ złączenie równościowe (wewnętrzne) – charakteryzuje się
warunkiem równości pomiędzy kolumnami z dwóch tabel i w wyniku
otrzymuje się podzbiór iloczynu kartezjańskiego stanowiący tylko
wiersze spełniające podany w instrukcji SELECT warunek
◼ złączenie wewnętrzne po frazie WHERE – warunek złączenia
występuje w formie wyrażenia po frazie WHERE
SELECT … FROM tabela_1, tabela_2
WHERE tabela_1.kolumna_1= tabela_2.kolumna_2
◼ złączenie wewnętrzne po frazie FROM– charakteryzuje się
zastosowaniem klauzuli [INNER] JOIN
SELECT … FROM tabela_1 [INNER] JOIN tabela_2
ON tabela_1.kolumna_1= tabela_2.kolumna_2
W przypadku tych samych nazw kolumn w warunku złączenia:
SELECT … FROM tabela_1 JOIN tabela_2
USING (kolumna_1)
lub SELECT … FROM tabela_1 NATURAL JOIN tabela_2

Bazy danych - SQL


Złączenia tabel w zapytaniach cd…
◼ złączenie zewnętrzne – w wyniku stanowi rozszerzenie
złączenia równościowego o wiersze, których wartość
porównywanej kolumny jest równa NULL (brak odpowiednika).
Domyślna opcja klauzuli JOIN - OUTER. Wyróżnia się:
◼ złączenie lewostronne – w wyniku znajdą się także te wiersze z
pierwszej tabeli, dla których wartość kolumny = NULL
SELECT … FROM tabela_1 LEFT [OUTER] JOIN tabela_2
USING (kolumna_1)
◼ złączenia prawostronne – w wyniku znajdą się także te wiersze
z drugiej tabeli, dla których wartość kolumny = NULL
SELECT … FROM tabela_1 RIGHT [OUTER] JOIN tabela_2
USING (kolumna_1)
◼ złączenie pełne - w wyniku znajdą się także te wiersze z obu
tabel, dla których wartość kolumny = NULL
SELECT … FROM tabela_1 FULL [OUTER] JOIN tabela_2
USING (kolumna_1)
Bazy danych - SQL
Złączenia tabel w zapytaniach cd…
◼ złączenie nierównościowe – w przeciwieństwie do złączenia
równościowego w warunku złączenia występuje inny operator
porównania niż operator równości
SELECT … FROM tabela_1 JOIN tabela_2
ON tabela_1.kolumna_1
BETWEEEN tabela_2.kolumna_2 AND tabela_2.kolumna_3
◼ samozłączenie – złączenie tablicy z tą samą tablicą, co
umożliwia wiązanie ze sobą informacji zawartych w różnych
wierszach. Wykorzystywane jest np. do tworzenia hierarchii
obiektów zapisanych w tej samej tabeli. Do dokonania
samozłączenia wymagane są aliasy tabel.
SELECT … FROM tabela_1 T1, tabela_1 T2
WHERE T1.kolumna_1= T2.kolumna_2

Bazy danych - SQL


Klauzula JOIN - podsumowanie
◼ warunek złączenia w klauzuli ON tak jak warunek selekcji po
frazie WHERE może być rozbudowany (łączenie przez dwa lub
więcej wierszy) i stanowić wiele wyrażeń połączonych
operatorem logicznym AND
SELECT … FROM tabela_1 JOIN tabela_2
ON tabela_1.kolumna_1 = tabela_2.kolumna_2
AND tabela_1.kolumna_2 = tabela_2.kolumna_1
◼ łączenie więcej niż dwóch tabel realizowane jest poprzez
dodawanie kolejnych klauzul JOIN
SELECT … FROM tabela_1 JOIN (tabela_2 JOIN tabela_3
ON tabela_2.kolumna_3 = tabela_3.kolumna_3)
ON tabela_1.kolumna_1 = tabela_2.kolumna_1
◼ dostępne opcje INNER i OUTER

Bazy danych - SQL


Wprowadzanie nowych wierszy danych
Do wprowadzania nowych wierszy do tabeli służy
instrukcja INSERT. Składnia wymaga podania słowa
kluczowego INTO i podania po nim nazwy tablicy, do
której chcemy wprowadzić nowy wiersz. Po nazwie
tablicy opcjonalnie można podać wybrane kolumny, ale
wśród nich muszą znaleźć się wszystkie kolumny
oznaczone opcją NOT NULL! Domyślnie przyjmowane
są wszystkie kolumny podanej tabeli.

INSERT INTO nazwa_tabeli [(kolumna1, kolumna 2…)]


źródło_danych;

Bazy danych - SQL


Wprowadzanie nowych wierszy danych – cd..
Źródłem danych, które chcemy wprowadzić do nowego wiersza
lub wierszy może być:
◼ użytkownik „ręcznie” wprowadzający wartości (podane w
nawiasach po frazie VALUES). W przypadku wybranych kolumn
musi istnieć zgodność co do ilości, kolejności i typów danych z
podanymi po frazie VALUES wartościami.

INSERT INTO nazwa_tabeli [(kolumna1, kolumna 2…)] VALUES


(wartość1, wartość2…);
◼ inna tablica lub tablice występujące w instrukcji SELECT. Opcje
projekcji instrukcji SELECT muszą być zgodne co do ilości,
kolejności i typów danych z wypełnianymi kolumnami.

INSERT INTO nazwa_tabeli [(kolumna1, kolumna 2…)]


instrucja_SELECT;

Bazy danych - SQL


Aktualizacja danych
Poprzez aktualizację danych należy rozumieć zmianę
istniejących danych oraz wprowadzanie nowych danych, ale (w
przeciwieństwie do instrukcji INSERT) do istniejących już w tablicy
wierszy. Do aktualizacji danych służy instrukcja UPDATE. Składnia
wymaga podania nazwy modyfikowanej tablicy, frazy SET oraz
wyrażenia przypisującego podanej kolumnie podaną wartość.
Opcjonalnie można podać więcej takich wyrażeń oraz za pomocą
frazy WHERE ustawić opcje selekcji wierszy do aktualizacji.

UPDATE nazwa_tabeli SET kolumna1=wartość1


[, kolumna2=wartość2…]
[WHERE opcje_selekcji];

Bazy danych - SQL


Usuwanie danych
Do usuwania danych służy instrukcja DELETE. Składnia
wymaga podania frazy FROM, a następnie nazwy
tablicy, z której chcemy usuwać dane. Opcjonalnie
można za pomocą frazy WHERE ustawić opcje selekcji
wierszy do usuwania.
DELETE FROM nazwa_tabeli [WHERE opcje_selekcji];

Bazy danych - SQL

You might also like