SQL::OOP::Select
my $where = SQL::OOP::Where->new(); my $select = SQL::OOP::Select->new(); # set clause by plain text $select->set( $select->ARG_FIELDS => '*', $select->ARG_FROM => 'some_table', $select->ARG_WHERE => q("some_filed" > 5) $select->ARG_GROUPBY => 'some_field', $select->ARG_ORDERBY => 'some_field ASC', $select->ARG_LIMIT => '10', $select->ARG_OFFSET => '2', ); # reset clauses using objects my $where = SQL::OOP::Where->new(); $select->set( $select->ARG_FIELDS => SQL::OOP::ID->new('some_field'), $select->ARG_FROM => SQL::OOP::ID->new('some_table'), $select->ARG_WHERE => $where->cmp('=', "some_fileld", 'value') $select->ARG_ORDERBY=> SQL::OOP::Order->new('a', 'b'), ); # clause can treats subs so that temporary variables don't mess around $select->set( $select->ARG_FIELDS => '*', $select->ARG_FROM => 'some_table', $select->ARG_WHERE => sub { my $where = SQL::OOP::Where->new(); return $where->cmp('=', "some_fileld", 'value'); } ); # SQL::OOP::Select can be part of any SQL::OOP::Base sub classes my $select2 = SQL::OOP::Select->new(); $select2->set( $select2->ARG_FIELDS => q("col1", "col2"), $select2->ARG_FROM => $select, ); my $where = SQL::OOP::Where->new(); $where->cmp('=', q{some_field}, $select); # some_filed = (SELECT ..) my $sql = $select->to_string; my @bind = $select->bind;
SQL::OOP::Select class represents Select commands.
Constructor. It takes arguments in hash. The Hash keys are provided by following methods. They can be called as either class or instance method.
ARG_FIELDS ARG_FROM ARG_WHERE ARG_GROUPBY ARG_ORDERBY ARG_LIMIT ARG_OFFSET
This method resets the clause data. It takes same argument as SQL::OOP::Select->new().
Get SQL snippet in string
Get binded values in array
argument key for FIELDS(=1)
argument key for FROM clause(=2)
argument key for WHERE clause(=3)
argument key for GROUP BY clause(=4)
argument key for ORDER BY clause(=5)
argument key for LIMIT clause(=6)
argument key for OFFSET clause(=7)
Here is a comprehensive example for SELECT. You also can find some examples in test scripts.
my $select = SQL::OOP::Select->new(); $select->set( $select->ARG_FIELDS => '*', $select->ARG_FROM => 'table', $select->ARG_WHERE => sub { my $where = SQL::OOP::Where->new; return $where->and( $where->cmp('=', 'a', 1), $where->cmp('=', 'b', 1), ) }, );
To install SQL::OOP, copy and paste the appropriate command in to your terminal.
cpanm
cpanm SQL::OOP
CPAN shell
perl -MCPAN -e shell install SQL::OOP
For more information on module installation, please visit the detailed CPAN module installation guide.