Warsztaty Android, studenckie koło naukowe ISA 2

Wielkość: px
Rozpocząć pokaz od strony:

Download "Warsztaty Android, studenckie koło naukowe ISA 2"

Transkrypt

1 Warsztaty Android, studenckie koło naukowe ISA 2 Artur Zochniak, Jan Kołaciński, Paweł Szczerbicki, Piotr Maćkowiak, Arkadiusz Szydełko, Łukasz Pijet pod merytoryczną opieką Pawła Kapały (Tieto), 2 czerwca 2011r

2 Plan prezentacji: 1. Co to jest SQLite i czym się różni od innych systemów baz danych 2. Tworzenie struktury baz danych, typy danych i DDL 3. Zapytania SQL 4. Android & SQLite, kursory 5. ListActivity 6. Adaptery

3 Co to jest SQLite i czym się róŝni od innych systemów baz danych Co to jest SQLite: System zarządzania bazą danych oraz biblioteka C implementująca taki system, obsługująca język SQL (ang. Structured Query Language). Biblioteka implementuje standard SQL, daje możliwość używania bazy danych bez konieczności uruchamiania osobnego procesu RDBMS. Bazy danych zapisywane są jako pliki binarne. Istnieje projekt oferujący szyfrowanie baz danych SQlite na bieżąco.

4 Co to jest SQLite i czym się róŝni od innych systemów baz danych Relacyjna baza danych baza danych skonstruowana z tabel (relacji), wyraźnie oddzielonych zbiorów, rodzaj DBMS (system zarządzania danymi), przechowująca informacje w postaci powiązanych tabeli. Źródło:

5 Co to jest SQLite i czym się róŝni od innych systemów baz danych ACID - opis warunków, jakie powinny spełniać transakcje (zbiór operacji), w bazach danych. ACID jest skrótem od angielskich słów: atomicity - atomowość, consistency - spójność, isolation - izolacja, durability - trwałość. SQLite udostępnia transakcje ACID oraz implementuje większość standardu SQL 92 (strukturalny język zapytań używany do tworzenia, modyfikowania, oraz umieszczania i pobierania danych z bazy danych).

6 Co to jest SQLite i czym się róŝni od innych systemów baz danych Firmy wspierające rozwój SQLite

7 Co to jest SQLite i czym się róŝni od innych systemów baz danych Mozilla Firefox - w bazach danych przechowywane są profile użytkowników Android - przechowywanie danych użytkownika Avast! Antivir baza wirusów Mac OS X - od wersji 10.4 (Tiger), warstwa przechowywania danych dla Core Data API Trac - zintegrowany system zarządzania projektami, używa domyślnie SQLite do przechowywania danych Mozy - kopie zapasowych w trybie online, przechowywuje dane konfiguracyjne, ustawienia kopii, stanu danych itp.

8 Co to jest SQLite i czym się róŝni od innych systemów baz danych Zalety: rozmiar: około 300 kb, skompilowana i działająca biblioteka. brak dodatkowego procesu zarządzającego relacyjną bazą danych implementuje większość standardu SQL92 cała baza danych w jednym pliku (do 2TB), niezwykle prosta w utrzymaniu zapewnia transakcyjność (ACID) dostępna na licencji Open Source, kod źródłowy dostępny w całości 1000 identycznych zapytań SELECT * FROM tabela: SQLite sek. SQLite (Memory) sek. MySQL (MyISAM) sek. MySQL (InnoDB) sek. MySQL (Memory) sek. Źródło:

9 Tworzenie struktury bazy danych Artur Zochniak

10 Terminal bazy danych w Android SDK Dostęp do terminala bazy danych moŝna uzyskać uruchamiając: android-sdk-windows\tools\sqlite3 baza.db np. aby utworzyć bazę w pliku baza.db, sqlite3 baza.db

11 Terminal bazy danych SQLite3, tworzenie tabeli tworzymy bazę poleceniem: sqlite3 baza.db Jeśli zaszłaby potrzeba opuszczenia terminala, wystarczy wpisać exit poprzedzone kropką (dot-command):.exit baza jest pusta moŝna to sprawdzić komendą sqlite3 baza.db SELECT * FROM SQLITE_MASTER; SQLITE_MASTER to specjalna nazwa tabeli, do której odwołanie zwraca w wyniku tabele w bazie lub poleceniem-z-kropką w terminalu SQLite.tables tworzenie pierwszej tabeli: CREATE TABLE tabela(id INTEGER PRIMARY KEY, kol1 VARCHAR(10), kol2 SMALLINT);

12 SQLite3 wypisywanie tabel w bazie Wykonanie polecenia SELECT * FROM SQLITE_MASTER; zwróci informację o istniejącej juŝ tabeli, aby wypisywać dane w takiej postaci naleŝy wywołać:.mode line

13 SQLite3 operacje na tabelach Usunięcie tabeli: DROP TABLE nazwa_tabeli; Zmiana nazwy tabeli: sqlite>.tables tabela sqlite> ALTER TABLE tabela RENAME TO tbl; sqlite>.tables tbl

14 SQLite3 operacje na tabelach Zmiana nazwy kolumny w tabeli: SQLite3 nie pozwala na bezpośrednią zmianę nazwy kolumny, aby to uzyskać naleŝy stworzyć nową tabelę z nową strukturą, a następnie wypełnić nową tabelę danymi ze starej. CREATE TABLE bohaterowie (bohater VARCHAR(10)); INSERT INTO bohaterowie VALUES ('d''arc Joanna'); INSERT INTO bohaterowie (bohater) VALUES ('William'); CREATE TEMPORARY table kobiety (imie VARCHAR(10)); INSERT INTO kobiety SELECT bohater FROM bohaterowie WHERE bohater LIKE "%a"; DROP TABLE bohaterowie; --usuwamy tabelę SELECT * FROM kobiety;

15 SQLite3 dodawanie rekordów do tabeli wykonanie poleceń: CREATE TABLE tbl (sentence VARCHAR(10), pts INT NULL DEFAULT 0); INSERT INTO tbl VALUES ('hello!',10); INSERT INTO tbl (pts, sentence) VALUES (20, 'goodbye');.mode column SELECT * FROM tbl; doda do tabeli 2 rekordy

16 Podstawowe typy danych w bazie SQLite NULL - Pusta (niezdefiniowana) wartość, INTEGER - Liczba całkowita (ze znakiem) przechowywana na od 1 do 8 bajtów (w zaleŝności od potrzeby), REAL - Liczba zmiennoprzecinkowa przechowywana na 8 bajtach (notacja IEEE floating point number), TEXT - Tekst kodowany przy pomocy UTF-8, UTF-16BE lub UTF-16LE, BLOB - (ang. kropelka, kleks, akronim Binary Large Object) Dane przechowywane w postaci binarnej (tak jak pliki na dysku).

17 Typy danych SQLite, c.d. Boolean liczba całkowita (INTEGER), 0 (fałsz), 1 (prawda), Data moŝe być przechowywana jako: TEXT w konwencji ISO8601 ("YYYY-MM-DD HH:MM:SS.SSS"), REAL jako ilość dni (wraz z częścią ułamkową) kalendarza Juliańskiego (w którym średnia długość roku to 367,25 dni), które upłynęły od północy w Greenwich, 24. października 4714p.n.e. (w kalendarzu Gregoriańskim), INTEGER - czas Unix Time, ilość sekund, które upłynęły od północy 1. stycznia 1970, :00:00 UTC (Coordinated Universal Time, Greenwich Mean Time).

18 Pokrewieństwo typów (type affinity) SQLite nie zmusza nas do definiowania jakiego typu dane będą przechowywane w danej kolumnie, jednak w celu zwiększenia kompatybilności z innymi bazami danych, moŝemy skłonić bazę, aby przechowywała dane w pewnej kolumnie uŝywając określonej grupy typów, jest 5 rodzin typów, które moŝemy nadać kolumnom: TEXT (tekstowy, zaliczamy doń równieŝ dane binarne), NUMERIC (numeryczny), INTEGER (całkowity), REAL (zmiennoprzecinkowy), NONE (dowolny; niezdefiniowany), jeśli zdefiniujemy typ danych w kolumnie, a następnie spróbujemy dodać inny typ danych, to, jeśli istnieje rozsądny sposób przekonwertowania dodawanej wartości do typu kolumny, konwersja zostanie wykonana.

19 Reguły pokrewieństw typów 1. Jeśli typ zawiera w nazwie INT, to zostaje przydzielony do rodziny INTEGER, 2. jeśli typ kolumny zawiera podciąg jednego z ciągów: "CHAR" lub "CLOB" lub "TEXT" to kolumna ta będzie z rodziny TEXT. NaleŜy zauwaŝyć, Ŝe VARCHAR zawiera "CHAR" i dlatego jest typu TEXT, 3. jeśli kolumna zawiera podciąg znaków "BLOB" lub nie ma zdefiniowanego typu, to zostaje ona przyporządkowana do rodziny typów NONE, 4. jeśli typ kolumny zawiera podciąg "REAL" lub "FLOA" lub "DOUB", to jest ona pokrewna z REAL, 5. w kaŝdym innym wypadku typ afiniczny to NUMERIC.

20 Typy danych w SQLite Nazwa typu danych uŝyteczna w poleceniu CREATE TABLE Pokrewieństwo typu, resulting affinity reguła przydzielania pokrewieństwa typu INT INTEGER TINYINT SMALLINT MEDIUMINT CHARACTER(20) VARCHAR(255) VARYING CHARACTER(255) NCHAR(55) BIGINT UNSIGNED BIG INT INT2 INT8 NATIVE CHARACTER(70) NVARCHAR(100) TEXT CLOB INTEGER 1 TEXT 2 BLOB lub nie sprecyzowano typu REAL DOUBLE NUMERIC DECIMAL(10,5) BOOLEAN DOUBLE PRECISION FLOAT DATE DATETIME NONE 3 REAL 4 NUMERIC 5

21 Przykłady przynaleŝności do pokrewieństwa typów CREATE TABLE t1( t TEXT, -- text affinity by rule 2 nu NUMERIC, -- numeric affinity by rule 5 i INTEGER, -- integer affinity by rule 1 r REAL, -- real affinity by rule 4 no BLOB -- no affinity by rule 3 ); do kaŝdego z pól wpisujemy tę samą wartość, jednak w rezultacie są one odpowiednio zamienione, niezaleŝnie jaki typ jest podany w definicji tabeli jeśli nie będzie odpowiedniej konwersji do typu kolumny, zostanie dodana do tabeli wartość typu dodawanego. dodanie rekordu ('500.0', '500.0', '500.0', '500.0', '500.0') spowoduje, Ŝe w bazie zostaną zapisane (text)500.0, (int)500, (int)500, (real)500.0, (text)500.0

22 Pliki baz danych i ich lokalizacja w systemie Android Jan Kołaciński

23 Lokalizacja plików baz danych Baza danych naszej aplikacji znajduje się na androidzie w katalogu: /data/data/nazwa.pakietu/databases/

24 Nazwa bazy danych Nazwa bazy danych będzie równocześnie nazwą pliku, który system Android przechowuje w folderze: /data/data/<nazwa_aplikacji>/databases/

25 SQLite SELECT INSERT DELETE UPDATE Paweł Szczerbicki

26 Zapytanie SELECT Jedno z najbardziej rozbudowanych zapytań w SQLite Zwraca dane z tabeli, bądź tabel (join) w wielu róŝnych konfiguracjach Wyniki mogą być odpowiednio filtrowane Przykładowe zapytanie SELECT (kolejność) SELECT DISCTINCT (*) FROM studenci WHERE wydzial='eka' OR imie='pawel'; SELECT pole1,pole2.. FROM nazwa_tabeli WHERE warunki;

27 Zapytanie SELECT Aliasy są uŝywane do nadawania kolumnom i tabelom opcjonalnej przy wyświetlaniu i edytowaniu SELECT imie_id AS 'imię' FROM tabela t WHERE t.imie LIKE 'A%' ; SELECT imie_id 'imię' FROM tabela WHERE imie LIKE 'A%' ;

28 Zapytanie SELECT Zapytanie agregujące(aggregate query) np: SELECT COUNT(*) AS "ilosc" FROM tabela WHERE imie LIKE 'A%' ; Zwracają podsumowanie tabeli np. liczą elementy, średnią itd.

29 Zapytanie SELECT Zapytanie nieagregujące(non-aggregate query) SELECT name "imię", postcode "kod" FROM tabela WHERE name='adam'; Zwraca wiersze bądź całą tabele danych

30 Zapytanie SELECT WHERE, ORDER BY: najpierw przetwarzane jest WHERE, wiersze dla których da ono wartość FALSE wyłączane są z przetwarzania SELECT last_name '"nazwisko", employee_id "numer pracownika" FROM employees WHERE employee_id BETWEEN 110 AND 120 ORDER BY employee_id DESC;

31 Zapytanie SELECT GROUP BY, agregacja: GROUP BY tworzy grupy danych o tych samych atrybutach i wyświetla je razem bez powtórzeń SELECT department_id "numer departamentu", COUNT(*) "ilosc pracownikow" FROM employees GROUP BY department_id ORDER BY "ilosc pracownikow" DESC;

32 Zapytanie SELECT SELECT department_id "numer departamentu", MIN(salary) "minimalna wyplata", MAX (salary) "maksymalna wyplata" FROM employees WHERE salary>7000 GROUP BY department_id ORDER BY department_id; Funkcja agregując bez GROUP BY zawsze zwróci jeden wiersz danych nawet gdy nie ma danych wejściowych

33 Zapytanie SELECT Wyświetlanie danych z kilku tabel (join) Bez JOIN (dane z dwóch tabel) SELECT d.department_name, l.city FROM departments d, locations l WHERE d.location_id=l.location;

34 Zapytanie SELECT JOIN ON ( dane z kilku tabel ) SELECT d.department_name, l.city FROM departments d JOIN locations l ON d.location_id=l.location_id; JOIN USING ( dane z kilku tabel ) SELECT department_name, city FROM departments JOIN locations USING (location_id);

35 Zapytanie SELECT NATURAL JOIN te same nazwy kolumn (ukryty using) SELECT department_name, city FROM departments NATURAL JOIN locations;

36 Zapytanie SELECT HAVING: Pozwala na przefiltrowanie wyników zgrupowanych klauzurą GROUP BY w zapytaniach agregujących. Schemat ogólny: SELECT department_id, COUNT(*) FROM employees WHERE department_id>20 GROUP BY department_id HAVING COUNT(*) > 5; SELECT pole1,.. FROM tabela WHERE warunki GROUP BY pole[x] HAVING kryteria_grupowania

37 Zapytanie SELECT Zapytania zagnieŝdŝone: Wewnętrzne zapytanie SELECT jest źródłem danych dla zewnętrznego SELECT EXISTS czy istnieje co najmniej jeden departament o mniejszym ID niŝ podany SELECT department_name FROM departments WHERE department_id > EXISTS (SELECT department_id FROM departments WHERE department_name='finance' LIMIT 1);

38 Kolejność działań SELECT department_id "numer departamentu", MIN(salary) "minimalna wyplata", MAX (salary) "maksymalna wyplata" FROM employees WHERE salary>7000 GROUP BY department_id ORDER BY department_id HAVING MAX(salary)>2000 LIMIT 5;

39 Zapytanie DELETE SłuŜy do usuwania danych z tabel Usuwa wiersze wg podanych warunków Schemat ogólny: DELETE FROM table_name WHERE some_column=some_value;

40 Zapytanie DELETE Trigger to funkcja, która jest uruchamiany w momencie wykonania pewnej akcji na bazie danych. Zawiera ona szereg instrukcji lub zapytań, które mają zostać wykonane po lub przed wywołaniem danej akcji. DELETE w triggerze moŝe być wykonane tylko dla tabeli do której został przypisany trigger

41 Zapytanie DELETE DELETE i WHERE DELETE FROM departments WHERE department_name='eka'; DELETE i LIMIT DELETE FROM departments ORDER BY department_id DESC LIMIT 10;

42 Zapytanie DELETE Optymalizacja usuwania całej tabeli, bez przeglądania wierszy: nie działają triggery ale za to usuwanie jest szybsze Problem z liczenie usuniętych wierszy rozwiązany w wersji 3.6.5

43 Zapytanie INSERT Tworzy nowy wiersz tabeli i wraz z wartościami : Unikalny klucz główny Wypełnione pola NOT NULL Schemat ogólny INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...)

44 Zapytanie INSERT INSERT bez INTO: MoŜliwe jest wykonanie zapytania bez nazw kolumn w INTO. Wtedy dane zostaną wprowadzone po kolei do kolumn. W VALUES pierwsza z lewej ląduje w pierwszej kolumnie INSERT INTO departments VALUES (322, London, );

45 Zapytanie INSERT INSERT i SELECT INSERT INTO employees (id, number, department) SELECT id, number, department FROM employees WHERE department_id = 222;

46 Zapytanie INSERT INSERT OR REPLACE: Dodaje lub zamienia wartości jeŝeli klucz główny się powtarza INSERT OR REPLACE INTO departments(department_id,city,number) VALUES (322, London, ); INSERT w triggerze: Wykorzystywany jest do aktualizacji tabel. JeŜeli np. zostanie zwolniony pracownik (usunięty wiersz w tabeli) INSERT uŝyty w triggerze moŝe go przenieść do innej tabeli np. tabela zwolnień

47 Zapytanie UPDATE Wykonujemy je gdy jakieś rekordy są nieaktualne lub po prostu źle wpisane Schemat ogólny UPDATE table_name SET column1=value, column2=value2,... WHERE some_column=some_value

48 Zapytanie UPDATE JeŜeli w UPDATE brakuje WHERE wszystkie wiersze zostaną zmodyfikowane UPDATE w triggerach moŝe się odnosić jedynie do tabeli dla której trigger został stworzony W triggerach nie stosujemy LIMIT i ORDER BY LIMIT tak jak w DELETE

49 Zapytanie UPDATE Przykład: UPDATE departments SET department_name='studentki' WHERE department_name='studenci';

50 UNION UNION łączy wyniki wielu zapytań JOIN łączył kolumny tabel UNION łączy wiersze SELECT id, name FROM employees UNION SELECT department_id FROM departments;

51 Dobre praktyki Pisanie zapytań wielkimi literami (SELECT, INSERT) KaŜde zapytanie w nowej linijce (WHERE, SELECT, FROM)

52 Android - SQLite kursory Piotr Maćkowiak

53 Tworzenie Bazy public class DatabaseAdapter { } Następnie klasę naleŝy rozbudować o odpowiednie zmienne: private static final String DB_NAME = "database.db"; private static final String DB_TABLE = "anytable"; NaleŜy równieŝ dodać pole z wersją bazy private static final int DB_VERSION = 1; System wykorzystuje tą zmienną by sprawdzić, czy aplikacja posiada aktualną strukturę bazy danych.

54 Tworzenie Bazy Kolejnym etapem jest utworzenie pól odpowiadającym kolumnom naszej tabeli w bazie danych. public static final String KEY_ID = "_id" id"; public static final String ID_OPTIONS = "INTEGER PRIMARY KEY AUTOINCREMENT"; public static final String KEY_COUNTRY = "country"; "; public static final String COUNTRY_OPTIONS = "TEXT NOT NULL"; public static final String KEY_SHORTCUT = "shortcut"; public static final String SHORTCUT_OPTION = "TEXT NOT NULL"; tabela ma trzy kolumny _id, country i shortcut. Pole z łańcuchem znaków odpowiedzialnych za stworzenie tabeli. private static final String DB_CREATE = "create" table " + DB_TABLE + " (" + KEY_ID + " " + ID_OPTIONS + ", " + KEY_COUNTRY + " " + COUNTRY_OPTIONS + ", " + KEY_SHORTCUT + " " + SHORTCUT_OPTION + ");";

55 Tworzenie Bazy private SQLiteDatabase db; //- zmienna do przechowywania bazy danych private final Context context; //- kontekst aplikacji korzystającej z bazy private DatabaseHelper mydatabasehelper; //- helper do otwierania i aktualizacji bazy Ostatnie pole mydatabasehelper jest obiektem klasy dziedziczącej po klasie SQLiteHelper. SQLiteHelper jest klasą abstrakcyjną dostarczającą metody do tworzenia oraz aktualizacji bazy, jeszcze zanim zostanie ona otwarta.

56 Tworzenie Bazy private static class DatabaseHelper extends SQLiteOpenHelper { public DatabaseHelper(Context context, String name, CursorFactory factory, int version) {super(context, name, factory, public void oncreate(sqlitedatabase _db) { _db.execsql(db_create db.execsql(db_create); public void onupgrade(sqlitedatabase _db, int oldver, int newver) { _db.execsql("drop TABLE IF EXISTS " + DB_TABLE); oncreate(_db); Log.w("ListView DatabaseAdapter","Aktualizacja bazy z wersji " + oldver + " do " + newver + ". Wszystkie dane zostaną utracone."); } }

57 Tworzenie Bazy Na koniec, w klasie DatabaseAdapter a dopisujemy konstruktor oraz dwie metody: open() i close(): //Konstruktor public DatabaseAdapter(Context _context) { context = _context; mydatabasehelper = new DatabaseHelper(_context, DB_NAME, null, DB_VERSION); } //Otwieramy połączenie z bazą danych public DatabaseAdapter open() { db = mydatabasehelper.getwritabledatabase(); return this; } //Zamykamy połączenie z bazą danych public void close(){ db.close(); } Pozostaje tylko dodać dwie linijki do głównego activity: mydbadapter.open(); //TODO: Operacje na bazie mydbadapter.close();

58 Operacje na bazie danych Metody słuŝące do operacji na bazie danych: insert (String table, String nullcolumnhack, ContentValues values) update (String table, ContentValues values, String whereclause,, String[] whereargs) delete (String table, String whereclause,, String[] whereargs) ContentValues jest klasą Android SDK, która została przygotowana specjalnie by słuŝyć do dodawania nowych wierszy w naszej bazie.

59 Dodawanie Nowej Wartości public long insertcountry(country _country) { } //Tworzymy obiekt nowego "wiersza" ContentValues newcountryvalues = new ContentValues(); //Wypełniamy wszystkie pola wiersza newcountryvalues.put(key_country, _country.getcountryname()); newcountryvalues.put(key_shortcut, _country.getcountryshortcut()); //Wstawiamy wiersz do bazy return db.insert(db_table, null, newcountryvalues);

60 Aktualizacja danych w wierszu public boolean updatecountry (long _index, Country _country) { } //Warunek wstawiany do klauzuli WHERE String where = KEY_ID + "=" + _index; //Tak samo jak przy metodzie insert ContentValues updatecountryvalues = new ContentValues(); updatecountryvalues.put(key_country, _country.getcountryname()); updatecountryvalues.put(key_shortcut, _country.getcountryshortcut()); //Aktualizujemy dane wiersza zgodnego ze zmienną where return db.update (DB_TABLE, updatecountryvalues, where, null) > 0;

61 Usuwanie danych public boolean deletecountry (long _index) { String where = KEY_ID + "=" + _index; return db.delete (DB_TABLE, where, null) > 0; } public void deleteall () { db.delete (DB_TABLE, "1", null); }

62 Kursory Cursor jest klasą, której obiekty w systemie Android reprezentują wyniki zwracane przez zapytania do bazy danych. Posiada ona kilka metod, które bardzo ułatwiają nawigację po zwróconych wierszach. movetofirst() - przesuwa kursor na pierwszy wiersz zwróconego wyniku movetonext() - przesuwa kursor na następny wiersz wyniku, movetoprevious() - j.w. - na poprzedni, movetoposition() - przesuwa kursor na zadaną pozycję getposition() - zwraca aktualną pozycję obiektu Cursor

63 Kursory Android dostarcza równieŝ metody do zarządzania kursorem startmanagingcursor() - integruje czas Ŝycia kursora z czasem Ŝycia aktywności w której się znajduje. Dzięki temu kiedy Aktywność zostanie wstrzymana, automatycznie wywołana zostaje metoda deactivate(), a gdy wznowiona - requery(). stopmanagingcursor() - deintegruje czas Ŝycia kursora z czasem Ŝycia aktywności.

64 Kursor Przykład public Cursor fetchnote(long rowid) throws SQLException { } Cursor mcursor = mdb.query(true, DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE, KEY_BODY}, KEY_ROWID + "=" + rowid, null, null, null, null, null); if (mcursor!= null) { mcursor.movetofirst(); } return mcursor;

65 Kursor Przykład private void updatecountrieslist() { countriescursor.requery(); countries.clear(); } if(countriescursor.movetofirst()) { do { String country = countriescursor.getstring(databaseadapter.country_column); String shortcut = countriescursor.getstring(databaseadapter.shortcut_column; Country newcountry = new Country(country, shortcut); countries.add(newcountry); } while (countriescursor.movetonext()); }

66 ListActivity Arkadiusz Szydełko

67 ListActivity Specjalna klasa stworzona do wyświetlania listy elementów UmoŜliwia oprogramowanie akcji związanych z elementami listy Lista elementów do tablicy pobierana jest z tablicy bądź kursora.

68 Oprogramowanie zdarzenia: Aby oprogramować zdarzenie wybrania elementu listy przez użytkownika należy nadpisać metodę onlistitemclick(). Przykład:

69 Tworzenie widoku: ListActivity zapewnia nam kilka standardowych widoków listy np.: simple_list_item_1 simple_list_item_2 two_line_list_item Zdefiniowane są w klasie android.r.layout

70 Przesyłanie danych do widoku: Dane do domyślnego widoku moŝna wysyłać w OnCreate(), za pomocą metody setlistadapter(), przesyłającej dane z kursora do widoku. Przykład: this.setlistadapter(new ArrayAdapter<String>( this, android.r.layout.simple_list_item_1, Tablica_nazw) );

71 Tworząc własny widok przy pomocy ListView naleŝy zdefiniować odpowiednie id.

72 Tworzenie widoku: Innym sposobem na stworzenie własnego widoku jest określenie elementów i układu wiersza tworząc własny layout. Np. Stworzyć LinearLayout, a w nim za pomocą TextView określić układ elementów w wierszu.

73 Tworzenie widoku: Tworzymy własny layout, w którym określamy jak ma wyglądać wiersz:

74 Tworzenie widoku: Za pomocą klasy SimpleCursorAdapter przesyłamy dane do naszego widoku.

75 Przesyłanie danych: Aby przesłać połączyć dane z listą do dyspozycji są dwa standardowe listy adapterów: SimpleCursorAdapter dla wyników zapytań przechowywanych w kursorze. SimpleAdapter dla statycznych danych takich jak tablice bądź Maps s.

76 Android Adaptery Łukasz Pijet

77 Adapter w teorii Adapter (równieŝ Wrapper) wzorzec projektowy pozwalający na zmianę interfejsu obiektu. a w praktyce: Intefejsy Adapter oraz BaseAdapter we frameworku androida są klasami bazowymi dla adapterów, mających pośredniczyć pomiędzy widgetami (List,Spinner) a obiektami danych.

78 Dostępne klasy adapter Wśród juŝ zaimplementowanych klas moŝemy znaleźć: a) ArrayAdapter przetwarza dane zawarte w dowolnej liście ( obiekty implementujące interfejs List ) oraz tablice. b) (Simple)CursorAdapter przetwarza dane zawarte w obiekcie Cursor. c) SimpleAdapter przetwarza dane podobnie jak ArrayAdapter. Jeden wiersz danych odpowiada jednemu wierszowi na liście.

79 Proste Adaptery i ViewBinder Klasy SimpleAdapter i SimpleCursorAdapter posiadają wewnętrzny interfejs ViewBinder z metodą setviewvalue(); Jako argumenty przyjmuje widok, obiekt danych i nr wiersza. Metoda w prosty sposób pozwala na niestandardowe przypisywanie danych do widoku.

80 Metoda getview() Wywoływana jest dla kaŝdego elementu listy. Numer ostatniego elementu pobierany jest z metody getcount(). Funkcja zwraca obiekt typu View widok który odpowiada pojedynczemu wierszowi listy. Budowany jest na podstawie layotów zawartych w plikach XML aplikacji. PrzeciąŜając ją, moŝna dowolnie rozbudować listę np.: nadając wierszom inny wygląd, wstawiając wiele elementów do wiersza listy.

81 Metoda getview() - Przykład public View getview(int pozycja, View convertview, ViewGroup parent) { View wynik = null; LayoutInflater minflater; // Pobieramy standardową instancje obiektu LayoutInflater //(w ten sposób jest ona juŝ przygotowana) minflater = (LayoutInflater) getsystemservice(context.layout_inflater_service); if( position % 2 == 0 ) { // Za pomocą LayoutInflater a tworzymy obiekt View na podstawie plików XML // znajdujących się w katalogu res/layout wynik = minflater.inflate( R.layout.widok_1, null ); // Pobieramy obiekt przypisany do zadanego ID. W naszym przypadku jest to TextView. // Nadajemy mu odpowiedni tekst TextView tekst = (TextView) wynik.findviewbyid( R.id.tekst_1 ); tekst.settext( getitem( pozycja ) ); } else { wynik= minflater.inflate( R.layout.widok_2, null ); TextView tekst = (TextView) wynik.findviewbyid( R.id.tekst_2 ); tekst.settext( getitem( pozycja ) ); } // Zwracamy obiekt View pobrany z LayoutInflater return wynik; }

82 ? Pytania?

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

Laboratorium nr 4. Temat: SQL część II. Polecenia DML Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze

Bardziej szczegółowo

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

Ref. 7 - Język SQL - polecenia DDL i DML 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ść

Bardziej szczegółowo

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

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych SQL SQL (ang. Structured Query Language): strukturalny język zapytań używany do tworzenia strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych

Bardziej szczegółowo

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody Programowanie urządzeń mobilnych dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody SharedPreferences Umożliwia przechowywanie małej ilości danych typów podstawowych Dane są przechowywane

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 1 Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze

Bardziej szczegółowo

DATA STORAGE. wprowadzenie Michał Mynarski. środa, 26 października 11

DATA STORAGE. wprowadzenie Michał Mynarski. środa, 26 października 11 DATA STORAGE wprowadzenie Michał Mynarski środa, 26 października 11 DZISIAJ OPOWIEMY O TYM, JAK PRZECHOWYWAĆ DANE Shared Preferences Internal Storage External Storage SQLite Datebases Network Connection

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

akademia androida Składowanie danych część VI

akademia androida Składowanie danych część VI akademia androida Składowanie danych część VI agenda 1. SharedPreferences. 2. Pamięć wewnętrzna i karta SD. 3. Pliki w katalogach /res/raw i /res/xml. 4. Baza danych SQLite. 5. Zadanie. 1. SharedPreferences.

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2 PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie

Bardziej szczegółowo

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -

Bardziej szczegółowo

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

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

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

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL Tutorial PostgreSQL 1. Instalacja na własnym komputerze: a. Zainstaluj program ze strony: https://www.postgresql.org/download/ Wersja odpowiednia dla systemu operacyjnego Linux, Mac, Windows Przy pierwszym

Bardziej szczegółowo

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

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna

Bardziej szczegółowo

Bazy danych 7. SQL podstawy

Bazy danych 7. SQL podstawy Bazy danych 7. SQL podstawy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Structured Query Language Używane standardy: SQL92 SQL99 SQL:2003 Żaden dostawca nie jest w pełni zgodny

Bardziej szczegółowo

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

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę: Bazy danych. Komunikacja z serwerem Aby połączyć się z serwerem i móc wykonywać czynności związane z obsługą baz, potrzebny jest program klienta. Razem z serwerem MySQL dostępny jest działający w wierszu

Bardziej szczegółowo

Bazy danych. Polecenia SQL

Bazy danych. Polecenia SQL Bazy danych Baza danych, to miejsce przechowywania danych. Dane w bazie danych są podzielone na tabele. Tabele składają się ze ściśle określonych pól i rekordów. Każde pole w rekordzie ma ściśle ustalony

Bardziej szczegółowo

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazowy skrypt PHP do ćwiczeń z bazą MySQL: Utwórz skrypt o nazwie cw7.php zawierający następującą treść (uzupełniając go o właściwą nazwę uŝytkownika

Bardziej szczegółowo

Wykład 5. SQL praca z tabelami 2

Wykład 5. SQL praca z tabelami 2 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,

Bardziej szczegółowo

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

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie Programowanie MSQL show databases; - pokazanie jakie bazy danych są dostępne na koncie show databases; - wyświetlenie wszystkich baz danych na serwerze create database nazwa; - za nazwa wstawiamy wybraną

Bardziej szczegółowo

Projektowanie systemów baz danych

Projektowanie systemów baz danych Projektowanie systemów baz danych Seweryn Dobrzelewski 4. Projektowanie DBMS 1 SQL SQL (ang. Structured Query Language) Język SQL jest strukturalnym językiem zapewniającym możliwość wydawania poleceń do

Bardziej szczegółowo

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

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2. Bazy Danych i Systemy informacyjne Wykład 2 Piotr Syga 16.10.2017 Dodawanie, usuwanie i zmienianie rekordów Wstawianie rekordu wstawianie do tabeli INSERT INTO A VALUES ( fioletowy, okrągły, słodko-kwaśny

Bardziej szczegółowo

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.

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. 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. 1 polecenie CREATE TABLE CREATE TABLE nazwa_relacji Tworzenie

Bardziej szczegółowo

Programowanie w języku Java. Bazy danych SQLite w Javie

Programowanie w języku Java. Bazy danych SQLite w Javie Programowanie w języku Java Bazy danych SQLite w Javie Co to jest SQLite SQLite to bezserwerowa, nie wymagająca konfiguracji relacyjna baza danych. Znajduje szerokie zastosowanie np.. w systemie android

Bardziej szczegółowo

Wykład 4. SQL praca z tabelami 1

Wykład 4. SQL praca z tabelami 1 Wykład 4 SQL praca z tabelami 1 Typy danych Typy liczbowe Typy całkowitoliczbowe Integer types - Typ INTEGER; 32-bitowa liczba ze znakiem z zakresu -2 31 do 2 31 1 - Typ SMALLINT; typ całkowity mniejszy

Bardziej szczegółowo

Wykład 05 Bazy danych

Wykład 05 Bazy danych Wykład 05 Bazy danych Tabela składa się z: Kolumn Wierszy Wartości Nazwa Wartości Opis INT [UNSIGNED] -2^31..2^31-1 lub 0..2^32-1 Zwykłe liczby całkowite VARCHAR(n) n = długość [1-255] Łańcuch znaków o

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Historia i standardy Podstawy relacyjności Typy danych DDL tabele, widoki, sekwencje zmiana struktury DML DQL Podstawy, złączenia,

Bardziej szczegółowo

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. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3 cur.executescript(""" DROP TABLE IF EXISTS uczen; CREATE TABLE IF NOT EXISTS uczen ( Uniwersytet Technologiczno-Przyrodniczy im. J.J. Śniadeckich w Bydgoszczy Instrukcja do ćwiczeń laboratoryjnych Przedmiot

Bardziej szczegółowo

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych. Dr inż. Paweł Kasprowski Plan wykładu Bazy danych Podstawy relacyjnego modelu danych Dr inż. Paweł Kasprowski pawel@kasprowski.pl Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność

Bardziej szczegółowo

Wykład 8. SQL praca z tabelami 5

Wykład 8. SQL praca z tabelami 5 Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu

Bardziej szczegółowo

Bazy danych 5. Samozłaczenie SQL podstawy

Bazy danych 5. Samozłaczenie SQL podstawy Bazy danych 5. Samozłaczenie SQL podstawy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2007/08 Przykład kolejowy Tworzymy bazę danych zawierajac a (uproszczony) rozkład jazdy pociagów

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas)

Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas) Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas) Bazy danych podstawowe pojęcia Baza danych jest to zbiór danych zorganizowany zgodnie ze ściśle określonym modelem danych. Model danych to zbiór ścisłych

Bardziej szczegółowo

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

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

Bardziej szczegółowo

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze Cechy bloków nazwanych: w postaci skompilowanej trwale przechowywane na serwerze wraz z danymi wykonywane na żądanie użytkownika lub w

Bardziej szczegółowo

NARZĘDZIA WIZUALIZACJI

NARZĘDZIA WIZUALIZACJI Kurs interaktywnej komunikacji wizualnej NARZĘDZIA WIZUALIZACJI Andrzej Łachwa andrzej.lachwa@uj.edu.pl 3 4/8 Zobacz film: http://www.ted.com/talks/david_mccandless_the_beauty_of_dat a_visualization.html

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z dużej ilości danych zapisanych na serwerze jest współpraca z relacyjną bazą danych. 2 1. Utworzyć bazę danych.

Bardziej szczegółowo

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

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)

Bardziej szczegółowo

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

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1 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

Bardziej szczegółowo

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; Zestaw ćwiczeń1 Dzięki DDL (Data Definition Language) można operować na strukturach, w których dane są przechowywane czyli np. dodawać, zmieniać i kasować tabele lub bazy. Najważniejsze polecenia tej grupy

Bardziej szczegółowo

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście. Rodzaje triggerów Triggery DML na tabelach INSERT, UPDATE, DELETE Triggery na widokach INSTEAD OF Triggery DDL CREATE, ALTER, DROP Triggery na bazie danych SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN

Bardziej szczegółowo

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

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Klucz podstawowy PRIMARY KEY Klucz kandydujący UNIQUE Klucz alternatywny - klucze kandydujące, które nie zostały wybrane na klucz podstawowy Klucz obcy - REFERENCES Tworząc tabelę,

Bardziej szczegółowo

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

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, 2017 Spis treści O autorze 9 Wprowadzenie 11 Lekcja 1. Zrozumieć SQL 15 Podstawy baz danych 15 Język SQL

Bardziej szczegółowo

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

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować: 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ę

Bardziej szczegółowo

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

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1 Podstawy języka SQL standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi Bazy danych s.5-1 Język SQL SQL (ang. Structured Query Language, strukturalny język zapytań) język

Bardziej szczegółowo

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1 Tworzenie tabel Tabela podstawowa struktura, na której zbudowana jest relacyjna baza danych. Jest to zbiór kolumn (atrybutów) o ustalonych właściwościach, w których przechowuje się dane. Dane te są reprezentowane

Bardziej szczegółowo

Administracja bazami danych

Administracja bazami danych Administracja bazami danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody Klient tekstowy mysql Program mysql jest prostym programem uruchamianym w konsoli shell do obsługi

Bardziej szczegółowo

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

P o d s t a w y j ę z y k a S Q L P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p

Bardziej szczegółowo

Język SQL, zajęcia nr 2

Język SQL, zajęcia nr 2 Język SQL, zajęcia nr 2 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Funkcja agregująca

Bardziej szczegółowo

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

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L - p o d s t a w y DDL SQL (Data Definition Language) Jest to zbiór instrukcji i definicji danych, którym posługujemy się

Bardziej szczegółowo

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

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Składowe wyzwalacza ( ECA ): określenie zdarzenia ( Event ) określenie

Bardziej szczegółowo

Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592. Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592. Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592 Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami Spis treści Założenia Projektowe...1 Schemat Bazy Danych...1

Bardziej szczegółowo

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

Systemy internetowe. Wykład 4 mysql. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science Systemy internetowe Wykład 4 mysql MySQL - wstęp SZBD: komercyjne: Microsoft SQL Server, Oracle, DB2... darmowe: MySQL, PostgreSQL, Firebird... MySQL darmowy (użytek niekomercyjny) Wady: niska wydajność

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

Bardziej szczegółowo

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

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze Funkcje użytkownika Tworzenie funkcji Usuwanie funkcji Procedury składowane Tworzenie procedur składowanych Usuwanie procedur składowanych Wyzwalacze Wyzwalacze a ograniczenia i procedury składowane Tworzenie

Bardziej szczegółowo

Instalacja MySQL. http://dev.mysql.com/downloads/mysql/5.0.html#downloads

Instalacja MySQL. http://dev.mysql.com/downloads/mysql/5.0.html#downloads Instalacja MySQL Baza MySQL tworzona jest przez Szwedzką firmę MySQL AB strona domowa projektu to: www.mysql.com Wersję bezpłatną (różniącą się od komercyjnej brakiem wsparcia technicznego, nośnika i podręcznika)

Bardziej szczegółowo

Instrukcja CREATE TABLE

Instrukcja CREATE TABLE Podstawy języka SQL 2 Instrukcja CREATE TABLE CREATE TABLE tabela (pole_1 typ [(rozmiar)] [NOT NULL] [indeks_1] [, pole_2 typ [(rozmiar)] [NOT NULL] [indeks_2] [,...]] [, CONSTRAINT indeks_wielopolowy

Bardziej szczegółowo

Bazy danych 10. SQL Widoki

Bazy danych 10. SQL Widoki Bazy danych 10. SQL Widoki P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Widoki, AKA Perspektywy W SQL tabela, która utworzono za pomoca zapytania CREATE TABLE, nazywa się tabela

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

Bardziej szczegółowo

Wykład 6. SQL praca z tabelami 3

Wykład 6. SQL praca z tabelami 3 Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1

Bardziej szczegółowo

SQL/MySQL. Rafał Kern

SQL/MySQL. Rafał Kern SQL/MySQL Rafał Kern 1 SQL (Structured Query Language) Deklaratywny - opisujemy warunki, jakie musi spełniać wynik Służy do zarządzania danymi w relacyjnych bazach danych Składnia/zapytania SQL DML (Data

Bardziej szczegółowo

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

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze 1 Funkcje i procedury pamiętane Następujące polecenie tworzy zestawienie zawierające informację o tym ilu jest na naszej hipotetycznej

Bardziej szczegółowo

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

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa Studia Podyplomowe dla Nauczycieli Bazy danych SQL Języki baz danych Interfejs DBMS składa się

Bardziej szczegółowo

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

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek SELECT SELECT kolumna1, kolumna2,, kolumnan FROM tabela wybrane kolumny SELECT * FROM tabela wszystkie kolumny select * from Orders select CustomerID, CompanyName, Country from Customers WHERE SELECT *

Bardziej szczegółowo

SIECI KOMPUTEROWE I BAZY DANYCH

SIECI KOMPUTEROWE I BAZY DANYCH KATEDRA MECHANIKI I ROBOTYKI STOSOWANEJ WYDZIAŁ BUDOWY MASZYN I LOTNICTWA, POLITECHNIKA RZESZOWSKA SIECI KOMPUTEROWE I BAZY DANYCH Laboratorium DB1, DB2: TEMAT: Wprowadzenie do SQL. Praca z pojedyncza

Bardziej szczegółowo

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli 1. Tworzenie tabeli Aby stworzyć tabele w SQL-u należy użyć polecenia CREATE TABLE nazwa_tabeli (nazwa_pola1 właściwości_pola1, nazwa_pola2 właściwości_pola2, itd.) Nazwa_tabeli to wybrana przez nas nazwa

Bardziej szczegółowo

Cele. Definiowanie wyzwalaczy

Cele. Definiowanie wyzwalaczy WYZWALACZE Definiowanie wyzwalaczy Cele Wyjaśnić cel istnienia wyzwalaczy Przedyskutować zalety wyzwalaczy Wymienić i opisać cztery typy wyzwalaczy wspieranych przez Adaptive Server Anywhere Opisać dwa

Bardziej szczegółowo

DECLARE VARIABLE zmienna1 typ danych; BEGIN

DECLARE VARIABLE zmienna1 typ danych; BEGIN Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

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

Bazy danych 4. SQL podstawy. P. F. Góra Bazy danych 4. SQL podstawy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012 Structured Query Language Używane standardy: SQL92 SQL99 SQL:2003 SQL:2006 (dialekt) SQL:2008 (dialekt) SQL:2011 (dialekt)

Bardziej szczegółowo

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

SQL - DDL. 1 Tabele systemowe. 2 Typy danych SQL - DDL DDL (ang. data definition language) jest częścią języka zapytań SQL obejmująca tworzenie i zarządzanie (modyfikację, usuwanie i przydzielanie uprawnień) obiektami w bazie danych (tabelami, perspektywami,

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

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

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów SQL3 wprowadza następujące kolekcje: zbiory ( SETS ) - zestaw elementów bez powtórzeń, kolejność nieistotna listy ( LISTS ) - zestaw

Bardziej szczegółowo

Wprowadzenie do JDBC z wykorzystaniem bazy H2

Wprowadzenie do JDBC z wykorzystaniem bazy H2 Wprowadzenie do JDBC z wykorzystaniem bazy H2 JDBC (ang. Java DataBase Connectivity). Biblioteka stanowiąca interfejs umożliwiający aplikacjom napisanym w języku Java porozumiewać się z bazami danych za

Bardziej szczegółowo

Wykład 2. SQL 1 Structured Query Lenguage

Wykład 2. SQL 1 Structured Query Lenguage Wykład 2 SQL 1 Structured Query Lenguage SQL (Structured Query Language) Język zapytań do bazy danych. IBM lata osiemdziesiąte. Stosowany w systemach zarządzania bazami danych (DBMS); Oracle, Paradox,Access,

Bardziej szczegółowo

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

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15 T-SQL dla każdego / Alison Balter. Gliwice, cop. 2016 Spis treści O autorce 11 Dedykacja 12 Podziękowania 12 Wstęp 15 Godzina 1. Bazy danych podstawowe informacje 17 Czym jest baza danych? 17 Czym jest

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1 Bazy Danych Instrukcja laboratoryjna Temat: Obsługa bazy danych za pomocą phpmyadmin oraz phppgadmin 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do phpmyadmin oraz phppgadmin

Bardziej szczegółowo

PODSTAWY BAZ DANYCH 13. PL/SQL

PODSTAWY BAZ DANYCH 13. PL/SQL PODSTAWY BAZ DANYCH 13. PL/SQL 1 Wprowadzenie do języka PL/SQL Język PL/SQL - rozszerzenie SQL o elementy programowania proceduralnego. Możliwość wykorzystywania: zmiennych i stałych, instrukcji sterujących

Bardziej szczegółowo

Zarzadzanie transakcjami. Transakcje

Zarzadzanie transakcjami. Transakcje Transakcje Transakcja: ciąg zawierający jedno lub wiele poleceń SQL, zgrupowanych razem jako jedna logiczna jednostka działań, której nie można podzielić. Logiczna jednostka działań to zbiór logicznych

Bardziej szczegółowo

Bloki anonimowe w PL/SQL

Bloki anonimowe w PL/SQL Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia

Bardziej szczegółowo

SQL 4 Structured Query Lenguage

SQL 4 Structured Query Lenguage Wykład 5 SQL 4 Structured Query Lenguage Instrukcje sterowania danymi Bazy Danych - A. Dawid 2011 1 CREATE USER Tworzy nowego użytkownika Składnia CREATE USER specyfikacja użytkownika [, specyfikacja użytkownika]...

Bardziej szczegółowo

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

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion Autor: Joanna Karwowska SQL zapewnia obsługę: zapytań - wyszukiwanie danych w bazie, operowania danymi - wstawianie, modyfikowanie

Bardziej szczegółowo

Bazy danych. dr inż. Arkadiusz Mirakowski

Bazy danych. dr inż. Arkadiusz Mirakowski Bazy danych dr inż. Arkadiusz Mirakowski Początek pracy z Transact SQL (T-SQL) 153.19.7.13,1401 jkowalski nr indeksu 2 Perspektywa - tabela tymczasowa - grupowanie Perspektywa (widok) Perspektywa (widok)

Bardziej szczegółowo

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie bazy danych Jarosław Kuchta Projektowanie Aplikacji Internetowych Możliwości projektowe Relacyjna baza danych Obiektowa baza danych Relacyjno-obiektowa baza danych Inne rozwiązanie (np. XML)

Bardziej szczegółowo

Typy Oracle atrybutów relacji Typ NUMBER (1)

Typy Oracle atrybutów relacji Typ NUMBER (1) Tworzenie relacji polecenie CREATE TABLE Rozdział 6 Język definiowania danych DDL CREATE TABLE nazwa_relacji (nazwa_atrybutu typ (rozmiar) [DEFAULT wartość_domyślna] [ [CONSTRAINT nazwa_ogr] ograniczenie_atr],

Bardziej szczegółowo

Typy Oracle atrybutów relacji Typ NUMBER (1)

Typy Oracle atrybutów relacji Typ NUMBER (1) Tworzenie relacji polecenie CREATE TABLE Rozdział 6 Język definiowania danych DDL CREATE TABLE nazwa_relacji (nazwa_atrybutu typ (rozmiar) [DEFAULT wartość_domyślna] [ [CONSTRAINT nazwa_ogr] ograniczenie_atr],

Bardziej szczegółowo

ACESS- zadania z wykorzystaniem poleceń SQL

ACESS- zadania z wykorzystaniem poleceń SQL ACESS- zadania z wykorzystaniem poleceń SQL Dane są relacje o schematach: Pracownik ( (nr integer, nazwisko text(12), etat text(10), szef integer, pracuje_od date, placa_pod Currency, placa_dod Currency,

Bardziej szczegółowo

Wyzwalacze (triggery) Przykład

Wyzwalacze (triggery) Przykład Wyzwalacze (triggery) Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie. W poniższym przykładzie definiujemy tablicę, a następnie trigger związany

Bardziej szczegółowo

Programowanie w Ruby

Programowanie w Ruby Programowanie w Ruby Wykład 6 Marcin Młotkowski 14 listopada 2012 Plan wykładu Trwałość obiektów Bazy danych DBM Bazy danych SQL Active records Szeregowanie obiektów Obiekt Serializacja @tytul = 'Pan Tadeusz'

Bardziej szczegółowo

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r.

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Bazy danych dla producenta mebli tapicerowanych Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Założenia Stworzyć system bazodanowy dla małej firmy produkującej meble tapicerowane. Projekt ma umożliwić

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

Struktura drzewa w MySQL. Michał Tyszczenko

Struktura drzewa w MySQL. Michał Tyszczenko Struktura drzewa w MySQL Michał Tyszczenko W informatyce drzewa są strukturami danych reprezentującymi drzewa matematyczne. W naturalny sposób reprezentują hierarchię danych toteż głównie do tego celu

Bardziej szczegółowo

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

SQL w praktyce. Miłej i owocnej nauki!!! SQL w praktyce Niniejsza praca objęta jest prawami autorskimi. Nielegalne jest kopiowanie żadnej częsci tej pracy w żadnej postaci. Niezgodne z prawem tym bardziej jest udostępnianie innym tej pracy odpłatnie

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Zapytania SELECT Dr inż. Paweł Kasprowski pawel@kasprowski.pl Przykład HAVING Podaj liczebność zespołów dla których najstarszy pracownik urodził się po 1940 select idz, count(*) from prac p

Bardziej szczegółowo

Widok Connections po utworzeniu połączenia. Obszar roboczy

Widok Connections po utworzeniu połączenia. Obszar roboczy Środowisko pracy 1. Baza danych: Oracle 12c - Serwer ELARA - Konta studenckie, dostęp także spoza uczelni - Konfiguracja: https://e.piotrowska.po.opole.pl/index.php?option=conf 2. Środowisko: SQL Developer

Bardziej szczegółowo