NAME
SQL::Entity::Table - Database table abstraction
SYNOPSIS
use SQL::Entity::Table;
use'SQL::Entity::Column ':all';
my $table = SQL::Entity::Table->new(
name => 'emp'
columns => [sql_column(name => 'empno')]
);
my ($sql) = $table->query;
my $dept = SQL::Entity->new(
name => 'dept',
alias => 'd',
columns => [
sql_column(name => 'deptno'),
sql_column(name => 'dname')
],
);
my $emp = SQL::Entity->new(
name => 'emp',
primary_key => ['empno'],
columns => [
sql_column(name => 'ename'),
sql_column(name => 'empno'),
sql_column(name => 'deptno')
],
);
$emp->add_to_one_relationships(sql_relationship(
table => $dept,
condition => sql_cond($dept->column('deptno'), '=', $entity->column('deptno'))
));
DESCRIPTION
Represents database table definition.
EXPORT
None.
all - exports sql_column method
ATTRIBUTES
- name
- schema
-
Table schema name
- primary_key
- alias
- columns
- indexes
- order_index
-
Index name that will be used to enforce order of the result.
METHODS
- initialise
- unique_columns
-
Returns list of unique columns
- query
-
Returns sql statement and bind variables, Takes optionally array ref of the requeted columns, condition object, bind_variables reference
- count
-
Retiurn sql and bind variables that returns number of rows for passed in condition,
- from_clause
-
Returns "FROM .... " SQL fragment
- from_clause
-
Returns FROM operand " table1 " SQL fragment
- from_clause_alias
-
Returns table alias
- select_clause
-
Returns " SELECT ..." SQL fragment
- selectable_columns
-
Returns list of column that can be used in select clause
- insertable_columns
-
Returns list of column that can be used in insert clause
- updatable_columns
-
Returns list of column that can be used in update clause
- query_columns
-
Returns hash_ref with all columns that belongs to this object.
- where_clause
-
Returns " WHERE ..." SQL fragment
- index
-
Returns order_index object, if order_index is not set then the first index will be seleted.
- select_hint_clause
-
Return hinst cluase that will be placed as SELECT operand
- order_by_clause
-
Returns " ORDER BY ..." SQL fragment
SEE ALSO
SQL::Query SQL::Entity SQL::Entity::Column
COPYRIGHT AND LICENSE
The SQL::Entity::Table module is free software. You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.
AUTHOR
Adrian Witas, adrian@webapp.strefa.pl