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



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

CREATE USER

Projektowanie systemów baz danych

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

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Wykład 05 Bazy danych

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

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

Instalacja MySQL.

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

Język SQL, zajęcia nr 1

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Administrowanie serwerami baz danych ZADANIA ADMINISTRATORA BAZ DANYCH

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

Bazy Danych i Usługi Sieciowe

Bazy danych i usługi sieciowe

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

Po instalacji serwera MYSQL dostępne jest konto o nazwie root. Domyślnie nie ma ono przypisanego hasła, aczkolwiek podczas procesu konfiguracji jest

Bazy danych. Dr inż. Paweł Kasprowski

Autor: Joanna Karwowska

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

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

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

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

Wykład 5: PHP: praca z bazą danych MySQL

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

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

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

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

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

Bazy danych. Polecenia SQL

Bazy danych 7. SQL podstawy

Podstawowe informacje o bazach danych. Technologie Informacyjne

Wykład 5. SQL praca z tabelami 2

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

Uprawnienia, role, synonimy

Relacyjne bazy danych. Podstawy SQL

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

Oracle11g: Wprowadzenie do SQL

Systemy GIS Tworzenie zapytań w bazach danych

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

Bazy danych 10. SQL Widoki

Bazy danych i usługi sieciowe

Wykład 4. SQL praca z tabelami 1

Paweł Rajba

Programowanie w Ruby

SIECI KOMPUTEROWE I BAZY DANYCH

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

Bazy danych 5. Samozłaczenie SQL podstawy

Wykład 8. SQL praca z tabelami 5

Komunikacja z bazą danych psql

Relacyjne bazy danych. Podstawy SQL

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

mysql> UPDATE user SET Password=PASSWORD('pass') WHERE user='root'; Query OK, 2 rows affected (0.05 sec) Rows matched: 2 Changed: 2 Warnings: 0

Przestrzenne bazy danych Podstawy języka SQL

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Składowane procedury i funkcje

Internetowe bazy danych

Wyzwalacze (triggery) Przykład

Zarządzanie systemami informatycznymi. Zarządzanie internetową bazą danych MySQL

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Bazy danych - Materiały do laboratoriów VIII

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

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

SQL 4 Structured Query Lenguage

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Widok Connections po utworzeniu połączenia. Obszar roboczy

Wdrożenie modułu płatności eservice. dla systemu Magento

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Kurs. Podstawy MySQL

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

Autor: Joanna Karwowska

2. Podstawy języka SQL

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Administracja bazami danych. dr inż. Grzegorz Michalski

SQL> startup pfile=./admin/pfile/initdbx.ora. SQL> create spfile from pfile='$home/admin/pfile/initdbx.ora' create user bolek identified by bolek;

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

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

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

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu

SQL (ang. Structured Query Language)

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

Wykład :45 BD-1 W_3

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Systemy internetowe. Wykład 4 mysql. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. UŜytkownicy i schematy (2) UŜytkownicy i schematy (1) baza danych: ZESP99

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37

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

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

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

Część VI Baza danych MySQL i PHP

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

Transkrypt:

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

Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych SZRBD Dostęp do bazy danych Wyszukiwanie danych Wprowadzanie danych Usuwanie danych Modyfikacja danych Łatwy do nauki Copyrights by Arkadiusz Rzucidło 2

Części języka SQL DDL (Data Definition Language) Pozwala tworzyć, modyfikować i usuwać tabele w bazie danych Zawiera polecenia tworzenia struktury bazy danych tworzenie indeksów, połączeń pomiędzy tabelami zależności w bazie danych DQL (Data Query Language) Wykonywanie zapytań w bazie danych Wyszukiwanie danych Porządkowanie danych DML (Data Manipulation Language) Składnia związana z manipulowaniem danymi w bazie danych Dodawaniem nowych danych Modyfikowanie Usuwanie danych z tabel Copyrights by Arkadiusz Rzucidło 3

Tworzenie bazy danych Opracowanie struktury bazy danych Utworzenie tabel Rejestrowanie użytkowników Przykłady działania poleceń w języku SQL będą przedstawiane na przykładzie bazy danych MySQL Copyrights by Arkadiusz Rzucidło 4

Tworzenie bazy danych Składnia polecenia: create database nazwa_bazy_danych Copyrights by Arkadiusz Rzucidło 5

Rejestrowanie użytkowników System MySQL może obsługiwać wielu użytkowników Użytkownik root Uprzywilejowany Tylko cele administracyjne Użytkowników posiadać konto w systemie Nazwa Hasło Przywileje do bazy danych (obiektów bazy danych) Prawo do wykonywania określonego działania na wskazanym obiekcie Idea zbliżona do koncepcji praw dostępu do plików Zasada najmniejszego przywileju Copyrights by Arkadiusz Rzucidło 6

Rejestrowanie użytkowników Przydzielanie przywilejów GRANT Odbieranie przywilejów REVOKE Cztery poziomy uprzywilejowania: Globalny Baza danych Tabela Kolumna Copyrights by Arkadiusz Rzucidło 7

Polecenie GRANT Składania: GRANT przywileje [ kolumny] ON obiekt TO identyfikatro_użytkownika [IDENTIFIED BY hasło ] [WITH GRANT OPTINS] Przywileje postać listy przywilejów oddzielonych przecinkami Kolumny wskazuje kolumny do jakich przywileje mają zastosowanie (pojedyncza nazwa kolumny lub lista oddzielona przecinkami) Obiekt wskazuje bazę lub tabelę, do której zostaną zastosowane przywileje. *.* lub * określa wszystkie obiekty w systemie (przywilej na poziomie globalnym). Częstszy zapis to nazwa_bazy.* Identyfikator_użytkownika identyfikator logowania się do systemu MySQL. Wartość może zawierać nazwę komputera np. laura@localhost, laura@gdzieindziej.pl Hasło hasło dostępu do serwera. With grant option wskazanie, że użytkownik będzie mógł nadawać równoważne sobie uprawnienia do obiektów, którymi administruje Copyrights by Arkadiusz Rzucidło 8

Typy i poziomy przewilejów Trzy typy przywilejów Zwykłych użytkowników Tylko najbardziej konieczne Dotyczące konkretnych poleceń SQL Nie wpływające na poziom bezpieczeństwa bazy danych Administratorów Administrowanie bazą danych Specjalne Opcje dodatkowe Copyrights by Arkadiusz Rzucidło 9

Przywileje Przywileje użytkownika Przywilej Zastosowanie Opis SELECT Tabele, kolumny Pozwala na wyszukiwanie wierszy i rekordów z tabel INSERT Tabele, kolumny Pozwala na wstawienie nowych wierszy do tabel UPDATE Tabele, kolumny Pozwala na zmianę wartości wierszy zapisanych w tabelach DELETE Tabele Pozawala na usuwanie wierszy z tabel INDEX Tabele Pozwala na tworzenie i usuwanie indeksów w poszczególnych tabelach ALTER Tabele Pozwala na dokonywanie zmian w strukturze istniejących tabel: dodawanie, usuwanie kolumn, zmiana nazwy kolumn CREATE Baza danych, tabele Tworzenie nowych baz danych oraz tabel DROP Bazy danych, tabele Pozwala na usuwanie tabel oraz baz danych Copyrights by Arkadiusz Rzucidło 10

Przywileje Przywileje administratorskie Przywilej Opis RELOAD SHUTDOWN PROCESS FILE Pozwala na powtórne załadowanie tabel zawierających metadane Umożliwia zakończenie pracy serwera MySQL Pozwala na śledzenie procesów wykonywanych przez serwer i ich przerywanie Pozwala na wczytywanie danych z plików do tabel i odwrotnie Przywileje specjalne Przywilej Opis ALL USAGE Nadaje wszystkie przywileje z poprzednich tabel Nie nadaje żadnych przywilejów. Powoduje zarejestrowanie użytkownika i pozwala na na zalogowanie się do serwera. Pozostałe czynności nie są udostępniane. Copyrights by Arkadiusz Rzucidło 11

Przykłady Wszystkie przywileje do bazy danych dla Kasi z hasłem acl123. Kasia może nadawać prawa do bazy danych grant all on * to kasia identyfied by acl123 with grant option; Zabranie praw Kasi revoke all on * from kasia; Nadanie ograniczonych przywilejów do bazy danych książki Jurkowi grant select, insert, update, delete on ksiazki.* to jurek; Ograniczenie praw dostępu do bazy danych książki revoke alter, create,drop on ksiazki.* from Zosia Copyrights by Arkadiusz Rzucidło 12

Tworzenie tabel bazy danych Wskazanie bazy danych z której użytkownik chce korzystać Uzyskanie listy dostępnych baz danych: show batabases; Wybranie konkretnej bazy danych: use nazwa_bazy danych Przykład: mysql> use biblioteka; Tworzenie tabel CREATE TABLE nazwa_tabeli struktura_tabeli; Przykład: mysql> create table klienci (id_klienta int unsigned not null auto_increment primary key, imie varchar(15), nazwisko varchar(30), d_ur date); Query OK, 0 rows affected (0.01 sec) Copyrights by Arkadiusz Rzucidło 13

Tworzenie tabel Sprawdzenie wykonania operacji tworzenia tabeli Wyświetlenie opisu tabeli Copyrights by Arkadiusz Rzucidło 14

Automatyczne tworzenie tabel Możliwość automatycznego tworzenia struktury bazy danych za pomocą skryptów Przykład: create table klienci (id_klienta int unsigned not null auto_increment promatry key, imie varchar(15), nazwisko varchar(30), d_ur date); create table ksiazki (id_ksiazki int unsigned not null auto_increment promatry key, tytul varchar(60) autor varchar(30), kategoria int); create table zdarzenia (id_zdarzenia int unsigned not null auto_increment promatry key, id_klietna int not null, id_ksiazki int not null, data_wyp date not null, data_odd date); create table kategoria (kategoria varchar(30) not null primary key); Zawartość skryptu biblioteka.sql uruchamia się za pomocą komendy mysql < biblioteka.sql Copyrights by Arkadiusz Rzucidło 15

Dodatkowe atrybuty kolumn Not null oznacza, że pole musi posiadać wartość. Pominięcie oznacza zgodę na wartości puste w polu. Auto_increment - specjalny atrybut nadający wartości całkowitoliczbowe. Serwer nadaje automatycznie w kolumnie nowego wpisu wartość będącą maksymalną wartością w tej kolumnie powiększoną o 1. Kolumny takie muszą być indeksowane. Primary key kolumna oznaczona tym atrybutem jest kluczem podstawowym tabeli a wartości zawarte w niej muszą być unikatowe Unsigned tylko wartości nieujemne Default -określa wartość domyślną dla kolumny Copyrights by Arkadiusz Rzucidło 16

Typy kolumn Copyrights by Arkadiusz Rzucidło 17

Typy kolumn Copyrights by Arkadiusz Rzucidło 18

Wstawianie danych do tabeli Wypełnienie tabeli danymi może być realizowane: Bezpośrednio poleceniem SQL z powłoki systemu Za pomocą zaprojektowanego interfejsu (np. strony WWW) Korzystając z dedykowanych interfejsów aplikacyjnych (Krasnal, WAMP) Składnia polecenia INSERT: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,...)] VALUES (wartość1, wartość2, ); INSERT [INTO] nazwa_tabeli SET kolumna1=wartość1, kolumna2=wartość2, ; Przykład: insert into klienci values ('','Jan','Kowalski','1975-12-10'); Copyrights by Arkadiusz Rzucidło 19

Automatyczne wypełnianie danymi use biblioteka; insert into ksiazki values (, A.Mickiewicz, Pan Tadeusz, 1 ), (, H.Sienkiewicz, Potop, 1 ), (, L.Welling, PHP i MySQL, 2 ); Uruchomienie skryptu Mysql < wypelnienie.sql Copyrights by Arkadiusz Rzucidło 20

Modyfikacja danych w tabelach Składnia polecenia UPDATE: UPDATE nazwa_tabeli SET nazwa_pola='nowa_wartość'; Przykład: mysql> update ksiazki set kategoria= 1 ; ustawienie dla wszystkich pozycji książkowych kategorii 1 mysql > update ksiazki set kategoria=2 where id_ksiazki=1; Copyrights by Arkadiusz Rzucidło 21

Copyrights by Arkadiusz Rzucidło 22

Koniec Źródła: L.Welling, L.Thomson; PHP i MySQL. Tworzenie stron WWW, Helion 2002. http://home.pl/support/ J.D.Ullman, J.Widom; Podstawowy Wykład z Systemów Baz Danych, WNT 2003. Copyrights by Arkadiusz Rzucidło 23