Mysql

Z PHPEdia.pl
Skocz do: nawigacji, wyszukiwania

Typy danych w MySQL

Liczby caśkowite

Typ Bajtów Zakres
tinyint 1 -128 do +127
smallint 2 -32768 do +32768
mediumint 3 -8388608 do +8388607
integer 4 -2147483648 do +2147483648
bigint 8 17-18 cyfr
decimal zmienne bez ogranicześ
numeric zmienne bez ogranicześ

Decimal i numeric

Pola te przechowują liczby jako łańcuchy co umożliwia przechowywanie liczb o dowolnej długości. Gdy używasz tych typów w bazie danych, możesz określić ich długość oraz precyzją na przykład decimal(14,7)

Liczby zmienno pozycyjne

Typ Bajtów Zakres
float 4 6 miejsc dziesiętnych
real 4 6 miejsc dziesiętnych
double precision 8 15 miejsc dziesiętnych

W MySQL double jest inną nazwę typu double precision

Ä?aścuchy

Typ Dś. pola w bajtach Dane w bajtach
char 0 1 - 255
varchar 1 1 - 255
tinytext 1 1 - 255
text 2 1 - 65536
mediumtext 3 1 - 16777216
longtext 4 1 - 4294967295
text 4 1 - 4294967295

Typy danych tinytext, mediumtext, longtext oraz varchar są polami o zmiennej długości i zawierają tylko dostarczone dane.

Enum

Typ enum służy do przechowywania liczby reprezentującej słowo kluczowe, zdefiniowanej podczas definicji pola tego typu. W typie enum można zdefiniować pole zawierające jakieś dane np. nazwiska, które będzie zajmowało tylko jeden bajt, a nie ilość liter nazwiska (danych), gdyż nazwiska sa przechowywane tylko w jednym miejscu - w definicji pola tabeli, a samo pole zawiera tylko indeks pozycji listy nazwisk (danych). Indeks dla list o rozmiarach do 255 pozycji zajmuje tylko 1 bajt ,a do 65000 poz. 2 bajty.

Set

Typ set umożliwia przechowywanie łańcuchów bitów, w których bity są ustawione dla każdej wartości słowa kluczowego, zawartej w danych wejściowych. Pole o nazwie features przechowuje listę atrybutów. W polu features każdy bit odpowiada jednej opcji, a ponieważ typ set może mieć maksymalną długość 8 bajtów zatem w jednym polu typu set można zmieścić do 64 różnych atrybutów. To pole nadaje się do formularzy w których można wybrać więcej niż jedna opcje.

Data i czas

Typ długość w bajtach Format
date 3 yyyy-mm-dd
datetime 8 yyyy-mm-dd hh:mm:ss
timestamp 4 yyyymmddhhmmss
time 3 hh:mm:ss
year 1 1901 - 2125

Typ timestamp jest standardowym zniacznikiem czasu Uniksa, poprawnym dla lat 1970 - 2037.

Zapytania

Operatory

Operator Nazwa przykład Opis
= równy userid = 3 Sprawdza czy wartości są sobie równe
> wiekszy od userid > 8 Sprawdza czy pierwsza wartość jest wiąksza od drugiej
< mniejszy od userid < 8 Sprawdza czy pierwsza wartość jest mniejsza od drugiej
>= wiekszy lub równy userid >= 8 Sprawdza czy pierwsza wartość jest wiąksza lub równa od drugiej
<= mniejszy lub równy userid <= 8 Sprawdza czy pierwsza wartość jest mniejsza lub równa od drugiej
!= lub <> różny userid != 1 Sprawdza czy dwie wartości są rżzne od siebie
IS NOT NULL . username IS NOT NULL Sprawdza czy pole ma nadaną wartość
IS NULL . username IS NULL Sprawdza czy pole jest puste
BETWEEN . user_posts BETWEEN 10 AND 100 Sprawdza czy wartość jest wiąksza lub równa wartości minimalne i mniejsza lub równa wartości maksymalnej
IN . userid IN(1,2,3,4,5) Sprawdza czy wartość należy do określonego zbioru wartości
NOT IN . userid NOT IN (1,2,3,4) Sprawdza czy wartość nie należy do określonego zbioru wartości
LIKE wyszukiwanie wzorca username LIKE 'asd %' Sprawdza czy wartość pasuje do określonego wzorca
NOT LIKE wyszukiwanie wzorca username NOT LIKE 'dsa %' Sprawdza czy wartość nie pasuje do określonego wzorca
REGEXP wyrażenie regularne username REGEXP '^a.*' Sprawdza czy wartość pasuje do określonego wyrażenia regularnego

Grupowanie i agregowanie danych

Symbol Opis
AVG(kolumna) Oblicza wartość średnia we wskazanej kolumnie
COUNT(kolumna) Zwraca liczbę niezerowych wartości w podanej kolumnie. Jeżeli nazwa kolumny jest poprzedzona słowem DISTINCT, to funkcja zwróci tylko ilość występujących w niej odrębnych wartości. Jeżeli zamiast nazwy konkretnej kolumny wpisany zostanie symbol* to funkcja zwróci wartość równą liczbie wierszy w tabeli.
MIN(kolumna) Podaje najmniejsza wartość w kolumnie
MAX(kolumna) Podaje najwiekszć wartośc w kolumnie
STD(kolumna) Oblicza odchylenie standardowe w kolumnie
STDDEV(kolumna) j/w
SUM(kolumna) Sumuje wszystkie wartości w kolumnie

Aby pobrać wynik w wypadku zapytania sql w PHP powinno się dodać oznaczenie AS. wygląda to następująco: SELECT COUNT(kolumna) AS count_kolumna FROM tabela SELECT MIN(kolumna) AS min_kolumna FROM tabela SELECT MAX(kolumna) AS max_kolumna FROM tabela itd. Wartości count_kolumna, min_kolumna, max_kolumna itd. są nazwami nowych rekordów i pobieramy je tak samo z tablicy jak zwykłe rokordy.

LIMIT

Polecenie SELECT posiada klauzule LIMIT, które określa ile trafnych rekordów ma być przekazanych do php. Wykorzystuje się tu dwa parametry: numer wiersza od którego mają być przekazywane rekordy, drugo to ich liczba. przykładowo: SELECT * FROM tabel WHERE warunek LIMIT start,liczba start oznacza od którego wiersza mają być wyświetlane rekordy. liczba oznacza ile tych rekordów ma byc. przykładowe zapytanie: SELECT * FROM nazwa_tabeli WHERE kolumna = LIMIT 0, 30;

przykładowe zapytania

Pobieranie danych

PHP4

Łączenie z bazą danych

$dbhost = "loacalhost"; // host bazy danych
$dbuser = "root"; // Nazwa użytkownika podłączającego się do bazy danych.
$dbpass = "root"; // Hasło w/w użytkownika
$dbname = "users"; // Nazwa bazy z której chcemy pobrać dane