]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
seealsos in the tutorial
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 25 Jan 2014 21:37:30 +0000 (16:37 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 25 Jan 2014 21:37:30 +0000 (16:37 -0500)
doc/build/core/tutorial.rst
lib/sqlalchemy/sql/selectable.py

index 3ca127e5996bb377514251fe84eea22404cf5701..585d9ceb2b7af840fb3441eeef7e3901c972ba4d 100644 (file)
@@ -905,7 +905,6 @@ to "correlate" the inner ``users`` table with the outer one:
 Using Joins
 ============
 
-
 We're halfway along to being able to construct any SELECT expression. The next
 cornerstone of the SELECT is the JOIN expression. We've already been doing
 joins in our examples, by just placing two tables in either the columns clause
@@ -980,6 +979,14 @@ would be using ``OracleDialect``) to use Oracle-specific SQL:
 If you don't know what that SQL means, don't worry ! The secret tribe of
 Oracle DBAs don't want their black magic being found out ;).
 
+.. seealso::
+
+    :func:`.expression.join`
+
+    :func:`.expression.outerjoin`
+
+    :class:`.Join`
+
 Everything Else
 ================
 
@@ -994,9 +1001,12 @@ Bind Parameter Objects
 
 Throughout all these examples, SQLAlchemy is busy creating bind parameters
 wherever literal expressions occur. You can also specify your own bind
-parameters with your own names, and use the same statement repeatedly. The
-database dialect converts to the appropriate named or positional style, as
-here where it converts to positional for SQLite:
+parameters with your own names, and use the same statement repeatedly.
+The :func:`.bindparam` construct is used to produce a bound parameter
+with a given name.  While SQLAlchemy always refers to bound parameters by
+name on the API side, the
+database dialect converts to the appropriate named or positional style
+at execution time, as here where it converts to positional for SQLite:
 
 .. sourcecode:: pycon+sql
 
@@ -1009,7 +1019,7 @@ here where it converts to positional for SQLite:
     ('wendy',)
     {stop}[(2, u'wendy', u'Wendy Williams')]
 
-Another important aspect of bind parameters is that they may be assigned a
+Another important aspect of :func:`.bindparam` is that it may be assigned a
 type. The type of the bind parameter will determine its behavior within
 expressions and also how the data bound to it is processed before being sent
 off to the database:
@@ -1025,7 +1035,7 @@ off to the database:
     {stop}[(2, u'wendy', u'Wendy Williams')]
 
 
-Bind parameters of the same name can also be used multiple times, where only a
+:func:`.bindparam` constructs of the same name can also be used multiple times, where only a
 single named value is needed in the execute parameters:
 
 .. sourcecode:: pycon+sql
@@ -1050,6 +1060,10 @@ single named value is needed in the execute parameters:
     ('jack', 'jack')
     {stop}[(1, u'jack', u'Jack Jones', 1, 1, u'jack@yahoo.com'), (1, u'jack', u'Jack Jones', 2, 1, u'jack@msn.com')]
 
+.. seealso::
+
+    :func:`.bindparam`
+
 Functions
 ---------
 
@@ -1148,13 +1162,16 @@ of our selectable:
     >>> s.compile().params
     {u'x_2': 5, u'y_2': 12, u'y_1': 45, u'x_1': 17}
 
+.. seealso::
+
+    :data:`.func`
 
 Window Functions
 -----------------
 
 Any :class:`.FunctionElement`, including functions generated by
 :data:`~.expression.func`, can be turned into a "window function", that is an
-OVER clause, using the :meth:`~.FunctionElement.over` method:
+OVER clause, using the :meth:`.FunctionElement.over` method:
 
 .. sourcecode:: pycon+sql
 
@@ -1166,6 +1183,12 @@ OVER clause, using the :meth:`~.FunctionElement.over` method:
     SELECT users.id, row_number() OVER (ORDER BY users.name) AS anon_1
     FROM users
 
+.. seealso::
+
+    :func:`.over`
+
+    :meth:`.FunctionElement.over`
+
 Unions and Other Set Operations
 -------------------------------
 
@@ -1258,6 +1281,20 @@ want the "union" to be stated as a subquery:
     ('%@yahoo.com', '%@msn.com', '%@msn.com')
     {stop}[(1, 1, u'jack@yahoo.com')]
 
+.. seealso::
+
+    :func:`.union`
+
+    :func:`.union_all`
+
+    :func:`.intersect`
+
+    :func:`.intersect_all`
+
+    :func:`.except_`
+
+    :func:`.except_all`
+
 .. _scalar_selects:
 
 Scalar Selects
@@ -1310,6 +1347,12 @@ it using :meth:`.SelectBase.label` instead:
     ()
     {stop}[(u'jack', 2), (u'wendy', 2)]
 
+.. seealso::
+
+    :meth:`.Select.as_scalar`
+
+    :meth:`.Select.label`
+
 .. _correlated_subqueries:
 
 Correlated Subqueries
index 9a135c01a147b0623ee000cee6c699702094e116..01d617259b0f71b664d38315c6c42c85254f7ae3 100644 (file)
@@ -180,6 +180,8 @@ class FromClause(Selectable):
 
         E.g.::
 
+            from sqlalchemy import join
+
             j = user_table.join(address_table,
                             user_table.c.id == address_table.c.user_id)
             stmt = select([user_table]).select_from(j)
@@ -216,6 +218,8 @@ class FromClause(Selectable):
 
         E.g.::
 
+            from sqlalchemy import outerjoin
+
             j = user_table.outerjoin(address_table,
                             user_table.c.id == address_table.c.user_id)