Integracja Systemów Sterowania. MySQL/SQL



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

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

Język SQL, zajęcia nr 1

Bazy danych 7. SQL podstawy

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Relacyjne bazy danych. Podstawy SQL

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

Wykład 2. SQL 1 Structured Query Lenguage

Relacyjne bazy danych. Podstawy SQL

Paweł Rajba

Bazy danych 5. Samozłaczenie SQL podstawy

Projektowanie systemów baz danych

korzyści finansowe przewaga pomysłu nad kapitałem tworzenie nowych branż tworzenie mechanizmów pochodnych (np. serwis snip).

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

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

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Przestrzenne bazy danych Podstawy języka SQL

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

Laboratorium nr 1. Temat: Wprowadzenie do MySQL-a

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

Systemy GIS Tworzenie zapytań w bazach danych

Bazy danych. Polecenia SQL

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

Kurs. Podstawy MySQL

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

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

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

Wykład 05 Bazy danych

Bazy danych. Dr inż. Paweł Kasprowski

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

Wykład 5. SQL praca z tabelami 2

2 Przygotował: mgr inż. Maciej Lasota

Język baz danych SQL cz.1

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

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

Instalacja MySQL.

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

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

SQL (ang. Structured Query Language)

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

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

Oracle11g: Wprowadzenie do SQL

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

Bazy danych SQL Server 2005

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

BAZY DANYCH JĘZYK ZAPYTAŃ BAZ DANYCH SQL. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

SIECI KOMPUTEROWE I BAZY DANYCH

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

Dr Michał Tanaś(

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

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

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

Autor: Joanna Karwowska

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

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

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

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

Bazy danych 10. SQL Widoki

Bazy danych 4. SQL- podstawy

ACESS- zadania z wykorzystaniem poleceń SQL

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

Współczesne systemy baz danych

Bazy Danych i Usługi Sieciowe

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Podyplomowe Studium Programowania i Baz Danych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Bazy danych i usługi sieciowe

SIECI KOMPUTEROWE I BAZY DANYCH

Wykład 8. SQL praca z tabelami 5

Wykład 4. SQL praca z tabelami 1

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Wprowadzenie do baz danych

Współczesne systemy baz danych

Bazy danych - wykład wstępny

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

Język SQL podstawy zapytań

Oracle PL/SQL. Paweł Rajba.

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

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

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

MySQL. Darmowa baza danych. Æwiczenia praktyczne

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

Wprowadzenie do JDBC z wykorzystaniem bazy H2

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

Bazy danych SQL. Wstp. SQL (Structured( Query Language) strukturalny jzyk zapyta

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

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

Podyplomowe Studium Programowania i Baz Danych

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

Struktura drzewa w MySQL. Michał Tyszczenko

Database Connectivity

Część VI Baza danych MySQL i PHP

PODZAPYTANIE (SUBSELECT)

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

Transkrypt:

1

MySQL podstawowe cechy: system zarzdzania bazami danych relacyjna baza danych; dane zapamitywane w osobnych tabelach, a nie w jednej duej tabeli licencja typu open source - General Public License (GPL) konfiguracja serwer klienci wydajny w porównaniu z innymi DBMS (miliony rekordów, lub dziesitki tysicy tabel); maksymalny rozmiar tabel liczony w setki GB (zalene od platformy); wstawienie 36000 rekordów po 20 pól trwa ok. 2 sekundy (MS-Access to samo ok. 5-6 sek.) napisany w C/C++; dla wielu platform; API dla licznych jzyków wielowtkowe jdro; moliwo uycie wielu CPU sortowanie wg. opcji narodowych róne wersje jdra: ze ledzeniem, optymalizowana, dla NT/2000/XP, uywajca named pipes 2

Załadowanie MySQL: http://www.mysql.com/ (np. Oracle (trial) mona załadowa z www.oracle.com) Uaktywnienie serwera (moe by równie instalowana jako serwis): mysqld --standalone Aktywowanie konsoli (monitora) połczenie z serwerem MySQL: mysql h host u user p mysql - to dla konta anonymous Zakoczenie pracy z konsol: quit Podstawowa pomoc: \help Sprawdzenie statusu serwera: \s Proste zapytania: Select version(); select Version(), Now(), user(), current_date(); 3

Podstawowe komendy mysql Poka istniejce bazy danych: show databases; Baza mysql opisuje prawa dostpu uytkowników Wybór aktualnej bazy danych: use DataBaseName Pokazanie tabel aktualnej bazy: show tables; Pokazanie struktury tabeli: explain TableName; describe TableName; 4

Typy danych M maksymalny wywietlany rozmiar (max.255) D liczba cyfr po kropce dziesitnej (max. 30, nie wicej ni M-2) [ ] cz opcjonalna ZEROFILL domylnie wpisuje zero Typy danych dane numeryczne TINYINT[(M)] [UNSIGNED] [ZEROFILL] od 128 do 127 lub od 0 do 255; 1 bajt BIT, BOOL to samo co TIMYINT(1) SMALLINT[(M)] [UNSIGNED] [ZEROFILL] od 32768 do 32767 lub od 0 do 65535; 2 bajty MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] 3 bajty INT[(M)] [UNSIGNED] [ZEROFILL] oraz INTEGER[(M)] [UNSIGNED] [ZEROFILL] 4 bajty BIGINT[(M)] [UNSIGNED] [ZEROFILL] 8 bajtów FLOAT[(M,D)] [UNSIGNED] [ZEROFILL] od -3.402823466E+38 do -1.175494351E-38, 0.0 oraz Od 1.175494351E-38 do 3.402823466E+38 DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL] od -1.7976931348623157E+308 do -2.2250738585072014E-308, 0.0 oraz od 2.2250738585072014E-308 do 1.7976931348623157E+308 DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL] oraz REAL[(M,D)] [UNSIGNED] [ZEROFILL] to to samo co DOUBLE FLOAT(precision) [UNSIGNED] [ZEROFILL] dla precision<=24 równowane FLOAT, dla 25<=precision<=53 równowane DOUBLE DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL], DEC[(M[,D])] [UNSIGNED] [ZEROFILL] 5 NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL] niespakowana liczba; podobne do CHAR

Typy danych data i czas DATE data od 1000-01-01 do 9999-12-31 DATETIME - od 1000-01-01 00:00:00 do 9999-12-31 23:59:59 TIMESTAMP[(M)] zakres od 1970-01-01 00:00:00 do roku 2037; zalenie od M wywietlany jako YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD lub YYMMDD; uywany do zapisu czasu wykonania operacji INSERT i UPDATE jest automatycznie uaktualniany TIME czas w zakresie od -838:59:59 do 838:59:59 YEAR[(2 4)] rok 2 cyfrowy (1970-2079) lub 4 cyfrowy (1901 do 2155) Typy danych łacuchy znakowe [NATIONAL] CHAR(M) [BINARY] znaki (maksymalnie 255); porównywanie nie bierze pod uwag Wielkoci liter chyba e wyspecyfikowany jest parametr BINARY CHAR synonim CHAR(1) [NATIONAL] VARCHAR(M) [BINARY] łacuch o zmiennej długoci (max. 255 znaków) TINYBLOB, TINYTEXT BLOB lub TEXT o maksymalnej długoci 255 znaków BLOB, TEXT BLOB lub TEXT o maksymalnej długoci 65535 znaków MEDIUMBLOB, MEDIUMTEXT BLOB lub TEXT o maksymalnej długoci 16777215 znaków LONGBLOB, LONGTEXT BLOB lub TEXT o maksymalnej długoci 4294967295 znaków ENUM('value1','value2',...) łacuch zawierajcy elementy z typu wyliczeniowego SET('value1','value2',...) łacuch zawierajcy zero lub wicej elementów ze zdefiniowanego zbioru 6

Wykonywanie komend w trybie wsadowym: mysql < batch_file_name; Administrowanie np. za pomoc phpmyadmin wykorzystanie PHP do zarzdzania MySQL 7

SQL Structured Query Language jzyk dla RDBMS SQL to jzyk 4-generacji (4GL) (np. C to jzyk 3GL) SQL jest niezaleny od platformy i produktu (w znacznym stopniu, cho znaczce rónice) Jzyk strukturalny, a nie proceduralny. Opisuje na jakich danych operuje, ale nie opisuje jak to robi W relacyjnej bazie danych informacja podzielona jest na odrbne zbiory (tabele). Tabele składaj si z wierszy (rekordów). 8

Definiowanie danych Access/MySQL CREATE DATABASE [IF NOT EXISTS] db_name; DROP DATABASE [IF EXISTS] db_name; CREATE TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [select_statement]; create_definition: col_name type [NOT NULL NULL] [DEFAULT default_value] [AUTO_INCREMENT] [PRIMARY KEY] [reference_definition] or PRIMARY KEY (index_col_name,...) or INDEX [index_name] (index_col_name,...) or UNIQUE [INDEX] [index_name] (index_col_name,...) Klucz podstawowy (unikalny); pola umoliwiajce wizanie z rekordami innych tabel Warto NULL oznacza brak danej (a nie np. pusty łacuch lub zero) 9

Definiowanie danych CREATE TABLE firmy( id NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), nazwa CHAR(30) NOT NULL, adres CHAR(50), nip CHAR(10) ); CREATE TABLE nowe_firmy (id, nip) AS (SELECT * FROM firmy); ALTER TABLE tabela MODIFY nazwa_kol typ; ALTER TABLE tabela ADD nazwa_kol typ; ALTER TABLE firmy modify adress CHAR(70); DROP TABLE nazwa_tabeli; DROP DATABASE nazwa_bazy_danych; 10

Wybieranie danych SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] [HIGH_PRIORITY] [DISTINCT DISTINCTROW ALL] select_expression,... [INTO {OUTFILE DUMPFILE} 'file_name' export_options] [FROM table_references [WHERE where_definition] [GROUP BY {unsigned_integer col_name formula} [ASC DESC],... [HAVING where_definition] [ORDER BY {unsigned_integer col_name formula} [ASC DESC],...] [LIMIT [offset,] rows] [PROCEDURE procedure_name] [FOR UPDATE LOCK IN SHARE MODE]] 11

Wybieranie danych SELECT Tw, Trefco, Tzco FROM co WHERE (((co.tw) Is Not Null)); SELECT * FROM co WHERE (((co.tw) Is Not Null)); SELECT * FROM co ; SELECT DISTINCT Tw FROM co WHERE Tw IS NOT NULL ORDER BY Tw; SELECT DISTINCT Tw, Tzco FROM co WHERE Tw IS NOT NULL AND Tzco IS NOT NULL ORDER BY Tw; Operatory arytmetyczne: +, -, *, / i % (modulo) SELECT T, co.tw, Trefco, (55-1.75*Tw) AS OblTRef, Trefco-OblTref AS Rónica FROM co WHERE Tw IS NOT NULL ORDER BY T; SELECT T FROM co WHERE Tw IS NULL; Operatory relacji: >, >=, <, <=, =, <> lub!= SELECT T, co.tw, Tzm, Tzco FROM co WHERE Tw<0 AND Tw >-10; 12

Wybieranie danych Operatory znakowe: LIKE ( _ oraz % ) oraz lub + (konkatenacja) SELECT Opis.Tabela, Opis.Pole, Opis.Opis FROM Opis WHERE Opis.Pole LIKE 'T_'; SELECT Opis.Pole + ' ' + Opis.Opis FROM Opis; Operatory logiczne: AND, OR, NOT SELECT DISTINCT Tw FROM Co WHERE Tw < 10 AND Tw >= 0 ORDER BY Tw; SQL oparty na teorii zbiorów: operatory sumy z wyłczeniem powtarzajcych si wierszy UNION, sumy bez eliminacji powtórze UNION ALL, iloczynu zbiorów INTERSECT oraz rónicy zbiorów MINUS SELECT Tw FROM Co WHERE Tw < 10 AND Tw >= 0 UNION SELECT Tw FROM Co WHERE Tw >=15; 13

Wybieranie danych Operatory In oraz BETWEEN SELECT * FROM Co WHERE Tw IN (10.0, 5.0, 0.0) ORDER BY Tw; SELECT T, Tw, Tzm FROM Co WHERE Tzm Between 50 And 60 ORDER BY T; SELECT Co.T, CWU.T, Co.Tzm, Cwu.Tzwu FROM CO, CWU WHERE Left(CStr(CO.T), 16) = Left(CStr(CWU.T), 16) AND Left(CStr(CO.T), 4) <= "2000"; 14

Agregacja danych COUNT zwraca liczb rekordów okrelonych fraz WHERE SELECT COUNT(*) AS POWYZEJ_NORMY FROM Co WHERE Tzco > 55-1.75*Tw +5; SUM zwraca sum wartoci kolumny AVG oblicza redni warto w kolumnie SELECT Sum(Tzco-(55-1.75*Tw))/Count(*) AS AVG_ABOVE FROM Co WHERE Tzco>55-1.75*[Tw]; SELECT AVG(Tzco-(55-1.75*Tw)) AS AVG_ABOVE FROM Co WHERE Co.Tzco>55-1.75*[Tw]; MAX, MIN maksimum oraz minimum danych z kolumny SELECT COUNT(*) AS COUNT, AVG(Tw) AS AVG, MIN(Tw) AS MIN, MAX(Tw) AS MAX FROM Co; Funkcje agregujce nie pracuj z fraz WHERE!!! SELECT * FROM Co WHERE Tw=MAX(Tw);!!! BŁD!!! ale SELECT * FROM Co WHERE Tw=(SELECT MAX(Tw) FROM Co); 15

Funkcje arytmetyczne ABS, CEIL, FLOOR, COS, COSH, SIN, SINH, TAN, TANH, EXP, LN, LOG, MOD, POWER, SIGN, SQRT (róne w rónych BDMS) Funkcje znakowe CHR (znak odpowiadajcy liczbie), LOWER i UPPER (zmiana wielkoci liter), REPLACE, SUBSTRING (wybór fragmentu łacucha) i wiele innych ale zalene od DBMS 16

Porzdkowanie danych SELECT Tw, Tzco FROM Co WHERE Tw IS NOT NULL AND Tzco IS NOT NULL ORDER By Tw ASC, Tzco DESC; GROUP BY Agregacja danych np. uzyskanie redniej Tzco dla kadej Tw SELECT Tw, AVG(Tzco) FROM Co GROUP BY Tw; HAVING WHERE nie działa z wyraeniami agregujcymi, ale robi to HAVING w stosunku do frazy GROUP BY SELECT Tw, AVG(Tzco) AS AVG_Tzco, AVG(Tzm) AS AVG_Tzm FROM Co GROUP BY Tw WHERE Tw < 0;!!! BŁD!!! SELECT Tw, AVG(Tzco) AS AVG_Tzco, AVG(Tzm) AS AVG_Tzm FROM Co GROUP BY Tw HAVING Tw < 0; 17

Łczenie tabel Krzyowe generuje iloczyn kartezjaski TO BARDZO BUO REKORDÓW Select * FROM Opis,Nastawa_Zdarzeniowa; SELECT T1.Tabela, T2.NazwaBloku FROM Opis T1, Nastawa_Zdarzeniowa T2; Równo-złczenia uzyskanie relacyjnego wizania SELECT T1.T, T1.D14CO, T2.Opis FROM CO_Potwierdzenie AS T1, D14CO_Opis AS T2 WHERE T1.D14co = T2.Stan; Łczenie tabeli samej z sob SELECT T1.NR_ELEMENTU, T2.Opis FROM Baza T1, Baza T2 WHERE T1.NR_ELEMENTU = T2.NR_ELEMENTU AND T1.OPIS <> T2.OPIS; 18

Zagniedony SELECT SELECT * FROM CO WHERE Tw < 0.9*(SELECT Min(Tw) From CO); EXISTS zwraca TRUE jeeli podzapytanie zwraca cokolwiek; Poniszy przykład zwraca cał tabel, a nie rekordy z zadanego podzbiory Tw; ponisze podzapytanie jest nieskorelowane jest ono wykonywane tylko jednokrotnie SELECT * FROM CO WHERE EXISTS(SELECT Tw FROM CO WHERE Tw>0 AND Tw<10) Zagniedenie moe by wielokrotne!!! 19

Wstawianie danych INSERT INTO nazwa_tabeli (kol1, kol2,...) VALUES (wart1, wart2,...) INSERT INTO TabelaTestowa ( liczba1, liczba2, liczba3 ) VALUES( 134, 256, 356); -- wprowadzanie do wybranych kolumn INSERT INTO TabelaTestowa VALUES( 134, 256, 356); -- wprowadzanie do kolejnych kolumn INSERT INTO TabelaTestowa ( liczba1, liczba2, liczba3 ) VALUES( 134, 256, 356); -- wprowadzanie do wybranych kolumn INSERT INTO TabelaTestowa ( liczba1, liczba3 ) VALUES( 134, 256); -- wprowadzanie do wybranych kolumn INSERT INTO TabelaTestowa ( liczba1, liczba2, liczba3 ) VALUES( 134, NULL, 356); -- wprowadzanie wartoci NULL IF NOT EXISTS (SELECT * FROM TabelaTestowa Where pole1 = 11) INSERT INTO tabelatestowa VALUES(456,345,345); 20

Wstawianie danych INSERT INTO nazwa_tabeli (kol1, kol2,...) SELECT kol1, kol2,... FROM nazwa_tabeli_1 WHERE warunek; INSERT INTO TabelaTestowa ( liczba1, liczba2, liczba3 ) SELECT P1, P2, P3 FROM InnaTabela Where P1 <> NULL; SELECT nie moe pobiera danych z tabeli do której wstawia rekordy Liczba kolumn w INSERT INTO oraz SELECT musi si zgadza Typ danych kolumn w INSERT INTO oraz SELECT musi si zgadza 21

Modyfikowanie danych UPDATE nazwa_tabeli SET nazwa_kol_1 = wart_1 [, nazwa_kol_x = wart_x] WHERE warunek_wyszukania; UPDATE tabelatestowa SET pole2 = 0 WHERE pole2 = NULL; UPDATE tabelatestowa SET pole2 = 1.05*pole2; Usuwanie danych DELETE FROM nazwa_tabeli WHERE warunek_wyszukania; 22

ODBC Open DataBase Connectivity Niezalene od bazy danych API; jednolity sposób komunikacji z baz Dostpne sterowniki dla rónorodnych baz danych (nawet to plików tekstowych) Architektura serwer-klient Aplikacja Menader sterowników Sterownik ODBC (przetwarza SQL) Baza danych 23

ODBC definicja ródeł danych 24

Literatura: 1. Stephens R.K., Plew R.R., Morgan B., Perkins J.: SQL w 3 tygodnie, Oficyna Wydawnicza LP&P, Warszawa, 1999. 2. MySQL Reference Manual 3. Freeze W.: Visual Basic 6. Programowanie baz danych, Wydawnictwo HELION, Gliwice, 2001. 4. Materiał edukacyjne z serwera www.w3schools.com 5. Microsoft Developer Network 25

Złczenia zewntrzne i wewntrzne (str.150) Zapytania skorelowane (str.168) ANY, ALL (str. 172) 26