Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

Bio::DB::SQL::SqlQuery
Object representing an SQL Query

Bio::DB::SQL::SqlQuery - Object representing an SQL Query


NAME

Bio::DB::SQL::SqlQuery - Object representing an SQL Query


SYNOPSIS


  $q = Bio::DB::SQL::SqlQuery->new(-datacollections=>\@tables,

                                   -select=>\@selectcols);

  $q->flags("distinct", 1);

  $q->where("or", "colA=x", "colB=y", "colC=y");


DESCRIPTION

This class inherits from Bio::DB::SQL::AbstractQuery


CONTACT

Chris Mungall <cmungall@fruitfly.org>


APPENDIX

The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _

new


  Usage:  $sqlq = $self->new("table1", "col=val", "*");

      OR  $sqlq = $self->new(-select=>["col1", "col2"],

                             -table=>["table1", "table2"], 

                             -where=>["col3='val1'", "col4='val4'"]);

      OR  $sqlq = $self->new("col1, col2", "col1.fk=col2.pk", "*", "col2,col1");

      OR  $sqlq = $self->new("col1", {col1=>$val1, col2=>$val2});

  Args: tables, where, select, order, group, sql

all arguments except table are optional (select defaults to *)

the arguments can either be array references or a comma delimited string

the where argument can also be passed as a hash reference (in which case the values are autoquoted)

querytype


  Usage:  $query->querytype($val);      # setting

      OR   return $query->querytype();  # getting

one of : select, select distinct, insert, update, delete

ignored for now...

sql


  Usage:  $query->sql($val);      # setting

      OR   return $query->sql();  # getting

getsql


  Usage:  $sqlstmt = $query->getsql; $dbh->do($sqlstmt);

flattens query object




=cut

sub getsql { my $self = shift;


    my @sel = @{$self->selectelts || []};

    my $str = 

        sprintf(

                "SELECT %s%s FROM %s",

                $self->flag("distinct") ? "DISTINCT " : "",

                @sel ? join(", ", @sel) : "*",

                join(", ", @{$self->datacollections}));

    my $qc = $self->where;

    my $wh = $self->flatten_qc($qc);

    $str.= " WHERE $wh" if $wh;

    

    my @ord = @{$self->orderelts || []};

    $str.= sprintf(" ORDER BY %s", join(", ", @ord)) if @ord;

    

    my @gp = @{$self->groupelts || []};

    $str.= sprintf(" GROUP BY %s", join(", ", @gp)) if @gp;

    

    $self->sql($str);

    $str;

}

1;

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy