Yupp Framework PHP

Query: creando consultas a la base de datos

Este paquete está compuesto de 3 clases básicas: Query, Select y Condition.

Principales operaciones

Query

addProjection($alias, $attr)
Agrega una proyeccion sobre las columnas de las tablas seleccionadas para la respuesta de la consulta.
addAggregation($aggName, $alias, $attr)
Agrega una agregación sobre un atributo que aparecerá en el SELECT de la consulta. Los tipos de agregaciones soportados son:
  • AGTN_COUNT: cuenta valores de atributos en los registros obtenidos en la consulta
  • AGTN_AVG: saca promedio de valores de un determinado atributo obtenidos en la consulta
  • AGTN_MAX: calcula el valor máximo de un determinado atributo desde los valores obtenidos en la consulta
  • AGTN_MIN: calcula el valor mínimo de un determinado atributo desde los valores obtenidos en la consulta
  • AGTN_SUM: calcula la suma de valores de un determinado atributo desde los valores obtenidos en la consulta
  • AGTN_DISTINTC: obtiene solo valores distintos de un determinado atributo desde los valores obtenidos en la consulta
addFrom($tableName, $alias)
Agrega una tabla fuente de los datos que devuelve la consulta.
setCondition(Condition $cond)
Agrega una condicion a la consulta.
setLimit($max, $offset)
Agrega un limite de regsitros que devuelve la consulta.
addOrder($alias, $attr, $dir)
Agrega ordenamiento por alguna columna de una tabla.

Select

add( SelectItem $item )
Agrega un item al select de la consulta.
getAll()
Obtiene todos los items del select.
isEmpty()
Devuelve true si no tiene items.

Condition

_AND()
Genera el AND de 2 o mas condiciones.
_OR()
Genera el OR de 2 o mas condiciones.
_NOT( Condition $condition )
Genera el NOT de una condicion.
add( Condition $cond )
Agrega una subcondicion a una condicion AND u OR.
EQ( $alias, $attr, $refValue )
Condicion de igualdad.
NEQ( $alias, $attr, $refValue )
Condicion de desigualdad.
EEQ( $alias, $attr, $refValue )
Condicion de igualdad exacta.
ENEQ( $alias, $attr, $refValue )
Condicion de desigualdad exacta.
LIKE( $alias, $attr, $refValue )
Condicion de similitud.
ILIKE( $alias, $attr, $refValue )
Condicion de similitud sin considerar mayusculas y minusculas.
GT( $alias, $attr, $refValue )
Condicion de mayor que.
LT( $alias, $attr, $refValue )
Condicion de menor que.
GTEQ( $alias, $attr, $refValue )
Condicion de mayor o igual que.
LTEQ( $alias, $attr, $refValue )
Condicion de menor o igual que.
EQA( $alias, $attr, $refAlias, $refAttr )
Condicion de igualdad sobre un atributo.
NEQA( $alias, $attr, $refAlias, $refAttr )
Condicion de desigualdad sobre un atributo.
EEQA( $alias, $attr, $refAlias, $refAttr )
Condicion de igualdad exacta sobre un atributo.
ENEQA( $alias, $attr, $refAlias, $refAttr )
Condicion de desigualdad exacta sobre un atributo.
LIKEA( $alias, $attr, $refAlias, $refAttr )
Condicion de similitud sobre un atributo.
ILIKEA( $alias, $attr, $refAlias, $refAttr )
Condicion de similitud sin considedrar mayusculas y minusculas sobre un atributo.
GTA( $alias, $attr, $refAlias, $refAttr )
Condicion de mayor que sobre un atributo.
LTA( $alias, $attr, $refAlias, $refAttr )
Condicion de menor que sobre un atributo.
GTEQA( $alias, $attr, $refAlias, $refAttr )
Condicion de mayor o igual que sobre un atributo.
LTEQA( $alias, $attr, $refAlias, $refAttr )
Condicion de menor o igual que sobre un atributo.

Ejemplo de uso

        
1  <?php 2   3  $q = new Query(); 4  $q->addFrom('Persona',  'p') 5    ->addFrom('Empleado''e') 6    ->setCondition( 7        Condition::_AND() 8          ->addCondition::EQ('p'"nombre""Carlos") ) 9          ->addCondition::GT('p'"edad"5) ) 10          ->addCondition::EQA('p'"nombre"'p'"nombre2") ) 11      ); 12   13  $db = new DatabaseMySQL(); 14  echo $db->evaluateQuery$q ); 15   16  ?> Resultado: SELECT * FROM Persona p, Empleado e WHERE (p.nombre='Carlos' AND p.edad > 5 AND p.nombre=p.nombre2)

Ejemplo de uso con agregaciones

Con la siguiente tabla:

nombreedadclassdeletedid
pablo19Persona01
pablo25Persona02
pablo30Persona03
pablo40Persona04
miguel40Persona05
jose10Persona06

Creando la consulta:

1  <?php 2   3  $q = new Query(); 4  $q->addAggregationSelectAggregation::AGTN_DISTINTC'p''nombre' ) 5    ->addFrom('hello_world_persona''p') 6    ->setCondition( 7       Condition::GT('p'"edad"25) 8    ); 9              10  $pm PersistentManager::getInstance(); 11  $result $pm->findByQuery$q ); 12   13  ?>

Resultado obtenido:

Array ( [0] => Array ( [nombre] => pablo ) [1] => Array ( [nombre] => miguel ) )
Por consultas o comentarios ir al grupo:
Grupos de Google
Suscribirte a Yupp Framework PHP
Correo electrónico:
Consultar este grupo