Studiul folosind sql phpMyAdmin - programatori forum

arhitectura informației este accesat de SQL se numește relațională. În bazele de date relaționale, toate datele sunt reprezentate ca simple tabele, împărțite în rânduri și coloane, care sunt situate la datele de intersecție. Cererile pentru astfel de tabele returnează un tabel, care se pot face obiectul unor cereri suplimentare. Fiecare bază de date poate conține mai multe tabele care sunt de obicei legate între ele, prin urmare, numele relațională.

În acest articol, vom folosi MySQL, popular implementarea open source de SQL, care este asigurată de o majoritate absolută a furnizorilor de hosting.
Crearea tabelelor în phpMyAdmin

Pentru a crea un tabel, folosiți expresia CREATE TABLE, în care ne cerem noul nostru nume de tabel. Expresia începe cu CREATE TABLE, urmată de numele tabelului. Apoi, între paranteze lista de coloane, precum și informații despre cheile. Fiecare coloană este dat un nume, specificați tipul de date atribut specificat NULL sau NOT NULL (aici, NOT NULL înseamnă că coloana nu poate fi NULL), iar valoarea implicită, dacă este cazul.

CREATE TABLE orașe (
id int (11) AUTO_INCREMENT NOT NULL,
varchar city_name (50) NOT NULL default '',
varchar latitudine (15) NOT NULL default '',
varchar longitudine (15) NOT NULL default '',
NOT NULL default int populației '0' (11)
char COUNTRY_CODE (2) NOT NULL default '',
PRIMARY KEY (id)
) AUTO_INCREMENT TYPE = MyISAM = 1;


Coloana id - este cheia primară (cheie primară), coloana care identifică în mod unic fiecare oraș. Tipul de date al acestei coloane - INT (integer dimensiune normală), MySQL atribuie valori unice pentru coloana, datorită atributului auto_increment. Vă rugăm să rețineți că nu putem folosi numele orașului drept cheie primară, ca unele orașe numele nu sunt unice în lume. vom folosi, de asemenea, un număr întreg pentru a afișa populației.

Celelalte coloane se utilizează ca lungime fixă ​​tipuri de date string (CHAR) sau siruri de lungime variabilă (VARCHAR). Când cunoaștem lungimea liniei, este mai bine să utilizați un CHAR, stabilind lungimea coloanei ca CHAR (2). Altfel, vom folosi ca date de tip linie de lungime variabilă care indică numai lungimea maximă șir, de exemplu: VARCHAR (15).

După lista de coloane, putem specifica opțiuni suplimentare pe masa, cum ar fi tipul său, prima valoare pentru coloana autoincrement. SQL-expresie se termină cu punct și virgulă. Crearea tabelelor pentru orașe, facem aceeași operație, dar de data aceasta pentru țările din tabel.

CREATE TABLE țări (
char COUNTRY_CODE (2) NOT NULL default '',
varchar COUNTRY_NAME (100) NOT NULL default ''
) TIP = MyISAM;


Rețineți: coloana `country_code` este prezent în ambele tabele. Acest lucru reflectă principiul conexiunii: COUNTRY_CODE în `cities` asociat cu aceeași coloană din tabelul countries` żn. Astfel, vom salva pe pământ, care indică numele țării în baza de date doar o singură dată.

Odată ce tabelele sunt create, introduceți orice date în ele.
Modificarea datelor de masă prin intermediul phpMyAdmin.

    În această secțiune, vom examina baza INSERT sintaxa expresie, UPDATE, DELETE, și SELECT.

Adăugarea de date folosind INSERT

Odată ce facem clic pe Go, datele sunt scrise în tabel și phpMyAdmin ne arată utilizați INSERT expresie:

INSERT INTO `countries` (` `country_code` country_name`.) VALORI ( 'ca', 'Canada');


După o parte a insera în, urmează numele tabelului. În MySQL, putem introduce numele de masă și numele coloanelor din backticks „`“dacă numele sunt folosite caractere speciale, cuvinte rezervate. Apoi deschidem prima paranteză, lista coloanele din inserția care va fi realizată prin separarea acestora prin virgule. După enumerând lista numelor coloanelor bracket este închis și a indicat cuvântul cheie VALORI, după care valorile sunt prezentate în paranteze care urmează să fie introduse în tabel, și enumerate în aceeași ordine ca și numele coloanelor. În cazul în care valorile sunt date de caractere de tip, trebuie să le includeți în ghilimele.

Să punem în datele de masă `cities` oraș:

INSERT INTO `cities` (` id`. `City_name`.` Latitude`.` Longitude`.` Population`, `country_code`) VALUES ( '', 'Sherbrooke', '45 59,00 23 '' -71 46 11.00 '125000,' ca „);


Aici, vom specifica nul pentru id-ul, din cauza atributului coloană auto-increment oferă nominalizare valoare automată unică. De asemenea, rețineți că valoarea `population` - numeric, deci nu ghilimele.

Să terminăm această secțiune insera unele date pentru un număr de alte țări și orașe, care va fi nevoie de mai târziu.

INSERT INTO `countries` (` `country_code` country_name`.) VALORI ( 'zh', 'China');
INSERT INTO `cities` (` id`. `City_name`.` Latitude`.` Longitude`.` Population`. `Country_code`) VALUES ( '', 'Shanghai', '31 13 58,00 '' 121 26 59,99 ' , 11000000, 'zh');


actualizare a datelor folosind UPDATE

    În primul rând, faceți clic pe „Prezentare generală“ pentru un tabel `cities` rezultatul va fi afișat atât timp cât singura înregistrare. Făcând clic pe pictograma sub forma unui creion, vom trece la panoul de editare această linie. Modificați valoarea coloanei `population` la 130000. Când faceți clic pe„Save“, phpMyAdmin afișează următoarea expresie:

UPDATE `cities` SET` population` = '130000' UNDE` id` = '1' LIMIT 1;


Cuvântul cheie în această expresie - `UPDATE`, urmat de numele tabelului. Cuvântul `SET` precede lista modificărilor (în cazul nostru - numai pentru population` column`), care este înregistrată în format„coloana = nou sens.“

Vedem că, în ceea ce privește starea actuală: unde `id` =„1“, în care se utilizează cheia primară pentru a limita modificarea valorii population` column` doar această linie, și anume Numai pentru acest oraș.

Partea 1 se adaugă pentru a limita phpMyAdmin-ohmi și o garanție că în cazul în care cheia primară nu este setat, nici o modificare va fi aplicată la mai mult de o intrare. Pentru o cerere `valorile UPDATE` pot fi modificate de mai multe coloane:

UPDATE `cities` SET` city_name` = 'Sherbrooke, Quebec',` population` = '130001' WHERE` id` = '1' LIMIT 1;


Ștergerea datelor folosind ȘTERGE

    În tabelul „Prezentare generală“ `cities`, faceți clic pe cruce roșie în fața înregistrărilor - cerere va fi generat o cerere de confirmare prin următoarea expresie:

DELETE FROM `cities` WHERE` id` = '1' LIMIT 1;


Sintaxa este foarte simplu și include doar numele mesei, și starea în care se va efectua operația de ștergere. condiții de excepție de locul în care sau ștergeți interogare este destul de posibil cu SQL, dar în acest caz, expresia acțiune va fi aplicată la fiecare înregistrare a tabelului!
Datele obținute prin utilizarea SELECT

    Extragerea informațiilor din tabelele - probabil cel mai frecvent utilizat tip de cerere. De exemplu, interogările SELECT vă permit să obțineți răspunsuri la întrebări precum: „Ce orașe au o populație mai mare decât acest număr“. De fapt, am folosit anterior SELECT, când faceți clic pe link-ul „Prezentare generală“ pentru un tabel `cities`. Aceasta a generat cea mai simplă formă de exprimare interogare SELECT:

SELECT * FROM `cities` LIMITĂ 0.30;


Asteriscul aici înseamnă „toate coloanele“. Am adăugat un FROM nume de tabel, care va fi capabil de a solicita o mostră. LIMIT 0.30 înseamnă că proba începe cu numărul de înregistrare 0 (prima foarte) și conține un număr maxim de 30 de intrări.

Fila de căutare vă permite să vedeți mai multe opțiuni pentru interogarea SELECT. Selectați fila „Căutare“ pentru tabelul de orașe, și selectați doar coloanele de care avem nevoie. Apoi dreapta coloanei, vom alege ordinea de sortare a probei care rezultă de pe coloana `coborarea population`:

Ca rezultat, phpMyAdmin va genera următoarea interogare:

SELECT `city_name`. `population`
Din `cities`
unde 1
ORDER BY `population` DESC LIMIT 0.30;


Vedem că steaua a fost înlocuită cu o listă de coloane, separate prin virgule. Clauza WHERE 1, a adăugat phpMyAdmin-lea, este întotdeauna adevărat, și selectează toate înregistrările. Puțin mai târziu, vom vedea că aceasta poate fi înlocuită cu o altă condiție. În plus, există o comandă în stare BY. urmat de un nume de coloană prin care dorim să sortați setul de rezultate, iar cuvântul cheie DESC pentru a sorta în ordine descrescătoare (am putea folosi, de asemenea, ASC pentru a sorta în ordine crescătoare).
Condiții în SQL-interogări

    Cel mai simplu mod de a adăuga o condiție - click pe SQL-interogare: Schimbarea pe pagina de rezultate, rezultatul care va fi „SQL“ deschide o fereastră pop-up. Adăugați o condiție pentru coloana `country`:

SELECT `city_name`. `population`
Din `cities`
UNDE COUNTRY_CODE = 'zh'
ORDER BY `population` DESC;


Această condiție va selecta toate din oraș, situat în China. La desemnarea condiții set bogat de operatori și funcții pot fi utilizate. Aici - sunt două exemple:

Găsiți orașe canadiene cu o populație de mai mult de 100.000:

În care populația> 100000 ȘI COUNTRY_CODE = 'ca';


Găsiți orașul, ale căror nume încep cu caracter „A“:

UNDE city_name precum 'A%'

    Informațiile rezultate pot fi generate ca rezultat al grupării de către o anumită coloană. Să aflăm populația medie urbană din țară:

SELECT COUNTRY_CODE, AVG (populație)
din orașele
GROUP BY COUNTRY_CODE


Alte posibile funcții de grupare - MIN (), MAX (), SUM () și COUNT (), care se calculează respectiv valoarea minimă, valoarea maximă, valoarea sumei, iar numărul de intrări. De exemplu, următoarea interogare, putem obține numărul de orașe din țară:

SELECT COUNTRY_CODE, numărul (city_name) din orase
GROUP BY COUNTRY_CODE;

    De obicei, baze de date relaționale include mai multe tabele, legate de chei comune. De multe ori este nevoie de interogări în mai multe tabele. Învelește sau uni, masa poate fi prin diverse metode; ne vom concentra pe cea mai simplă metodă este de a compara cheile.

În interogare nizherassmotrennom, clauza FROM conține o listă de nume de tabele, separate prin virgulă. În lista de coloane, folosim numele tabelelor și punct ca un prefix în fața fiecărui nume al coloanei (acest lucru nu este necesar în cazul în care toate coloanele dintr-un tabel).

SELECT cities.city_name, cities.population, countries.country_name
Din orașele, țările
UNDE cities.country_code = countries.country_code LIMITA 0.30