# phpman > perldoc > SQL::Statement::Operation

## NAME
    [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown) - base class for all operation terms

## SYNOPSIS
      # create an operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner, specifying
      # the operation name (for error purposes), the left and the right
      # operand
      my $term = [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown) is an abstract base class providing the interface for all operation
    terms.

## INHERITANCE
      [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
      ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  new
    Instantiates new operation term.

  value
    Return the result of the operation of the term by calling operate

  operate
    *Abstract* method which will do the operation of the term. Must be overridden by derived
    classes.

  op
    Returns the name of the executed operation.

  left
    Returns the left operand (if any).

  right
    Returns the right operand (if any).

  DESTROY
    Destroys the term and undefines the weak reference to the owner as well as the stored operation,
    the left and the right operand.

## NAME
    [SQL::Statement::Operation::Neg](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ANeg/markdown) - negate operation

## SYNOPSIS
      # create an <not> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and B<no> right operand
      my $term = [SQL::Statement::Neg](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ANeg/markdown)->new( $owner, $op, $left, undef );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::Neg](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ANeg/markdown)

## INHERITANCE
      [SQL::Statement::Operation::Neg](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ANeg/markdown)
      ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
        ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  operate
    Return the logical negated value of the left operand.

## NAME
    [SQL::Statement::Operation::And](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AAnd/markdown) - and operation

## SYNOPSIS
      # create an C<and> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and the right operand
      my $term = [SQL::Statement::And](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AAnd/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::And](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AAnd/markdown) implements the logical "and" operation between two terms.

## INHERITANCE
      [SQL::Statement::Operation::And](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AAnd/markdown)
      ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
        ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  operate
    Return the result of the logical "and" operation for the values of the left and right operand.

## NAME
    [SQL::Statement::Operation::Or](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AOr/markdown) - or operation

## SYNOPSIS
      # create an C<or> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and the right operand
      my $term = [SQL::Statement::Or](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOr/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::Or](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AOr/markdown) implements the logical "or" operation between two terms.

## INHERITANCE
      [SQL::Statement::Operation::Or](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AOr/markdown)
      ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
        ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  operate
    Return the result of the logical "or" operation for the values of the left and right operand.

## NAME
    [SQL::Statement::Operation::Is](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AIs/markdown) - is operation

## SYNOPSIS
      # create an C<is> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and the right operand
      my $term = [SQL::Statement::Is](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AIs/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::Is](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AIs/markdown) supports: "IS NULL", "IS TRUE" and "IS FALSE". The right operand
    is always evaluated in boolean context in case of "IS TRUE" and "IS FALSE". "IS NULL" returns
    *true* even if the left term is an empty string ('').

## INHERITANCE
      [SQL::Statement::Operation::Is](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AIs/markdown)
      ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
        ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  operate
    Returns true when the left term is null, true or false - based on the requested right value.

## NAME
    [SQL::Statement::Operation::ANSI::Is](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AANSI%3A%3AIs/markdown) - is operation

## SYNOPSIS
      # create an C<is> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and the right operand
      my $term = [SQL::Statement::Is](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AIs/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::ANSI::Is](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AANSI%3A%3AIs/markdown) supports: "IS NULL", "IS TRUE" and "IS FALSE". The right
    operand is always evaluated in boolean context in case of "IS TRUE" and "IS FALSE". "IS NULL"
    returns *true* if the right term is not defined, *false* otherwise.

## INHERITANCE
      [SQL::Statement::Operation::Is](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AIs/markdown)
      ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
        ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  operate
    Returns true when the left term is null, true or false - based on the requested right value.

## NAME
    [SQL::Statement::Operation::Contains](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AContains/markdown) - in operation

## SYNOPSIS
      # create an C<in> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and the right operand
      my $term = [SQL::Statement::Contains](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AContains/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::Contains](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AContains/markdown) expects the right operand is an array of
    [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown) instances. It checks whether the left operand is in the list of the right
    operands or not like:

      $left->value($eval) ~~ map { $_->value($eval) } @{$right}

## INHERITANCE
      [SQL::Statement::Operation::Contains](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AContains/markdown)
      ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
        ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  operate
    Returns true when the left term is equal to any of the right terms

## NAME
    [SQL::Statement::Operation::Between](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ABetween/markdown) - between operation

## SYNOPSIS
      # create an C<between> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and the right operand
      my $term = [SQL::Statement::Between](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ABetween/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::Between](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ABetween/markdown) expects the right operand is an array of 2
    [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown) instances. It checks whether the left operand is between the right operands
    like:

         ( $left->value($eval) >= $right[0]->value($eval) )
      && ( $left->value($eval) <= $right[1]->value($eval) )

## INHERITANCE
      [SQL::Statement::Operation::Between](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ABetween/markdown)
      ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
        ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  operate
    Returns true when the left term is between both right terms

## NAME
    [SQL::Statement::Operation::Equality](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AEquality/markdown) - abstract base class for comparisons

## SYNOPSIS
      # create an C<equality> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and the right operand
      my $term = [SQL::Statement::Equality](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AEquality/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::Equality](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AEquality/markdown) implements compare operations between two terms - choosing
    either numerical comparison or string comparison, depending whether both operands are numeric or
    not.

## INHERITANCE
      [SQL::Statement::Operation::Equality](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AEquality/markdown)
      ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
        ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  operate
    Return the result of the comparison.

  numcmp
    *Abstract* method which will do the numeric comparison of both terms. Must be overridden by
    derived classes.

  strcmp
    *Abstract* method which will do the string comparison of both terms. Must be overridden by
    derived classes.

## NAME
    [SQL::Statement::Operation::Equal](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AEqual/markdown) - implements equal operation

## SYNOPSIS
      # create an C<equal> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and the right operand
      my $term = [SQL::Statement::Equal](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AEqual/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::Equal](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AEqual/markdown) implements compare operations between two numbers and two
    strings.

## INHERITANCE
      [SQL::Statement::Operation::Equal](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AEqual/markdown)
      ISA [SQL::Statement::Operation::Equality](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AEquality/markdown)
        ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
          ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  numcmp
    Return true when "$left == $right"

  strcmp
    Return true when "$left eq $right"

## NAME
    [SQL::Statement::Operation::NotEqual](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ANotEqual/markdown) - implements not equal operation

## SYNOPSIS
      # create an C<not equal> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and the right operand
      my $term = [SQL::Statement::NotEqual](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ANotEqual/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::NotEqual](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ANotEqual/markdown) implements negated compare operations between two numbers
    and two strings.

## INHERITANCE
      [SQL::Statement::Operation::NotEqual](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ANotEqual/markdown)
      ISA [SQL::Statement::Operation::Equality](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AEquality/markdown)
        ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
          ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  numcmp
    Return true when "$left != $right"

  strcmp
    Return true when "$left ne $right"

## NAME
    [SQL::Statement::Operation::Lower](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ALower/markdown) - implements lower than operation

## SYNOPSIS
      # create an C<lower than> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and the right operand
      my $term = [SQL::Statement::Lower](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ALower/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::Lower](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ALower/markdown) implements lower than compare operations between two numbers
    and two strings.

## INHERITANCE
      [SQL::Statement::Operation::Lower](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ALower/markdown)
      ISA [SQL::Statement::Operation::Equality](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AEquality/markdown)
        ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
          ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  numcmp
    Return true when "$left < $right"

  strcmp
    Return true when "$left lt $right"

## NAME
    [SQL::Statement::Operation::Greater](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AGreater/markdown) - implements greater than operation

## SYNOPSIS
      # create an C<greater than> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and the right operand
      my $term = [SQL::Statement::Greater](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AGreater/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::Greater](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AGreater/markdown) implements greater than compare operations between two
    numbers and two strings.

## INHERITANCE
      [SQL::Statement::Operation::Greater](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AGreater/markdown)
      ISA [SQL::Statement::Operation::Equality](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AEquality/markdown)
        ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
          ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  numcmp
    Return true when $left $right>

  strcmp
    Return true when "$left gt $right"

## NAME
    [SQL::Statement::Operation::LowerEqual](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ALowerEqual/markdown) - implements lower equal operation

## SYNOPSIS
      # create an C<lower equal> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and the right operand
      my $term = [SQL::Statement::LowerEqual](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ALowerEqual/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::LowerEqual](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ALowerEqual/markdown) implements lower equal compare operations between two
    numbers and two strings.

## INHERITANCE
      [SQL::Statement::Operation::LowerEqual](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ALowerEqual/markdown)
      ISA [SQL::Statement::Operation::Equality](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AEquality/markdown)
        ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
          ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  numcmp
    Return true when "$left <= $right"

  strcmp
    Return true when "$left le $right"

## NAME
    [SQL::Statement::Operation::GreaterEqual](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AGreaterEqual/markdown) - implements greater equal operation

## SYNOPSIS
      # create an C<greater equal> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and the right operand
      my $term = [SQL::Statement::GreaterEqual](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AGreaterEqual/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::GreaterEqual](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AGreaterEqual/markdown) implements greater equal compare operations between two
    numbers and two strings.

## INHERITANCE
      [SQL::Statement::Operation::GreaterEqual](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AGreaterEqual/markdown)
      ISA [SQL::Statement::Operation::Equality](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AEquality/markdown)
        ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
          ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  numcmp
    Return true when $left = $right>

  strcmp
    Return true when "$left ge $right"

## NAME
    [SQL::Statement::Operation::Regexp](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ARegexp/markdown) - abstract base class for comparisons based on regular
    expressions

## SYNOPSIS
      # create an C<regexp> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and the right operand
      my $term = [SQL::Statement::Regexp](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ARegexp/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::Regexp](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ARegexp/markdown) implements the comparisons for the "LIKE" operation family.

## INHERITANCE
      [SQL::Statement::Operation::Regexp](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ARegexp/markdown)
      ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
        ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  operate
    Return the result of the comparison.

  right
    Returns the regular expression based on the right term. The right term is expected to be
    constant - so "a LIKE b" in not supported.

  regexp
    *Abstract* method which must return a regular expression ("qr//") from the given string. Must be
    overridden by derived classes.

## NAME
    [SQL::Statement::Operation::Like](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ALike/markdown) - implements the like operation

## SYNOPSIS
      # create an C<like> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and the right operand
      my $term = [SQL::Statement::Like](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ALike/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::Like](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ALike/markdown) is used to the comparisons for the "LIKE" operation.

## INHERITANCE
      [SQL::Statement::Operation::Like](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ALike/markdown)
      ISA [SQL::Statement::Operation::Regexp](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ARegexp/markdown)
        ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
          ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  regexp
    Returns "qr/^$right$/s"

## NAME
    [SQL::Statement::Operation::Clike](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AClike/markdown) - implements the clike operation

## SYNOPSIS
      # create an C<clike> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and the right operand
      my $term = [SQL::Statement::Clike](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AClike/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::Clike](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AClike/markdown) is used to the comparisons for the "CLIKE" operation.

## INHERITANCE
      [SQL::Statement::Operation::Clike](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3AClike/markdown)
      ISA [SQL::Statement::Operation::Regexp](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ARegexp/markdown)
        ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
          ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  regexp
    Returns "qr/^$right$/si"

## NAME
    [SQL::Statement::Operation::RLike](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ARLike/markdown) - implements the rlike operation

## SYNOPSIS
      # create an C<rlike> operation with an [SQL::Statement](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement/markdown) object as owner,
      # specifying the operation name, the left and the right operand
      my $term = [SQL::Statement::RLike](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ARLike/markdown)->new( $owner, $op, $left, $right );
      # access the result of that operation
      $term->value( $eval );

## DESCRIPTION
    [SQL::Statement::Operation::RLike](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ARLike/markdown) is used to the comparisons for the "RLIKE" operation.

## INHERITANCE
      [SQL::Statement::Operation::RLike](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ARLike/markdown)
      ISA [SQL::Statement::Operation::Regexp](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation%3A%3ARegexp/markdown)
        ISA [SQL::Statement::Operation](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3AOperation/markdown)
          ISA [SQL::Statement::Term](https://www.chedong.com/phpMan.php/perldoc/SQL%3A%3AStatement%3A%3ATerm/markdown)

## METHODS
  regexp
    Returns "qr/$right$/s"

## AUTHOR AND COPYRIGHT
    Copyright (c) 2009-2020 by Jens Rehsack: rehsackATcpan.org

    All rights reserved.

    You may distribute this module under the terms of either the GNU General Public License or the
    Artistic License, as specified in the Perl README file.

