Le but cet exercice est d'écrire une classe qui permet de générer des requêtes SQL en utilisant le builder pattern.
💡 Pas de panique, tu n'as pas besoin de comprendre le SQL pour faire cet exercice. L'important c'est juste de générer la bonne chaîne de caractère.
L'idée c'est que tu puisses utiliser la classe comme dans ces exemples :
const query = new SQLQuery();
console.log(query.select(['name', 'id']).from('users').where('id', '=', 4).sql);
// 👆 affiche 'SELECT name, id FROM users WHERE id = 4'
const otherQuery = new SQLQuery();
console.log(otherQuery.select(['title', 'author']).from('posts').sql);
// 👆 affiche 'SELECT title, author FROM posts '
const query = new SQLQuery();
console.log(query.select(['name', 'id']).from('users').where('id', '=', 4).sql);
// 👆 affiche 'SELECT name, id FROM users WHERE id = 4'
const otherQuery = new SQLQuery();
console.log(otherQuery.select(['title', 'author']).from('posts').sql);
// 👆 affiche 'SELECT title, author FROM posts '
- Pour ce faire, la classe
SQLQuery
SQLQuery
doit contenir un attributsql
sql
qui sera mis à jour à chaque fois qu'on appelle une méthode. - La méthode
select(columns)
select(columns)
prend un tableau de colonnescolumns
columns
et modifiesql
sql
pour ajouter'SELECT '
'SELECT '
suivi des noms de colonnes séparés par des virgules. - La méthode
from(table)
from(table)
ajoute'FROM nom_de_la_table '
'FROM nom_de_la_table '
àsql
sql
- La méthode
where(column, operator, value)
where(column, operator, value)
ajoute'WHERE '
'WHERE '
suivi de la colonne, l'opérator puis la valeur séparés par des espaces ('WHERE age > 10'
'WHERE age > 10'
par exemple)