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



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

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

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

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

Projektowanie systemów baz danych

Bazy danych 7. SQL podstawy

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

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

SIECI KOMPUTEROWE I BAZY DANYCH

Język SQL, zajęcia nr 1

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

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

Bazy danych 5. Samozłaczenie SQL podstawy

Bazy danych. Dr inż. Paweł Kasprowski

Dr Michał Tanaś(

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

Bazy danych. Polecenia SQL

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

2 Przygotował: mgr inż. Maciej Lasota

Wykład 4. SQL praca z tabelami 1

Wykład 5. SQL praca z tabelami 2

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

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

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Wykład 2. SQL 1 Structured Query Lenguage

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Systemy GIS Tworzenie zapytań w bazach danych

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

Wykład 05 Bazy danych

Język baz danych SQL cz.1

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

Przestrzenne bazy danych Podstawy języka SQL

Oracle11g: Wprowadzenie do SQL

Relacyjne bazy danych. Podstawy SQL

Wykład 8. SQL praca z tabelami 5

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

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

Tworzenie baz danych i tabel

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

Wyświetl imie i nazwisko ucznia, nazwę przedmiotu z którego otrzymał ocenę niedostateczną. Nazwij tę kwerendę oceny niedostateczne.

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

Relacyjne bazy danych. Podstawy SQL

SQL (ang. Structured Query Language)

Bazy danych 4. SQL- podstawy

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

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

SIECI KOMPUTEROWE I BAZY DANYCH

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

Imię i Nazwisko Data Ocena. Laboratorium 7

Paweł Rajba

Instrukcja CREATE TABLE

Bazy danych - wykład wstępny

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

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

Komunikacja z bazą danych psql

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Wprowadzenie do baz danych

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Wykład 6. SQL praca z tabelami 3

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Autor: Joanna Karwowska

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Wprowadzenie do SQL Użycie kwerend i SQL

SQL w praktyce. Miłej i owocnej nauki!!!

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

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

040 STRUCTURED QUERY LANGUAGE. Prof. dr hab. Marek Wisła

Bazy danych - Materiały do laboratoriów VIII

Autor: Joanna Karwowska

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

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

WPROWADZENIE DO JĘZYKA SQL

Widok Connections po utworzeniu połączenia. Obszar roboczy

Język SQL. Rozdział 2. Proste zapytania

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

LAB2. Dalsze ćwiczenia z podstaw języka SQL (CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT)

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

CREATE USER

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

ACESS- zadania z wykorzystaniem poleceń SQL

Wprowadzenie do języka SQL

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Kurs. Podstawy MySQL

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

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Oracle PL/SQL. Paweł Rajba.

SQL Structured Query Language

Aspekty aktywne baz danych

E.14 Bazy Danych cz. 16 SQL Tworzenie, modyfikowanie i usuwanie tabel

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Bazy danych Ćwiczenia projektowe

Wykład 5 Charakterystyka języka SQL. Elementy obliczeń relacyjnych.

Instrukcje DML INSERT, UPDATE, DELETE. COPY

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

Język SQL podstawy zapytań

Transkrypt:

Ref. 7 - Język SQL - polecenia DDL i DML Wprowadzenie do języka SQL. Polecenia generujące strukturę bazy danych: CREATE, ALTER i DROP. Polecenia: wprowadzające dane do bazy - INSERT, modyfikujące zawartość tabel - UPDATE i usuwające dane z tabel - DELETE. Do kupy poskładał: Paweł Kmak Język SQL (Structured Query Language) służy do manipulowania danymi umieszczonymi w relacyjnych bazach danych. Jest językiem uniwersalnym, dzięki czemu praca na różnych systemach baz danych sprowadza się do wydawania tych samych lub podobnych komend tzw. zapytań SQL Relacyjny system baz danych przechowuje wszystkie dane w tabelach. Każda tabela zawiera dane na konkretny temat, np. dane o klientach, pracownikach, towarach itp. System bazy danych zarządza tymi informacjami, pozwala m.in. na szybsze ich wyszukiwanie i zorganizowanie. Zapytania można zaliczyć do jednego z dwóch głównych podzbiorów: SQL DDL (ang. Data Definition Language, czyli Język Definicji Danych) SQL DML (ang. Data Manipulation Language, czyli Język Manipulacji Danymi) Każde zapytanie w SQL-u musi kończyć się znakiem ";" (średnik). DDL Dzięki DDL można operować na strukturach, w których dane są przechowywane - czyli np. dodawać, zmieniać i kasować tabele lub bazy. Najważeniejsze polecenia tej grupy to: CREATE (np. CREATE TABLE, CREATE DATABASE,...) - utworzenie struktury (bazy, tabeli, indeksu, itp.), DROP (np. DROP TABLE, DROP DATABASE,...) - całkowite usunięcie struktury, ALTER (np. ALTER TABLE ADD COLUMN...) - zmiana struktury (dodanie kolumny do tabeli, zmiana typu danych w kolumnie tabeli). DML DML służy do operacji na danych - do ich umieszczania w bazie, kasowania, przeglądania, zmiany. Najważniejsze polecenia z tego zbioru to: SELECT - pobranie z bazy danych, INSERT - umieszczenie danych w bazie, UPDATE - zmiana danych, DELETE - usunięcie danych z bazy. Dane tekstowe podawane muszą być zawsze w formie ograniczonej znakami pojedynczego cudzysłowu (').

CREATE Tabele zawierają pola, które określają jakie dane będzie zawierał pojedynczy rekord (inaczej: wiersz). Do utworzenia tabeli służy polecenie SQL CREATE TABLE: CREATE TABLE nazwa_tabeli struktura_tabeli; W miejsce struktura_tabeli należy wstawić dokładną specyfikację poszczególnych pól, jakie powinna zawierać tabela. Przykładowe polecenie SQL: CREATE TABLE pracownicy ( imie VARCHAR(30), nazwisko VARCHAR(30), data_urodzenia DATE, placa DECIMAL(10,2) ); Po każdej nazwie pola następuje definicja typu danych, jakie będzie ono zawierało. Istnieje możliwość określenia wartości domyślnej, jakie przyjmie każde nowe pole w momencie, kiedy nie zostanie wypełnione innymi danymi. Wartości domyślne podaje się dla każdego pola po słowie kluczowym DEFAULT zaraz po definicji typu: CREATE TABLE pracownicy ( imie VARCHAR(30), nazwisko VARCHAR(30), data_urodzenia DATE DEFAULT '1950-01-01', placa DECIMAL(10,2) DEFAULT '1000.00' ); TYPY DANYCH w MySQL'u Liczby całkowite (INTEGER): INT, INTEGER - w takich kolumnach przechowujemy liczby całkowite z zakresu - 2147483648 do 2147483647 (4 bajty) TINYINT - liczba całkowita z zakresu -128 do 127 (1 bajt) SMALLINT - liczba całkowita z zakresu -32768 do 32767 (2 bajty) MEDIUMINT - liczba całkowita z zakresu -8388608 do 8388607 (3 bajty) BIGINT - liczba całkowita z zakresu -9223372036854775808 do 9223372036854775807 (8 bajtów)

Liczby rzeczywiste (REAL): FLOAT (M,D)- liczba rzeczywista z zakresu -3.402823466E+38 do - 1.175494351E-38 i 0 i 1.175494351E-38 do 3.402823466E+38 (4 bajty), REAL, DOUBLE - liczba rzeczywista z zakresu 1.7976931348623157E+308 do - 2.2250738585072014E-308 i 0 i 2.2250738585072014E-308 to 1.7976931348623157E+308 (8 bajtów) DECIMAL (M,D) gdzie M jest ilością znaczących pozycji w liczbie a D skalą liczby np.: DECIMAL(9,2) będzie miał zakres od -9999999.99 do 9999999.99 jest to liczba składająca się z dziewięciu pozycji i przesunięta o dwa miejsca w prawo Czasowe typy danych w MySQL'u DATETIME - w takiej kolumnie umieszczamy datę wraz z godziną w formacie : YYYY:MM:DD:HH:mm:SS (odpowiednio rok, miesiąc, dzień, godzina, minuta i sekunda), typ ten akceptuje zakres od '1000-01-01 00:00:00' do '9999-12-31 23:59:59' DATE - czyli data w formacie YYYY:MM:DD (rok, miesiąc, dzień), zakres od '1000-01-01' do '9999-12-31' TIME - godzina w formacie HH:mm:SS (godzina, minuta, sekunda) YEAR - rok YYYY (np.:2001) zakres od 1901 do 2155 (1 bajt) TIMESTAMP(n) - jest to data z godziną, precyzję tego zapisu ustalamy sami poprzez wartość n (dla przykładu n=14 oznacza datę i godzinę w formacie YYYY:MM:DD:HH:mm:SS a n=2 YY) zakres od 1970 do 2037 Łańcuchowe (znakowe) typy danych CHAR(n) - jest to łańcuch znaków o długości n, gdzie n może przyjmować wartości od 0-255, bez względu na to jaki łańcuch zapiszemy do takiej komórki tabeli, zawsze będzie zajmował n bajtów. VARCHAR(n) - ten typ danych pamięta łańcuch znaków oraz jego długość, wartość n określa maksymalną długość łańcucha, np.: jeśli do kolumny VARCHAR(10) zapiszemy łańcuch o długości 5 znaków to będzie on zajmował w bazie 6 bajtów BLOB - "pamięta" dane w formie binarnej, ze względu na maksymalną długość takiego ciągu znaków dzieli się na kilka podtypów: TINYBLOB (2^8 znaków), BLOB (2^16 znaków), MEDIUMBLOB (2^24 znaków), LONGBLOB (2^32 znaków) TEXT - dane tekstowe, podobnie jak BLOB ma odmiany ze względu na długość tekstu: TINYTEXT (2^8-256 znaków ), TEXT (2^16-65535 znaków), MEDIUMTEXT (2^24-16777216 znaków), LONGTEXT (2^32-4294967296 znaków) Typ wyliczeniowy ENUM dane przyjmują wartości spośród wcześniej przygotowanej przez nas listy. Lista taka może mieć maksymalnie 65535 elementów. Typ SET typ zbiorowy - pozycja taka może przyjmować 0 lub więcej wartości spośród listy przygotowanej podczas tworzenia tabeli. Przykład : dla definicji SET ("jeden", "dwa") do komórki tabeli możemy zapisać następujące wartości: "" lub "jeden" lub "dwa" lub "jeden, dwa". Definicja SET może mieć maksymalnie 64 elementy.

ALTER Do modyfikacji struktury tabeli służy polecenie ALTER TABLE. Zmodyfikowanie struktury tabeli zawierającej już jakieś dane spowoduje próbę podporządkowania istniejących danych nowemu formatowi. Dzięki temu poleceniu można dodawać, modyfikować, usuwać pola oraz manipulować indeksami. Ogólna postać polecenia przedstawia się następująco: ALTER TABLE nazwa_tabeli specyfikacja_struktury; W miejsce specyfikacja_struktury podajemy dokładną operację, jaką chcemy wykonać na danej tabeli. Aby dodać kolejne pole do istniejącej tabeli należy użyć polecenia: ALTER TABLE pracownicy ADD rozmiar_buta VARCHAR(10); Spowoduje to dodanie jednego pola o nazwie rozmiar_buta na końcu struktury tabeli. Aby zmienić typ jednego konkretnego pola użyjemy polecenia: ALTER TABLE pracownicy MODIFY rozmiar_buta INT; Aby usunąć konkretne pole ze struktury tabeli należy użyć polecenia: ALTER TABLE pracownicy DROP rozmiar_buta; Zmiana nazwy tabeli przedstawia się następująco: ALTER TABLE pracownicy RENAME zatrudnieni; DROP DROP jest to polecenie SQL do usuwania obiektów w systemie zarządzania relacyjną bazą danych DROP TABLE [nazwa obiektu] Przykładowo jeśli chcemy usunąć tabelę o nazwie klienci to wydajemy instrukcję: DROP TABLE klienci; W wyniku tego nastąpi usunięcie tabeli klienci z bazy danych.

INSERT Służy do wypełniania tabeli danymi. Polecenie SQL dla przykładowej tabeli: INSERT INTO pracownicy VALUES ('Jan', 'Kowalski', '2002-07-20', '1200.00'); Powyższe polecenie wstawi pojedynczy rekord do tabeli pracownicy. Aby wstawić kolejne rekordy należy ponowić powyższe zapytanie używając nowych danych: INSERT INTO pracownicy VALUES ('Aleksander', 'Borowiecki', '1952-08-06', '1500.34'); INSERT INTO pracownicy VALUES ('Aniela', 'Michałkowska', '1970-05-23', '854.29'); INSERT INTO pracownicy VALUES ('Katarzyna', 'Kowalska', '2002-07-02', '1200.00'); Polecenia INSERT można użyć także w innej formie. Za nazwą tabeli można wyspecyfikować listę pól, które będziemy wypełniać danymi. Pozostałe pola przyjmą puste lub domyślne wartości. Zapytanie z wyspecyfikowaną listą pól wygląda następująco: INSERT INTO pracownicy (imie, nazwisko) VALUES ('Izabela', 'Kwiatkowska'); UPDATE Poleceniem INSERT można wstawiać nowe dane do istniejącej tabeli. Do modyfikacji danych już wcześniej umieszczonych w tabeli służy polcenie UPDATE. Jego składnia jest następująca: UPDATE nazwa_tabeli SET nazwa_pola='nowa_wartość'; Po słowie kluczowym SET podajemy kolejno (po przecinku) nazwy kolumn wraz z nowymi wartościami, jakie powinny przyjąć. Po wydaniu poniższego polecenia: UPDATE pracownicy SET imie='genowefa'; wszystkie rekordy w polu imie będą miały wartość 'Genowefa': Nie jest to najczęściej pożądana sytuacja. Zazwyczaj chcemy zmienić dane dotyczące tylko jednego lub wybranych rekordów. Do określenia czego ma dotyczyć zmiana służy klauzula WHERE podawana na końcu polecenia UPDATE. W celu zmiany imienia tylko dla Izabeli Kwiatkowskiej polecenie UPDATE będzie wyglądać następująco: UPDATE pracownicy SET imie='genowefa' WHERE nazwisko='kwiatkowska';

DELETE Do usunięcia danych z tabeli służy polecenie DELETE. Aby usunąć wszystkie dane z tabeli należy wydać polecenie: DELETE FROM nazwa_tabeli; Można użyć także warunku wyboru, dzięki któremu wyspecyfikujemy dane przeznaczone do usunięcia. Aby usunąć z przykładowej tabeli pracownicy wszystkie rekordy, w których płaca jest wyższa od 1000 należy wydać następujące polecenie: DELETE FROM pracownicy WHERE placa > 1000; INDEKSY Indeksy, w dużym uproszczeniu, powodują przyśpieszenie operacji wyszukiwania wykonywanych na bardzo dużych tabelach. Indeks należy zakładać dla pól, według których najczęściej jest wykonywane wyszukiwanie. Modyfikacja indeksów przebiega w podobny sposób do modyfikacji struktury tabeli. Dodanie indeksu na polu nazwisko będzie wyglądało następująco: ALTER TABLE pracownicy ADD INDEX nazwisko_idx (nazwisko); Spowoduje to utworzenie indeksu o nazwie nazwisko_idx opartego na kolumnie nazwisko Usunięcie indeksu odbywa się za pomocą polecenia: ALTER TABLE DROP INDEX nazwisko_idx; SELECT Aby pobrać dane zapisane w tabeli należy użyć zapytania SELECT. Jego postać ogólna prezentuje się następująco: SELECT co_zaprezentować FROM nazwa_tabeli [WHERE warunki_wyszukiwania] [ORDER BY sortowanie [ASC DESC],...] [LIMIT [ofset,] ilość_wierszy]; W miejscu co_zaprezentować podaje się (po przecinku) listę kolumn, które chcemy zawrzeć w zestawieniu. W miejscu nazwa_tabeli podajemy nazwę tabeli, z której pobieramy dane. Wybierając trzy kolumny do zestawienia z tabeli pracownicy piszemy następująco: SELECT imie, nazwisko, placa FROM pracownicy; Spowoduje to wyświetlenie wszystkich rekordów, jednak w zestawieniu zostaną zaprezentowane jedynie wartości trzech pól: imie, nazwisko i placa.