Sobes.tech
Junior

Mida sa tead andmebaasi valimistest ja ühendustest?

sobes.tech AI

Vastus AI-lt

Valikute (päringud SELECT) võimaldavad andmeid välja võtta ühest või mitmest tabelist. Ühendused (JOIN) ühendavad kahe või enama tabeli read seotud veeru alusel.

Ühenduste tüübid:

  • INNER JOIN: Tagastab read, millel on vastavus mõlemas tabelis.
  • LEFT JOIN (LEFT OUTER JOIN): Tagastab kõik read vasakust tabelist ja vastavad paremas tabelis. Kui vastavust ei ole, tagastatakse parema tabeli jaoks NULL.
  • RIGHT JOIN (RIGHT OUTER JOIN): Tagastab kõik read paremas tabelis ja vastavad vasakus. Kui vastavust ei ole, tagastatakse vasaku tabeli jaoks NULL.
  • FULL JOIN (FULL OUTER JOIN): Tagastab kõik read, kui on vähemalt üks vastavus tabelites. Kui vastavust ei ole, tagastatakse puuduvate väljade jaoks NULL. (Kõik andmebaasid seda ei toeta, näiteks MySQL kasutab UNION-i imiteerimiseks).
  • CROSS JOIN: Tagastab mõlema tabeli ridade dekaartliku korrutise (iga esimese tabeli rida ühendub iga teise tabeli reaga).

Süntaksi näited:

-- INNER JOIN
SELECT *
FROM table1
INNER JOIN table2 ON table1.id = table2.foreign_id;
-- LEFT JOIN
SELECT customer.name, order.order_id
FROM customer
LEFT JOIN order ON customer.id = order.customer_id;

Valiku võtmesõnad:

  • SELECT: Määrab veerud, mida välja võtta.
  • FROM: Näitab tabelit(t)e.
  • WHERE: Filtreerib read määratud tingimuse alusel.
  • GROUP BY: Rühmitab read samade väärtustega.
  • HAVING: Filtreerib gruppe pärast GROUP BY.
  • ORDER BY: Sorteerib tulemuse.
  • LIMIT / OFFSET: Piirab tagastatavate ridade arvu.

Valikute ja ühenduste optimeerimine on oluline andmebaasi jõudluse jaoks. Kasutatakse indekseid, õigeid andmetüüpide määranguid, vältida SELECT *-i (kui võimalik), optimeerida WHERE tingimusi.

PHP-s kasutatakse valikute ja ühenduste jaoks PDO või MySQLi laiendusi, mis pakuvad API-d SQL-päringute täitmiseks.