E.14 Bazy Danych cz. 12 SQL Wybrane funkcje serwera MySQL

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

Download "E.14 Bazy Danych cz. 12 SQL Wybrane funkcje serwera MySQL"

Transkrypt

1 Wprowadzenie Funkcje tekstowe Funkcje liczbowe Funkcje daty i czasu Funkcje konwersji Funkcje serwera MySQL Na podstawie: webmaster.helion.pl oraz: ihelp.ovh.org Tak jak we wszystkich innych językach programowania, w języku SQL funkcje stanowią potężne narzędzie w pracy programisty zamiast samodzielnie pisać skomplikowane programy, wystarczy wywołać odpowiednią funkcję. W tym odcinku nauczysz się wywoływać funkcje systemowe i poznasz niektóre funkcje serwera MySQL. Wprowadzenie Wbudowane funkcje serwerów baz danych można podzielić na trzy kategorie: 1. Funkcje skalarne zwracają pojedynczą wartość obliczoną na podstawie zera lub większej liczby prostych argumentów. 2. Funkcje grupujące zwracają pojedynczą wartość dla zbioru argumentów wywołania. 3. Funkcje typu RowSet zwracające dane w postaci tabelarycznej, do których odwołujemy się tak jak do tabel. Na podstawie typu parametrów wywołania funkcje skalarne można podzielić na: 1. Funkcje tekstowe operujące na ciągach znaków. 2. Funkcje liczbowe operujące na liczbach. 3. Funkcje daty i czasu operujące na danych typu data i godzina. 4. Funkcje konwersji służące do zmiany typu danych. 5. Na specjalne wyróżnienie zasługują funkcje kryptologiczne, które pozwalają zaszyfrować, odszyfrować i podpisać wiadomość oraz sprawdzić jej autentyczność. W języku SQL funkcje można zagnieżdżać do dowolnego poziomu. Funkcje najbardziej wewnętrzne obliczane są w pierwszej kolejności, a na podstawie ich wyników obliczane są funkcje zewnętrzne. Funkcje tekstowe Argumentem funkcji tekstowych są ciągi znaków (dane typów char, varchar lub text). Typ danych zwracanych przez funkcje tekstowe jest podstawą do ich dalszego podziału: wyróżniamy funkcje tekstowe zwracające wartość znakową i funkcje tekstowe zwracające liczbę. 1

2 Funkcje tekstowe zwracające tekst CONCAT() Funkcja łączy (konkatenuje) przekazane jako parametr i oddzielone przecinkami ciągi znaków. Używaliśmy już tej funkcji, a w następnych listingach użyjemy jej jeszcze kilka razy. CONCAT_WS() Funkcja łączy (konkatenuje) przekazane jako parametr i oddzielone przecinkami ciągi znaków, rozdzielając je przekazanym jako pierwszy parametr ciągiem znaków. LOWER() Wynikiem działania funkcji LOWER() jest ciąg znaków podany jako argument, ale składający się wyłącznie z małych liter. Za pomocą tej funkcji wszystkie wielkie litery argumentu zostaną zamienione na małe. Aby na przykład wyświetlić nazwiska wszystkich współpracowników za pomocą małych liter, napiszemy (listing 12.1): Listing Funkcji skalarnych można używać m.in. w klauzulach SELECT, WHERE i ORDER BY SELECT title, LOWER(title) FROM customer WHERE customer_id<3; title lower(title) Miss miss Mr mr UPPER() Wynikiem działania funkcji UPPER() jest ciąg znaków podany jako argument, ale składający się wyłącznie z wielkich liter. Za pomocą tej funkcji wszystkie małe litery argumentu zostaną zamienione na wielkie. Aby na przykład uszeregować nazwy wszystkich towarów alfabetycznie według ich nazw, bez względu na wielkość użytych w nazwie liter, napiszemy (listing 12.2): Listing Poszczególne klauzule instrukcji są od siebie niezależne dane mogą być na przykład sortowane według wyrażenia niewymienionego w klauzuli SELECT SELECT * FROM item ORDER BY UPPER(description); item_id description cost_price sell_price Carrier Bag Fan Large

3 6 Fan Small Linux CD Picture Frame Roman Coin Rubik Cube Speakers SQL Server 2005 NULL NULL 4 Tissues Toothbrush Wood Puzzle LEFT() Za pomocą funkcji LEFT() z podanego jako argument ciągu znaków zostanie wycięta określona liczba znaków, począwszy od lewej strony. Aby odczytać inicjały klientów, wykonamy instrukcję pokazaną na listingu Listing Przykład zagnieżdżania funkcji najpierw odczytywane są pierwsza litera imienia i nazwiska, a następnie są one łączone w jeden ciąg SELECT CONCAT(LEFT(fname,1), LEFT(lname,1)) FROM customer; CONCAT(LEFT(fname,1), LEFT(lname,1)) JS AS AM AM SC NM RS AS CH MH DJ RN LH BN DH NULL RIGHT() Za pomocą funkcji RIGHT() z podanego jako argument ciągu znaków zostanie wycięta określona liczba znaków, począwszy od prawej strony (listing 12.4). 3

4 Listing Wyświetlamy dane wyłącznie tych osób, których imiona kończą się na litery rd SELECT title, lname, fname FROM customer WHERE RIGHT(fname,2) = 'rd'; title lname fname Mr Stones Richard Mr Neill Richard TRIM(), LTRIM() i RTRIM() Funkcja LTRIM() z podanego ciągu znaków usuwa wiodące spacje, funkcja RTIM() usuwa kończące (wolne) spacje, a funkcja TRIM() zarówno wiodące, jak i wolne spacje (listing 12.5). Listing Przed zapisaniem danych do bazy z reguły warto usunąć z nich przypadkowo dodane spacje SELECT ltrim(' barba dos '; ltrim(' barba dos ') barba dos SELECT rtrim(' barba dos '); rtrim(' barba dos ') barba dos SELECT trim(' barba dos '); trim(' barba dos ') barba dos REPLACE() Za pomocą funkcji REPLACE() w ciągu znaków podanym jako pierwszy parametr zostanie wyszukany ciąg podany jako jej drugi parametr, a następnie w miejsce znalezionego ciągu będzie podstawiony ciąg podany jako trzeci parametr wywołania. Jeżeli trzeci parametr nie zostanie podany, z ciągu podstawowego będzie wycięty wyszukany ciąg znaków (listing 12.6). 4

5 Listing Funkcja REPLACE jest niezastąpiona na przykład przy przygotowywaniu kolejnej wersji tego samego zestawienia SELECT REPLACE('Kierownik niech nam żyje', ' żyje', 'zgnije'); REPLACE('Kierownik niech nam żyje', ' żyje', 'zgnije') Kierownik niech nam zgnije SUBSTRING() W wyniku działania funkcji SUBSTRING() zostanie zwrócona określona liczba znaków z łańcucha tekstowego, począwszy od podanej pozycji. Jeżeli nie podamy liczby zwracanych znaków, zwrócone będą wszystkie znaki występujące po pozycji określonej przez drugi parametr. Podanie ujemnej wartości drugiego parametru spowoduje, że znaki będą liczone od prawej do lewej (listing 12.7). Listing Siedem liter, począwszy od piątej, z nazw produktów SELECT SUBSTRING(description,5,7) FROM item; SUBSTRING(description,5,7) Puzzle k Cube x CD ues ure Fra Small Large hbrush n Coin ier Bag kers Server SPACE() Działanie funkcji SPACE() powoduje zwrócenie liczby spacji określonej jako parametr (listing 12.8). Listing Zamiast ręcznie dodawać spacje, możemy użyć do tego funkcji SPACE() SELECT CONCAT(fname, SPACE(3), lname) FROM customer; 5

6 CONCAT(fname, SPACE(3), lname) Jenny Stones Andrew Stones Alex Matthew Adrian Matthew Simon Cozens Neil Matthew Richard Stones Ann Stones Christine Hickman Mike Howard Dave Jones Richard Neill Laura Hendy Bill Neill David Hudson NULL REVERSE() Funkcja REVERSE() zwraca ciąg znaków będący palindromem argumentu wywołania, czyli ciągiem znaków o odwróconej kolejności liter (listing 12.9). Listing Zapytanie zwracające imiona będące palindromami SELECT fname from customer WHERE REVERSE(fname) = fname; fname Anna Funkcje tekstowe zwracające liczby LENGTH() Funkcja LENGTH() jako wynik zwraca długość ciągu znaków podanego jako parametr jej wywołania. Jeżeli wywołamy funkcję LENGTH() z wartością Null, funkcja zwróci wartość Null. Za pomocą poniższej instrukcji wyświetlimy tylko te opisy towarów, które mają długie (dłuższe niż 10-znakowe) nazwy (listing 12.10). Listing Funkcja LENGTH() użyta do selekcji wierszy SELECT description, LENGTH(description) 6

7 FROM item WHERE LENGTH(description)>10; description LENGTH(description) Wood Puzzle 11 Picture Frame 13 Carrier Bag 11 SQL Server INSTR() W wyniku działania funkcji INSTR() będzie zwrócona pozycja, na której w ciągu znaków podanym jako pierwszy parametr został znaleziony ciąg znaków podany jako drugi parametr. Jeżeli szukany ciąg znaków nie będzie znaleziony, funkcja zwróci 0 (listing 12.11). Listing Wykorzystanie funkcji INSTR() do wybrania produktów, które w nazwie mają literę a SELECT description FROM item WHERE INSTR(description, 'a')>0; description Picture Frame Fan Small Fan Large Roman Coin Carrier Bag Speakers Funkcje liczbowe Funkcje liczbowe pozwalają wykonywać dodatkowe (oprócz dodawania, odejmowania czy mnożenia) operacje matematyczne oraz formatować liczby. ROUND() Działanie funkcji ROUND() polega na zaokrągleniu liczby do określonej liczby cyfr po przecinku. Pierwszy parametr jest liczbą do zaokrąglenia, drugi wskazuje, do ilu pozycji chcemy ją zaokrąglić. Ujemna wartość powoduje zaokrąglenie liczby z lewej strony przecinka; 0 spowoduje zaokrąglenie do najbliższej liczby całkowitej. Jeżeli drugi parametr nie jest podany, serwer baz danych przyjmuje domyślnie jego wartość jako równą 0 (listing 12.12). Listing Przykład użycia funkcji ROUND() 7

8 SELECT Round( ,4); Round( ,4) SELECT Round( ,0); Round( ,0) 3 SELECT Round( ); Round( ) TRUNCATE() Funkcja TRUNCATE() powoduje obcięcie liczby do określonej liczby cyfr po przecinku. Pierwszy parametr jest liczbą do obcięcia, drugi wskazuje, do ilu pozycji chcemy liczbę skrócić. Ujemna wartość powoduje dodanie określonej liczby zer z lewej strony przecinka. Jeżeli drugi parametr nie jest podany, MySQL przyjmuje domyślnie jego wartość jako równą 0 (listing 12.13). Listing Obcięcie miejsc po przecinku i zaokrąglenie do iluś miejsc po przecinku to dwie operacje SELECT Truncate( ,4); Truncate( ,4) ABS() Wynikiem działania funkcji ABS() jest wartość bezwzględna liczby (liczba bez znaku). Jako parametr podaje się liczbę, której wartość bezwzględną należy obliczyć (listing 12.14). Listing Funkcja ABS() użyta do sprawdzenia, czy dana liczba jest dodatnia SELECT * FROM item 8

9 WHERE sell_price!= ABS(sell_price); Empty set CEILING(), FLOOR() Za pomocą funkcji CEILING() zwrócona zostanie najmniejsza liczba całkowita równa liczbie podanej jako argument funkcji lub większa. Funkcja FLOOR() zwraca największą liczbę całkowitą równą liczbie podanej jako argument funkcji lub mniejszą (listing 12.15). Listing Zwróć uwagę na wynik wywołania funkcji z argumentem Null SELECT sell_price, CEILING(sell_price), FLOOR(sell_price) FROM item; sell_price CEILING(sell_price) FLOOR(sell_price) NULL NULL NULL POWER(), POW() Funkcja POWER() sprawia, że liczba podana jako pierwszy parametr zostanie podniesiona do potęgi podanej jako drugi parametr. Wartości drugiego parametru mogą być mniejsze niż zero (listing 12.16). Listing Często tę samą funkcję możemy wywołać za pomocą kilku nazw SELECT POWER(10,2), POW(2,10); POWER(10,2) POW(2,10)

10 SQRT() W wyniku działania funkcji SQRT() zwrócony będzie pierwiastek kwadratowy z liczby podanej jako parametr wywołania (listing 12.17). Listing Przykład użycia funkcji SQRT() SELECT SQRT(10), SQRT(16); SQRT(10) SQRT(16) MOD() Funkcja MOD() zwraca jako wynik wartość reszty po podzieleniu liczby podanej jako pierwszy parametr przez dzielnik podany jako drugi parametr wywołania funkcji. Jeżeli wartość drugiego parametru wynosi 0, zwracana jest liczba podana jako pierwszy parametr (listing 12.18). Listing Zapytanie zwracające dane towarów o parzystych identyfikatorach SELECT * FROM item WHERE MOD(item_id,2)=0; item_id description cost_price sell_price Rubik Cube Tissues Fan Small Toothbrush Carrier Bag SQL Server 2005 NULL NULL Funkcje trygonometryczne SIN(), COS(), TAN() i COT() W wyniku działania funkcji SIN() (sinus), COS() (cosinus), TAN() (tangens) i COT() (cotangens) zwrócona zostanie wartość odpowiednich funkcji trygonometrycznych dla parametru będącego kątem w radianach będzie obliczony odpowiednio: sinus, cosinus, tangens lub cotangens. Aby przeliczyć kąty z radianów na stopnie, należy posłużyć się wzorem: stopnie PI()/180 = radiany (listing 12.19). Listing Przykład użycia funkcji trygonometrycznych SELECT SIN(200), COS(200), COT(200); 10

11 SIN(200) COS(200) COT(200) RAND() Funkcja RAND() zwraca pseudolosową liczbę z przedziału od 0 do 1. Serwer MySQL oblicza tę wartość dla każdego wiersza wyniku (listing 12.20), co pozwala użyć funkcji RAND() do losowego wybierania danych z tabeli (listing 12.21). Listing MySQL w przeciwieństwie do niektórych serwerów baz danych wylicza wartości funkcji RAND() dla każdego wiersza wyniku SELECT RAND(), description FROM item; RAND() description Wood Puzzle Rubik Cube Linux CD Tissues Picture Frame Fan Small Fan Large Toothbrush Roman Coin Carrier Bag Speakers SQL Server Listing Każde wywołanie tej instrukcji zwróci informację o innym, losowo wybranym towarze SELECT * FROM item ORDER BY RAND() LIMIT 1; item_id description cost_price sell_price Roman Coin

12 SIGN() Funkcja SIGN() zwraca 1, jeżeli argumentem jej wywołania była liczba większa od 0, lub 0, jeżeli argumentem jej wywołania było 0, albo 1, jeżeli została wywołana dla liczby mniejszej od zera. W listingu użyto jej do wyróżniania informacji o tym, czy cena sprzedaży towaru była wyższa od ceny jego zakupu. Listing Funkcja SIGN() wywołana dla wyniku odjęcia wartości dwóch kolumn SELECT description,sign(sell_price-cost_price) FROM test.item; description SIGN(sell_price-cost_price) Wood Puzzle 1 Rubik Cube 1 Linux CD 1 Tissues 1 Picture Frame 1 Fan Small 1 Fan Large 1 Toothbrush 1 Roman Coin 1 Carrier Bag -1 Speakers 1 SQL Server 2005 NULL FORMAT() Funkcja FORMAT() zwraca przekazaną jako pierwszy argument wywołania liczbę z określoną przez drugi parametr liczbą miejsc po przecinku (listing 12.23). Listing Formatowanie liczb polega na określaniu miejsc po przecinku SELECT cost_price, FORMAT(cost_price,1), FORMAT(cost_price,3) FROM test.item i; cost_price FORMAT(cost_price,1) FORMAT(cost_price,3)

13 NULL NULL NULL Funkcje daty i czasu Kolejna często używana grupa funkcji to funkcje operujące na argumentach będących zapisem daty lub czasu. W prawie każdej bazie danych część przechowywanych w niej informacji musi mieć jakiś znacznik czasu atrybut pozwalający na sprawdzenie, kiedy rekord został dodany lub zmodyfikowany. Informacje takie jak dane o poszczególnych transakcjach finansowych stają się bezwartościowe po wyeliminowaniu dat tych operacji. Dlatego MySQL posiada predefiniowane funkcje pozwalające wykonywać podstawowe operacje na danych tego typu. CURDATE(), CURTIME() Wynikiem działania funkcji CURDATE() jest bieżąca data, a funkcji CURTIME() bieżący czas. Częstym zastosowaniem funkcji jest automatyczne wstawianie informacji o czasie utworzenia lub zmodyfikowania danych (listing 12.24). Listing Odczytanie bieżącej daty i czasu systemowego SELECT CURDATE(),CURTIME(); CURDATE() CURTIME() :33: NOW() Funkcja NOW() zwraca zarówno datę, jak i czas systemowy (listing 12.25). Listing Przykład wywołania funkcji NOW(). Należy zwrócić uwagę, że nawet jeżeli funkcja wywoływana jest bez parametrów, trzeba użyć nawiasów SELECT NOW(); NOW() :37:

14 DAYOFMONTH(), DAYOFWEEK(), DAYOFYEAR() Funkcje DAYOFMONTH(), DAYOFWEEK(), DAYOFYEAR() zwracają numer dnia odpowiednio: miesiąca (liczba z zakresu od 1 do 31), tygodnia (liczba z zakresu od 1 do 7, gdzie 1 oznacza niedzielę pierwszy dzień tygodnia, a 7 sobotę siódmy dzień tygodnia) i roku (liczba z zakresu od 1 do 365) (listing 12.26). Listing Lista zamówień złożonych w piątek SELECT * FROM orderinfo WHERE DAYOFWEEK(date_placed) = 6; orderinfo_id customer_id date_placed date_shipped shipping DAY(), MONTH(), YEAR() Funkcje DAY(), MONTH(), YEAR() zwracają odpowiednio dzień, miesiąc i rok z daty przekazanej jako parametr wywołania (listing 12.27). Listing Informacja o dacie zamówień rozbita na dni, miesiące i lata SELECT date_placed, DAY(date_placed), MONTH (date_placed), YEAR(date_placed) FROM orderinfo; date_placed DAY(date_placed) MONTH (date_placed) YEAR(date_placed) HOUR(), MINUTE(), SECOND() Funkcje HOUR(), MINUTE(), SECOND() zwracają odpowiednio godziny, minuty i sekundy z czasu przekazanego jako parametr wywołania (listing 12.28). Listing Informacja o bieżącym czasie rozbita na godziny, minuty i sekundy SELECT HOUR(CURTIME()), MINUTE(CURTIME()), SECOND(CURTIME()); 14

15 HOUR(CURTIME()) MINUTE(CURTIME()) SECOND(CURTIME()) DAYNAME(), MONTHNAME() Funkcje DAYNAME(), MONTHNAME() zwracają nazwę dnia tygodnia i miesiąca daty będącej argumentem wywołania (listing 12.29). Listing Opisowo przedstawione dni tygodnia i nazwy miesięcy SELECT date_placed, DAYNAME(date_placed), MONTHNAME(date_placed) FROM orderinfo; date_placed DAYNAME(date_placed) MONTHNAME(date_placed) Monday March Friday June Saturday September Sunday September Friday July DATE_ADD() Działanie funkcji DATE_ADD() powoduje obliczenie wyniku zmiany daty (podanej jako pierwszy parametr) o ilość jednostek czasu określoną przez drugi parametr (listing 12.30). Listing Terminy zrealizowania zamówień zostały przesunięte o trzy dni SELECT date_shipped, DATE_ADD(date_shipped, INTERVAL 3 DAY) FROM orderinfo; date_shipped DATE_ADD(date_shipped, INTERVAL 3 DAY)

16 DATEDIFF() Wynikiem działania funkcji DATEDIFF() jest liczba dni, które dzielą daty podane jako parametry funkcji. Aby sprawdzić, ile dni upłynęło pomiędzy złożeniem i zrealizowaniem zamówienia, napiszemy (listing 12.31): Listing Aliasy zdefiniowane w klauzuli SELECT nie mogą być użyte w innych klauzulach. Zamiast tego musimy powtórzyć całe wyrażenie SELECT orderinfo_id, DATEDIFF(date_shipped, date_placed) AS 'czas realizacji' FROM orderinfo ORDER BY DATEDIFF(date_shipped, date_placed); orderinfo_id czas realizacji DATE_FORMAT(), TIME_FORMAT() Funkcja DATE_FORMAT() pozwala formatować dane daty i czasu, funkcja TIME_FORMAT() pozwala formatować wyłącznie informacje o czasie. Pierwszym parametrem obu funkcji jest data lub czas, drugim symbol docelowego formatu (tabela 12.1). Tabela Najczęściej stosowane formaty daty i czasu Format Opis %a Skrócona nazwa dnia tygodnia %b Skrócona nazwa miesiąca %c Jedno- lub dwucyfrowy numer miesiąca %D Kolejny dzień miesiąca z angielskim przedrostkiem %d Jedno- lub dwucyfrowy numer dnia miesiąca %e Dwucyfrowy numer dnia miesiąca %f Liczba milisekund %H Godziny w notacji 24-godzinnej 16

17 %h Godziny w notacji 12-godzinnej %i Minuty %j Dzień roku %M Nazwa miesiąca %m Dwucyfrowy numer miesiąca %p Symbol AM (łac. ante meridiem) lub PM (łac. post meridiem) %r Czas w formacie hh:mm:ss uzupełniony o symbol AM lub PM %S Sekundy %T Czas w formacie hh:mm:ss %U Tydzień (pierwszym dniem tygodnia jest niedziela) %u Tydzień (pierwszym dniem tygodnia jest poniedziałek) %W Nazwa dnia tygodnia %w Dzień tygodnia %Y Czterocyfrowy rok %y Dwucyfrowy rok Listing pokazuje zastosowanie obu funkcji do formatowania danych daty i czasu. Listing Daty zrealizowania zamówień w oryginalnym i polskim formacie uzupełnione o informacje o bieżącym czasie SELECT date_shipped, DATE_FORMAT(date_shipped, '%D%M, %Y'), time_format(curtime(),'%t') FROM orderinfo; date_shipped DATE_FORMAT(date_shipped, '%D%M, %Y') time_format(curtime(),'%t') thMarch, :13: rdJune, :13: thSeptember, :13: thSeptember, :13: thJuly, :13:

18 Funkcje konwersji Piąta wersja serwera MySQL umożliwia definiowanie kolumn lub deklarowanie zmiennych różnych typów: 1. Dane tekstowe (typy char, varchar, text) mogą zawierać tekst lub kombinacje tekstu i liczb, na przykład adres; mogą zawierać również liczby, na których nie są przeprowadzane obliczenia, takie jak numery telefonów, numery katalogowe i kody pocztowe. 2. Dane binarne (typy binary, varbinary, BLOB) mogą zawierać dowolne dane. Mogą to być zarówno długie teksty, jak i grafika czy pliki multimedialne. 3. Dane liczbowe (typy tinyint, smallint, mediumint, int, bigint, decimal, float, double) zawierają dane liczbowe, na których są przeprowadzane obliczenia, przy czym dwa ostatnie typy są zmiennoprzecinkowe, czyli takie dane przechowywane są z określoną dokładnością. 4. Daty (typy datetime, date, timestamp, time i year) przechowują dane dotyczące daty i czasu. 5. Dane logiczne (typy bool, boolean) w MySQL-u są to synonimy typu tinyint, przy czym 0 oznacza fałsz, a 1 prawdę. Prędzej czy później każdy administrator i programista baz danych będzie zmuszony porównać dane różnych typów. Wynik porównania np. imienia Anna z liczbą 712 czy datą jest trudny do przewidzenia. Aby takie porównanie było możliwe, trzeba najpierw przekonwertować porównywane dane. ASCII() W wyniku działania funkcji ASCII() będzie zwrócony kod ASCII znaku podanego jako parametr wywołania. Jeżeli jako parametr podamy ciąg znaków, za pomocą tej funkcji zostanie obliczony i zwrócony kod ASCII pierwszego znaku w ciągu (listing 12.33). Listing Konwersja znaków na liczby SELECT ASCII(lname), lname FROM customer; ASCII(lname) lname Stones 83 Stones 77 Matthew 77 Matthew 67 Cozens 77 Matthew 83 Stones 83 Stones 72 Hickman 18

19 72 Howard 74 Jones 78 Neill 72 Hendy 78 Neill 72 Hudson 87 Wolski CHR() Działanie funkcji CHR() jest przeciwieństwem działania funkcji ASCII() zamiast zamiany tekstu na liczbę przeprowadza konwersję liczby na odpowiadające jej znaki kodu ASCII (listing 12.34). Listing Funkcję CHR() często stosuje się w celu oszukania prostych zabezpieczeń przed iniekcją kodu SELECT CHAR(77,121,83,81,'76'); CHAR(77,121,83,81,'76') MySQL BIN() Funkcja BIN() zwraca binarną reprezentację podanej liczby dziesiętnej (listing 12.35). Listing Zmiana podstawy liczb SELECT item_id, BIN(item_id) FROM item; item_id BIN(item_id)

20 CAST() Funkcja CAST() pozwala przekonwertować (rzutować) dane przekazane jako pierwszy parametr wywołania na typ podany jako drugi parametr funkcji (listing 12.36). Listing CAST() jest najbardziej uniwersalną funkcją konwersji SELECT CAST(' ' AS date); CAST(' ' AS date) Funkcje serwera MySQL Kilka funkcji kryptograficznych dostępnych w serwerze MySQL. ENCODE(), DECODE() Funkcja ENCODE() zwraca szyfrogram podanego ciągu znaków. Do szyfrowania używane jest hasło podane jako drugi parametr wywołania (listing 12.37). Funkcja DECODE() deszyfruje zaszyfrowane funkcją ENCODE() szyfrogramy. Listing Poufne dane lepiej przechowywać w bazie w postaci zaszyfrowanej SELECT ENCODE('Pin do karty VISA GOLD to 3478','h@ssL0'); ENCODE('Pin do karty VISA GOLD to 3478','h@ssL0') ćň5)kâw őu SHA1() Funkcja SHA1() wylicza sygnaturę podanego ciągu znaków (listing 12.38). Listing W niektórych przypadkach trzeba móc potwierdzić autentyczność danych. Najlepiej wykorzystać do tego funkcję mieszania SELECT SHA1(sell_price) FROM item; SHA1(sell_price) d593b090a756bf12bb1b40e50d03db971d90865a e dce4b1be574bb51c5fe 03f82d768c8366b01cc7366f3c2628e0ec9a

21 70d403dc3c9428c27b2da0056c4702e424c928b1 8818c759d88e34a ed00ae1a44121aabd5 3194b173d1f5e493d10d8fe69cdbb6a9ae218c0e 866de6c5b3f c63bd9f5fb67b cf2449e7d1a4a46d0b78eb2caeb99e78a e f4cec72744beca1c8eeb898df5d8 22cf82b68b95049bffb ccc312a460b10 139fb724c5c37892cb113d b67e9a90ff9 NULL PASSWORD() Hasła użytkowników muszą być chronione, a to oznacza, że nigdy nie należy zapisywać ich w bazie w jawnej postaci. Prawie zawsze hasło wykorzystywane jest jedynie do potwierdzenia tożsamości użytkownika, a do tego celu serwer baz danych nie musi odszyfrować hasła, czyli hasła powinny być zapisane nieodwracalnie zaszyfrowane. Wiemy już, że tak działają funkcje mieszania hasła do serwera MySQL też są tak przechowywane, z tym że do ich wyliczenia i późniejszego porównania wykorzystywana jest funkcja PASSWORD() (listing 12.39). Listing Do sprawdzania tożsamości należy używać sygnatur haseł, nie samych haseł SELECT fname, lname FROM customer WHERE PASSWORD (fname) = '*773326F AEE1566F9BEDE2DEE '; fname lname Alex Matthew SELECT PASSWORD ('Jenny'); PASSWORD ('Jenny') *B2D8022EC63D192D46A9C6E8F651C37B4BC163A SELECT fname, lname FROM customer WHERE PASSWORD (fname) = '*B2D8022EC63D192D46A9C6E8F651C37B4BC163A6'; fname lname Jenny Stones

E.14 Bazy Danych cz. 14 SQL Podzapytania

E.14 Bazy Danych cz. 14 SQL Podzapytania Wprowadzenie Podzapytania niepowiązane Podzapytania jako źródła danych Podzapytania jako zmienne Podzapytania powiązane Podzapytania jako złączenia Podzapytania z operatorem EXISTS Podzapytania zwracające

Bardziej szczegółowo

Podobnie jak wywołania funkcji w innych funkcjach, zapytania możemy zagnieżdżać w innych zapytaniach. Podzapytanie musi zostać zapisane w nawiasie.

Podobnie jak wywołania funkcji w innych funkcjach, zapytania możemy zagnieżdżać w innych zapytaniach. Podzapytanie musi zostać zapisane w nawiasie. W tym odcinku poznasz odpowiednik zmiennych i funkcji znanych z proceduralnych języków programowania podzapytania. Dowiesz się, w jaki sposób MySQL wykonuje podzapytania niepowiązane i powiązane, oraz

Bardziej szczegółowo

Pobieranie danych z pojedynczych tabel. Wprowadzenie

Pobieranie danych z pojedynczych tabel. Wprowadzenie 1. Utwórz bazę o nazwie test 2. Zaimportuj strukturę i dane z pliku baza_test.txt 3. Powyższy zbiór poleceo SQL utworzony w bazie tablice i wpiszę ich zawartości wg poniżeszego schematu: Pobieranie danych

Bardziej szczegółowo

Pobieranie danych z wielu tabel i łączenie wyników zapytań

Pobieranie danych z wielu tabel i łączenie wyników zapytań W tym odcinku nauczysz się odczytywać dane zapisane w różnych tabelach, poznasz różnice pomiędzy złączeniem wewnętrznym a złączeniami zewnętrznymi i dowiesz się, jak przeprowadzać na tabelach operacje

Bardziej szczegółowo

Wprowadzenie. Tworzenie widoków

Wprowadzenie. Tworzenie widoków Widoki Wprowadzenie...2 Tworzenie widoków...2 Złączenie zewnętrzne w definicji widoków...4 Porządkowanie danych przez widoki...5 Modyfikowanie danych przez widoki...6 Ograniczenie zakresu modyfikowania

Bardziej szczegółowo

Funkcje. Rozdział 3a Funkcje wierszowe. Funkcje znakowe (1) Funkcje wierszowe

Funkcje. Rozdział 3a Funkcje wierszowe. Funkcje znakowe (1) Funkcje wierszowe Funkcje Rozdział 3a Funkcje wierszowe Funkcje wierszowe (funkcje znakowe, funkcje liczbowe, funkcje operujące na datach, funkcje konwersji, funkcje polimorficzne) Przekształcają dane, pobrane przez polecenie

Bardziej szczegółowo

Laboratorium Baz Danych. Zapytania SQL (część 3)

Laboratorium Baz Danych. Zapytania SQL (część 3) Laboratorium Baz Danych Zapytania SQL (część 3) Uwagi: 1. Wszystkie zapytania dotyczą bazy danych zapytania (skrypt baza6.sql) 2. Wszystkie utworzone zapytania umieszczamy w skrypcie, który pokazujemy

Bardziej szczegółowo

Język SQL. Rozdział 3. Funkcje wierszowe

Język SQL. Rozdział 3. Funkcje wierszowe Język SQL. Rozdział 3. Funkcje wierszowe Funkcje wierszowe (funkcje znakowe, funkcje liczbowe, funkcje operujące na datach, funkcje konwersji, funkcje polimorficzne). 1 Funkcje Przekształcają dane, pobrane

Bardziej szczegółowo

E.14 Bazy Danych cz. 13 SQL Grupowanie danych i funkcje grupujące

E.14 Bazy Danych cz. 13 SQL Grupowanie danych i funkcje grupujące Funkcje grupujące Funkcja COUNT() Funkcja SUM() Funkcja AVG() Funkcje MIN() i MAX() Funkcja GROUP_CONCAT() Grupowanie danych Operator ROLLUP Klauzula HAVING Kolejność wykonywania klauzuli zapytań Na podstawie:

Bardziej szczegółowo

Specyfika języka SQL powoduje, że łatwiej jest najpierw wytłumaczyć, jak korzystać z funkcji grupujących, a dopiero później jak grupować dane.

Specyfika języka SQL powoduje, że łatwiej jest najpierw wytłumaczyć, jak korzystać z funkcji grupujących, a dopiero później jak grupować dane. W tym odcinku poznasz funkcje grupujące i dwie nowe klauzule instrukcji SELECT GROUP BY i HAVING. Nauczysz się też grupować dane, czyli łączyć wiele wierszy w jeden. Grupowanie danych polega na łączeniu

Bardziej szczegółowo

E.14 Bazy Danych cz. 17 SQL Widoki

E.14 Bazy Danych cz. 17 SQL Widoki Wprowadzenie Tworzenie widoków Złączenie zewnętrzne w definicji widoków Uporządkowywanie danych poprzez widoki Modyfikowanie danych poprzez widoki Ograniczenie zakresu modyfikowania danych poprzez widoki

Bardziej szczegółowo

a) Polecenie: Wyświetl wszystkie rekordy z tabeli Pracownicy (wszystkie atrybuty)

a) Polecenie: Wyświetl wszystkie rekordy z tabeli Pracownicy (wszystkie atrybuty) Ćwiczenia MS Access/SQL I. Zadania podstawowe 1. Wyświetlanie zawartości tabeli a) Polecenie: Wyświetl wszystkie rekordy z tabeli Pracownicy (wszystkie atrybuty). ; b) Polecenie: Wyświetl dane (wszystkie

Bardziej szczegółowo

Bazy danych 6. SQL funkcje daty i czasu, zmienne tymczasowe, aliasy

Bazy danych 6. SQL funkcje daty i czasu, zmienne tymczasowe, aliasy Bazy danych 6. SQL funkcje daty i czasu, zmienne tymczasowe, aliasy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2007/08 MySQL i programowanie wsadowe C:\wyklady\bazy> mysql < nazwa pliku

Bardziej szczegółowo

Ściągawka z funkcji i właściwości systemowych VBA. Opis działania i parametrów. Nazwa funkcji. Składnia zwracanej wartości

Ściągawka z funkcji i właściwości systemowych VBA. Opis działania i parametrów. Nazwa funkcji. Składnia zwracanej wartości Ściągawka z funkcji i właściwości systemowych VBA. Nazwa funkcji Składnia Typ zwracanej wartości Opis działania i parametrów Funkcje konwersji CBool CBool(arg) Boolean arg powinno być wartością numeryczną

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 3 Podstawy programowania w T-SQL Zmienne i operatory Instrukcje sterujące Komunikaty Format daty

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

E.14 Bazy Danych cz. 10 SQL Pobieranie danych z pojedynczych tabel

E.14 Bazy Danych cz. 10 SQL Pobieranie danych z pojedynczych tabel Tabele jako zbiory danych Standardy SQL i historia ich powstania Składnia języka SQL Pobieranie danych Odczytujemy wszystkie dane z tabeli Wybieramy kolumny z tabeli Wyrażenia Aliasy Literały Łączenie

Bardziej szczegółowo

PL/SQL. Funkcje wbudowane

PL/SQL. Funkcje wbudowane Slajd 1 PL/SQL Opis funkcji SQL PL/SQL(funkcje SQL) M. Rakowski - WSISiZ 1 Slajd 2 Funkcje wbudowane Funkcje wbudowane mają za zadanie umożliwić bardziej zaawansowane operowanie danymi. Funkcje operacji

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

Transakcje W poprzednich częściach instrukcje języka SQL traktowane były jak indywidualne operacje (transakcje)

Transakcje W poprzednich częściach instrukcje języka SQL traktowane były jak indywidualne operacje (transakcje) Zawartość Transakcje...2 Wstawianie danych...4 Weryfikacja danych...4 Wstawianie pojedynczych wierszy...6 Wstawianie wartości Null...8 Wstawianie danych wybranych w zapytaniu... 10 Usuwanie danych... 12

Bardziej szczegółowo

Pobieranie danych, czyli instrukcja SELECT

Pobieranie danych, czyli instrukcja SELECT Pobieranie danych, czyli instrukcja SELECT Pobieranie danych Informacje przechowywane w bazach danych mogą być pobrane za pomocą instrukcji języka SQL SELECT. Instrukcja SELECT (zapytanie) określa, jakie

Bardziej szczegółowo

Laboratorium Bazy danych SQL 2

Laboratorium Bazy danych SQL 2 Klauzula order by występuje jako ostatnia klauzula w poleceniu select, powoduje posortowanie wierszy będących wynikiem zapytania według wartości atrybutu w niej wskazanego. Domyślnie sortowanie jest według

Bardziej szczegółowo

Współczesne systemy baz danych

Współczesne systemy baz danych Współczesne systemy baz danych dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu Zakład Systemów Informatycznych i Mechatronicznych (SIMT) 2018 Język SQL Język SQL (ang. Structured

Bardziej szczegółowo

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2 Wprowadzania liczb Liczby wpisywane w komórce są wartościami stałymi. W Excel'u liczba może zawierać tylko następujące znaki: 0 1 2 3 4 5 6 7 8 9 + - ( ), / $ %. E e Excel ignoruje znaki plus (+) umieszczone

Bardziej szczegółowo

Pobieranie danych z pojedynczych tabel

Pobieranie danych z pojedynczych tabel W tym odcinku po raz pierwszy potraktujemy tabele jako zbiory danych. Poznasz język SQL i nauczysz się odczytywać, wybierać i sortować dane zapisane w pojedynczych tabelach. Wprowadzenie Podstawowe obiekty

Bardziej szczegółowo

Współczesne systemy baz danych

Współczesne systemy baz danych Współczesne systemy baz danych dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu Zakład Systemów Informatycznych i Mechatronicznych (SIMT) 2019 Język SQL Język SQL (ang. Structured

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

Bazy danych SQL Server 2005

Bazy danych SQL Server 2005 Bazy danych SQL Server 2005 TSQL Michał Kuciapski Typ zadania: Podstawowe zapytania Select Zadanie 1: Wyświetl następujące informacje z bazy: A. 1. Wyświetl informacje o klientach: nazwa firmy, imie, nazwisko,

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

Język SQL. Rozdział 3. Zaawansowana selekcja danych

Język SQL. Rozdział 3. Zaawansowana selekcja danych Język SQL. Rozdział 3. Zaawansowana selekcja danych Selekcja wg wartości elementów czasowych, ciągów znaków i liczb. Konstrukcja warunkowa. 1 Funkcje Przekształcają dane, pobrane przez polecenie SQL, lub

Bardziej szczegółowo

Funkcje. Rozdział 3. Funkcje. Funkcje znakowe (1) Funkcje wierszowe

Funkcje. Rozdział 3. Funkcje. Funkcje znakowe (1) Funkcje wierszowe Funkcje Rozdział 3 Funkcje Funkcje wierszowe (funkcje znakowe, funkcje liczbowe, funkcje operujące na datach, funkcje konwersji, funkcje polimorficzne), funkcje grupowe, podział relacji na grupy, klauzule

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

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

MySQL. Darmowa baza danych. Æwiczenia praktyczne

MySQL. Darmowa baza danych. Æwiczenia praktyczne IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE ONOWOœCIACH ZAMÓW CENNIK CZYTELNIA SPIS TREœCI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY

Bardziej szczegółowo

Autor: dr inż. Katarzyna Rudnik

Autor: dr inż. Katarzyna Rudnik Bazy danych Wykład 2 MS Access Obiekty programu, Reprezentacja danych w tabeli, Indeksy, Relacje i ich sprzężenia Autor: dr inż. Katarzyna Rudnik Obiekty programu MS ACCESS Obiekty typu Tabela są podstawowe

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

4. Funkcje. Przykłady

4. Funkcje. Przykłady 4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni

Bardziej szczegółowo

Laboratorium nr 7. Temat: Podstawy języka zapytań SQL (część 1) 1. Wprowadzenie do laboratorium

Laboratorium nr 7. Temat: Podstawy języka zapytań SQL (część 1) 1. Wprowadzenie do laboratorium Laboratorium nr 7 Temat: Podstawy języka zapytań SQL (część 1) Systemy Zarządzania Bazą Danych (SZBD) pozwalają na rozwiązanie wielu problemów związanych ze składowaniem, przeszukiwaniem i przekształcaniem

Bardziej szczegółowo

Bazy danych 7/15. Andrzej Łachwa, UJ,

Bazy danych 7/15. Andrzej Łachwa, UJ, Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 7/15 Tabele pomocnicze Tabele pomocnicze nie są częścią modelu danych, więc nie powinny pojawiać się na etapie

Bardziej szczegółowo

Microsoft Small Basic

Microsoft Small Basic Microsoft Small Basic Obiekt Math Szacowany czas trwania lekcji: 1 godzina Obiekt Math Podczas tej lekcji dowiesz się, jak: Używać różnych właściwości obiektu Math. Używać różnych operacji obiektu Math.

Bardziej szczegółowo

E.14 Bazy Danych cz. 15 SQL Transakcyjne przetwarzanie danych

E.14 Bazy Danych cz. 15 SQL Transakcyjne przetwarzanie danych Transakcje Przetwarzanie transakcyjne Automatyczne zatwierdzanie transakcji Rozpoczynanie transakcji Zatwierdzanie transakcji Wycofywanie transakcji Punkty zachowania Poziomy izolowania transakcji Blokowanie

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

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

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

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy) Zapytania SQL. Polecenie SELECT jest używane do pobierania danych z bazy danych (z tabel lub widoków). Struktura polecenia SELECT SELECT FROM WHERE opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje

Bardziej szczegółowo

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System

Bardziej szczegółowo

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

Transakcyjne przetwarzanie danych

Transakcyjne przetwarzanie danych Do tej pory jedynie odczytywaliśmy zapisane w bazach informacje. W tym odcinku nauczysz się wstawiać, usuwać i modyfikować dane. Dowiesz się również, czym jest transakcja, blokada i na czym polega transakcyjne

Bardziej szczegółowo

2. Język SQL SQL jest językiem deklaratywnym (Charakterystyczną cechą języków

2. Język SQL SQL jest językiem deklaratywnym (Charakterystyczną cechą języków Część II Bazy Danych podstawy SQL 1. Wprowadzenie Ćwiczenia z przedmiotu Bazy Danych" są poświęcone przede wszystkim językowi SQL (ang. Structured Query Language) i jego zastosowaniom. Język SQL jest strukturalnym

Bardziej szczegółowo

OBLICZENIA NA DANYCH

OBLICZENIA NA DANYCH OBLICZENIA NA DANYCH WYRAŻENIA W JĘZYKU 4GL 1. stałe numeryczne Liczby używane w wyrażeniach SAS. Możemy je prezentować w zapisie standardowym (np. 5, 6.7, -2.1), w notacji naukowej (np. 2e5(czyli 2*10

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

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym S t r o n a 1 Bożena Ignatowska Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym Wprowadzenie W artykule zostaną omówione zagadnienia związane z wykorzystaniem funkcji tekstowych w arkuszu

Bardziej szczegółowo

Bazy danych. Andrzej Łachwa, UJ, /14

Bazy danych. Andrzej Łachwa, UJ, /14 Bazy danych Andrzej Łachwa, UJ, 2016 andrzej.lachwa@uj.edu.pl 3/14 Języki SQL, SQL 2 (1992), SQL 3 (1999-2002) https://pl.wikipedia.org/wiki/sql SQLite https://www.sqlite.org/ MySQL https://www.mysql.com/

Bardziej szczegółowo

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

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

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2) Laboratorium nr 8 Temat: Podstawy języka zapytań SQL (część 2) PLAN LABORATORIUM: 1. Sortowanie. 2. Warunek WHERE 3. Eliminacja powtórzeń - DISTINCT. 4. WyraŜenia: BETWEEN...AND, IN, LIKE, IS NULL. 5.

Bardziej szczegółowo

Programowanie 3 - Funkcje, pliki i klasy

Programowanie 3 - Funkcje, pliki i klasy Instytut Informatyki Uniwersytetu Śląskiego Laborki funkcja; parametry funkcji; typ zwracany; typ void; funkcje bez parametrów; napis.length() - jako przykład funkcji. Zadania funkcja dodająca dwie liczby;

Bardziej szczegółowo

I. Podstawy języka C powtórka

I. Podstawy języka C powtórka I. Podstawy języka C powtórka Zadanie 1. Utwórz zmienne a = 730 (typu int), b = 106 (typu long long), c = 123.45 (typu double) Wypisz następujące komunikaty: Dane sa liczby: a = 730, b = 106 i c = 123.45.

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 4

Algorytmy i struktury danych. Wykład 4 Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

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

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL Wprowadzenie do SQL SQL - Structured Query Language -strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w relacyjnych bazach danych Powstał w firmie

Bardziej szczegółowo

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Publikacja jest dystrybuowana bezpłatnie Program Operacyjny Kapitał Ludzki Priorytet 9 Działanie 9.1 Poddziałanie

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

Funkcje wbudowane PHP

Funkcje wbudowane PHP Funkcje wbudowane PHP Funkcje daty i czasu Funkcja time() zwraca informacje na temat bieżącej daty i czasu. Nie posiada żadnych argumentów. Informacje o czasie dacie zwraca w formie liczby Liczba odpowiada

Bardziej szczegółowo

Język SQL. Rozdział 2. Proste zapytania

Język SQL. Rozdział 2. Proste zapytania Język SQL. Rozdział 2. Proste zapytania Polecenie SELECT, klauzula WHERE, operatory SQL, klauzula ORDER BY. 1 Wprowadzenie do języka SQL Język dostępu do bazy danych. Język deklaratywny, zorientowany na

Bardziej szczegółowo

Klasy: String, Random, Math. Korzystanie z dokumentacji.

Klasy: String, Random, Math. Korzystanie z dokumentacji. Klasy: String, Random, Math. Korzystanie z dokumentacji. Ćwiczenia 3 7. Napisz program wyliczający największy wspólny dzielnik dwóch liczb całkowitych podanych przez użytkownika algorytmem Euklidesa. 8.

Bardziej szczegółowo

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa Wprowadzenie do projektowania i wykorzystania baz danych Katarzyna Klessa ` Informacje organizacyjne 1. Dyżury: wtorek 11:50-13:20 pokój / room 312aB Coll. Novum 2. Warunki zaliczenia przedmiotu: semestr

Bardziej szczegółowo

Programowanie Delphi obliczenia, schematy blokowe

Programowanie Delphi obliczenia, schematy blokowe Informatyka II MPZI2 ćw.2 Programowanie Delphi obliczenia, schematy blokowe Zastosowania obliczeń numerycznych Wyrażenia arytmetyczne służą do zapisu wykonywania operacji obliczeniowych w trakcie przebiegu

Bardziej szczegółowo

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem.

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem. Typy numeryczne Typy daty i czasu. W celu uniknięcia niejasności czy zapis 11-08-2005 oznacza - 11 sierpnia 2005, czy może 8 listopada 2005, należy ustalić sposób interpretacji daty (europejski lub amerykański).

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

MS Excel 2007 Kurs zaawansowany Wybrane Funkcje. prowadzi: Dr inż. Tomasz Bartuś. Kraków: 2008 04 18

MS Excel 2007 Kurs zaawansowany Wybrane Funkcje. prowadzi: Dr inż. Tomasz Bartuś. Kraków: 2008 04 18 MS Excel 2007 Kurs zaawansowany Wybrane Funkcje prowadzi: Dr inż. Tomasz Bartuś Kraków: 2008 04 18 Zastosowanie funkcji w formułach Funkcje Funkcja jest to innymi słowy predefiniowana formuła, która realizuje

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

Cw.12 JAVAScript w dokumentach HTML

Cw.12 JAVAScript w dokumentach HTML Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane

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

Przydatne sztuczki - sql. Na przykładzie postgres a.

Przydatne sztuczki - sql. Na przykładzie postgres a. Przydatne sztuczki - sql. Na przykładzie postgres a. M. Wiewiórko 05/2014 Plan Uwagi wstępne Przykład Rozwiązanie Tabela testowa Plan prezentacji: Kilka uwag wstępnych. Operacje na typach tekstowych. Korzystanie

Bardziej szczegółowo

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 = Systemy liczbowe Dla każdej liczby naturalnej x Î N oraz liczby naturalnej p >= 2 istnieją jednoznacznie wyznaczone: liczba n Î N oraz ciąg cyfr c 0, c 1,..., c n-1 (gdzie ck Î {0, 1,..., p - 1}) taki,

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

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 4 Jan Kazimirski 1 Reprezentacja danych 2 Plan wykładu Systemy liczbowe Zapis dwójkowy liczb całkowitych Działania arytmetyczne Liczby rzeczywiste Znaki i łańcuchy znaków

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 8/9 Wykład nr 4 (.3.9) Rok akademicki 8/9, Wykład nr 4 /33 Plan wykładu

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

Przegląd podstawowych funkcji Excel.

Przegląd podstawowych funkcji Excel. Przegląd podstawowych funkcji Excel. Spis treści I. Funkcje tekstu oraz pomocnicze... 1 1. FRAGMENT.TEKSTU(tekst;liczba_początkowa;liczba_znaków... 1 2. LEWY(tekst;liczba_znaków)... 2 3. Prawy (tekst;liczba_znaków)...

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

MySQL. Leksykon kieszonkowy. II wydanie

MySQL. Leksykon kieszonkowy. II wydanie MySQL. Leksykon kieszonkowy. II wydanie Autor: George Reese T³umaczenie: Tomasz mijewski ISBN: 978-83-246-1385-4 Tytu³ orygina³u: MySQL Pocket Reference, 2nd Ed Format: B6, stron: 160 MySQL to jeden z

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

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

FUNKCJE TEKSTOWE W MS EXCEL

FUNKCJE TEKSTOWE W MS EXCEL FUNKCJE TEKSTOWE W MS EXCEL ASC W językach korzystających z dwubajtowego zestawu znaków (DBCS) zmienia znaki o pełnej szerokości (dwubajtowe) na znaki o połówkowej szerokości (jednobajtowe). : ASC(tekst)

Bardziej szczegółowo

MySQL. Leksykon kieszonkowy

MySQL. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWO CIACH ZAMÓW CENNIK CZYTELNIA SPIS TRE CI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY

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

Excel - podstawa teoretyczna do ćwiczeń. 26 lutego 2013

Excel - podstawa teoretyczna do ćwiczeń. 26 lutego 2013 26 lutego 2013 Ćwiczenia 1-2 Częste błędy i problemy: 1 jeżeli użyjemy niewłaściwego znaku dziesiętnego Excel potraktuje liczbę jak tekst - aby uniknać takich sytuacji używaj klawiatury numerycznej, 2

Bardziej szczegółowo

Podstawowe zapytania SELECT (na jednej tabeli)

Podstawowe zapytania SELECT (na jednej tabeli) Podstawowe zapytania SELECT (na jednej tabeli) Struktura polecenia SELECT SELECT opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje FROM nazwy tabel lub widoków WHERE warunek (wybieranie wierszy) GROUP

Bardziej szczegółowo

Wprowadzenie do baz danych

Wprowadzenie do baz danych Wprowadzenie do baz danych Dr inż. Szczepan Paszkiel szczepanpaszkiel@o2.pl Katedra Inżynierii Biomedycznej Politechnika Opolska Wprowadzenie DBMS Database Managment System, System za pomocą którego można

Bardziej szczegółowo

1. Wypisywanie danych

1. Wypisywanie danych 1. Wypisywanie danych Przykłady 1.1. Napisz program, który wypisze na ekran słowa Hello, world!. 1 // Przyklad 1: Hello, world! 3 using namespace std; 5 int main() { 6 cout

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

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript

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

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, Lista 3 Zestaw I Zadanie 1. Zaprojektować i zaimplementować funkcje: utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, zapisz

Bardziej szczegółowo

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku

Bardziej szczegółowo

Pracownia Komputerowa wykład VI

Pracownia Komputerowa wykład VI Pracownia Komputerowa wykład VI dr Magdalena Posiadała-Zezula http://www.fuw.edu.pl/~mposiada 1 Przypomnienie 125 (10) =? (2) Liczby całkowite : Operacja modulo % reszta z dzielenia: 125%2=62 reszta 1

Bardziej szczegółowo

ARKUSZ KALKULACYJNY komórka

ARKUSZ KALKULACYJNY komórka ARKUSZ KALKULACYJNY Arkusz kalkulacyjny program służący do obliczeń, kalkulacji i ich interpretacji graficznej w postaci wykresów. Przykłady programów typu Arkusz Kalkulacyjny: - Ms Excel (*.xls; *.xlsx)

Bardziej szczegółowo