Изследването с помощта на SQL PhpMyAdmin - програмисти форум

Информация архитектура е достъпен чрез SQL се нарича релационна. В релационни бази данни, всички данни са представени като обикновени маси, разделени на редове и колони, които се намират в данните за пресичане. Исканията за такива маси връща на масата, които от своя страна могат да бъдат предмет на по-нататъшни искания. Всяка база данни може да съдържа множество таблици, които обикновено са свързани помежду си, откъдето идва и име на релационна.

В тази статия, ние ще използваме MySQL, популярната изпълнението с отворен код на SQL, който е снабден с абсолютно мнозинство на хостинг доставчици.
Създаване на таблици в PhpMyAdmin

За да създадете таблица, използвайте израза CREATE TABLE, в който ние искаме нашето ново име на таблица. Изразяване започва с CREATE TABLE, следвана от името на таблицата. След това в скоби в списъка на колони, както и информация за ключовете. Всяка колона е дадено име, уточни тип данни, определен атрибут NULL или не нула (в случая не нула означава, че колоната не може да бъде нула), а стойността по подразбиране, ако е необходимо.

Създаване на таблица градове (
идентификатор инт (11) NOT NULL auto_increment,
city_name VARCHAR (50) NOT NULL подразбиране '',
ширина VARCHAR (15) NOT NULL подразбиране '',
дължина VARCHAR (15) NOT NULL подразбиране '',
NOT NULL подразбиране "0" население инт (11)
COUNTRY_CODE Чар (2) NOT NULL подразбиране '',
Първичен ключ (Id)
) ВИД = MyISAM auto_increment = 1;


Колоната номер - е основният ключ (първичен ключ), колоната, който еднозначно идентифицира всеки град. Типът на данни в тази графа - INT (число нормален размер), MySQL възлага уникални стойности за колоната, благодарение приписват auto_increment. Моля, имайте предвид, че ние не може да използва името на града като основен ключ, като някои градове имената не са уникални в света. ние също така да използвате цяло число, за да се покаже на населението.

Другите колони се използват като фиксирана дължина видове поредица данни (CHAR) или низове с променлива дължина (VARCHAR). Когато знаем, че дължината на линията, по-добре е да се използва CHAR, определяне на дължината на колоната, като CHAR (2). В противен случай, ние използваме и данни линия тип променлива дължина посочва само максималната дължина низ, например: VARCHAR (15).

След списъка на колони, ние може да определи допълнителни опции на масата, като неговия вид, първата стойност за колоната autoincrement. SQL експресия завършва със запетая. Създаване на таблиците за градове, ние правим една и съща операция, но този път за страните от масата.

CREATE TABLE страни (
COUNTRY_CODE Чар (2) NOT NULL подразбиране '',
COUNTRY_NAME VARCHAR (100) NOT NULL подразбиране ''
) Вид = MyISAM;


Имайте предвид, че в колоната `country_code` присъства и в двете таблици. Това е отражение на принципа на свързване: COUNTRY_CODE в `cities`, свързани с една и съща колона в the` маса countries`. По този начин, ние се запишете на земята, което показва името на страната в базата данни само веднъж.

След като са създадени таблиците, въведете всички данни в тях.
Промяна на таблицата с данни чрез PHPMyAdmin.

    В този раздел ще разгледаме основния израз синтаксис INSERT, UPDATE, изтриете, и изберете.

Добавяне на данни за вмъкване

След като кликнете върху Go, данните се записват в таблицата и PhpMyAdmin показва ни използва изразът се добавя:

INSERT INTO `countries` (` `country_code` country_name`.) VALUES ( 'ва", "Канада");


След част от вмъкнете в, следва името на таблицата. В MySQL, ние можем да въведете имена на таблици и имената на колоните в backticks "` ", ако имената се използват специални знаци, запазени думи. След това отвори първата скоба, направете списък на колоните в листовката, която ще бъде извършена чрез отделянето им със запетаи. След изброява списъка на имена на колони скоба е затворена и е посочено на ключовата СТОЙНОСТИ, след което стойностите са дадени в скоби да бъдат включени в таблицата, и изброени в същия ред, както имената на колоните. Ако стойностите са тип характер на данните, трябва да ги приложат в кавички.

Нека да поставим в данните маса `cities` град:

INSERT INTO `cities` (` id`. `City_name`.` Latitude`.` Longitude`.` Population`, `country_code`) стойности (" "," Шербрук ', '45 59,00 23' '-71 46 11.00 "125000" ва);


Ето, ние уточни нула за идентификатора, заради атрибут за автоматично увеличение колона осигурява автоматична номинация уникална стойност. Също така имайте предвид, че стойността на `population` - цифров, така че не затворени в кавички.

Нека да завършим този раздел въведете някои данни за редица други страни и градове, които ще бъдат необходими по-късно.

INSERT INTO `countries` (` `country_code` country_name`.) VALUES (" ж "," Китай ");
INSERT INTO `cities` (` id`. `City_name`.` Latitude`.` Longitude`.` Population`. `Country_code`) стойности (" "," Shanghai ', 31 13 58,00', '121 26 59,99' , 11000000, "ж");


Обновяване на данни с използване на UPDATE

    На първо място, кликнете върху бутона "Преглед", за маса `cities` резултатът ще бъде показан толкова дълго, колкото е единственият запис. При щракване върху иконата под формата на молив, ние се движат, за да редактирате панел тази линия. Променете стойността на колоната `population` да 130000. Когато кликнете върху" Save ", PhpMyAdmin показва следната формула:

UPDATE `cities` SET` population` =" 130000 "Когато` id` = "1" ГРАНИЦА 1;


Ключовата дума в този израз - `UPDATE`, следвана от името на таблицата. Думата `SET` предхожда списъка на модификации (в нашия случай - само за column` population`), който се записва във формат" колона = нов смисъл. "

Виждаме, че от гледна точка на настоящето състояние: КЪДЕ `id` = '1', в която се използва първичен ключ за ограничаване на промяната в стойността на column` population` само тази линия, т.е. Само за този град.

Част 1 се добавя за да се ограничи PhpMyAdmin-ома и гаранция, че ако първичния ключ не е зададено, няма промяна ще се прилага за повече от един запис. За една молба `UPDATE` стойности могат да се променят няколко колони:

UPDATE `cities` SET` city_name` = 'Шербрук, Квебек',` population` = "130001" WHERE` id` = "1" ГРАНИЦА 1;


Изтриване на данни с използване на DELETE

    В "Общ преглед" на маса `cities`, кликнете върху червения кръст в предната част на записи - искане ще бъде генериран изисква потвърждение чрез следния израз:

Изтрива от `cities` WHERE` id` =" 1 "ГРАНИЦА 1;


Синтаксисът е много прост и включва само името на таблицата, както и от състоянието, в което ще се извършва операцията по изтриване. Изключение условия на мястото, където актуализират или изтриват заявка е напълно възможно с SQL, но в този случай, израз на действие ще бъде приложена към всеки запис на масата!
Данните за примерни използват SELECT

    Извличане на информация от таблиците - може би най-често използваният вид на заявката. Например изберете заявките ви позволяват да получите отговори на въпроси като: "Какво градове имат население над този брой". В действителност, ние преди това сте използвали Избор, когато се натисне върху връзката "Преглед", за маса `cities`. Това генерира най-простата форма на SELECT израз заявка:

SELECT * от 'cities` ГРАНИЦА 0,30;


Звездичката тук означава "всички графи". Добавихме ОТ име на таблица, която ще бъде в състояние да направите заявка за проба. LIMIT 0,30 означава, че пробата започва с рекордния брой 0 (самото начало) и съдържа не повече от 30 записа.

раздела търсене ви позволява да видите повече опции за SELECT заявката. Изберете раздела "Търсене" за масата за градове, и да изберете само колоните от които се нуждаем. Тогава правото на колоната, ние ще изберем реда на сортиране на получената проба върху колоната `population` слиза:

В резултат на това PhpMyAdmin ще генерира следната заявка:

SELECT `city_name`. `population`
От 'cities`
КЪДЕ 1
РЕД ОТ `population` Низходящо ГРАНИЦА 0,30;


Виждаме, че звездата е заменен от списък на колони, разделени със запетая. КЪДЕ клауза 1, допълни PhpMyAdmin-ти, винаги е вярно, и избира всички записи. Малко по-късно, ние виждаме, че той може да бъде заменен от друг състояние. В допълнение, има е условие ORDER BY. последвано от име на колона, с която ние искаме да сортирате резултатния набор, а DESC ключова дума, за да сортирате в низходящ ред (бихме могли да използвате и ASC да сортирате във възходящ ред).
Условията в SQL-заявки

    Най-лесният начин да се добави условие - кликнете на SQL-заявка: Промяна на страницата с резултати, в резултат на което ще бъде "SQL" отвори изскачащ прозорец. Добави условие за колоната `country`:

SELECT `city_name`. `population`
От 'cities`
КЪДЕТО COUNTRY_CODE = "ж"
РЕД ОТ `population` Низходящо;


Това състояние ще изберете всички от града, който се намира в Китай. При определяне условия богат набор от оператори и функции може да се използва. Ето - два примера:

Намери канадски градове с население над 100 000:

Където популацията> 100000 И COUNTRY_CODE = 'ва';


Намери града, чиито имена започват с характер "А":

КЪДЕ city_name като "A%"

    Получената информация може да се генерира в резултат на групиране по-специално колона. Нека разберем средната градското население в страната:

SELECT COUNTRY_CODE, AVG (население)
ОТ градове
GROUP BY COUNTRY_CODE


Други възможни функции групиране - MIN (), MAX (), SUM () и COUNT (), който се изчислява съответно минималната стойност, максималната стойност, сума стойността и броя на записите. Така например, следната заявка, ние можем да получите броя на градове в страната:

SELECT COUNTRY_CODE, брой (city_name) ОТ градове
GROUP BY COUNTRY_CODE;

    Обикновено, релационна база данни включва много маси, свързани с общи ключове. Често е необходимо за заявки в няколко таблици. Bind или обединяват, таблицата може да бъде по различни методи; ние ще се концентрира върху най-простият метод е да се сравнят ключове.

В nizherassmotrennom заявка, на ОТ клауза съдържа списък с имена на таблици, разделени със запетаи. В списъка на колони, ние използваме имената на таблиците и точката като префикс пред всяко име на колоната (това не е необходимо, ако всички колони от една таблица).

SELECT cities.city_name, cities.population, countries.country_name
От различни градове, държави,
КЪДЕТО cities.country_code = countries.country_code ГРАНИЦА 0,30