Desde la salida hasta el momento, veo que Yesca tiene una tabla de mensajes, así como el usuario y compartido tablas amigos. Parece que se trata de una aplicación de red social, y los datos pueden ser relevantes para la investigación. Así que, ¿cómo consigo ver el contenido de las tablas? Yo pude ver una tabla a la vez:
programa de línea de comandos SQLite
$ sqlite3-header Tinder.sqlite 'select * from límite zmessage 5;'
Z_PK | Z_ENT | Z_OPT | ZINBOUND | Zuser | ZCREATIONDATE | ZBODY
1 | 2 | 1 | 1 | 832 | 379798036.741 |! Hola
2 | 2 | 1 | 1 | 1156 | 379,797,384.794 | hey
3 | 2 | 1 | 1 | 832 | 379.798.729,794 | ¿Qué haces
4 |? 2 | 1 | 1 | 1318 | 379.804.817,728 | ¿Está en línea a menudo
5 |? 2 | 1 | 0 | 1318 | 379.806.963,685 |?! ¿No le gustaría saber
...
En el comando anterior, he utilizado el SQLite opción "-header" para mostrar los títulos de las columnas, y me limité la salida de cinco registros para tener una idea de los datos. Dejar caer el límite de sintaxis se traduciría en toda la tabla y todos los campos de registro que se imprime en la salida estándar (la pantalla).
¿Hay una manera que podríamos ver rápidamente algunos registros de cada mesa para ver lo que es de interés, en todo caso? ¡Por supuesto!
Programa de línea de comandos de SQLite
$ for i en $ (SQLite3 Tinder.sqlite tablas.); ver Tabla echo: $ i;
sqlite3 Tinder.sqlite-header "select * from $ i limito 5;" eco; hecho
...
Tabla: Zuser
Z_PK | Z_ENT | Z_OPT | ZCOMMONFRIENDCOUNT | ZCOMMONLIKECOUNT | ZGENDER | ZHASIMAGE |
ZHASUNVIEWEDMESSAGES | ZISACTIVE | ZISMATCH | ZISRECOMMENDED | />
ACTIVITYDATE | ZMATCHEDDATE | ZPINGTIME | ZBIO | ZFACEBOOKID | ZMATCHID | zname | ZUS
ERID | zImage
42 | 5 | 126 | 8 | 0 | 0 | 0 | | 0 | 1 | 1 | | 0 | | | 76.4215774536133 | 379,794,350.747 | 379794350,7
47 | 379,794,187.955 | I like pie |. 604832678 | 50f2fc2fbe8d00b3d4f58c36 | Gunter |
50d39d6024571b7803001639 |
90 | 5 | 1 | 0 | 0 | | 0 | | 0 | 0 | 0 | | 0 | | | 0.0 | | | | | # # # # # # # # # | | Gretta | |
91 | 5 | 1 | 0 | 0 | | 0 | | 0 | 0 | 0 | | 0 | | | 0.0 | | | | | # # # # # # # # # | | Hilde | |
92 | 5 | 1 | 0 | 0 | | 0 | | 0 | 0 | 0 | | 0 | | | 0.0 | | | | | # # # # # # # # # | | Agnes | |
93 | 5 | 1 | 0 | 0 | | 0 | | 0 | 0 | 0 | | 0 | | | 0.0 | | | | | # # # # # # # # # | | Johanna | | Tabla />
Z_PK | Z_ENT | Z_OPT | ZINBOUND | Zuser | ZCREATIONDATE | ZBODY
1 | 2 | 1 | 1 | 832 | 379.798.036,741 |! Hola
2 | 2 | 1 | 1 | 1156 | 379,797,384.794 | hey
3 | 2 | 1 | 1 | 832 | 379.798.729,794 | ¿Qué haces
4 |? 2 | 1 | 1 | 1318 | 379.804.817,728 | ¿Está en línea a menudo
5 |? 2 | 1 | 0 | 1318 | 379,806,963.685 | ¿No le gustaría saber />
Z_5SHAREDFRIENDS |
REFLEXIVO 42 | 90
42 | 91
42 | 92
42 | 93
42 | 94
En pocas palabras, la diferencia principal en el último comando de los ejecutados anteriormente es el uso de un class="monospaced"> bucle. El bucle for toma el ouput del class="monospaced"> de comandos,
La salida anterior demuestra lo relacional naturaleza de las bases de datos SQLite. Mirando la tabla ZMESSAGE, vemos el contenido del mensaje, pero el usuario es un número entero (campo Zuser). El entero parece correlacionar con la tabla Zuser (campo Z_PK). La sola observación de la tabla ZMESSAGE, vemos la conversación, pero no sabemos con quién se le ocurrió.
SQLite nos permite consultar las tablas en relación con hacer que sea más comprensible.
Programa de línea de comandos de SQLite
$ sqlite3 Tinder.sqlite 'select m.z_pk, zinbound, Zuser, zname,
zcreationdate, zbody de zmessage como m, Zuser como u, donde
m.zuser = u.z_pk límite de 5;'
Z_PK | ZINBOUND | Zuser | zname | ZCREATIONDATE | ZBODY
1 | 1 | 832 | Tobias | 379.798.036,741 |! Hola
2 | 1 | 1156 | Siegfried | 379.797.384,794 | hey
3 | 1 | 832 | Tobias | 379.798.729,794 |? Qué haces
4 | 1 | 1318 | Theoduff | 379,804,817.728 | ¿Está en línea a menudo
5 |? 0 | 1318 | Theoduff | 379.806.963,685 | ¿No te gustaría saber?
En este comando, que se especifica los campos que quería regresar a diferencia de todos los campos. Esto es necesario cuando se está relacionando tablas entre sí. Usted puede haber notado que en el predicado pregunté ambas tablas ZMESSAGE y Zuser. El "como" instrucciones crean alias para las tablas (zmessage = m, Zuser = u) para mantener el comando más conciso. En la instrucción de selección, pedí el campo zname, que se encuentra en la tabla Zuser donde Zuser de la mesa ZMESSAGE igualada Z_PK de la mesa Zuser. En la instrucción de selección, tuve que especificar el campo Z_PK ( m.z_pk ) de la tabla ZMESSAGE porque ambas tablas contienen ese campo.
Dos campos más no tienen mucho sentido en nuestro resultado: ZINBOUND y ZCREATIONDATE. ZINBOUND es una bandera, que, con un poco de contexto, me llevan a entender que 0 = 1 = enviados y recibidos. ZCREATIONDATE desprende de su valor como Mac Tiempo absoluto y sistema de archivos de marcas de tiempo compatible con esta evaluación. El caso class="monospaced"> expresión puede utilizarse para interpretar las banderas. Es el equivalente a un si / entonces en lenguajes de scripting. El datetime función convierte la época unix a una fecha legible. Debido a que los valores de la base de datos Yesca son Mac Tiempo absoluto, las marcas de tiempo tienen que primero ser convertido en unix época añadiendo 978307200 segundos.
SQLite programa de línea de comandos
$ sqlite3-header seleccione m.z_pk, zinbound caso Tinder.sqlite 'cuando 0
luego "enviado" al 1 entonces "recibido" end else "desconocido" como zinbound,
Zuser, zname, fecha y hora (zcreationdate + 978307200, "unixepoch", />
donde m.zuser = Límite u.z_pk 5; '
Z_PK | ZINBOUND | Zuser | ZCREATIONDATE | ZBODY
1 | recibidas | 832 | Tobias | 13/01/2013 11: 27:16 | Hola
2 | recibidas | 1156 | Siegfried | 01/13/2013 11:16:24 | oye
3 | recibidas | 832 | Tobias | 01/13/2013 11!!: 38:49 | ¿Qué haces
4 |? recibidas | 1318 | Theoduff | 01/13/2013 13:20:17 | ¿Está en línea a menudo
5 |? enviado | 1318 | Theoduff | 2013-01 -13 13:56:03 |?! ¿No le gustaría saber
Ahora tenemos datos significativos al relacionar dos tablas, interpretación de banderas (expresión caso), y la conversión de las marcas de tiempo (función de fecha y hora). Usted puede encontrar más información acerca de la expresión caso aquí, y la función de fecha y hora aquí.