Wykład 5. SQL praca z tabelami 2

Podobne dokumenty
Wykład 6. SQL praca z tabelami 3

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Wykład 8. SQL praca z tabelami 5

Wykład 05 Bazy danych

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Relacyjne bazy danych. Podstawy SQL

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

SQL (ang. Structured Query Language)

Relacyjne bazy danych. Podstawy SQL

Język SQL, zajęcia nr 1

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Bazy danych 7. SQL podstawy

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

Wykład 4. SQL praca z tabelami 1

Wprowadzenie do baz danych

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Kurs. Podstawy MySQL

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Bazy danych. Polecenia SQL

SQL. Æwiczenia praktyczne

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

P o d s t a w y j ę z y k a S Q L

Widok Connections po utworzeniu połączenia. Obszar roboczy

Autor: Joanna Karwowska

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Podstawowe zapytania SELECT (na jednej tabeli)

Bazy Danych i Usługi Sieciowe

Autor: Joanna Karwowska

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Język SQL. Rozdział 2. Proste zapytania

Autor: Joanna Karwowska

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Wprowadzenie do języka SQL

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Bazy danych i usługi sieciowe

Ref. 7 - Język SQL - polecenia DDL i DML

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Systemy GIS Tworzenie zapytań w bazach danych

Zadania z SQLa (MS SQL Server)

Bazy danych - Materiały do laboratoriów VIII

SQL praca z tabelami 4. Wykład 7

Przestrzenne bazy danych Podstawy języka SQL

Bazy danych 5. Samozłaczenie SQL podstawy

Ćwiczenie zapytań języka bazy danych PostgreSQL

SIECI KOMPUTEROWE I BAZY DANYCH

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Bazy danych 6. Klucze obce. P. F. Góra

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Bazy danych 10. SQL Widoki

Bazy danych SQL Server 2005

Bazy danych. dr inż. Arkadiusz Mirakowski

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

Bazy danych 4. SQL podstawy. P. F. Góra

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Autor: Joanna Karwowska

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

1. Sprawdzenie ustawień konfiguracyjnych. Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables

Instalacja MySQL.

Struktura drzewa w MySQL. Michał Tyszczenko

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować:

Oracle PL/SQL. Paweł Rajba.

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Projektowanie systemów baz danych

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

Technologie baz danych

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Bazy danych. Dr inż. Paweł Kasprowski

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

Grupowanie i funkcje agregujące

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Komunikacja z bazą danych psql

Jerzy Nawrocki, Wprowadzenie do informatyki

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Paweł Rajba

Połączenie z bazą danych : mysql h u root -p Enter password: *******

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

ACESS- zadania z wykorzystaniem poleceń SQL

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image)

Laboratorium Bazy danych SQL 2

Transkrypt:

Wykład 5 SQL praca z tabelami 2

Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1, wartosc2,, wartoscn) W jej wyniku dodawany jest wiersz, w którym w kolumnie1 jest wartość 1, w kolumnie 2 jest wartość 2 itd. Słowo INTO można często pominąć. Przykłady dla tabeli: CREATE TABLE osoby ( id INTEGER PRIMARY KEY NOT NULL, imie VARCHAR(20) NOT NULL, nazwisko VARCHAR(30) NOT NULL, pesel CHAR(11) )

Wypełnianie tabel danymi Przykłady: INSERT INTO osoby (id, imie, nazwisko, pesel) VALUES (1, Jan, Kowalski, 01234567890 ); lub przejrzyściej INSERT INTO osoby (id, imie, nazwisko, pesel) VALUES (1, Jan, Kowalski, 01234567890 ); gdzie ciągi znaków zostały ujęte w apostrofy (można też użyć cudzysłowów). Gdy wprowadzamy wartości dla wszystkich kolumn to ich nazwy można pominąć: INSERT INTO osoby VALUES (1, Jan, Kowalski, 01234567890 ); Można pominąć wartości w niektórych kolumnach o ile nie mają one atrybutu NOT NULL INSERT INTO osoby VALUES (3, Janusz, Nowak, NULL); lub INSERT INTO osoby (id, imie, nazwisko) VALUES (3, Janusz, Nowak ); Natomiast pominięcie kolumny o atrybucie NOT NULL kończy się błędem INSERT INTO osoby (id, nazwisko, pesel) VALUES (3, Nowak, 89012345678); ERROR

Wypełnianie tabel danymi Przykłady: Kolejność wprowadzania wartości do kolumn jest dowolna, niekoniecznie taka jak w definicji tabeli. INSERT INTO osoby (pesel, id, nazwisko, imie) VALUES ( 23456789012,5, Arkuszewski, Janusz ); Próba wprowadzenia duplikatu wiersza prowadzi do błędu. Aby uniknąć duplikowania wartości klucza głównego należy przy tworzeniu tabeli użyć np.: CREATE TABLE test ( id INTEGER PRIMARY KEY NOT NULL AUTO_INCREMENT. ) i wówczas:

Wypełnianie tabel danymi Przykłady: INSERT INTO osoby (imie, nazwisko, pesel ) VALUES ( Janusz, Arkuszewski, 23456789012 ); lub INSERT INTO osoby (id, imie, nazwisko, pesel ) VALUES (DEFAULT, Janusz, Arkuszewski, 23456789012 ); W MySQL zamiast DEFAULT można również uzyć NULL lub 0.

Wypełnianie tabel danymi Język SQL pozwala również na wstawianie wielu wierszy dzięki instrukcji: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1a, wartosc2a,, wartoscna), (wartosc1b, wartosc2b,, wartoscnb),.. (wartosc1z, wartosc2z,, wartoscnz) Przykład: INSERT INTO osoby (id, imie, nazwisko, pesel) VALUES (15, Anna, Kowalska, 01234567891 ) (16, Janina, Nowak, 12345678912 ) (17, Jan, Malinowski, 23456789123 )

Wypełnianie tabel danymi Tabele można również wypełniać drugą wersją instrukcji INSERT INTO: INSERT [INTO] nazwa_tabeli SET kolumna1=wartosc1, kolumna2=wartosc2,, kolumnan=wartoscn na przykład: INSERT INTO osoby SET id=1,imie= Jan, nazwisko= Kowalski, pesel= 01234567890 ; lub bardziej przejrzyście INSERT INTO osoby SET id=1, imie= Jan nazwisko= Kowalski pesel= 01234567890

Pobieranie danych z tabel Dane zapisane w tabelach bazy danych pobiera się instrukcją SELECT: SELECT kolumna1, kolumna2,, kolumnan FROM tabela [WHERE warunek] [ORDER BY kolumna1, kolumna2,, kolumnan [ASC DESC] oznaczającą Pobierz wartości wymienionych kolumn z tabeli tabela, spełniających warunek warunek, a wyniki posortuj względem kolumn wymienionych w klauzuli ORDER BY, rosnąco [ASC] lub malejąco [DESC] Dla tabeli utworzonej za pomocą instrukcji i wcześniej wypełnionej : CREATE TABLE pracownicy ( id INTEGER PRIMARY KEY, imie VARCHAR(20) NOT NULL, nazwisko VARCHAR(30) NOT NULL, placa DECIMAL(7,2) NOT NULL, stanowisko VARCHAR(20), pesel CHAR(11) ) można przykładowo użyć instrukcji

Pobieranie danych z tabel Przykłady: SELECT * FROM pracownicy; czyli wyświetlanie zawartości wszystkich kolumn SELECT imie, nazwisko, stanowisko FROM pracownicy; czyli tylko zawartość kolumn imie, nazwisko i stanowisko SELECT * FROM pracownicy ORDER BY nazwisko ASC; czyli wyświetlanie w porządku rosnącym dla kolumny nazwisko SELECT * FROM pracownicy ORDER BY nazwisko ASC, placa DESC czyli wyświetlanie w porządku rosnącym dla kolumny nazwisko i malejącym dla placa Można również zmienić nazwy kolumn w wynikach wyświetlania (zapytania): SELECT imie, nazwisko, placa AS wynagrodzenie FROM pracownicy czyli w wyświetlaniu zamiast kolumny placa będzie nazwa wynagrodzenie

Pobieranie danych z tabel Dane wyświetlane instrukcją SELECT można wybierać za pomocą różnych warunków (operatorów relacji) umieszczonych za klauzulą WHERE np.: = (równy, id=10; nazwisko= Kowalski ) <> ( różny, id<>10; nazwisko<> Kowalski ) <, > (mniejszy; id<10; wiekszy; id>10) <=, >= (mniejszy równy; id<=10; wiekszy równy; id>=10) IS NULL (równy NULL; adres IS NULL) IS NOT NULL (różny od NULL); adres IS NOT NULL) BETWEEN N AND M (znajduje się w przedziale od N do M; id BETWEEN 2 AND 5) NOT BETWEEN N AND M (nie znajduje się w przedziale od N do M; id NOT BETWEEN 2 AND 5) IN(,,,) (argument równy jednej z wartości w nawiasie; id IN(1,3,5) ) NOT IN(,,,) (argument nierówny żadnej z wartości w nawiasie; id IN(1,3,5) ) i operatory logiczne AND, OR, XOR, NOT (imie= Jan AND nazwisko= Kowalski)

Pobieranie danych z tabel Dodatkowo można wykorzystywać wyrażenia operujące na ciągach znaków: wyrażenie LIKE wzorzec (wyrażenie pasuje do wzorca; imie LIKE Jan ) wyrażenie NOT LIKE wzorzec (wyrażenie nie pasuje do wzorca; imie NOT LIKE Jan ) w opisie wzorca moża wykorzystywać symbol _ zastępujący dowolny znak oraz symbol % zastępujący dowolna grupę znaków. Przykłady: SELECT * FROM pracownicy WHERE imie LIKE Ka% ; SELECT * FROM pracownicy WHERE id=3 OR id=5 OR id=7; SELECT * FROM pracownicy WHERE id IN(3,5,7); SELECT * FROM pracownicy WHERE placa > 1500 AND stanowisko <> kierownik AND pesel IS NOT NULL

Pobieranie danych z tabel W ramach instrukcji SELECT można również używać klauzuli DISTINCT, która gwarantuje niepowtarzalność wierszy wynikowych: SELECT nazwisko FROM pracownicy ORDER BY nazwisko (daje podwójne nazwiska np. Kowalski w wynikach zapytania) ale SELECT DISTINCT nazwisko FROM pracownicy ORDER BY nazwisko (nie pokaże duplikatów nazwisk np. Kowalski w wynikach zapytania)

Modyfikacja danych w tabelach Do modyfikacji danych w tabelach służy instrukcja UPDATE w postaci: UPDATE nazwa_tabeli SET kolumna1=wartość1, kolumna2=wartość2,, kolumna2=wartość2 [WHERE warunek] oznaczającą Zmień w tabeli nazwa_tabeli, w kolumnach spełniających warunek warunek, wartość kolumny kolumna1 na wartość wartość1, kolumny kolumna2 na wartość wartość2 itd.. Pominięcie warunku oznacza, że zmiany będą wykonane we wszystkich wierszach. Przykłady: UPDATE pracownicy SET pesel= 01234567890 ; UPDATE pracownicy SET pesel= 12345678901 WHERE id=7; UPDATE pracownicy SET pesel= 12345678993 WHERE pesel=92341678903; (w tym przykładzie należy być pewnym, że pesel 92341678903 nie występuje w bazie) UPDATE pracownicy SET nazwisko= Andrzejewski, placa= 2500.00 WHERE id=8; UPDATE pracownicy SET stanowisko= doradca WHERE stanowisko= sprzedawca ; (zmienia wszystkie wiersze ze stanowisk sprzedawca na doradca) UPDATE pracownicy SET stanowisko= doradca,placa= 1500 WHERE stanowisko= sprzedawca ; (zmienia wszystkie wiersze ze stanowisk sprzedawca na doradca i ich płace na 1500)

Usuwanie danych z tabeli Do usuwania danych z tabeli służy instrukcja DELETE w postaci: DELETE FROM nazwa_tabeli [WHERE warunek] Przykłady: DELETE FROM pracownicy; (usuwa wszystkie dane z tabeli pracownicy należy używać bardzo uważnie) DELETE FROM pracownicy WHERE id=5; (usuwa wiersz z id=5) DELETE FROM pracownicy WHERE id IN (1,3,5); DELETE FROM pracownicy WHERE id BETWEEN 1 AND 5;