Cómo Realizar Consultas SQL en La BD de Poker Tracker Por Spainfull
-
Upload
api-3807272 -
Category
Documents
-
view
240 -
download
7
Transcript of Cómo Realizar Consultas SQL en La BD de Poker Tracker Por Spainfull
Spainfull - Póquer yo lo valgo Page 2
Índice
CÓMO REALIZAR CONSULTAS SQL EN LA BASE DE DATOS DE POKER TRACKER ...... 1
PARTE I. USAR MICROSOFT ACCESS PARA HACER CONSULTAS ...................................................... 3
PARTE II. LA BASE DE DATOS DE POKER TRACKER EN DETALLE ...................................................... 7
PARTE III. TUTORIAL PARA CREAR CONSULTAS SQL ................................................................. 21
Spainfull - Póquer yo lo valgo Page 3
Parte I. Usar Microsoft Access para hacer consultas
Este artículo tiene dos objetivos principales: explicar la manera de obtener más información de
nuestra base de datos Access de Poker Tracker (en adelante, PT) a través de consultas SQL
(http://es.wikipedia.org/wiki/SQL) y detallar la estructura de las tablas de esta base de datos
para saber dónde hacer las consultas. Está orientado hacia los usuarios del PT que tienen un
nivel básico de manejo de la informática (o sea, ni puta idea) y quieren obtener datos que
actualmente no muestra el programa. Bueno, si no quieres más información, quizás tengas la
curiosidad de saber cómo funciona por dentro PT y le pierdas el miedo a esto de los
ordenadores. En los foros (http://www.pokertracker.com/forum/) de PT hay un hilo
(http://www.pokertracker.com/forum/viewtopic.php?t=4189) en inglés que me ha servido de
base para este artículo y en estos foros, además, puedes encontrar consultas SQL hechas por
usuarios de PT.
Por defecto, el programa PT almacena los datos que captura de las diferentes salas de póquer
en un archivo de base de datos Access. Éste archivo tiene la extensión “.mdb” y no es más que
una manera de guardar la información. Esta información la obtiene PT de los historiales de las
manos que se almacenan en nuestro disco duro en los directorios de las aplicaciones de las
salas de póquer creados a tal efecto (la ruta que tenemos que poner en las ventanas de auto-
import del PT para que pueda leer las manos). Lo que hace PT es leer esos ficheros de texto
que contienen las manos jugadas, interpretar la información que de ellos se puede sacar
(jugadores, stacks, nuestras cartas de mano, cartas comunitarias, apuestas, ganador de la
mano, etc.) y escribirla en la base de datos de manera apropiada para que después pueda ser
procesada.
PT da la opción de guardar la información en otro tipo de base de datos llamada PostgreSQL
(http://www.postgresql.org/). Es totalmente gratuita y su código está disponible para todo el
mundo. Tiene algunas ventajas sobre Access como son no tener limitación de espacio, ser algo
más rápida, más estable y más robusta. El inconveniente es que hay que instalarla y configurar
algunos parámetros en el PT para que funcione, pero tampoco nada demasiado complicado.
Ahora bien, si no jugamos un número excesivo de manos, se puede usar Access
tranquilamente. El problema de las bases de datos de Access es que tienen una limitación de
tamaño de 2GB y hay que compactarlas de vez en cuando para que no se haga muy lento el
acceso a los datos que contienen. Una solución es crear varias bases de datos de Access en PT,
aunque es un poco latoso tener que estar cambiando de una a otra según donde quieras
guardar los datos de juego.
El método que voy a explicar a continuación solo es válido para aquellos que guardan los datos
del PT en una base de datos Access. Para realizar consultas SQL sobre ella, se necesita algún
programa que tenga esta función incluida. En principio, se pueden utilizar tanto Microsoft
Access como Microsoft Excel, aunque si no se dispone de estos programas, es posible bajarse
algún programa gratuito que nos permita hacer consultas Access como por ejemplo SQueAl
(http://www.freewarefiles.com/program_10_109_20139.html). En primer lugar mostraré
simplemente cómo hacer la consulta sin entrar a analizar en detalle otros aspectos un poco
más complejos que dejo para más adelante.
Spainfull - Póquer yo lo valgo Page 4
Ejecutar una consulta con Microsoft Access
Antes de comenzar una advertencia: Microsoft Access es la aplicación nativa para las bases de
datos Access de PT, con lo que cualquier cambio que se haga sobre la tablas o borrado de
elementos por error pueden provocar daños irreparables que implicarían la inutilización de la
base de datos; así que cuida donde metes las zarpas y no pulses aceptar sin leer el mensaje. En
principio, si sigues los pasos indicados no hay ningún problema, pero por si acaso, ten siempre
una copia de seguridad de tu base de datos (basta con hacer una copia del archivo “.mdb”
donde tengas la base de datos).
La consulta que se va a hacer es la de parejas que han mejorado a trío en el flop. El código SQL
para esta consulta es el siguiente (ten en cuenta que esto no es un tutorial ni de SQL ni de
Access aunque posteriormente explicaré algunos conceptos, pero si quieres más información
la red está llena de tutoriales sencillos):
SELECT gp.hole_cards AS Par, count(*) AS Veces, SUM(
IIF(left(g.flop_1,1)=left(gp.hole_card_1,1),1,
IIF(left(g.flop_2,1)=left(gp.hole_card_1,1),1,
IIF(left(g.flop_3,1)=left(gp.hole_card_1,1),1,
0)))) AS [Trío en flop]
FROM game_players AS gp INNER JOIN game AS g ON gp.game_id = g.game_id
WHERE gp.player_id = (select pref_value from prefs where pref_key =
'RP')
AND gp.pair_hand = 1
AND gp.saw_flop_n = 1
GROUP BY gp.hole_cards, gp.card_order1
ORDER BY gp.card_order1 DESC;
Para empezar, arranca la aplicación Microsoft Access. En el menú "Archivo" escoge la opción
"Abrir..." y en la ventana que se presenta, navega hasta seleccionar la base de datos sobre la
que quieras hacer la consulta. Por defecto, la base de datos de PT es "ptrack.mdb" (puede que
no aparezca la extensión “.mdb”) y se encuentra en la ruta: "C:\Archivos de programa\Poker
Tracker V2" (también se puede abrir pulsando dos veces sobre el archivo "ptrack.mdb" en el
explorador de Windows.
Aparecerá la siguiente pantalla. Debes pulsar en "Consultas" ("Queries" si tienes el programa
en inglés) y a continuación en el menú de la ventana mostrada seleccionar "Nuevo" y en la
nueva ventana "Vista Diseño" (o directamente "Crear una consulta en vista Diseño").
Spainfull - Póquer yo lo valgo Page 5
Aparecerá una ventana de "Consulta de selección" y sobre ella una ventana de "Mostrar Tabla".
Cierra esta última ventana y nos quedamos con la ventana de consulta. Ahora debes pulsar el
icono "SQL" que se encuentra debajo de "Archivo" o seleccionar "Ver->Vista SQL".
Spainfull
Ahora ya solo nos queda copiar (o escrib
"!" o seleccionar "
Se puede guardar la consulta para no tener que copiarla cada vez que queremos obtener la
información; para ello bas
darle un nombre a la consulta, almacenándose junto con el resto de consultas previas en el
apartado de "
texto de la consulta, no el resultado; si se quiere guardar el resultado habrá que copiarlo y
pegarlo en otra aplicación (Excel, Word, Block de notas, etc.).
Una última consideración, de las instrucciones SQL que se pueden ejecutar, solo "
tiene co
información), así que no copiéis y ejecutéis consultas que incluyan palabras como "
"INSERT
usuarios más duchos en la materia. En el siguiente apartado explicaré en detalle las tablas de
la base de datos y un poco de SQL (no demasiado, necesitarás un tutorial más completo) para
que puedas hacer tus propias consultas.
Spainfull - Póquer yo lo valgo
Ahora ya solo nos queda copiar (o escrib
" o seleccionar "
Se puede guardar la consulta para no tener que copiarla cada vez que queremos obtener la
información; para ello bas
darle un nombre a la consulta, almacenándose junto con el resto de consultas previas en el
apartado de "Consultas
to de la consulta, no el resultado; si se quiere guardar el resultado habrá que copiarlo y
pegarlo en otra aplicación (Excel, Word, Block de notas, etc.).
Una última consideración, de las instrucciones SQL que se pueden ejecutar, solo "
tiene como resultado modificar las tablas de las bases de datos (simplemente muestra
información), así que no copiéis y ejecutéis consultas que incluyan palabras como "
INSERT", "UPDATE
usuarios más duchos en la materia. En el siguiente apartado explicaré en detalle las tablas de
la base de datos y un poco de SQL (no demasiado, necesitarás un tutorial más completo) para
que puedas hacer tus propias consultas.
óquer yo lo valgo
Ahora ya solo nos queda copiar (o escrib
" o seleccionar "Consulta->Ejecutar
Se puede guardar la consulta para no tener que copiarla cada vez que queremos obtener la
información; para ello basta pulsar el icono del disquete o seleccionar "
darle un nombre a la consulta, almacenándose junto con el resto de consultas previas en el
Consultas" de la base de datos visto en la primera imagen. Lo que se guarda es el
to de la consulta, no el resultado; si se quiere guardar el resultado habrá que copiarlo y
pegarlo en otra aplicación (Excel, Word, Block de notas, etc.).
Una última consideración, de las instrucciones SQL que se pueden ejecutar, solo "
mo resultado modificar las tablas de las bases de datos (simplemente muestra
información), así que no copiéis y ejecutéis consultas que incluyan palabras como "
UPDATE" o "DELETE
usuarios más duchos en la materia. En el siguiente apartado explicaré en detalle las tablas de
la base de datos y un poco de SQL (no demasiado, necesitarás un tutorial más completo) para
que puedas hacer tus propias consultas.
óquer yo lo valgo
Ahora ya solo nos queda copiar (o escribir) la consulta a realizar en la ventana y pulsar el icono
>Ejecutar" para que obtengamos los resultados.
Se puede guardar la consulta para no tener que copiarla cada vez que queremos obtener la
ta pulsar el icono del disquete o seleccionar "
darle un nombre a la consulta, almacenándose junto con el resto de consultas previas en el
" de la base de datos visto en la primera imagen. Lo que se guarda es el
to de la consulta, no el resultado; si se quiere guardar el resultado habrá que copiarlo y
pegarlo en otra aplicación (Excel, Word, Block de notas, etc.).
Una última consideración, de las instrucciones SQL que se pueden ejecutar, solo "
mo resultado modificar las tablas de las bases de datos (simplemente muestra
información), así que no copiéis y ejecutéis consultas que incluyan palabras como "
DELETE" y, en general, consultas sospechosas no verificadas por otr
usuarios más duchos en la materia. En el siguiente apartado explicaré en detalle las tablas de
la base de datos y un poco de SQL (no demasiado, necesitarás un tutorial más completo) para
que puedas hacer tus propias consultas.
ir) la consulta a realizar en la ventana y pulsar el icono
" para que obtengamos los resultados.
Se puede guardar la consulta para no tener que copiarla cada vez que queremos obtener la
ta pulsar el icono del disquete o seleccionar "
darle un nombre a la consulta, almacenándose junto con el resto de consultas previas en el
" de la base de datos visto en la primera imagen. Lo que se guarda es el
to de la consulta, no el resultado; si se quiere guardar el resultado habrá que copiarlo y
pegarlo en otra aplicación (Excel, Word, Block de notas, etc.).
Una última consideración, de las instrucciones SQL que se pueden ejecutar, solo "
mo resultado modificar las tablas de las bases de datos (simplemente muestra
información), así que no copiéis y ejecutéis consultas que incluyan palabras como "
" y, en general, consultas sospechosas no verificadas por otr
usuarios más duchos en la materia. En el siguiente apartado explicaré en detalle las tablas de
la base de datos y un poco de SQL (no demasiado, necesitarás un tutorial más completo) para
ir) la consulta a realizar en la ventana y pulsar el icono
" para que obtengamos los resultados.
Se puede guardar la consulta para no tener que copiarla cada vez que queremos obtener la
ta pulsar el icono del disquete o seleccionar "
darle un nombre a la consulta, almacenándose junto con el resto de consultas previas en el
" de la base de datos visto en la primera imagen. Lo que se guarda es el
to de la consulta, no el resultado; si se quiere guardar el resultado habrá que copiarlo y
pegarlo en otra aplicación (Excel, Word, Block de notas, etc.).
Una última consideración, de las instrucciones SQL que se pueden ejecutar, solo "
mo resultado modificar las tablas de las bases de datos (simplemente muestra
información), así que no copiéis y ejecutéis consultas que incluyan palabras como "
" y, en general, consultas sospechosas no verificadas por otr
usuarios más duchos en la materia. En el siguiente apartado explicaré en detalle las tablas de
la base de datos y un poco de SQL (no demasiado, necesitarás un tutorial más completo) para
ir) la consulta a realizar en la ventana y pulsar el icono
" para que obtengamos los resultados.
Se puede guardar la consulta para no tener que copiarla cada vez que queremos obtener la
ta pulsar el icono del disquete o seleccionar "Archivo
darle un nombre a la consulta, almacenándose junto con el resto de consultas previas en el
" de la base de datos visto en la primera imagen. Lo que se guarda es el
to de la consulta, no el resultado; si se quiere guardar el resultado habrá que copiarlo y
Una última consideración, de las instrucciones SQL que se pueden ejecutar, solo "
mo resultado modificar las tablas de las bases de datos (simplemente muestra
información), así que no copiéis y ejecutéis consultas que incluyan palabras como "
" y, en general, consultas sospechosas no verificadas por otr
usuarios más duchos en la materia. En el siguiente apartado explicaré en detalle las tablas de
la base de datos y un poco de SQL (no demasiado, necesitarás un tutorial más completo) para
Page
ir) la consulta a realizar en la ventana y pulsar el icono
Se puede guardar la consulta para no tener que copiarla cada vez que queremos obtener la
Archivo->Guardar" y
darle un nombre a la consulta, almacenándose junto con el resto de consultas previas en el
" de la base de datos visto en la primera imagen. Lo que se guarda es el
to de la consulta, no el resultado; si se quiere guardar el resultado habrá que copiarlo y
Una última consideración, de las instrucciones SQL que se pueden ejecutar, solo "SELECT" no
mo resultado modificar las tablas de las bases de datos (simplemente muestra
información), así que no copiéis y ejecutéis consultas que incluyan palabras como "DROP",
" y, en general, consultas sospechosas no verificadas por otr
usuarios más duchos en la materia. En el siguiente apartado explicaré en detalle las tablas de
la base de datos y un poco de SQL (no demasiado, necesitarás un tutorial más completo) para
Page 6
ir) la consulta a realizar en la ventana y pulsar el icono
Se puede guardar la consulta para no tener que copiarla cada vez que queremos obtener la
" y
darle un nombre a la consulta, almacenándose junto con el resto de consultas previas en el
" de la base de datos visto en la primera imagen. Lo que se guarda es el
to de la consulta, no el resultado; si se quiere guardar el resultado habrá que copiarlo y
" no
",
" y, en general, consultas sospechosas no verificadas por otros
usuarios más duchos en la materia. En el siguiente apartado explicaré en detalle las tablas de
la base de datos y un poco de SQL (no demasiado, necesitarás un tutorial más completo) para
Spainfull - Póquer yo lo valgo Page 7
Parte II. La base de datos de Poker Tracker en detalle
Para comprender mejor cómo funciona Poker Tracker y las instrucciones a escribir en la consultas SQL, en el siguiente apartado detallaré la organización de la base de datos de PT. Estructura de la base de datos de Poker Tracker Para los menos iniciados en la informática, es preciso recordar que una base de datos no es más que una manera de almacenar información. Cada tipo de base de datos tiene una forma propia de guardar esos datos y acceder a ellos. Se hace así con el objetivo de recuperar lo almacenado con mayor rapidez, mantener una gran cantidad de datos eficientemente y para facilitar la inserción de nuevos elementos; todo esto es posible porque hay implementados una serie de interfaces (protocolos, medios de comunicación entre programas) que permiten realizar estas operaciones de manera mucho más eficaz que si se guardaran los datos, por ejemplo, en un simple archivo de texto. Hay muchos tipos de bases de datos. Seguro que te suenan palabras como Access, Oracle, SQLServer, MySQL, PostgreSQL... Todas identifican bases de datos muy diferentes entre sí, cuya construcción interna no se parece en absoluto, aunque tienen cosas en común. Básicamente, todas ellas almacenan la información en tablas, cada una de las cuales tiene una serie de campos que definen atributos de lo representado por la tabla. La forma de acceder a estos datos es distinta en cada caso ya que suelen poseer su propio lenguaje, pero las consultas SQL que voy a crear se pueden utilizar en todas ellas con pocas modificaciones (SQL es el lenguaje base usado por la mayoría de bases de datos de la actualidad). Access no es diferente y también guarda los datos en tablas. Una tabla se identifica por un nombre que debería ser descriptivo de la información que contiene. En cada tabla los datos se agrupan en campos que contienen los detalles de lo que se quiere almacenar. Por ejemplo, si se es un poco maníaco-obsesivo-exitoso y se desea tener una base de datos de ligues, habría una tabla de nombre "Pibitas" (si es muy obsesivo probablemente el nombre sería "Chochos") que contendría seguramente los campos "Nombre", "Teléfono", "Altura", "Edad", "Peso", "Cara" (nota asignada de 1 a 10), "Tetas" (nota asignada de 1 a 10), "Culo" (nota asignada de 1 a 10), "Sexo" (vamos, que si folla) , "Casada" y "FechaPrimeraCita". Los campos son las columnas de la tabla y, cada nueva conquista, sería una nueva fila en la tabla que tendría unos valores en los campos que la definirían. Advertir que la elección de los campos ha sido totalmente arbitraria; se podrían haber definido otros atributos o características (y no, no tengo una tabla como ésta hecha). Los campos pueden ser de distinto tipo dependiendo de la información que vayan a guardar. Los tipos básicos disponibles son: numéricos (con decimales o sin decimales), alfanuméricos (letras y números, es decir, texto), moneda, fechas y booleano (datos que son verdadero o falso, por ejemplo "Sexo" y "Casada"). Como se puede comprobar, hasta aquí no es nada complicado. Ahora que conoces las bases, voy a desmenuzar las tablas de PT y el porqué de cada una. En una base de datos suele haber más de una tabla para lograr definir los objetos que participan en el problema a solucionar; además, los datos que contienen están
Spainfull
interrelacionados entre ellas. Las consultas se pueden hacer ya que si no, se limitaría mucho la búsqueda. La creación de bases de datos en sistemas complejos es una tarea ardua y complicada puesto que hay que tener en cuenta muchas variables y factores. Pero tranquilo, eso es otra histola universidad la primera vez que hablaba con él: "eso a ti te la suda". Ahora "solo" vas a aprender la estructura de la base de datos de PT, así que presta atención. Si se abre la base de datos de PT tal y como comenté "Tablastablas de PT:
La mayor parte de las tablas son bastante autocada aspecto que el programador de PT ha querido de definición: de niveles, salas, ciegas, etc.; otras que detallan cada mano del juego con todos los datos posibles; otras que son resumen de valores para que la recuperación y visualización en PT sea más rápida (como py, por último, otras que sirven para la configuración del programa. Para ver los campos de cada tabla, basta con seleccionar la tabla de la que se quiere ver su estructura y pulsar el icono de "sobre la tabla elegida y pulsar sobre "
Spainfull - Póquer yo lo valgo
interrelacionados entre ellas. Las consultas se pueden hacer ya que si no, se limitaría mucho la búsqueda. La creación de bases de datos en sistemas complejos es una tarea ardua y complicada puesto que hay que tener en cuenta muchas variables y factores. Pero tranquilo, eso es otra histola universidad la primera vez que hablaba con él: "eso a ti te la suda".
Ahora "solo" vas a aprender la estructura de la base de datos de PT, así que presta atención. Si se abre la base de datos de PT tal y como comenté Tablas" en los "tablas de PT:
La mayor parte de las tablas son bastante autocada aspecto que el programador de PT ha querido de definición: de niveles, salas, ciegas, etc.; otras que detallan cada mano del juego con todos los datos posibles; otras que son resumen de valores para que la recuperación y visualización en PT sea más rápida (como py, por último, otras que sirven para la configuración del programa.
Para ver los campos de cada tabla, basta con seleccionar la tabla de la que se quiere ver su estructura y pulsar el icono de "sobre la tabla elegida y pulsar sobre "
óquer yo lo valgo
interrelacionados entre ellas. Las consultas se pueden hacer ya que si no, se limitaría mucho la búsqueda. La creación de bases de datos en sistemas complejos es una tarea ardua y complicada puesto que hay que tener en cuenta muchas variables y factores. Pero tranquilo, eso es otra histola universidad la primera vez que hablaba con él: "eso a ti te la suda".
Ahora "solo" vas a aprender la estructura de la base de datos de PT, así que presta atención. Si se abre la base de datos de PT tal y como comenté
" en los "Objetos
La mayor parte de las tablas son bastante autocada aspecto que el programador de PT ha querido de definición: de niveles, salas, ciegas, etc.; otras que detallan cada mano del juego con todos los datos posibles; otras que son resumen de valores para que la recuperación y visualización en PT sea más rápida (como py, por último, otras que sirven para la configuración del programa.
Para ver los campos de cada tabla, basta con seleccionar la tabla de la que se quiere ver su estructura y pulsar el icono de "sobre la tabla elegida y pulsar sobre "
óquer yo lo valgo
interrelacionados entre ellas. Las consultas se pueden hacer ya que si no, se limitaría mucho la búsqueda. La creación de bases de datos en sistemas complejos es una tarea ardua y complicada puesto que hay que tener en cuenta muchas variables y factores. Pero tranquilo, eso es otra histola universidad la primera vez que hablaba con él: "eso a ti te la suda".
Ahora "solo" vas a aprender la estructura de la base de datos de PT, así que presta atención. Si se abre la base de datos de PT tal y como comenté
Objetos", aparece una imagen como la siguiente con todas las
La mayor parte de las tablas son bastante autocada aspecto que el programador de PT ha querido de definición: de niveles, salas, ciegas, etc.; otras que detallan cada mano del juego con todos los datos posibles; otras que son resumen de valores para que la recuperación y visualización en PT sea más rápida (como py, por último, otras que sirven para la configuración del programa.
Para ver los campos de cada tabla, basta con seleccionar la tabla de la que se quiere ver su estructura y pulsar el icono de "Diseñosobre la tabla elegida y pulsar sobre "Vista Diseño
interrelacionados entre ellas. Las consultas se pueden hacer ya que si no, se limitaría mucho la búsqueda. La creación de bases de datos en sistemas complejos es una tarea ardua y complicada puesto que hay que tener en cuenta muchas variables y factores. Pero tranquilo, eso es otra histola universidad la primera vez que hablaba con él: "eso a ti te la suda".
Ahora "solo" vas a aprender la estructura de la base de datos de PT, así que presta atención. Si se abre la base de datos de PT tal y como comenté
", aparece una imagen como la siguiente con todas las
La mayor parte de las tablas son bastante auto explicativas, y sus campos logran definir cada aspecto que el programador de PT ha querido de definición: de niveles, salas, ciegas, etc.; otras que detallan cada mano del juego con todos los datos posibles; otras que son resumen de valores para que la recuperación y visualización en PT sea más rápida (como por ejemplo la tabla de las sesiones jugadas); y, por último, otras que sirven para la configuración del programa.
Para ver los campos de cada tabla, basta con seleccionar la tabla de la que se quiere ver Diseño" o hacerVista Diseño
interrelacionados entre ellas. Las consultas se pueden hacer sobre varias tablas a la vez ya que si no, se limitaría mucho la búsqueda. La creación de bases de datos en sistemas complejos es una tarea ardua y complicada puesto que hay que tener en cuenta muchas variables y factores. Pero tranquilo, eso es otra historia y, como me dijo un profesor de la universidad la primera vez que hablaba con él: "eso a ti te la suda".
Ahora "solo" vas a aprender la estructura de la base de datos de PT, así que presta atención. Si se abre la base de datos de PT tal y como comenté
", aparece una imagen como la siguiente con todas las
explicativas, y sus campos logran definir cada aspecto que el programador de PT ha querido reflejar. Hay algunas tablas que son de definición: de niveles, salas, ciegas, etc.; otras que detallan cada mano del juego con todos los datos posibles; otras que son resumen de valores para que la recuperación y
or ejemplo la tabla de las sesiones jugadas); y, por último, otras que sirven para la configuración del programa.
Para ver los campos de cada tabla, basta con seleccionar la tabla de la que se quiere ver " o hacer clic con el botón derecho del ratón
Vista Diseño":
sobre varias tablas a la vez ya que si no, se limitaría mucho la búsqueda. La creación de bases de datos en sistemas complejos es una tarea ardua y complicada puesto que hay que tener en cuenta muchas
ria y, como me dijo un profesor de la universidad la primera vez que hablaba con él: "eso a ti te la suda".
Ahora "solo" vas a aprender la estructura de la base de datos de PT, así que presta atención. Si se abre la base de datos de PT tal y como comenté ayer, y se selecciona
", aparece una imagen como la siguiente con todas las
explicativas, y sus campos logran definir reflejar. Hay algunas tablas que son
de definición: de niveles, salas, ciegas, etc.; otras que detallan cada mano del juego con todos los datos posibles; otras que son resumen de valores para que la recuperación y
or ejemplo la tabla de las sesiones jugadas); y, por último, otras que sirven para la configuración del programa.
Para ver los campos de cada tabla, basta con seleccionar la tabla de la que se quiere ver con el botón derecho del ratón
Page
sobre varias tablas a la vez ya que si no, se limitaría mucho la búsqueda. La creación de bases de datos en sistemas complejos es una tarea ardua y complicada puesto que hay que tener en cuenta muchas
ria y, como me dijo un profesor de
Ahora "solo" vas a aprender la estructura de la base de datos de PT, así que presta , y se selecciona
", aparece una imagen como la siguiente con todas las
explicativas, y sus campos logran definir reflejar. Hay algunas tablas que son
de definición: de niveles, salas, ciegas, etc.; otras que detallan cada mano del juego con todos los datos posibles; otras que son resumen de valores para que la recuperación y
or ejemplo la tabla de las sesiones jugadas);
Para ver los campos de cada tabla, basta con seleccionar la tabla de la que se quiere ver con el botón derecho del ratón
Page 8
sobre varias tablas a la vez ya que si no, se limitaría mucho la búsqueda. La creación de bases de datos en sistemas complejos es una tarea ardua y complicada puesto que hay que tener en cuenta muchas
ria y, como me dijo un profesor de
, y se selecciona ", aparece una imagen como la siguiente con todas las
explicativas, y sus campos logran definir reflejar. Hay algunas tablas que son
de definición: de niveles, salas, ciegas, etc.; otras que detallan cada mano del juego con todos los datos posibles; otras que son resumen de valores para que la recuperación y
or ejemplo la tabla de las sesiones jugadas);
Para ver los campos de cada tabla, basta con seleccionar la tabla de la que se quiere ver con el botón derecho del ratón
Spainfull
Si se hace lo dicho, aparece una ventana que lista los campos que contiene la tabla y el tipo de cada uno de los campos. También puede contener observaciones contenido de cada uno de los campos que se utilizan para hacer aclaraciones sobre el mismo (solo tiene valor informativo). Un apunte, en la creación de la mayor parte de las tablas se define un campo identificador que distingue unívocamente a untabla del resto de filas; la mayoría de las tablas de PT tienen un campo de este tipo, que suele ser un entero positivo (se declara en la base de datos para que cada vez que se añade una fila se incremente automáticamente, aunque éste es un deimporta demasiado). Estos identificadores son muy útiles para enlazar valores entre tablas (esto se verá más claro en el siguiente capítulo en el que haré las consultas):
Voy a agrupar las tablas de PT según la función para la que han una clasificación que he establecido para que se vea más claramente la utilidad de cada
Spainfull - Póquer yo lo valgo
Si se hace lo dicho, aparece una ventana que lista los campos que contiene la tabla y el tipo de cada uno de los campos. También puede contener observaciones contenido de cada uno de los campos que se utilizan para hacer aclaraciones sobre el mismo (solo tiene valor informativo). Un apunte, en la creación de la mayor parte de las tablas se define un campo identificador que distingue unívocamente a untabla del resto de filas; la mayoría de las tablas de PT tienen un campo de este tipo, que suele ser un entero positivo (se declara en la base de datos para que cada vez que se añade una fila se incremente automáticamente, aunque éste es un deimporta demasiado). Estos identificadores son muy útiles para enlazar valores entre tablas (esto se verá más claro en el siguiente capítulo en el que haré las consultas):
Voy a agrupar las tablas de PT según la función para la que han una clasificación que he establecido para que se vea más claramente la utilidad de cada
óquer yo lo valgo
Si se hace lo dicho, aparece una ventana que lista los campos que contiene la tabla y el tipo de cada uno de los campos. También puede contener observaciones contenido de cada uno de los campos que se utilizan para hacer aclaraciones sobre el mismo (solo tiene valor informativo). Un apunte, en la creación de la mayor parte de las tablas se define un campo identificador que distingue unívocamente a untabla del resto de filas; la mayoría de las tablas de PT tienen un campo de este tipo, que suele ser un entero positivo (se declara en la base de datos para que cada vez que se añade una fila se incremente automáticamente, aunque éste es un deimporta demasiado). Estos identificadores son muy útiles para enlazar valores entre tablas (esto se verá más claro en el siguiente capítulo en el que haré las consultas):
Voy a agrupar las tablas de PT según la función para la que han una clasificación que he establecido para que se vea más claramente la utilidad de cada
óquer yo lo valgo
Si se hace lo dicho, aparece una ventana que lista los campos que contiene la tabla y el tipo de cada uno de los campos. También puede contener observaciones contenido de cada uno de los campos que se utilizan para hacer aclaraciones sobre el mismo (solo tiene valor informativo). Un apunte, en la creación de la mayor parte de las tablas se define un campo identificador que distingue unívocamente a untabla del resto de filas; la mayoría de las tablas de PT tienen un campo de este tipo, que suele ser un entero positivo (se declara en la base de datos para que cada vez que se añade una fila se incremente automáticamente, aunque éste es un deimporta demasiado). Estos identificadores son muy útiles para enlazar valores entre tablas (esto se verá más claro en el siguiente capítulo en el que haré las consultas):
Voy a agrupar las tablas de PT según la función para la que han una clasificación que he establecido para que se vea más claramente la utilidad de cada
Si se hace lo dicho, aparece una ventana que lista los campos que contiene la tabla y el tipo de cada uno de los campos. También puede contener observaciones contenido de cada uno de los campos que se utilizan para hacer aclaraciones sobre el mismo (solo tiene valor informativo). Un apunte, en la creación de la mayor parte de las tablas se define un campo identificador que distingue unívocamente a untabla del resto de filas; la mayoría de las tablas de PT tienen un campo de este tipo, que suele ser un entero positivo (se declara en la base de datos para que cada vez que se añade una fila se incremente automáticamente, aunque éste es un deimporta demasiado). Estos identificadores son muy útiles para enlazar valores entre tablas (esto se verá más claro en el siguiente capítulo en el que haré las consultas):
Voy a agrupar las tablas de PT según la función para la que han una clasificación que he establecido para que se vea más claramente la utilidad de cada
Si se hace lo dicho, aparece una ventana que lista los campos que contiene la tabla y el tipo de cada uno de los campos. También puede contener observaciones contenido de cada uno de los campos que se utilizan para hacer aclaraciones sobre el mismo (solo tiene valor informativo). Un apunte, en la creación de la mayor parte de las tablas se define un campo identificador que distingue unívocamente a untabla del resto de filas; la mayoría de las tablas de PT tienen un campo de este tipo, que suele ser un entero positivo (se declara en la base de datos para que cada vez que se añade una fila se incremente automáticamente, aunque éste es un deimporta demasiado). Estos identificadores son muy útiles para enlazar valores entre tablas (esto se verá más claro en el siguiente capítulo en el que haré las consultas):
Voy a agrupar las tablas de PT según la función para la que han una clasificación que he establecido para que se vea más claramente la utilidad de cada
Si se hace lo dicho, aparece una ventana que lista los campos que contiene la tabla y el tipo de cada uno de los campos. También puede contener observaciones contenido de cada uno de los campos que se utilizan para hacer aclaraciones sobre el mismo (solo tiene valor informativo). Un apunte, en la creación de la mayor parte de las tablas se define un campo identificador que distingue unívocamente a untabla del resto de filas; la mayoría de las tablas de PT tienen un campo de este tipo, que suele ser un entero positivo (se declara en la base de datos para que cada vez que se añade una fila se incremente automáticamente, aunque éste es un detalle que no nos importa demasiado). Estos identificadores son muy útiles para enlazar valores entre tablas (esto se verá más claro en el siguiente capítulo en el que haré las consultas):
Voy a agrupar las tablas de PT según la función para la que han sido creadas. Ésta es una clasificación que he establecido para que se vea más claramente la utilidad de cada
Page
Si se hace lo dicho, aparece una ventana que lista los campos que contiene la tabla y el tipo de cada uno de los campos. También puede contener observaciones acerca del contenido de cada uno de los campos que se utilizan para hacer aclaraciones sobre el mismo (solo tiene valor informativo). Un apunte, en la creación de la mayor parte de las tablas se define un campo identificador que distingue unívocamente a una fila de la tabla del resto de filas; la mayoría de las tablas de PT tienen un campo de este tipo, que suele ser un entero positivo (se declara en la base de datos para que cada vez que se
talle que no nos importa demasiado). Estos identificadores son muy útiles para enlazar valores entre tablas (esto se verá más claro en el siguiente capítulo en el que haré las consultas):
sido creadas. Ésta es una clasificación que he establecido para que se vea más claramente la utilidad de cada
Page 9
Si se hace lo dicho, aparece una ventana que lista los campos que contiene la tabla y el
contenido de cada uno de los campos que se utilizan para hacer aclaraciones sobre el mismo (solo tiene valor informativo). Un apunte, en la creación de la mayor parte de las
a fila de la tabla del resto de filas; la mayoría de las tablas de PT tienen un campo de este tipo, que suele ser un entero positivo (se declara en la base de datos para que cada vez que se
talle que no nos importa demasiado). Estos identificadores son muy útiles para enlazar valores entre
sido creadas. Ésta es una clasificación que he establecido para que se vea más claramente la utilidad de cada
Spainfull
una de ellas, pero no significa que sean de distinto tipo sino simplemente que las he ordenado para no mostrar todas seguidas; solo hay un tipo únusen para almacenar diferentes tipos de datos. Los datos de cash y torneos se guardan en tablas separadas. La mejor manera para seguir la explicación de las tablas es abrir en Access la base de datos e ir abriéndolas conforme se deque se quiera visualizar). ♣ Tablas de definición de datos:Son todas aquellas que definen entidades que se utilizarán en otras tablas. ♠ Tabla Define los distintos niveles en un torneo.
•
•
•
Puede que te preguntes por qué los valores están desordenados. Esto es debido a que en cuanto PT lee un nivel nuevo de ciegas, añade una línea a esta tabla y le asigna un identificador que comienza en 1 y se va incrementando automáticamente como expliqué anteriormente. Seguramente inicié el PT con un torneo comenzado o la importación automática de torneos la hizo de manera desordenada; esto no tiene ninguna importancia ya que se sabe qué nivel es por el identificador; por ejemplo, el identificador 6
Spainfull - Póquer yo lo valgo
una de ellas, pero no significa que sean de distinto tipo sino simplemente que las he ordenado para no mostrar todas seguidas; solo hay un tipo únusen para almacenar diferentes tipos de datos. Los datos de cash y torneos se guardan en tablas separadas.
La mejor manera para seguir la explicación de las tablas es abrir en Access la base de datos e ir abriéndolas conforme se deque se quiera visualizar).
Tablas de definición de datos:Son todas aquellas que definen entidades que se utilizarán en otras tablas.
Tabla blind_structure
Define los distintos niveles en un torneo.
blind_structure_id
blind_structure_desc
big_bet
unidad más pequeña).
ede que te preguntes por qué los valores están desordenados. Esto es debido a que en cuanto PT lee un nivel nuevo de ciegas, añade una línea a esta tabla y le asigna un identificador que comienza en 1 y se va incrementando automáticamente como expliqué
eriormente. Seguramente inicié el PT con un torneo comenzado o la importación automática de torneos la hizo de manera desordenada; esto no tiene ninguna importancia ya que se sabe qué nivel es por el identificador; por ejemplo, el identificador 6
óquer yo lo valgo
una de ellas, pero no significa que sean de distinto tipo sino simplemente que las he ordenado para no mostrar todas seguidas; solo hay un tipo únusen para almacenar diferentes tipos de datos. Los datos de cash y torneos se guardan en tablas separadas.
La mejor manera para seguir la explicación de las tablas es abrir en Access la base de datos e ir abriéndolas conforme se deque se quiera visualizar).
Tablas de definición de datos:Son todas aquellas que definen entidades que se utilizarán en otras tablas.
blind_structure. Define los distintos niveles en un torneo.
blind_structure_id
blind_structure_desc
big_bet: tamaño de la ciega grande en relación a la unidad (una ficha es la unidad más pequeña).
ede que te preguntes por qué los valores están desordenados. Esto es debido a que en cuanto PT lee un nivel nuevo de ciegas, añade una línea a esta tabla y le asigna un identificador que comienza en 1 y se va incrementando automáticamente como expliqué
eriormente. Seguramente inicié el PT con un torneo comenzado o la importación automática de torneos la hizo de manera desordenada; esto no tiene ninguna importancia ya que se sabe qué nivel es por el identificador; por ejemplo, el identificador 6
óquer yo lo valgo
una de ellas, pero no significa que sean de distinto tipo sino simplemente que las he ordenado para no mostrar todas seguidas; solo hay un tipo únusen para almacenar diferentes tipos de datos. Los datos de cash y torneos se guardan en
La mejor manera para seguir la explicación de las tablas es abrir en Access la base de datos e ir abriéndolas conforme se detallan (basta con hacer doble click sobre la tabla
Tablas de definición de datos: Son todas aquellas que definen entidades que se utilizarán en otras tablas.
Define los distintos niveles en un torneo.
blind_structure_id: identificador del nivel de ciegas.blind_structure_desc: estructura de ciega pequeña y ciega grande.
: tamaño de la ciega grande en relación a la unidad (una ficha es la unidad más pequeña).
ede que te preguntes por qué los valores están desordenados. Esto es debido a que en cuanto PT lee un nivel nuevo de ciegas, añade una línea a esta tabla y le asigna un identificador que comienza en 1 y se va incrementando automáticamente como expliqué
eriormente. Seguramente inicié el PT con un torneo comenzado o la importación automática de torneos la hizo de manera desordenada; esto no tiene ninguna importancia ya que se sabe qué nivel es por el identificador; por ejemplo, el identificador 6
una de ellas, pero no significa que sean de distinto tipo sino simplemente que las he ordenado para no mostrar todas seguidas; solo hay un tipo únusen para almacenar diferentes tipos de datos. Los datos de cash y torneos se guardan en
La mejor manera para seguir la explicación de las tablas es abrir en Access la base de tallan (basta con hacer doble click sobre la tabla
Son todas aquellas que definen entidades que se utilizarán en otras tablas.
Define los distintos niveles en un torneo. Contiene los campos siguientes:
: identificador del nivel de ciegas.: estructura de ciega pequeña y ciega grande.
: tamaño de la ciega grande en relación a la unidad (una ficha es la
ede que te preguntes por qué los valores están desordenados. Esto es debido a que en cuanto PT lee un nivel nuevo de ciegas, añade una línea a esta tabla y le asigna un identificador que comienza en 1 y se va incrementando automáticamente como expliqué
eriormente. Seguramente inicié el PT con un torneo comenzado o la importación automática de torneos la hizo de manera desordenada; esto no tiene ninguna importancia ya que se sabe qué nivel es por el identificador; por ejemplo, el identificador 6
una de ellas, pero no significa que sean de distinto tipo sino simplemente que las he ordenado para no mostrar todas seguidas; solo hay un tipo únusen para almacenar diferentes tipos de datos. Los datos de cash y torneos se guardan en
La mejor manera para seguir la explicación de las tablas es abrir en Access la base de tallan (basta con hacer doble click sobre la tabla
Son todas aquellas que definen entidades que se utilizarán en otras tablas.
Contiene los campos siguientes:
: identificador del nivel de ciegas.: estructura de ciega pequeña y ciega grande.
: tamaño de la ciega grande en relación a la unidad (una ficha es la
ede que te preguntes por qué los valores están desordenados. Esto es debido a que en cuanto PT lee un nivel nuevo de ciegas, añade una línea a esta tabla y le asigna un identificador que comienza en 1 y se va incrementando automáticamente como expliqué
eriormente. Seguramente inicié el PT con un torneo comenzado o la importación automática de torneos la hizo de manera desordenada; esto no tiene ninguna importancia ya que se sabe qué nivel es por el identificador; por ejemplo, el identificador 6
una de ellas, pero no significa que sean de distinto tipo sino simplemente que las he ordenado para no mostrar todas seguidas; solo hay un tipo único de tablas aunque se usen para almacenar diferentes tipos de datos. Los datos de cash y torneos se guardan en
La mejor manera para seguir la explicación de las tablas es abrir en Access la base de tallan (basta con hacer doble click sobre la tabla
Son todas aquellas que definen entidades que se utilizarán en otras tablas.
Contiene los campos siguientes:
: identificador del nivel de ciegas. : estructura de ciega pequeña y ciega grande.
: tamaño de la ciega grande en relación a la unidad (una ficha es la
ede que te preguntes por qué los valores están desordenados. Esto es debido a que en cuanto PT lee un nivel nuevo de ciegas, añade una línea a esta tabla y le asigna un identificador que comienza en 1 y se va incrementando automáticamente como expliqué
eriormente. Seguramente inicié el PT con un torneo comenzado o la importación automática de torneos la hizo de manera desordenada; esto no tiene ninguna importancia ya que se sabe qué nivel es por el identificador; por ejemplo, el identificador 6
Page
una de ellas, pero no significa que sean de distinto tipo sino simplemente que las he ico de tablas aunque se
usen para almacenar diferentes tipos de datos. Los datos de cash y torneos se guardan en
La mejor manera para seguir la explicación de las tablas es abrir en Access la base de tallan (basta con hacer doble click sobre la tabla
Son todas aquellas que definen entidades que se utilizarán en otras tablas.
Contiene los campos siguientes:
: estructura de ciega pequeña y ciega grande. : tamaño de la ciega grande en relación a la unidad (una ficha es la
ede que te preguntes por qué los valores están desordenados. Esto es debido a que en cuanto PT lee un nivel nuevo de ciegas, añade una línea a esta tabla y le asigna un identificador que comienza en 1 y se va incrementando automáticamente como expliqué
eriormente. Seguramente inicié el PT con un torneo comenzado o la importación automática de torneos la hizo de manera desordenada; esto no tiene ninguna importancia ya que se sabe qué nivel es por el identificador; por ejemplo, el identificador 6
Page 10
una de ellas, pero no significa que sean de distinto tipo sino simplemente que las he ico de tablas aunque se
usen para almacenar diferentes tipos de datos. Los datos de cash y torneos se guardan en
La mejor manera para seguir la explicación de las tablas es abrir en Access la base de tallan (basta con hacer doble click sobre la tabla
: tamaño de la ciega grande en relación a la unidad (una ficha es la
ede que te preguntes por qué los valores están desordenados. Esto es debido a que en
identificador que comienza en 1 y se va incrementando automáticamente como expliqué eriormente. Seguramente inicié el PT con un torneo comenzado o la importación
automática de torneos la hizo de manera desordenada; esto no tiene ninguna importancia
Spainfull
corresponfila en la tabla. ♠ Tabla Define las ciegas en las mesas de cash. Contiene los campos siguientes:
•
•
•
•
♠ Tabla Define las posibles manos en el
•
•
Como se puede apreciar, esta tabla sí está ordenada de peor a mejor jugada, esto es debido a que es una tabla con los datos completos antes de capturar ningún dato el programa, o rellenada automáticamente al crear una nueva base de datos (en
Spainfull - Póquer yo lo valgo
corresponde al nivel de ciegas 150/300, y no importa el orden en el que esté insertada la fila en la tabla.
Tabla game_level
Define las ciegas en las mesas de cash. Contiene los campos siguientes:
game_level_id
game_level_desc
game_level_big_bet
unidad más pequeña es una unidad de moneda ($, pl_nl: 0 si es
Tabla hand_rank
Define las posibles manos en el
hand_rank_id
hand_rank_desc
Como se puede apreciar, esta tabla sí está ordenada de peor a mejor jugada, esto es debido a que es una tabla con los datos completos antes de capturar ningún dato el programa, o rellenada automáticamente al crear una nueva base de datos (en
óquer yo lo valgo
de al nivel de ciegas 150/300, y no importa el orden en el que esté insertada la
game_level. Define las ciegas en las mesas de cash. Contiene los campos siguientes:
game_level_id: identificador de la cantidad de las ciegas.level_desc
game_level_big_bet
unidad más pequeña es una unidad de moneda ($, : 0 si es limit
nd_rank. Define las posibles manos en el
hand_rank_id: identificador de la jugada.hand_rank_desc
Como se puede apreciar, esta tabla sí está ordenada de peor a mejor jugada, esto es debido a que es una tabla con los datos completos antes de capturar ningún dato el programa, o rellenada automáticamente al crear una nueva base de datos (en
óquer yo lo valgo
de al nivel de ciegas 150/300, y no importa el orden en el que esté insertada la
Define las ciegas en las mesas de cash. Contiene los campos siguientes:
: identificador de la cantidad de las ciegas.level_desc: descripción de la ciega pequeña y la ciega grande.
game_level_big_bet: tamaño de la ciega grande en relación a la unidad (la unidad más pequeña es una unidad de moneda ($,
limit, 1 si se trata de NL o PL.
Define las posibles manos en el showdown
: identificador de la jugada.hand_rank_desc: descripción en texto de la calidad de la jugada.
Como se puede apreciar, esta tabla sí está ordenada de peor a mejor jugada, esto es debido a que es una tabla con los datos completos antes de capturar ningún dato el programa, o rellenada automáticamente al crear una nueva base de datos (en
de al nivel de ciegas 150/300, y no importa el orden en el que esté insertada la
Define las ciegas en las mesas de cash. Contiene los campos siguientes:
: identificador de la cantidad de las ciegas.: descripción de la ciega pequeña y la ciega grande.
: tamaño de la ciega grande en relación a la unidad (la unidad más pequeña es una unidad de moneda ($,
, 1 si se trata de NL o PL.
showdown en Holdem
: identificador de la jugada.: descripción en texto de la calidad de la jugada.
Como se puede apreciar, esta tabla sí está ordenada de peor a mejor jugada, esto es debido a que es una tabla con los datos completos antes de capturar ningún dato el programa, o rellenada automáticamente al crear una nueva base de datos (en
de al nivel de ciegas 150/300, y no importa el orden en el que esté insertada la
Define las ciegas en las mesas de cash. Contiene los campos siguientes:
: identificador de la cantidad de las ciegas.: descripción de la ciega pequeña y la ciega grande.
: tamaño de la ciega grande en relación a la unidad (la unidad más pequeña es una unidad de moneda ($, € o GBP).
, 1 si se trata de NL o PL.
Holdem. Contiene los campos siguientes:
: identificador de la jugada. : descripción en texto de la calidad de la jugada.
Como se puede apreciar, esta tabla sí está ordenada de peor a mejor jugada, esto es debido a que es una tabla con los datos completos antes de capturar ningún dato el programa, o rellenada automáticamente al crear una nueva base de datos (en
de al nivel de ciegas 150/300, y no importa el orden en el que esté insertada la
Define las ciegas en las mesas de cash. Contiene los campos siguientes:
: identificador de la cantidad de las ciegas. : descripción de la ciega pequeña y la ciega grande.
: tamaño de la ciega grande en relación a la unidad (la € o GBP).
. Contiene los campos siguientes:
: descripción en texto de la calidad de la jugada.
Como se puede apreciar, esta tabla sí está ordenada de peor a mejor jugada, esto es debido a que es una tabla con los datos completos antes de capturar ningún dato el programa, o rellenada automáticamente al crear una nueva base de datos (en
Page
de al nivel de ciegas 150/300, y no importa el orden en el que esté insertada la
: descripción de la ciega pequeña y la ciega grande. : tamaño de la ciega grande en relación a la unidad (la
. Contiene los campos siguientes:
: descripción en texto de la calidad de la jugada.
Como se puede apreciar, esta tabla sí está ordenada de peor a mejor jugada, esto es debido a que es una tabla con los datos completos antes de capturar ningún dato el programa, o rellenada automáticamente al crear una nueva base de datos (en Holdem
Page 11
de al nivel de ciegas 150/300, y no importa el orden en el que esté insertada la
: tamaño de la ciega grande en relación a la unidad (la
. Contiene los campos siguientes:
Como se puede apreciar, esta tabla sí está ordenada de peor a mejor jugada, esto es
Holdem el
Spainfull
ranking de jugadas es fijo e inmutable). ♠ Tabla Define a los jugadores en cada sala de póquer. Cada fila identifica a un jugador en una sala. Se utilizará en todas las tablas que contengan datos de juego. Contiene los campos siguientes:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Destacar que, como seguramente conoces, para agrupar las estadísticas de un jugador que tiene datos de diferentes salas hay que utilizar los alias de PT. Ahora puedes ver cómo funcionan. Cada jugador tiene una fila por sala en la que juega. Si se usan los alias, a través de los campos "mismo jugador y combinará sus estadísticas.
Spainfull - Póquer yo lo valgo
ing de jugadas es fijo e inmutable).
Tabla players. Define a los jugadores en cada sala de póquer. Cada fila identifica a un jugador en una sala. Se utilizará en todas las tablas que contengan datos de juego. Contiene los campos siguientes:
player_id
screen_name
location
general_description
treeview_icon
de jugadores del PT (se refiere a los dibujicos que representan cada tipo de jugador).
site_id
sala al que correponde el alias asigna alias_id
main_site_id
hide_ind
ring_player
mano de él jugando cash). tourney_player
tourney_hide_ind
del PT. last_icon
last_auto_rated
jugadores automática. last_batch_rated
jugadores. icon_before_batch_rate
jugadores. no_auto_rate
icon_file
personalizaciones).
Destacar que, como seguramente conoces, para agrupar las estadísticas de un jugador que tiene datos de diferentes salas hay que utilizar los alias de PT. Ahora puedes ver cómo funcionan. Cada jugador tiene una fila por sala en la que juega. Si se usan los alias, a través de los campos "mismo jugador y combinará sus estadísticas.
óquer yo lo valgo
ing de jugadas es fijo e inmutable).
Define a los jugadores en cada sala de póquer. Cada fila identifica a un jugador en una sala. Se utilizará en todas las tablas que contengan datos de juego. Contiene los campos
player_id: identificador del jugador en la base de datos de PT.screen_name: nombre en la sala que se ve en pantalla del jugador.location: lugar de origen que el jugador se ha puesto en la sala.general_description
treeview_icon: identificadde jugadores del PT (se refiere a los dibujicos que representan cada tipo de jugador). site_id: utilizado en los jugadores con alias para indicar el identificador de la sala al que correponde el alias asignaalias_id: identificador del jugador al que corresponde éste alias.main_site_id: sala para la que está definido el jugador.hide_ind: si no se muestra al jugador de cash en las ventanas del PT.ring_player: si es jugador de cash en la sala (significa smano de él jugando cash).tourney_player
tourney_hide_ind
last_icon: último icono del jugador.last_auto_rated
jugadores automática.last_batch_rated
jugadores. icon_before_batch_rate
jugadores. no_auto_rate: si a éste jugador no hay que clasificarlo.icon_file: fichero donde se almacena el icono del jugador (para personalizaciones).
Destacar que, como seguramente conoces, para agrupar las estadísticas de un jugador que tiene datos de diferentes salas hay que utilizar los alias de PT. Ahora puedes ver cómo funcionan. Cada jugador tiene una fila por sala en la que juega. Si se usan los alias, a través de los campos "mismo jugador y combinará sus estadísticas.
óquer yo lo valgo
ing de jugadas es fijo e inmutable).
Define a los jugadores en cada sala de póquer. Cada fila identifica a un jugador en una sala. Se utilizará en todas las tablas que contengan datos de juego. Contiene los campos
identificador del jugador en la base de datos de PT.: nombre en la sala que se ve en pantalla del jugador.
: lugar de origen que el jugador se ha puesto en la sala.general_description: notas sobre el jugador.
: identificadde jugadores del PT (se refiere a los dibujicos que representan cada tipo de
: utilizado en los jugadores con alias para indicar el identificador de la sala al que correponde el alias asigna
: identificador del jugador al que corresponde éste alias.: sala para la que está definido el jugador.
: si no se muestra al jugador de cash en las ventanas del PT.: si es jugador de cash en la sala (significa s
mano de él jugando cash). tourney_player: si es jugador de torneos.tourney_hide_ind: si no se muestra al jugador de torneos en las ventanas
: último icono del jugador.last_auto_rated: fecha en la que se hizo la última jugadores automática. last_batch_rated: fecha en la que se hizo la última clasificación de
icon_before_batch_rate
: si a éste jugador no hay que clasificarlo.: fichero donde se almacena el icono del jugador (para
Destacar que, como seguramente conoces, para agrupar las estadísticas de un jugador que tiene datos de diferentes salas hay que utilizar los alias de PT. Ahora puedes ver cómo funcionan. Cada jugador tiene una fila por sala en la que juega. Si se usan los alias, a través de los campos "site_idmismo jugador y combinará sus estadísticas.
ing de jugadas es fijo e inmutable).
Define a los jugadores en cada sala de póquer. Cada fila identifica a un jugador en una sala. Se utilizará en todas las tablas que contengan datos de juego. Contiene los campos
identificador del jugador en la base de datos de PT.: nombre en la sala que se ve en pantalla del jugador.
: lugar de origen que el jugador se ha puesto en la sala.: notas sobre el jugador.
: identificador del icono del jugador que aparece en el árbol de jugadores del PT (se refiere a los dibujicos que representan cada tipo de
: utilizado en los jugadores con alias para indicar el identificador de la sala al que correponde el alias asignado.
: identificador del jugador al que corresponde éste alias.: sala para la que está definido el jugador.
: si no se muestra al jugador de cash en las ventanas del PT.: si es jugador de cash en la sala (significa s
: si es jugador de torneos.: si no se muestra al jugador de torneos en las ventanas
: último icono del jugador. : fecha en la que se hizo la última
: fecha en la que se hizo la última clasificación de
icon_before_batch_rate: icono anterior a la última clasificación de
: si a éste jugador no hay que clasificarlo.: fichero donde se almacena el icono del jugador (para
Destacar que, como seguramente conoces, para agrupar las estadísticas de un jugador que tiene datos de diferentes salas hay que utilizar los alias de PT. Ahora puedes ver cómo funcionan. Cada jugador tiene una fila por sala en la que juega. Si se usan los
site_id" y "alias_idmismo jugador y combinará sus estadísticas.
Define a los jugadores en cada sala de póquer. Cada fila identifica a un jugador en una sala. Se utilizará en todas las tablas que contengan datos de juego. Contiene los campos
identificador del jugador en la base de datos de PT.: nombre en la sala que se ve en pantalla del jugador.
: lugar de origen que el jugador se ha puesto en la sala.: notas sobre el jugador.
or del icono del jugador que aparece en el árbol de jugadores del PT (se refiere a los dibujicos que representan cada tipo de
: utilizado en los jugadores con alias para indicar el identificador de la
: identificador del jugador al que corresponde éste alias.: sala para la que está definido el jugador.
: si no se muestra al jugador de cash en las ventanas del PT.: si es jugador de cash en la sala (significa s
: si es jugador de torneos. : si no se muestra al jugador de torneos en las ventanas
: fecha en la que se hizo la última
: fecha en la que se hizo la última clasificación de
: icono anterior a la última clasificación de
: si a éste jugador no hay que clasificarlo.: fichero donde se almacena el icono del jugador (para
Destacar que, como seguramente conoces, para agrupar las estadísticas de un jugador que tiene datos de diferentes salas hay que utilizar los alias de PT. Ahora puedes ver cómo funcionan. Cada jugador tiene una fila por sala en la que juega. Si se usan los
alias_id" el programa sabe que son el
Define a los jugadores en cada sala de póquer. Cada fila identifica a un jugador en una sala. Se utilizará en todas las tablas que contengan datos de juego. Contiene los campos
identificador del jugador en la base de datos de PT.: nombre en la sala que se ve en pantalla del jugador.
: lugar de origen que el jugador se ha puesto en la sala.
or del icono del jugador que aparece en el árbol de jugadores del PT (se refiere a los dibujicos que representan cada tipo de
: utilizado en los jugadores con alias para indicar el identificador de la
: identificador del jugador al que corresponde éste alias.: sala para la que está definido el jugador.
: si no se muestra al jugador de cash en las ventanas del PT.: si es jugador de cash en la sala (significa si se tiene alguna
: si no se muestra al jugador de torneos en las ventanas
: fecha en la que se hizo la última clasificación de
: fecha en la que se hizo la última clasificación de
: icono anterior a la última clasificación de
: si a éste jugador no hay que clasificarlo. : fichero donde se almacena el icono del jugador (para
Destacar que, como seguramente conoces, para agrupar las estadísticas de un jugador que tiene datos de diferentes salas hay que utilizar los alias de PT. Ahora puedes ver cómo funcionan. Cada jugador tiene una fila por sala en la que juega. Si se usan los
" el programa sabe que son el
Page
Define a los jugadores en cada sala de póquer. Cada fila identifica a un jugador en una sala. Se utilizará en todas las tablas que contengan datos de juego. Contiene los campos
identificador del jugador en la base de datos de PT. : nombre en la sala que se ve en pantalla del jugador.
: lugar de origen que el jugador se ha puesto en la sala.
or del icono del jugador que aparece en el árbol de jugadores del PT (se refiere a los dibujicos que representan cada tipo de
: utilizado en los jugadores con alias para indicar el identificador de la
: identificador del jugador al que corresponde éste alias.
: si no se muestra al jugador de cash en las ventanas del PT. i se tiene alguna
: si no se muestra al jugador de torneos en las ventanas
clasificación de
: fecha en la que se hizo la última clasificación de
: icono anterior a la última clasificación de
: fichero donde se almacena el icono del jugador (para
Destacar que, como seguramente conoces, para agrupar las estadísticas de un jugador que tiene datos de diferentes salas hay que utilizar los alias de PT. Ahora puedes ver cómo funcionan. Cada jugador tiene una fila por sala en la que juega. Si se usan los
" el programa sabe que son el
Page 12
Define a los jugadores en cada sala de póquer. Cada fila identifica a un jugador en una sala. Se utilizará en todas las tablas que contengan datos de juego. Contiene los campos
or del icono del jugador que aparece en el árbol
: utilizado en los jugadores con alias para indicar el identificador de la
i se tiene alguna
: si no se muestra al jugador de torneos en las ventanas
: icono anterior a la última clasificación de
Destacar que, como seguramente conoces, para agrupar las estadísticas de un jugador que tiene datos de diferentes salas hay que utilizar los alias de PT. Ahora puedes ver cómo funcionan. Cada jugador tiene una fila por sala en la que juega. Si se usan los
" el programa sabe que son el
Spainfull - Póquer yo lo valgo Page 13
♠ Tabla poker_sites. Define las salas de póquer para las que funciona PT. Contiene los campos siguientes:
• site_id: identificador de la sala. • site_abbrev: nombre abreviado de la sala de póquer.
• site_name: nombre completo de la sala de póquer.
♣ Tablas de datos: Almacenan los datos del juego en sí. ♠ Tabla game. Define los detalles generales de cada mano de cash. Cada fila identifica una mano jugada e importada en el PT. Contiene los campos siguientes:
• game_id: identificador de la mano. • game_number: otro identificador de la mano (usado para salas como Prima). • site_id: sala donde se juega la mano. • date_played: fecha en la que se juega la mano. • game_level_id: nivel en la que se juega la mano. • flop_1: carta primera del flop. • flop_2: carta segunda del flop. • flop_3: carta tercera del flop. • turn: carta del turn. • river: carta del river.
Spainfull
•
•
•
•
•
•
•
•
•
•
•
•
Es un resumen tabla " ♠ Tabla Define los detalles generales de cada mano de torneo. Cada fila es una mano de torneo jugada e importada por PT. Contiene los campos siguiente
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Spainfull - Póquer yo lo valgo
pot: bote que se lleva el ganador de la mano (antes de descontar la comisión). rake: comisión que se lleva la casa en la mano. player_id
import_date
game_notes
table_name
winning_hand
real_player_id
el identif players_saw_flop
number_of_players
ub_game_number
ub_kill_game
Es un resumen de cada mano jugada. Los detalles por jugador están contenidos en la tabla "game_players
Tabla tourney_game
Define los detalles generales de cada mano de torneo. Cada fila es una mano de torneo jugada e importada por PT. Contiene los campos siguiente
tourney_id
game_number
date_played
blind_structure_id
game_level
pp_game_number
flop_1
flop_2
flop_3
turn: carta del river: carta del pot: número de fichas que se lleva el ganador de la mano. player_id
import_date
game_notes
table_name
winning_hand
óquer yo lo valgo
: bote que se lleva el ganador de la mano (antes de descontar la comisión).: comisión que se lleva la casa en la mano.
player_id: identificador del jugador que gana la mano.import_date: fecha en la que se hizo la igame_notes: notas de la mano.table_name: nombre de la mesa en la que se jugó la mano.winning_hand: calidad de la jugada de la mano ganadora.real_player_id
el identificador del jugador en la sala, no su alias).players_saw_flop
number_of_players
ub_game_number
ub_kill_game: si es una mesa
de cada mano jugada. Los detalles por jugador están contenidos en la game_players".
tourney_game. Define los detalles generales de cada mano de torneo. Cada fila es una mano de torneo jugada e importada por PT. Contiene los campos siguiente
tourney_id: identificador de la mano.game_number: otro identificador de la mano (usado para salas como Prima).date_played: fecha en la que se juega la mano.blind_structure_id
game_level: nombre del nivel pp_game_number
flop_1: carta primera del flop_2: carta segunda del flop_3: carta tercera del
: carta del turn: carta del river
número de fichas que se lleva el ganador de la mano.player_id: identificador del jugador que gana la mano.import_date: fecha en la que se hizo la importación de la mano.game_notes: notas de la mano.table_name: nombre de la mesa en la que se jugó la manwinning_hand: calidad de la jugada de la mano ganadora.
óquer yo lo valgo
: bote que se lleva el ganador de la mano (antes de descontar la comisión).: comisión que se lleva la casa en la mano.
: identificador del jugador que gana la mano.: fecha en la que se hizo la i
: notas de la mano.: nombre de la mesa en la que se jugó la mano.
: calidad de la jugada de la mano ganadora.real_player_id: identificador real del jugador (si se utilizan alias, éste será
icador del jugador en la sala, no su alias).players_saw_flop: jugadores que han visto el number_of_players: número total de jugadores de la mano.ub_game_number: identificador de mano en UB.
: si es una mesa
de cada mano jugada. Los detalles por jugador están contenidos en la
Define los detalles generales de cada mano de torneo. Cada fila es una mano de torneo jugada e importada por PT. Contiene los campos siguiente
: identificador de la mano.: otro identificador de la mano (usado para salas como Prima).: fecha en la que se juega la mano.
blind_structure_id: nivel de ciegas en la que se juega la mano.: nombre del nivel
pp_game_number: identificador de la mano (creo que para PP).: carta primera del flop: carta segunda del flop.: carta tercera del flop.
turn. river.
número de fichas que se lleva el ganador de la mano.: identificador del jugador que gana la mano.
: fecha en la que se hizo la importación de la mano.: notas de la mano.: nombre de la mesa en la que se jugó la man
: calidad de la jugada de la mano ganadora.
: bote que se lleva el ganador de la mano (antes de descontar la comisión).: comisión que se lleva la casa en la mano.
: identificador del jugador que gana la mano.: fecha en la que se hizo la i
: notas de la mano. : nombre de la mesa en la que se jugó la mano.
: calidad de la jugada de la mano ganadora.: identificador real del jugador (si se utilizan alias, éste será
icador del jugador en la sala, no su alias).: jugadores que han visto el : número total de jugadores de la mano.
: identificador de mano en UB.: si es una mesa kill de UB.
de cada mano jugada. Los detalles por jugador están contenidos en la
Define los detalles generales de cada mano de torneo. Cada fila es una mano de torneo jugada e importada por PT. Contiene los campos siguiente
: identificador de la mano. : otro identificador de la mano (usado para salas como Prima).: fecha en la que se juega la mano.
: nivel de ciegas en la que se juega la mano.: nombre del nivel en el de ciegas en el que se juega la mano.
: identificador de la mano (creo que para PP).flop. flop.
flop.
número de fichas que se lleva el ganador de la mano.: identificador del jugador que gana la mano.
: fecha en la que se hizo la importación de la mano.: notas de la mano. : nombre de la mesa en la que se jugó la man
: calidad de la jugada de la mano ganadora.
: bote que se lleva el ganador de la mano (antes de descontar la comisión).: comisión que se lleva la casa en la mano.
: identificador del jugador que gana la mano.: fecha en la que se hizo la importación de la mano.
: nombre de la mesa en la que se jugó la mano.: calidad de la jugada de la mano ganadora.
: identificador real del jugador (si se utilizan alias, éste será icador del jugador en la sala, no su alias).
: jugadores que han visto el flop: número total de jugadores de la mano.
: identificador de mano en UB. de UB.
de cada mano jugada. Los detalles por jugador están contenidos en la
Define los detalles generales de cada mano de torneo. Cada fila es una mano de torneo jugada e importada por PT. Contiene los campos siguientes:
: otro identificador de la mano (usado para salas como Prima).: fecha en la que se juega la mano.
: nivel de ciegas en la que se juega la mano.en el de ciegas en el que se juega la mano.
: identificador de la mano (creo que para PP).
número de fichas que se lleva el ganador de la mano.: identificador del jugador que gana la mano.
: fecha en la que se hizo la importación de la mano.
: nombre de la mesa en la que se jugó la man: calidad de la jugada de la mano ganadora.
: bote que se lleva el ganador de la mano (antes de descontar la comisión).
: identificador del jugador que gana la mano. mportación de la mano.
: nombre de la mesa en la que se jugó la mano. : calidad de la jugada de la mano ganadora.
: identificador real del jugador (si se utilizan alias, éste será
flop. : número total de jugadores de la mano.
de cada mano jugada. Los detalles por jugador están contenidos en la
Define los detalles generales de cada mano de torneo. Cada fila es una mano de torneo
: otro identificador de la mano (usado para salas como Prima).
: nivel de ciegas en la que se juega la mano.en el de ciegas en el que se juega la mano.
: identificador de la mano (creo que para PP).
número de fichas que se lleva el ganador de la mano. : identificador del jugador que gana la mano.
: fecha en la que se hizo la importación de la mano.
: nombre de la mesa en la que se jugó la mano. : calidad de la jugada de la mano ganadora.
Page
: bote que se lleva el ganador de la mano (antes de descontar la comisión).
mportación de la mano.
: identificador real del jugador (si se utilizan alias, éste será
: número total de jugadores de la mano.
de cada mano jugada. Los detalles por jugador están contenidos en la
Define los detalles generales de cada mano de torneo. Cada fila es una mano de torneo
: otro identificador de la mano (usado para salas como Prima).
: nivel de ciegas en la que se juega la mano. en el de ciegas en el que se juega la mano.
: identificador de la mano (creo que para PP).
: fecha en la que se hizo la importación de la mano.
Page 14
: bote que se lleva el ganador de la mano (antes de descontar la comisión).
: identificador real del jugador (si se utilizan alias, éste será
de cada mano jugada. Los detalles por jugador están contenidos en la
Define los detalles generales de cada mano de torneo. Cada fila es una mano de torneo
: otro identificador de la mano (usado para salas como Prima).
en el de ciegas en el que se juega la mano.
Spainfull
•
•
•
•
•
Como se puede comprobar, esta tabla es similar a la anterior pero usada para torneos. ♠ Tabla Define en la misma. Contiene los campos siguientes:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Spainfull - Póquer yo lo valgo
real_player_id
el identificador del jugador en la sala, no su alias). players_saw_flop
number_of_p
heads_up
ub_game_number
Como se puede comprobar, esta tabla es similar a la anterior pero usada para torneos.
Tabla game_players
Define los detalles de cada mano desde el punto de vista de cada jugador que participa en la misma. Contiene los campos siguientes:
game_id
player_id
seat_number
button
hole_card_1
hole_card_2
suited
pre_flop_bet
flop_bet
turn_bet
river_bet
total_bet
total_won
when_folded
player_n
final_hand
hand_rank_id
all_in
hole_cards
card_order1
individual (2 card_order2
individual (2 card_order3
connector_hand
pair_hand
óquer yo lo valgo
real_player_id
el identificador del jugador en la sala, no su alias).players_saw_flop
number_of_players
heads_up: si se trata de un torneo
ub_game_number
Como se puede comprobar, esta tabla es similar a la anterior pero usada para torneos.
game_players. los detalles de cada mano desde el punto de vista de cada jugador que participa
en la misma. Contiene los campos siguientes:
game_id: identificador de la mano.player_id: identificador del jugador.seat_number: posición en la que está sentado el jugador.button: posición que ocupa la posición de hole_card_1: primera carta de las dos del jugador.hole_card_2: segunda carta de las dos del jugador.suited: s si es suitedpre_flop_bet: cantidad apostada antes del flop_bet: cantidad aposturn_bet: cantidad apostada en elriver_bet: cantidad apostada en eltotal_bet: cantidad apostada en el conjunto de la mano.total_won: cantidad total ganada en la mano.when_folded: cuando tiró las cartas en la mano.player_notes: notas del jugador en la mano.final_hand: calidad final de la mano del jugador.hand_rank_id: identificador de la calidad de la jugada de la mano ganadora.all_in: si el jugador ha ido hole_cards: cartas del jugador en formato textcard_order1: ranking de la primera carta de mano en relacióindividual (2->2,..., Ascard_order2: ranking de la segunda carta de mano en relacióindividual (2->2,..., Ascard_order3: 1 si sonconnector_hand
pair_hand: 1 si es una pareja de mano, 0 si no.
óquer yo lo valgo
real_player_id: identificador real del jugador (si se utilizan alias, éste será el identificador del jugador en la sala, no su alias).players_saw_flop: jugadores que han visto el
layers: número total de jugadores de la mano.: si se trata de un torneo
ub_game_number: identificador de mano en UB.
Como se puede comprobar, esta tabla es similar a la anterior pero usada para torneos.
los detalles de cada mano desde el punto de vista de cada jugador que participa en la misma. Contiene los campos siguientes:
: identificador de la mano.: identificador del jugador.
: posición en la que está sentado el jugador.: posición que ocupa la posición de
: primera carta de las dos del jugador.: segunda carta de las dos del jugador.suited, o si no.: cantidad apostada antes del
: cantidad apostada en el : cantidad apostada en el: cantidad apostada en el: cantidad apostada en el conjunto de la mano.: cantidad total ganada en la mano.
: cuando tiró las cartas en la mano.: notas del jugador en la mano.
: calidad final de la mano del jugador.: identificador de la calidad de la jugada de la mano ganadora.
: si el jugador ha ido all in: cartas del jugador en formato text: ranking de la primera carta de mano en relació..., As->14). : ranking de la segunda carta de mano en relació..., As->14). : 1 si son suited
connector_hand: 1 si están conectadas, 0 si no.: 1 si es una pareja de mano, 0 si no.
: identificador real del jugador (si se utilizan alias, éste será el identificador del jugador en la sala, no su alias).
: jugadores que han visto el : número total de jugadores de la mano.
: si se trata de un torneo Heads Up
: identificador de mano en UB.
Como se puede comprobar, esta tabla es similar a la anterior pero usada para torneos.
los detalles de cada mano desde el punto de vista de cada jugador que participa en la misma. Contiene los campos siguientes:
: identificador de la mano. : identificador del jugador.
: posición en la que está sentado el jugador.: posición que ocupa la posición de
: primera carta de las dos del jugador.: segunda carta de las dos del jugador.
. : cantidad apostada antes del
tada en el flop. : cantidad apostada en el turn. : cantidad apostada en el river.: cantidad apostada en el conjunto de la mano.: cantidad total ganada en la mano.
: cuando tiró las cartas en la mano.: notas del jugador en la mano.
: calidad final de la mano del jugador.: identificador de la calidad de la jugada de la mano ganadora.
all in en la mano.: cartas del jugador en formato text: ranking de la primera carta de mano en relació
: ranking de la segunda carta de mano en relació
suited, 0 si no. : 1 si están conectadas, 0 si no.
: 1 si es una pareja de mano, 0 si no.
: identificador real del jugador (si se utilizan alias, éste será el identificador del jugador en la sala, no su alias).
: jugadores que han visto el flop: número total de jugadores de la mano.
Heads Up.
: identificador de mano en UB.
Como se puede comprobar, esta tabla es similar a la anterior pero usada para torneos.
los detalles de cada mano desde el punto de vista de cada jugador que participa
: posición en la que está sentado el jugador.: posición que ocupa la posición de button.
: primera carta de las dos del jugador.: segunda carta de las dos del jugador.
: cantidad apostada antes del flop.
river. : cantidad apostada en el conjunto de la mano.: cantidad total ganada en la mano.
: cuando tiró las cartas en la mano. : notas del jugador en la mano.
: calidad final de la mano del jugador. : identificador de la calidad de la jugada de la mano ganadora.
en la mano. : cartas del jugador en formato texto. : ranking de la primera carta de mano en relació
: ranking de la segunda carta de mano en relació
: 1 si están conectadas, 0 si no. : 1 si es una pareja de mano, 0 si no.
: identificador real del jugador (si se utilizan alias, éste será
flop. : número total de jugadores de la mano.
Como se puede comprobar, esta tabla es similar a la anterior pero usada para torneos.
los detalles de cada mano desde el punto de vista de cada jugador que participa
: posición en la que está sentado el jugador.
: primera carta de las dos del jugador. : segunda carta de las dos del jugador.
: cantidad apostada en el conjunto de la mano.
: identificador de la calidad de la jugada de la mano ganadora.
: ranking de la primera carta de mano en relación a su fuerza
: ranking de la segunda carta de mano en relació
Page
: identificador real del jugador (si se utilizan alias, éste será
: número total de jugadores de la mano.
Como se puede comprobar, esta tabla es similar a la anterior pero usada para torneos.
los detalles de cada mano desde el punto de vista de cada jugador que participa
: identificador de la calidad de la jugada de la mano ganadora.
n a su fuerza
: ranking de la segunda carta de mano en relación a su fuerza
Page 15
: identificador real del jugador (si se utilizan alias, éste será
Como se puede comprobar, esta tabla es similar a la anterior pero usada para torneos.
los detalles de cada mano desde el punto de vista de cada jugador que participa
: identificador de la calidad de la jugada de la mano ganadora.
n a su fuerza
n a su fuerza
Spainfull
•
•
•
•
•
•
•
•
•
•
•
•
•
Hay muchos otros campos una de las posibles acciones que el jugador ha podido realizar en cada una de las calles (call, ventanas del PT. ♠ Tabla Define los detalles de cada mano de torneo desde el punto de vista de cada jugador que participa en la misma. Contiene los cam
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Spainfull - Póquer yo lo valgo
won_hand
session_id
off_the_button
number_of_players
big_blind_n
small_blind_n
went_to_showdown_n
saw_flop_n
attempted_stea
raised_first_pf
real_player_id
chip_count
ub_kill_blind
Hay muchos otros campos una de las posibles acciones que el jugador ha podido realizar en cada una de las calles
, check-raiseventanas del PT.
Tabla tourney_game_players
Define los detalles de cada mano de torneo desde el punto de vista de cada jugador que participa en la misma. Contiene los cam
tourney_id
game_id
player_id
seat_number
button
hole_card_1
hole_card_2
suited
pre_flop_bet
flop_bet
turn_bet
river_bet
total_bet
total_won
when_folded
player_notes
final_hand
óquer yo lo valgo
won_hand: 1 si el jugador ganó la mano, 0 si no.session_id: identificador de la sesión en la que se circunscribe la mano.off_the_button
number_of_players
big_blind_n: 1 si es small_blind_n: 1 si es went_to_showdown_n
saw_flop_n: 1 si vióattempted_stea
raised_first_pf
real_player_id
chip_count: dinero con el que el jugador comenzó la mano.ll_blind: 1 si es la ciega
Hay muchos otros campos booleanos una de las posibles acciones que el jugador ha podido realizar en cada una de las calles
raise, bet-raiseventanas del PT.
tourney_game_players
Define los detalles de cada mano de torneo desde el punto de vista de cada jugador que participa en la misma. Contiene los cam
tourney_id: identificador del torneo.game_id: identificador de la mano dentro del torneo.player_id: identificador del jugador.seat_number: posición en la que está sentado el jugador.button: posición que ocupa la posición de
_card_1: primera carta de las dos del jugador.hole_card_2: segunda carta de las dos del jugador.suited: s si es suitedpre_flop_bet: cantidad apostada antes del flop_bet: cantidad apostada en el turn_bet: cantidad apostada en elriver_bet: cantidad apostada en eltotal_bet: cantidad apostada en el conjunto de la mano.total_won: cantidad total ganada en la mano.when_folded: cuando tiró las cartas en la mano.player_notes: notas del jugador en la mano.final_hand: calidad final de la mano del jugador.
óquer yo lo valgo
: 1 si el jugador ganó la mano, 0 si no.: identificador de la sesión en la que se circunscribe la mano.
off_the_button: número de posiciones number_of_players: número de jugadores en la mano.
: 1 si es big blind: 1 si es small blind
went_to_showdown_n: 1 si llegó con la mano hasta el final, 0 si no.: 1 si vió el flop, 0 si no.
attempted_steal: 1 si intentó un robo, 0 si no.raised_first_pf: 1 si subió el primero antes del real_player_id: identificador real del jugador (no su alias).
: dinero con el que el jugador comenzó la mano.: 1 si es la ciega
booleanos (valores cierto o falso, 0 ó 1) que definen cada una de las posibles acciones que el jugador ha podido realizar en cada una de las calles
raise, etc.) y que servirán para mostrar las estadísticas en las
tourney_game_players. Define los detalles de cada mano de torneo desde el punto de vista de cada jugador que participa en la misma. Contiene los cam
: identificador del torneo.: identificador de la mano dentro del torneo.
: identificador del jugador.: posición en la que está sentado el jugador.
: posición que ocupa la posición de : primera carta de las dos del jugador.: segunda carta de las dos del jugador.suited, o si no.: cantidad apostada antes del
: cantidad apostada en el : cantidad apostada en el: cantidad apostada en el: cantidad apostada en el conjunto de la mano.: cantidad total ganada en la mano.
: cuando tiró las cartas en la mano.: notas del jugador en la mano.
calidad final de la mano del jugador.
: 1 si el jugador ganó la mano, 0 si no.: identificador de la sesión en la que se circunscribe la mano.
: número de posiciones : número de jugadores en la mano.big blind, 0 si no.
small blind, 0 si no.: 1 si llegó con la mano hasta el final, 0 si no.
, 0 si no. l: 1 si intentó un robo, 0 si no.: 1 si subió el primero antes del
: identificador real del jugador (no su alias).: dinero con el que el jugador comenzó la mano.
: 1 si es la ciega kill en una mesa
(valores cierto o falso, 0 ó 1) que definen cada una de las posibles acciones que el jugador ha podido realizar en cada una de las calles
, etc.) y que servirán para mostrar las estadísticas en las
Define los detalles de cada mano de torneo desde el punto de vista de cada jugador que participa en la misma. Contiene los campos siguientes:
: identificador del torneo. : identificador de la mano dentro del torneo.
: identificador del jugador. : posición en la que está sentado el jugador.
: posición que ocupa la posición de : primera carta de las dos del jugador.: segunda carta de las dos del jugador.
. : cantidad apostada antes del
: cantidad apostada en el flop. : cantidad apostada en el turn. : cantidad apostada en el river.: cantidad apostada en el conjunto de la mano.: cantidad total ganada en la mano.
: cuando tiró las cartas en la mano.: notas del jugador en la mano.
calidad final de la mano del jugador.
: 1 si el jugador ganó la mano, 0 si no. : identificador de la sesión en la que se circunscribe la mano.
: número de posiciones de diferencia con el : número de jugadores en la mano.
, 0 si no.
: 1 si llegó con la mano hasta el final, 0 si no.
l: 1 si intentó un robo, 0 si no. : 1 si subió el primero antes del
: identificador real del jugador (no su alias).: dinero con el que el jugador comenzó la mano.
en una mesa kill
(valores cierto o falso, 0 ó 1) que definen cada una de las posibles acciones que el jugador ha podido realizar en cada una de las calles
, etc.) y que servirán para mostrar las estadísticas en las
Define los detalles de cada mano de torneo desde el punto de vista de cada jugador que pos siguientes:
: identificador de la mano dentro del torneo.
: posición en la que está sentado el jugador.: posición que ocupa la posición de button.
: primera carta de las dos del jugador.: segunda carta de las dos del jugador.
: cantidad apostada antes del flop.
river. : cantidad apostada en el conjunto de la mano.: cantidad total ganada en la mano.
: cuando tiró las cartas en la mano. : notas del jugador en la mano.
calidad final de la mano del jugador.
: identificador de la sesión en la que se circunscribe la mano.de diferencia con el
: número de jugadores en la mano.
: 1 si llegó con la mano hasta el final, 0 si no.
: 1 si subió el primero antes del flop, 0 si no.: identificador real del jugador (no su alias).
: dinero con el que el jugador comenzó la mano. kill de UB, 0 si no.
(valores cierto o falso, 0 ó 1) que definen cada una de las posibles acciones que el jugador ha podido realizar en cada una de las calles
, etc.) y que servirán para mostrar las estadísticas en las
Define los detalles de cada mano de torneo desde el punto de vista de cada jugador que
: identificador de la mano dentro del torneo.
: posición en la que está sentado el jugador.
: primera carta de las dos del jugador. : segunda carta de las dos del jugador.
: cantidad apostada en el conjunto de la mano.
Page
: identificador de la sesión en la que se circunscribe la mano. de diferencia con el button.
: 1 si llegó con la mano hasta el final, 0 si no.
, 0 si no. : identificador real del jugador (no su alias).
de UB, 0 si no.
(valores cierto o falso, 0 ó 1) que definen cada una de las posibles acciones que el jugador ha podido realizar en cada una de las calles
, etc.) y que servirán para mostrar las estadísticas en las
Define los detalles de cada mano de torneo desde el punto de vista de cada jugador que
Page 16
(valores cierto o falso, 0 ó 1) que definen cada una de las posibles acciones que el jugador ha podido realizar en cada una de las calles
, etc.) y que servirán para mostrar las estadísticas en las
Define los detalles de cada mano de torneo desde el punto de vista de cada jugador que
Spainfull
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Hay muchos otros campos una de las posibles acciones que el ju(call, ventanas del PT. Esta tabla es similar a la anterior pero orientada a torneos (por eso algunas columnas diferentes c ♠ Tabla Define los datos generales de los torneos. Cada fila identifica un solo torneo importado en PT. Contiene los campos siguientes:
•
•
•
•
Spainfull - Póquer yo lo valgo
hand_rank_id
all_in
hole_cards
card_order1
individual (2 card_order2
individual (2 card_order3
connector_hand
pair_h
won_hand
session_id
off_the_button
number_of_players
big_blind_n
small_blind_n
went_to_showdown_n
saw_flop_n
attempted_stea
raised_first_pf
real_player_id
chip_count
blind_
el jugador está fuera de las posiciones que pagan ciegas). ante_amt: cantidad de fichas pagadas en concepto de
Hay muchos otros campos una de las posibles acciones que el ju
, check-raiseventanas del PT. Esta tabla es similar a la anterior pero orientada a torneos (por eso algunas columnas diferentes c
Tabla tourney.Define los datos generales de los torneos. Cada fila identifica un solo torneo importado en PT. Contiene los campos siguientes:
tourney_id
site_id
tourney_number
tourney_start
óquer yo lo valgo
hand_rank_id: identificador de la calidad de la jugada de la mano ganadora.all_in: si el jugador ha ido hole_cards: cartas del jugador en formato texto.card_order1: ranking de la primera carta de mindividual (2->2,..., card_order2: ranking de la segunda carta de mano en relacióindividual (2->2,..., Ascard_order3: 1 si sonconnector_hand
pair_hand: 1 si es una pareja de mano, 0 si no.won_hand: 1 si el jugador ganó la mano, 0 si no.session_id: identificador de la sesión en la que se circunscribe la mano.off_the_button
number_of_players
big_blind_n: 1 si es small_blind_n: 1 si es went_to_showdown_n
saw_flop_n: 1 si vió el attempted_stea
raised_first_pf
real_player_id
chip_count: stack _amt: cantidad de fichas pagadas en la mano en concepto
el jugador está fuera de las posiciones que pagan ciegas).ante_amt: cantidad de fichas pagadas en concepto de
Hay muchos otros campos booleanos una de las posibles acciones que el ju
raise, bet-raiseventanas del PT. Esta tabla es similar a la anterior pero orientada a torneos (por eso algunas columnas diferentes c
. Define los datos generales de los torneos. Cada fila identifica un solo torneo importado en PT. Contiene los campos siguientes:
tourney_id: identificador del torneo en la base de datos de PT.site_id: identificador tourney_number
tourney_start: fecha y hora de inicio del torneo.
óquer yo lo valgo
: identificador de la calidad de la jugada de la mano ganadora.: si el jugador ha ido all in
: cartas del jugador en formato texto.: ranking de la primera carta de m
As->14). : ranking de la segunda carta de mano en relació..., As->14). : 1 si son suited
connector_hand: 1 si están conectadas, 0 si no.: 1 si es una pareja de mano, 0 si no.
: 1 si el jugador ganó la mano, 0 si no.: identificador de la sesión en la que se circunscribe la mano.
off_the_button: número de posiciones de diferencia con el number_of_players: número
: 1 si es big blind: 1 si es small blind
went_to_showdown_n: 1 si llegó con la mano hasta el final, 0 si no.: 1 si vió el flop, 0 si no.
attempted_steal: 1 si intentó un roboraised_first_pf: 1 si subió el primero antes del real_player_id: identificador real del jugador (no su alias).
stack con el que el jugador comenzó la mano.: cantidad de fichas pagadas en la mano en concepto
el jugador está fuera de las posiciones que pagan ciegas).ante_amt: cantidad de fichas pagadas en concepto de
booleanos (valores cierto o falso, 0 ó 1) que definen cada una de las posibles acciones que el jugador ha podido realizar en cada una de las calles
raise, etc.) y que servirán para mostrar las estadísticas en las ventanas del PT. Esta tabla es similar a la anterior pero orientada a torneos (por eso algunas columnas diferentes como la de los
Define los datos generales de los torneos. Cada fila identifica un solo torneo importado en PT. Contiene los campos siguientes:
: identificador del torneo en la base de datos de PT.: identificador de la sala en la que se juega el torneo.
tourney_number: número de identificación del torneo en la sala.: fecha y hora de inicio del torneo.
: identificador de la calidad de la jugada de la mano ganadora.all in en la mano.
: cartas del jugador en formato texto.: ranking de la primera carta de m
: ranking de la segunda carta de mano en relació
suited, 0 si no. : 1 si están conectadas, 0 si no.
: 1 si es una pareja de mano, 0 si no.: 1 si el jugador ganó la mano, 0 si no.
: identificador de la sesión en la que se circunscribe la mano.: número de posiciones de diferencia con el
: número de jugadores en la mano.big blind, 0 si no.
small blind, 0 si no.: 1 si llegó con la mano hasta el final, 0 si no.
, 0 si no. l: 1 si intentó un robo: 1 si subió el primero antes del
: identificador real del jugador (no su alias).con el que el jugador comenzó la mano.
: cantidad de fichas pagadas en la mano en concepto el jugador está fuera de las posiciones que pagan ciegas).ante_amt: cantidad de fichas pagadas en concepto de
(valores cierto o falso, 0 ó 1) que definen cada gador ha podido realizar en cada una de las calles
, etc.) y que servirán para mostrar las estadísticas en las ventanas del PT. Esta tabla es similar a la anterior pero orientada a torneos (por eso
omo la de los antes).
Define los datos generales de los torneos. Cada fila identifica un solo torneo importado en PT. Contiene los campos siguientes:
: identificador del torneo en la base de datos de PT.de la sala en la que se juega el torneo.
: número de identificación del torneo en la sala.: fecha y hora de inicio del torneo.
: identificador de la calidad de la jugada de la mano ganadora.en la mano.
: cartas del jugador en formato texto. : ranking de la primera carta de mano en relació
: ranking de la segunda carta de mano en relació
: 1 si están conectadas, 0 si no. : 1 si es una pareja de mano, 0 si no.
: 1 si el jugador ganó la mano, 0 si no. : identificador de la sesión en la que se circunscribe la mano.
: número de posiciones de diferencia con el de jugadores en la mano.
, 0 si no.
: 1 si llegó con la mano hasta el final, 0 si no.
l: 1 si intentó un robo, 0 si no. : 1 si subió el primero antes del
: identificador real del jugador (no su alias).con el que el jugador comenzó la mano.
: cantidad de fichas pagadas en la mano en concepto el jugador está fuera de las posiciones que pagan ciegas).ante_amt: cantidad de fichas pagadas en concepto de ante
(valores cierto o falso, 0 ó 1) que definen cada gador ha podido realizar en cada una de las calles
, etc.) y que servirán para mostrar las estadísticas en las ventanas del PT. Esta tabla es similar a la anterior pero orientada a torneos (por eso
).
Define los datos generales de los torneos. Cada fila identifica un solo torneo importado
: identificador del torneo en la base de datos de PT.de la sala en la que se juega el torneo.
: número de identificación del torneo en la sala.: fecha y hora de inicio del torneo.
: identificador de la calidad de la jugada de la mano ganadora.
ano en relación a su fuerza
: ranking de la segunda carta de mano en relació
: identificador de la sesión en la que se circunscribe la mano.: número de posiciones de diferencia con el
de jugadores en la mano.
: 1 si llegó con la mano hasta el final, 0 si no.
: 1 si subió el primero antes del flop, 0 si no.: identificador real del jugador (no su alias).con el que el jugador comenzó la mano.
: cantidad de fichas pagadas en la mano en concepto el jugador está fuera de las posiciones que pagan ciegas).
ante.
(valores cierto o falso, 0 ó 1) que definen cada gador ha podido realizar en cada una de las calles
, etc.) y que servirán para mostrar las estadísticas en las ventanas del PT. Esta tabla es similar a la anterior pero orientada a torneos (por eso
Define los datos generales de los torneos. Cada fila identifica un solo torneo importado
: identificador del torneo en la base de datos de PT.de la sala en la que se juega el torneo.
: número de identificación del torneo en la sala.: fecha y hora de inicio del torneo.
Page
: identificador de la calidad de la jugada de la mano ganadora.
n a su fuerza
: ranking de la segunda carta de mano en relación a su fuerza
: identificador de la sesión en la que se circunscribe la mano. : número de posiciones de diferencia con el button.
: 1 si llegó con la mano hasta el final, 0 si no.
, 0 si no. : identificador real del jugador (no su alias).
: cantidad de fichas pagadas en la mano en concepto de ciegas (0 si
(valores cierto o falso, 0 ó 1) que definen cada gador ha podido realizar en cada una de las calles
, etc.) y que servirán para mostrar las estadísticas en las ventanas del PT. Esta tabla es similar a la anterior pero orientada a torneos (por eso
Define los datos generales de los torneos. Cada fila identifica un solo torneo importado
: identificador del torneo en la base de datos de PT.
: número de identificación del torneo en la sala.
Page 17
: identificador de la calidad de la jugada de la mano ganadora.
n a su fuerza
n a su fuerza
de ciegas (0 si
(valores cierto o falso, 0 ó 1) que definen cada gador ha podido realizar en cada una de las calles
, etc.) y que servirán para mostrar las estadísticas en las ventanas del PT. Esta tabla es similar a la anterior pero orientada a torneos (por eso
Define los datos generales de los torneos. Cada fila identifica un solo torneo importado
Spainfull
•
•
•
•
•
•
•
•
•
•
♣ Tablas de resumen de datosGuardan los resultados de ganancias y otras estadísticas agrupados. ♠ Tabla Define los datos de una sesión de juelevantas). Contiene los campos siguientes:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Spainfull - Póquer yo lo valgo
tourney_end
buy_in
fee: dine tourney_type
torneos guardados en la base de datos y no tengo ni puta idea de cuáles son los valores).
table_type
summary_text
target_tourney_number
torneo en la sala al que se opta si se consigue una plaza. number_of_players
tourney_notes
summary_loaded
Tablas de resumen de datosGuardan los resultados de ganancias y otras estadísticas agrupados.
Tabla session. Define los datos de una sesión de juelevantas). Contiene los campos siguientes:
session_id
player_id
session_start
session_
table_name
seat_number
session_notes
game_level_id
amount_won
solo tiene valores positivos en este campo). total_hands
site_id
vol_saw_flop
pre_flop_raise
att_steal
chance_to_steal
sabes, triste es pedir...). won_hand
went_to_sd
won_at_sd
óquer yo lo valgo
tourney_end: fecha y hora de fin del torneo.buy_in: dinero que costó la entrada al torneo.
: dinero pagado como comisión a la sala de póquer.tourney_type: tipo de torneo (si no concreto más es porque no tengo apenas torneos guardados en la base de datos y no tengo ni puta idea de cuáles son los valores). table_type: tipo de mesa (ídem. a la anterior)summary_text: resumen en formato texto del identificador del torneo.target_tourney_number
torneo en la sala al que se opta si se consigue una plaza.number_of_players
tourney_notes: notas del torneo.summary_loaded
Tablas de resumen de datosGuardan los resultados de ganancias y otras estadísticas agrupados.
Define los datos de una sesión de juelevantas). Contiene los campos siguientes:
session_id: identificador de la sesión en la base de datos de PT.player_id: identificador del jugador.session_start: fecha y hora de inicio de la sesión.session_end: fecha y hora de fin de la sesión.table_name: nombre de la mesa.seat_number: posición dentro de la mesa.session_notes: notas escritas de la sesión.game_level_id: identificador del nivel en el que se juega.amount_won: cantidad ganada total (o perdisolo tiene valores positivos en este campo).total_hands: número total de manos jugadas.site_id: identificador de la sala.vol_saw_flop: este valor en el conjunto de la sesión.pre_flop_raise
att_steal: este valor en el conjunto de la sesión.chance_to_steal
sabes, triste es pedir...).won_hand: número de manos ganadas en la sesión.went_to_sd: este valor en el conjunto de la sesiówon_at_sd: este valor en el conjunto de la sesión.
óquer yo lo valgo
: fecha y hora de fin del torneo.: dinero que costó la entrada al torneo.ro pagado como comisión a la sala de póquer.
: tipo de torneo (si no concreto más es porque no tengo apenas torneos guardados en la base de datos y no tengo ni puta idea de cuáles son los
: tipo de mesa (ídem. a la anterior): resumen en formato texto del identificador del torneo.
target_tourney_number
torneo en la sala al que se opta si se consigue una plaza.number_of_players: número de jugadores del torneo.
: notas del torneo.summary_loaded: si se ha importado en el PT el resumen del torneo.
Tablas de resumen de datos: Guardan los resultados de ganancias y otras estadísticas agrupados.
Define los datos de una sesión de juego (desde que te sientas a una mesa hasta que te levantas). Contiene los campos siguientes:
: identificador de la sesión en la base de datos de PT.: identificador del jugador.
: fecha y hora de inicio de la sesión.: fecha y hora de fin de la sesión.
: nombre de la mesa.: posición dentro de la mesa.
: notas escritas de la sesión.: identificador del nivel en el que se juega.
: cantidad ganada total (o perdisolo tiene valores positivos en este campo).
: número total de manos jugadas.: identificador de la sala.
: este valor en el conjunto de la sesión.pre_flop_raise: este valor en el conjunto de la
: este valor en el conjunto de la sesión.chance_to_steal: oportunidades de robo en el conjunto de la sesión (ya sabes, triste es pedir...).
: número de manos ganadas en la sesión.: este valor en el conjunto de la sesió
: este valor en el conjunto de la sesión.
: fecha y hora de fin del torneo.: dinero que costó la entrada al torneo.ro pagado como comisión a la sala de póquer.
: tipo de torneo (si no concreto más es porque no tengo apenas torneos guardados en la base de datos y no tengo ni puta idea de cuáles son los
: tipo de mesa (ídem. a la anterior): resumen en formato texto del identificador del torneo.
target_tourney_number: si es un satélite, indica el identificador del torneo en la sala al que se opta si se consigue una plaza.
: número de jugadores del torneo.: notas del torneo. : si se ha importado en el PT el resumen del torneo.
Guardan los resultados de ganancias y otras estadísticas agrupados.
go (desde que te sientas a una mesa hasta que te levantas). Contiene los campos siguientes:
: identificador de la sesión en la base de datos de PT.: identificador del jugador.
: fecha y hora de inicio de la sesión.: fecha y hora de fin de la sesión.
: nombre de la mesa. : posición dentro de la mesa.
: notas escritas de la sesión.: identificador del nivel en el que se juega.
: cantidad ganada total (o perdisolo tiene valores positivos en este campo).
: número total de manos jugadas.: identificador de la sala.
: este valor en el conjunto de la sesión.: este valor en el conjunto de la
: este valor en el conjunto de la sesión.: oportunidades de robo en el conjunto de la sesión (ya
: número de manos ganadas en la sesión.: este valor en el conjunto de la sesió
: este valor en el conjunto de la sesión.
: fecha y hora de fin del torneo. : dinero que costó la entrada al torneo. ro pagado como comisión a la sala de póquer.
: tipo de torneo (si no concreto más es porque no tengo apenas torneos guardados en la base de datos y no tengo ni puta idea de cuáles son los
: tipo de mesa (ídem. a la anterior). : resumen en formato texto del identificador del torneo.
: si es un satélite, indica el identificador del torneo en la sala al que se opta si se consigue una plaza.
: número de jugadores del torneo.
: si se ha importado en el PT el resumen del torneo.
Guardan los resultados de ganancias y otras estadísticas agrupados.
go (desde que te sientas a una mesa hasta que te
: identificador de la sesión en la base de datos de PT.
: fecha y hora de inicio de la sesión.: fecha y hora de fin de la sesión.
: posición dentro de la mesa. : notas escritas de la sesión. : identificador del nivel en el que se juega.
: cantidad ganada total (o perdida, excepto para Caminante que solo tiene valores positivos en este campo).
: número total de manos jugadas.
: este valor en el conjunto de la sesión.: este valor en el conjunto de la sesión.
: este valor en el conjunto de la sesión. : oportunidades de robo en el conjunto de la sesión (ya
: número de manos ganadas en la sesión. : este valor en el conjunto de la sesión.
: este valor en el conjunto de la sesión.
ro pagado como comisión a la sala de póquer. : tipo de torneo (si no concreto más es porque no tengo apenas
torneos guardados en la base de datos y no tengo ni puta idea de cuáles son los
: resumen en formato texto del identificador del torneo.: si es un satélite, indica el identificador del
torneo en la sala al que se opta si se consigue una plaza. : número de jugadores del torneo.
: si se ha importado en el PT el resumen del torneo.
Guardan los resultados de ganancias y otras estadísticas agrupados.
go (desde que te sientas a una mesa hasta que te
: identificador de la sesión en la base de datos de PT.
: fecha y hora de inicio de la sesión.
: identificador del nivel en el que se juega. da, excepto para Caminante que
: este valor en el conjunto de la sesión. sesión.
: oportunidades de robo en el conjunto de la sesión (ya
n.
Page
: tipo de torneo (si no concreto más es porque no tengo apenas torneos guardados en la base de datos y no tengo ni puta idea de cuáles son los
: resumen en formato texto del identificador del torneo. : si es un satélite, indica el identificador del
: si se ha importado en el PT el resumen del torneo.
go (desde que te sientas a una mesa hasta que te
: identificador de la sesión en la base de datos de PT.
da, excepto para Caminante que
: oportunidades de robo en el conjunto de la sesión (ya
Page 18
: tipo de torneo (si no concreto más es porque no tengo apenas torneos guardados en la base de datos y no tengo ni puta idea de cuáles son los
go (desde que te sientas a una mesa hasta que te
da, excepto para Caminante que
: oportunidades de robo en el conjunto de la sesión (ya
Spainfull
•
•
•
•
♠ Tabla Define datos de los torneos desde el punto de vista deesta tabla tantas filas como jugadores hayan participado (siempre que se hayan importado los datos a PT). Contiene los campos siguientes:
•
•
•
•
•
•
•
•
•
•
•
•
♠ Tabla Define los datos de ganancias entre los jugadores de que le ha
•
•
•
•
•
•
•
Spainfull - Póquer yo lo valgo
real_player_id
y no es la sala primera en la que PT definió al jugador). tot_players
los totales en cada mano, sin importar que sea el mismo jugador; es decir, si juegas una sesión maratoniana de 2 manos contra los mismos 9 tíos, este campo valdrá 20).
tot_saw_flop
(mismo comentario que en el campo anterior). tot_pot
todos los botes generados sin importar quién los ganara).
Tabla tourney_summary
Define datos de los torneos desde el punto de vista deesta tabla tantas filas como jugadores hayan participado (siempre que se hayan importado los datos a PT). Contiene los campos siguientes:
tourney_id
place_of_finish
player_id
amt_won
real_player_id
sat_seat_won
ganado este jugador. actual_buy_in
actual_fee
total_rebuys
rebuy_amt
total_addons
addon_amt
Tabla player_winnings
Define los datos de ganancias entre los jugadores de que le ha ganado un jugador a otro durante una sesión. Contiene los campos siguientes:
date_played
game_level_id
site_id
player_id
opponent_id
session_id
opponent_id
manos del jugador won_from
óquer yo lo valgo
real_player_id
y no es la sala primera en la que PT definió al jugador).tot_players: número total de jugadores en el conjunto de la sesiónlos totales en cada mano, sin importar que sea el mismo jugador; es decir, si juegas una sesión maratoniana de 2 manos contra los mismos 9 tíos, este campo valdrá 20). tot_saw_flop: número total de jugadores que han visto el
comentario que en el campo anterior).tot_pot: cantidad total de dinero en todos los botes de la sesión (la suma de todos los botes generados sin importar quién los ganara).
tourney_summary. Define datos de los torneos desde el punto de vista deesta tabla tantas filas como jugadores hayan participado (siempre que se hayan importado los datos a PT). Contiene los campos siguientes:
tourney_id: identificador del torneo en la base de datos de PT.place_of_finish
player_id: identificador del jugador.amt_won: cantidad ganada por el jugador.real_player_id
sat_seat_won: el equivalente a dinero que cuesta la entrada al satéganado este jugador.actual_buy_in: dinero pagado total como entrada por este jugador.actual_fee: dinero pagado total como comisión a la sala de póquer.total_rebuys: número total de recompras realizadas en el torneo.rebuy_amt: cantidad que ctotal_addons: número total de addon_amt: cantidad que costaba cada
player_winnings. Define los datos de ganancias entre los jugadores de
ganado un jugador a otro durante una sesión. Contiene los campos siguientes:
date_played: día en el que se contabilizan los datos de la fila.game_level_id: identificador de la cantidad de las ciegas.site_id: identificador de la sala.player_id: identificopponent_id. session_id: identificador de la sesión.opponent_id: identificador del jugador que ha palmado pasta en la sesión a manos del jugador player_idwon_from: cantidad ganada por el jugador
óquer yo lo valgo
real_player_id: identificador del jugador (distinto del anterior si usa alias y no es la sala primera en la que PT definió al jugador).
: número total de jugadores en el conjunto de la sesiónlos totales en cada mano, sin importar que sea el mismo jugador; es decir, si juegas una sesión maratoniana de 2 manos contra los mismos 9 tíos, este campo
: número total de jugadores que han visto el comentario que en el campo anterior).
: cantidad total de dinero en todos los botes de la sesión (la suma de todos los botes generados sin importar quién los ganara).
Define datos de los torneos desde el punto de vista deesta tabla tantas filas como jugadores hayan participado (siempre que se hayan importado los datos a PT). Contiene los campos siguientes:
: identificador del torneo en la base de datos de PT.place_of_finish: lugar en el que acabó el torneo el jugador.
: identificador del jugador.: cantidad ganada por el jugador.
real_player_id: identificador del jugador (por si se utilizan alias).: el equivalente a dinero que cuesta la entrada al saté
ganado este jugador. : dinero pagado total como entrada por este jugador.
: dinero pagado total como comisión a la sala de póquer.: número total de recompras realizadas en el torneo.
: cantidad que costaba cada recompra.: número total de
: cantidad que costaba cada
Define los datos de ganancias entre los jugadores de ganado un jugador a otro durante una sesión. Contiene los campos siguientes:
: día en el que se contabilizan los datos de la fila.: identificador de la cantidad de las ciegas.
: identificador de la sala.: identificador del jugador que ha ganado dinero en la sesión a
: identificador de la sesión.: identificador del jugador que ha palmado pasta en la sesión a
player_id. : cantidad ganada por el jugador
: identificador del jugador (distinto del anterior si usa alias y no es la sala primera en la que PT definió al jugador).
: número total de jugadores en el conjunto de la sesiónlos totales en cada mano, sin importar que sea el mismo jugador; es decir, si juegas una sesión maratoniana de 2 manos contra los mismos 9 tíos, este campo
: número total de jugadores que han visto el comentario que en el campo anterior).
: cantidad total de dinero en todos los botes de la sesión (la suma de todos los botes generados sin importar quién los ganara).
Define datos de los torneos desde el punto de vista deesta tabla tantas filas como jugadores hayan participado (siempre que se hayan importado los datos a PT). Contiene los campos siguientes:
: identificador del torneo en la base de datos de PT.r en el que acabó el torneo el jugador.
: identificador del jugador. : cantidad ganada por el jugador.
: identificador del jugador (por si se utilizan alias).: el equivalente a dinero que cuesta la entrada al saté
: dinero pagado total como entrada por este jugador.: dinero pagado total como comisión a la sala de póquer.
: número total de recompras realizadas en el torneo.ostaba cada recompra.
: número total de addons : cantidad que costaba cada addon.
Define los datos de ganancias entre los jugadores de ganado un jugador a otro durante una sesión. Contiene los campos siguientes:
: día en el que se contabilizan los datos de la fila.: identificador de la cantidad de las ciegas.
: identificador de la sala. ador del jugador que ha ganado dinero en la sesión a
: identificador de la sesión. : identificador del jugador que ha palmado pasta en la sesión a
: cantidad ganada por el jugador
: identificador del jugador (distinto del anterior si usa alias y no es la sala primera en la que PT definió al jugador).
: número total de jugadores en el conjunto de la sesiónlos totales en cada mano, sin importar que sea el mismo jugador; es decir, si juegas una sesión maratoniana de 2 manos contra los mismos 9 tíos, este campo
: número total de jugadores que han visto el comentario que en el campo anterior).
: cantidad total de dinero en todos los botes de la sesión (la suma de todos los botes generados sin importar quién los ganara).
Define datos de los torneos desde el punto de vista de un jugador. Un torneo tendrá en esta tabla tantas filas como jugadores hayan participado (siempre que se hayan importado los datos a PT). Contiene los campos siguientes:
: identificador del torneo en la base de datos de PT.r en el que acabó el torneo el jugador.
: cantidad ganada por el jugador. : identificador del jugador (por si se utilizan alias).
: el equivalente a dinero que cuesta la entrada al saté
: dinero pagado total como entrada por este jugador.: dinero pagado total como comisión a la sala de póquer.
: número total de recompras realizadas en el torneo.ostaba cada recompra.
addons realizados en el torneo.addon.
Define los datos de ganancias entre los jugadores de cash. Cada fila identifica el dinero ganado un jugador a otro durante una sesión. Contiene los campos siguientes:
: día en el que se contabilizan los datos de la fila.: identificador de la cantidad de las ciegas.
ador del jugador que ha ganado dinero en la sesión a
: identificador del jugador que ha palmado pasta en la sesión a
: cantidad ganada por el jugador player_id
: identificador del jugador (distinto del anterior si usa alias y no es la sala primera en la que PT definió al jugador).
: número total de jugadores en el conjunto de la sesiónlos totales en cada mano, sin importar que sea el mismo jugador; es decir, si juegas una sesión maratoniana de 2 manos contra los mismos 9 tíos, este campo
: número total de jugadores que han visto el flop
: cantidad total de dinero en todos los botes de la sesión (la suma de todos los botes generados sin importar quién los ganara).
un jugador. Un torneo tendrá en esta tabla tantas filas como jugadores hayan participado (siempre que se hayan
: identificador del torneo en la base de datos de PT.r en el que acabó el torneo el jugador.
: identificador del jugador (por si se utilizan alias).: el equivalente a dinero que cuesta la entrada al saté
: dinero pagado total como entrada por este jugador.: dinero pagado total como comisión a la sala de póquer.
: número total de recompras realizadas en el torneo.
realizados en el torneo.
. Cada fila identifica el dinero ganado un jugador a otro durante una sesión. Contiene los campos siguientes:
: día en el que se contabilizan los datos de la fila.: identificador de la cantidad de las ciegas.
ador del jugador que ha ganado dinero en la sesión a
: identificador del jugador que ha palmado pasta en la sesión a
r_id a opponent_id
Page
: identificador del jugador (distinto del anterior si usa alias
: número total de jugadores en el conjunto de la sesión (suma los totales en cada mano, sin importar que sea el mismo jugador; es decir, si juegas una sesión maratoniana de 2 manos contra los mismos 9 tíos, este campo
flop en la sesión
: cantidad total de dinero en todos los botes de la sesión (la suma de
un jugador. Un torneo tendrá en esta tabla tantas filas como jugadores hayan participado (siempre que se hayan
: identificador del torneo en la base de datos de PT. r en el que acabó el torneo el jugador.
: identificador del jugador (por si se utilizan alias). : el equivalente a dinero que cuesta la entrada al satélite que ha
: dinero pagado total como entrada por este jugador. : dinero pagado total como comisión a la sala de póquer.
: número total de recompras realizadas en el torneo.
realizados en el torneo.
. Cada fila identifica el dinero ganado un jugador a otro durante una sesión. Contiene los campos siguientes:
: día en el que se contabilizan los datos de la fila.
ador del jugador que ha ganado dinero en la sesión a
: identificador del jugador que ha palmado pasta en la sesión a
opponent_id.
Page 19
: identificador del jugador (distinto del anterior si usa alias
(suma los totales en cada mano, sin importar que sea el mismo jugador; es decir, si juegas una sesión maratoniana de 2 manos contra los mismos 9 tíos, este campo
en la sesión
: cantidad total de dinero en todos los botes de la sesión (la suma de
un jugador. Un torneo tendrá en
lite que ha
. Cada fila identifica el dinero ganado un jugador a otro durante una sesión. Contiene los campos siguientes:
ador del jugador que ha ganado dinero en la sesión a
: identificador del jugador que ha palmado pasta en la sesión a
Spainfull
•
•
•
Esta tabla sirve como basejugadores que tantas veces hemos tenido que volver a mirar varias veces por parecer increíble que ese jugador, con lo malo que es, nos haya ganado tanto dinero. ♣ Tablas de configuración:Almacenan los datos de configuración del PT. En este apartado se encuentran las siguientes tablas (no merece la pena extenderse en ellas):
•
•
•
•
•
Con esto concluyo la revisión pormenorizada de las tablas de PT. Espero que algunas dudas y facilite la creación de consultas que abordaré en la siguiente entrada.
Spainfull - Póquer yo lo valgo
times_beat
real_player_id
real_opp_id
Esta tabla sirve como basejugadores que tantas veces hemos tenido que volver a mirar varias veces por parecer increíble que ese jugador, con lo malo que es, nos haya ganado tanto dinero.
Tablas de configuración:Almacenan los datos de configuración del PT. En este apartado se encuentran las siguientes tablas (no merece la pena extenderse en ellas):
dst: rangos de fechas que utilizará para cálculos internos del programa. datawindow_prefs
exrates
cálculos. error_msgs
version_info:
Con esto concluyo la revisión pormenorizada de las tablas de PT. Espero que algunas dudas y facilite la creación de consultas que abordaré en la siguiente entrada.
óquer yo lo valgo
times_beat: veces que real_player_id
real_opp_id: identificador del jugador perdedor (por si usa alias).
Esta tabla sirve como base para mostrar la información de ganancias y pérdidas entre jugadores que tantas veces hemos tenido que volver a mirar varias veces por parecer increíble que ese jugador, con lo malo que es, nos haya ganado tanto dinero.
Tablas de configuración:Almacenan los datos de configuración del PT. En este apartado se encuentran las siguientes tablas (no merece la pena extenderse en ellas):
: rangos de fechas que utilizará para cálculos internos del programa.datawindow_prefs
exrates: tipo de cambio entre dólares, euros y libras que va a utilizar en los cálculos. error_msgs: mensajes de error del programa.version_info: número de versión del programa.
Con esto concluyo la revisión pormenorizada de las tablas de PT. Espero que algunas dudas y facilite la creación de consultas que abordaré en la siguiente entrada.
óquer yo lo valgo
: veces que player_idreal_player_id: identificador del jugador ganador (por si usa alias).
: identificador del jugador perdedor (por si usa alias).
para mostrar la información de ganancias y pérdidas entre jugadores que tantas veces hemos tenido que volver a mirar varias veces por parecer increíble que ese jugador, con lo malo que es, nos haya ganado tanto dinero.
Tablas de configuración: Almacenan los datos de configuración del PT. En este apartado se encuentran las siguientes tablas (no merece la pena extenderse en ellas):
: rangos de fechas que utilizará para cálculos internos del programa.datawindow_prefs: preferencias del programa.
: tipo de cambio entre dólares, euros y libras que va a utilizar en los
: mensajes de error del programa.número de versión del programa.
Con esto concluyo la revisión pormenorizada de las tablas de PT. Espero que algunas dudas y facilite la creación de consultas que abordaré en la siguiente entrada.
player_id ha ganado a : identificador del jugador ganador (por si usa alias).
: identificador del jugador perdedor (por si usa alias).
para mostrar la información de ganancias y pérdidas entre jugadores que tantas veces hemos tenido que volver a mirar varias veces por parecer increíble que ese jugador, con lo malo que es, nos haya ganado tanto dinero.
Almacenan los datos de configuración del PT. En este apartado se encuentran las siguientes tablas (no merece la pena extenderse en ellas):
: rangos de fechas que utilizará para cálculos internos del programa.: preferencias del programa.
: tipo de cambio entre dólares, euros y libras que va a utilizar en los
: mensajes de error del programa.número de versión del programa.
Con esto concluyo la revisión pormenorizada de las tablas de PT. Espero que algunas dudas y facilite la creación de consultas que abordaré en la siguiente entrada.
ha ganado a opponent_id: identificador del jugador ganador (por si usa alias).
: identificador del jugador perdedor (por si usa alias).
para mostrar la información de ganancias y pérdidas entre jugadores que tantas veces hemos tenido que volver a mirar varias veces por parecer increíble que ese jugador, con lo malo que es, nos haya ganado tanto dinero.
Almacenan los datos de configuración del PT. En este apartado se encuentran las siguientes tablas (no merece la pena extenderse en ellas):
: rangos de fechas que utilizará para cálculos internos del programa.: preferencias del programa.
: tipo de cambio entre dólares, euros y libras que va a utilizar en los
: mensajes de error del programa. número de versión del programa.
Con esto concluyo la revisión pormenorizada de las tablas de PT. Espero que algunas dudas y facilite la creación de consultas que abordaré en la siguiente entrada.
opponent_id en la sesión.: identificador del jugador ganador (por si usa alias).
: identificador del jugador perdedor (por si usa alias).
para mostrar la información de ganancias y pérdidas entre jugadores que tantas veces hemos tenido que volver a mirar varias veces por parecer increíble que ese jugador, con lo malo que es, nos haya ganado tanto dinero.
Almacenan los datos de configuración del PT. En este apartado se encuentran las
: rangos de fechas que utilizará para cálculos internos del programa.
: tipo de cambio entre dólares, euros y libras que va a utilizar en los
Con esto concluyo la revisión pormenorizada de las tablas de PT. Espero que algunas dudas y facilite la creación de consultas que abordaré en la siguiente entrada.
Page
en la sesión. : identificador del jugador ganador (por si usa alias).
: identificador del jugador perdedor (por si usa alias).
para mostrar la información de ganancias y pérdidas entre jugadores que tantas veces hemos tenido que volver a mirar varias veces por parecer increíble que ese jugador, con lo malo que es, nos haya ganado tanto dinero.
Almacenan los datos de configuración del PT. En este apartado se encuentran las
: rangos de fechas que utilizará para cálculos internos del programa.
: tipo de cambio entre dólares, euros y libras que va a utilizar en los
Con esto concluyo la revisión pormenorizada de las tablas de PT. Espero que aclare algunas dudas y facilite la creación de consultas que abordaré en la siguiente entrada.
Page 20
para mostrar la información de ganancias y pérdidas entre jugadores que tantas veces hemos tenido que volver a mirar varias veces por parecer
: tipo de cambio entre dólares, euros y libras que va a utilizar en los
aclare algunas dudas y facilite la creación de consultas que abordaré en la siguiente entrada.
Spainfull - Póquer yo lo valgo Page 21
Parte III. Tutorial para crear consultas SQL
En este artículo voy a profundizar en el uso de consultas a la base de datos de Poker Tracker, explicando detalladamente la consulta usada en la primera parte y creando nuevas para obtener más información no disponible en el programa que pueda resultar interesante. El objetivo es que cualquiera pueda crearse su propia consulta a partir de unas sencillas instrucciones. En el primero de la serie, explicaba simplemente cómo hacer una consulta SQL en Access; y en el segundo, la estructura de la base de datos de PT para saber la forma en la que almacena la información y cómo se divide ésta en las diferentes tablas y campos. En esta tercera y última parte, se comprenderán muchas cosas que en los anteriores podían resultar confusas. Lo intentaré hacer despacito, como le gusta a las mujeres. Si no has estado despistado, sabrás que el lenguaje con el que se hacen las consultas se llama SQL. No es más que una serie de instrucciones que sabe interpretar el motor de la base de datos y que se emplea para manipular la información contenida en ella. En este breve tutorial voy a centrarme exclusivamente en las órdenes de consulta, es decir, en la recuperación de datos. Hay una serie de palabras que conforman el lenguaje SQL y que equivalen a instrucciones sobre la base de datos. Para hacer una consulta, se utiliza la palabra SELECT (del inglés, seleccionar). La estructura de una consulta SQL es la siguiente: SELECT (lo que se quiera seleccionar de la BD) FROM (la tabla o tablas donde se encuentran los datos que se quieren seleccionar) WHERE (las condiciones que tienen que cumplir los datos que se quieren seleccionar) La parte del SELECT es la de selección. A continuación se debe indicar lo que se desea recuperar de la base de datos. Básicamente se ponen los campos de la tabla (cuyo nombre pondremos a continuación en la parte FROM) que se quieren recuperar separados por comas (supongo que te acordarás que las tablas se dividen en campos que contienen la información del tipo con el que se haya creado ese campo); otra opción es poner "*" que significa que queremos recuperar todos los campos. La parte del FROM es la de origen. Se escribe el nombre de la tabla donde se encuentran esos campos que queremos recuperar. La parte del WHERE es la de condición. Es opcional (no es necesario que aparezca) y funciona mediante expresiones aritméticas o booleanas que condicionan la selección. Con un ejemplo sencillo se verá todo más claro. Poco a poco iré explicando detalles más complicados. Voy a obtener todos los campos de la tabla game_level: SELECT * FROM game_level
Spainfull - Póquer yo lo valgo Page 22
Así de fácil. Esta consulta mostrará todos los campos de la tabla (la explicación del significado de las tablas y los campos que las componen están en el segundo artículo de la serie). Si solo se quiere que muestre los campos de identificador de nivel y su descripción, bastaría con poner:
SELECT game_level_id, game_level_desc
FROM game_level
Como se ve, solo aparecen los campos seleccionados en la parte de selección. Cabe destacar, que si no se usa la parte de condición, la selección se hace sobre todas las filas de la tabla. El número de columnas de la tabla resultado es el número de elementos que tenemos en la selección separados por comas; en este caso, dos. El título de la columna de la tabla resultado es el del nombre del campo. En la parte de selección se pueden utilizar una serie de funciones que hacen operaciones sobre los campos, se escribe la palabra que representa a la función y entre paréntesis el campo al que se le aplica. Las funciones son:
• Max(campo): obtiene el valor máximo del campo.
Spainfull - Póquer yo lo valgo Page 23
• Min(campo): obtiene el valor mínimo del campo. • Sum(campo): suma los registros del campo elegido. • Avg(campo): obtiene la media de las filas del campo elegido. • Count(*): muestra el total de filas seleccionadas.
Si por ejemplo se quiere obtener el máximo bote ganado en las manos almacenadas de cash habría que usar la consulta (el bote máximo sin importar quién lo ha ganado). Te recuerdo que el resumen de las manos se guardan en la tabla game: SELECT MAX(pot) FROM game
Si te fijas, el nombre de la columna no es descriptivo. Esto se debe a que como no es un campo, sino una operación sobre un campo, no tiene un nombre fijo asignado. Para que aparezca un título en la columna de la tabla resultado, y lo que es más importante, para que se pueda utilizar este cálculo temporal posteriormente dentro de la selección en consultas más elaboradas, es preciso usar un alias que identificará el resultado temporal. Para ello basta con escribir la palabra AS y el nombre que se le quiere asignar (también se puede utilizar con los campos para que aparezca con otro nombre la columna resultado y para volver a usar esos campos): SELECT MAX(pot) AS bote_máximo FROM game
Si ahora se quiere obtener el bote máximo ganado por cada jugador, se puede utilizar una nueva instrucción que agrupa las filas que tienen el mismo valor en un campo. Esa instrucción se representa en SQL mediante las palabras GROUP
BY. Para hacer esta consulta, habrá que agrupar las filas que tengan el mismo
valor en el campo player_id (que es el que identifica al jugador). Para que aparezca también el identificador del jugador, se añade ese campo en la selección: SELECT player_id, MAX(pot) AS bote_máximo_por_jugador FROM game GROUP BY player_id
Spainfull - Póquer yo lo valgo Page 24
Como se puede apreciar, aparece un identificador del jugador que es un número. Esto es debido a que es así cómo se guarda en el resto de tablas que no es la de jugadores (players) para diferenciarlos. Si se quieren obtener más datos del jugador, hay que mirar también en la tabla players, pero eso lo dejo para más adelante. Ahora voy a tratar la parte condicional de las consultas. Hasta aquí, las consultas estaban realizadas sobre todas las filas de la tabla. Si se quiere seleccionar sobre solo una fracción de ellas, es preciso usar la parte del WHERE. A continuación es preciso establecer las condiciones que debe cumplir la búsqueda. Para ello se usan los campos o los alias (entre corchetes) de la parte de la selección y las relaciones entre ellos. Estas relaciones pueden ser de comparación: mayor que, menor que, mayor o igual que, menor o igual que, distinto, igual (>, <, >=, <=, <>, =); lógicas: y, o, no (And, Or, Not) y otros
operadores como intervalo (Between And), filas diferentes (Distinct),
similares (Like), conjunto (In, Not In), si el campo es vacío (Is Null), etc. Para entenderlo mejor, voy a hacer la consulta del máximo bote de cash menor de 50:
SELECT MAX(pot) AS bote_máximo FROM game WHERE pot '<' 50
Si se quieren ver los datos de un jugador como todos los identificadores de jugador, los alias y las salas que se corresponden con un nombre de usuario (en mi caso suelo usar "spainfull"), bastaría hacer la siguiente selección (estos datos se encuentran en la tabla players, que almacena en cada fila los datos de un jugador en una sala; el identificador de sala es un valor que se corresponde con una sala que se puede ver en la tabla poker_sites):
Spainfull - Póquer yo lo valgo Page 25
SELECT player_id AS jugador_id, main_site_id AS sala, alias_id AS alias FROM players WHERE screen_name = "spainfull"
Si se quieren ver todos los identificadores de un jugador, la sala a la que corresponde ese identificador, el nombre de usuario en esa sala, conociendo el número empleado como alias_id (en mi caso 1) se pueden obtener con la siguiente consulta:
SELECT player_id AS jugador_id, main_site_id AS sala, screen_name AS nombre FROM players WHERE alias_id = 1
Como en la fila del identificador original que se emplea como alias_id, el
campo alias_id está vacío, no aparece en los resultados. Para que así suceda, es preciso añadir una condición además de la que se ha puesto en el ejemplo anterior, que el alias sea 1 o que el identificador del jugador sea 1:
SELECT player_id AS jugador_id, main_site_id AS sala, screen_name AS nombre FROM players WHERE alias_id = 1 OR player_id = 1
Spainfull - Póquer yo lo valgo Page 26
La siguiente consulta será el bote medio conseguido por mí en cualquier nivel de juego almacenado en la tabla:
SELECT SUM(pot)/COUNT(game_id) AS bote_medio FROM game WHERE player_id = 1
Se suman todos los botes y se divide por el número de filas en las que he ganado (en el campo player_id de la tabla game se almacena el ganador de la mano). Si además se desea saber el bote medio obtenido en un nivel concreto (los niveles se guardan en la tabla game_level), por ejemplo en $1/$2 que
corresponde con identificador 5 (game_level_id establece el nivel de la mano en la tabla game): SELECT SUM(pot)/COUNT(game_id) AS bote_medio FROM game WHERE player_id = 1 AND game_level_id = 5
Si además se quiere ver el total y el número de botes ganados para que quede más informativa y clara la consulta: SELECT SUM(pot) AS bote_total, COUNT(game_id) AS botes_ganados, [bote_total]/[botes_ganados] AS bote_medio FROM game
Spainfull - Póquer yo lo valgo Page 27
WHERE player_id = 1 AND game_level_id = 5
Como se puede comprobar, sabiendo qué campos elegir y cómo hacer condiciones, con todo lo visto hasta ahora se pueden hacer consultas sencillas. Para obtener datos que se encuentran en más de una tabla que están unidos por un identificador (como por ejemplo player_id en varias tablas) hay que utilizar lo que se conoce como unión. Por ejemplo, si en la consulta realizada anteriormente del bote máximo de cada jugador se quieren obtener más datos por jugador, hay que mirar en la tabla players. Si por ejemplo se quiere mostrar además el nombre del jugador al que pertenece ese identificador, habrá que obtenerlo de esa tabla. Para conseguirlo, en la parte de selección se señala de qué tabla proviene cada campo anteponiendo al nombre del campo el nombre de la tabla a la que pertenece y un punto. En la parte de origen, se ponen los nombres de las tablas separados por la instrucción INNER JOIN y se especifica qué campos son los que unen las tablas (los que significan lo mismo, son del mismo tipo aunque puedan tener distinto nombre) tras la palabra ON: SELECT game.player_id, players.screen_name, Max(game.pot) AS bote_máximo_por_jugador FROM game INNER JOIN players ON game.player_id = players.player_id GROUP BY game.player_id, players.screen_name
Esta consulta se podría poner de otra manera en la que se ve claro lo que hace el INNER JOIN:
Spainfull - Póquer yo lo valgo Page 28
SELECT game.player_id, players.screen_name, Max(game.pot) AS bote_máximo_por_jugador FROM game, players WHERE game.player_id = players.player_id GROUP BY game.player_id, players.screen_name
Por último, voy a diseccionar la consulta que mostré como ejemplo en el primer artículo, que calculaba las veces que mejoraba nuestra pareja a trío en el flop:
SELECT gp.hole_cards AS Par, count(*) AS Veces, SUM(
IIF(left(g.flop_1,1)=left(gp.hole_card_1,1),1,
IIF(left(g.flop_2,1)=left(gp.hole_card_1,1),1,
IIF(left(g.flop_3,1)=left(gp.hole_card_1,1),1,
0)))) AS [Trío en flop]
FROM game_players AS gp INNER JOIN game AS g ON gp.game_id = g.game_id
WHERE gp.player_id = (select pref_value from prefs where pref_key =
'RP')
AND gp.pair_hand = 1
AND gp.saw_flop_n = 1
GROUP BY gp.hole_cards, gp.card_order1
ORDER BY gp.card_order1 DESC
Antes de empezar a hacer una consulta se debe tener claro qué es lo que se quiere conseguir y dónde están esos datos. Lo que se pretende es ver cuándo nuestra pareja de mano ha mejorado a trío. Las cartas comunes de cada mano se guardan en la tabla game,
pero las cartas de cada jugador en cada mano se almacenan en la tabla game_players. Por lo tanto, está claro que habrá que usar estas dos tablas. El campo
que une estas dos tablas es el game_id, que identifica unívocamente cada mano. Así,
tenemos la parte de origen que queda de la siguiente manera: FROM game_players AS gp INNER JOIN game AS g ON gp.game_id = g.game_id Se emplea un alias para cada tabla para no tener que volver a escribir el nombre de las
Spainfull - Póquer yo lo valgo Page 29
tablas antes de cada campo y que quede demasiado largo. En la parte de selección se detallan las columnas que se quieren visualizar como resultado. En este caso, la pareja de mano que se tiene (en la tabla game_players el
campo hole_cards indica la mano que tiene el jugador), el número de veces que se
ha dado cada pareja cuando se ha visto el flop, y el número de veces que ha mejorado a trío. Si se hiciera la consulta sin la parte condicional, la selección se haría sobre todas las manos de la tabla game, pero lo que se quiere es que se trate de una mano nuestra, que sea una pareja de mano y que se haya visto el flop. Pero volviendo a la parte de selección, tenemos: SELECT gp.hole_cards AS Par, count(*) AS Veces, SUM( IIF(left(g.flop_1,1)=left(gp.hole_card_1,1),1, IIF(left(g.flop_2,1)=left(gp.hole_card_1,1),1, IIF(left(g.flop_3,1)=left(gp.hole_card_1,1),1, 0)))) AS [Trío en flop] Los dos primeros elementos están claros, la mano inicial (que serán parejas por las condiciones que se pondrán después) y el número de veces que nos han repartido esas parejas cuando hemos visto el flop (también significará esto por las condiciones de la parte WHERE que se añadirán). La tercera columna es más sencilla de lo que parece;
para que nuestra pareja se convierta en trío, precisa que una de las cartas del flop sea igual a cualquiera de las que tenemos en mano; eso es lo que indica la expresión que está dentro del SUM.
Las cartas que nos han repartido están en la tabla game_players en los campos
hole_card_1 y hole_card_2 y las del flop en la tabla game en los campos
flop_1, flop_2 y flop_3. Estos campos son alfanuméricos (letras y números) y
cada carta se representa por su valor (un número del 2 al 9 o una letra mayúscula si es un A, T, J, Q o K seguido de una letra minúscula que indica el palo); por tanto se debe obtener el valor de la carta sin importar el palo, es decir, el primer carácter de los campos a seleccionar. Para ello se cuenta con la instrucción de SQL left(campo, x)
que obtiene x caracteres empezando por la izquierda en un campo alfanumérico. En este caso nos interesa mirar si el valor de una de nuestras cartas de mano (como es una pareja no importa con cuál comparemos) es igual a cualquiera de las tres del flop. Con este objetivo se utiliza left(gp.hole_card_1, 1) para nuestra mano y se compara
con left(g.flop_x,1). IIF evalúa una condición y si se cumple se da el primer
valor, y si no el segundo: IIF(condición, valor_1, valor_2); en este caso, si coincide la
comparación que se hace entre nuestra carta de mano y la primera del flop, el valor es uno y se suma y se sale de la expresión (como vez que conseguimos trío, se suma porque se emplea SUM encerrando a la expresión completa), si no coincide se mira la
segunda del flop, si coincide se suma y se sale de la expresión, si no se mira la tercera y si coincide se suma y se sale de la expresión, y por fin, si no es que no se consiguió trío y el valor que se obtiene y se suma es 0. Puede parecer complicado, pero con un poco de
Spainfull - Póquer yo lo valgo Page 30
paciencia se entiende sin problemas. Ahora la parte de la condición: WHERE gp.player_id = (select pref_value from prefs where pref_key =
'RP') AND gp.pair_hand = 1 AND gp.saw_flop_n = 1 GROUP BY gp.hole_cards, gp.card_order1 ORDER BY gp.card_order1 DESC La primera condición es que sea nuestro jugador. Se podría poner el número que se ha obtenido en una de las consultas anteriores, pero en este caso se ha anidado otra consulta (se debe escribir entre paréntesis) que coge de la tabla de preferencias prefs
nuestro identificador de jugador, almacenado en el campo pref_value y que se
asocia al valor "RP" del campo pref_key. La siguiente condición es que sea una
pareja de mano, aspecto almacenado en la tabla game_players en el campo pair
(1 si es pareja de mano, 0 si no). La siguiente, que yo haya visto el flop, guardado en el campo saw_flop de la misma tabla (1 si se ve el flop, 0 si no). Por último, se agrupan
las cartas de mano que sean iguales y también por el valor de la mano. Para mostrarlas ordenadas por el valor de la mano se emplea la instrucción ORDER BY (y para
seleccionar que en orden inverso de valor la instrucción DESC -el valor de las cartas en
el campo card_orderx va del 2 para el 2 al 14 para el As-).
Con esto se acaba el tutorial de cómo realizar consultas SQL en la BD de PT. Espero que te haya servido de algo. Hay mucha información disponible sobre SQL en la red que cubre aspectos y funcionalidades que no he tratado y que pueden resultar interesantes. De todas maneras, si tienes alguna duda, ¡pregunta coño!
TODOS ESTOS ARTÍCULOS Y ALGUNO MÁS SE PUEDEN ENCONTRAR EN:
HTTP://SPAINFULL.BLOGSPOT.COM/