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ärastGROUP 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.