{"id":7260,"date":"2025-10-20T16:01:42","date_gmt":"2025-10-20T14:01:42","guid":{"rendered":"https:\/\/javiercachon.com\/?p=7260"},"modified":"2025-10-20T16:01:46","modified_gmt":"2025-10-20T14:01:46","slug":"guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas","status":"publish","type":"post","link":"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/","title":{"rendered":"Gu\u00eda completa de SQLite en Debian 13: instalaci\u00f3n, gesti\u00f3n y herramientas gr\u00e1ficas."},"content":{"rendered":"\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/10\/SQLite-1024x576.jpg\" alt=\"\" class=\"wp-image-7261\" style=\"width:1192px;height:auto\" srcset=\"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/10\/SQLite-1024x576.jpg 1024w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/10\/SQLite-300x169.jpg 300w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/10\/SQLite-768x432.jpg 768w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/10\/SQLite-1536x864.jpg 1536w, https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/10\/SQLite.jpg 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n<!-- =========================\n     SQLite en Debian 13 \u2014 Parte 1\n     Autor: Javier Cach\u00f3n Garrido (javiercachon.com)\n     Compatible con Editor cl\u00e1sico y Gutenberg\n     Sintaxis: SyntaxHighlighter Evolved\n========================= -->\n\n<style>\n  .tabla-titulo {\n    background:#1e73be;\n    color:#fff;\n    padding:10px 14px;\n    font-weight:bold;\n    display:inline-block;\n    margin:24px 0 8px 0;\n    border-radius:6px;\n  }\n  table.tabla-azul {\n    width:100%;\n    border-collapse:collapse;\n    margin:10px 0 24px 0;\n  }\n  table.tabla-azul th, table.tabla-azul td {\n    border:1px solid #e5e7eb;\n    padding:10px 12px;\n    text-align:left;\n  }\n  table.tabla-azul th {\n    background:#f5f9ff;\n  }\n  .nota {\n    background:#f7fbff;\n    border-left:4px solid #1e73be;\n    padding:10px 14px;\n    margin:20px 0;\n    border-radius:6px;\n  }\n<\/style>\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Tabla de contenidos del articulo.<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Alternar tabla de contenidos\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#SQLite_en_Debian_13_%E2%80%94_Guia_Completa\" >SQLite en Debian 13 \u2014 Gu\u00eda Completa<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#Presentacion_y_objetivos\" >Presentaci\u00f3n y objetivos<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#01_%C2%BFQue_aprenderas\" >0.1 \u00bfQu\u00e9 aprender\u00e1s?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#02_Requisitos_previos\" >0.2 Requisitos previos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#03_Publico_objetivo_y_casos_de_uso\" >0.3 P\u00fablico objetivo y casos de uso<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#1_Introduccion_a_SQLite\" >1. Introducci\u00f3n a SQLite<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#11_%C2%BFQue_es_SQLite\" >1.1 \u00bfQu\u00e9 es SQLite?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#12_Ventajas_y_limitaciones\" >1.2 Ventajas y limitaciones<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#13_Casos_de_uso_reales\" >1.3 Casos de uso reales<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#14_Arquitectura\" >1.4 Arquitectura<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#2_Caracteristicas_clave_de_SQLite\" >2. Caracter\u00edsticas clave de SQLite<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#21_Cumplimiento_SQL\" >2.1 Cumplimiento SQL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#22_Transacciones_ACID\" >2.2 Transacciones ACID<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#23_Tipado_por_afinidad\" >2.3 Tipado por afinidad<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#24_Vistas_indices_y_triggers\" >2.4 Vistas, \u00edndices y triggers<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#25_Soporte_Unicode_y_portabilidad\" >2.5 Soporte Unicode y portabilidad<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#3_Instalacion_en_Debian_13\" >3. Instalaci\u00f3n en Debian 13<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#31_Actualizar_indices_de_paquetes\" >3.1 Actualizar \u00edndices de paquetes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#32_Instalar_el_interprete_CLI\" >3.2 Instalar el int\u00e9rprete CLI<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#33_Verificar_la_instalacion\" >3.3 Verificar la instalaci\u00f3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#34_Paquetes_relacionados_y_paginas_de_manual\" >3.4 Paquetes relacionados y p\u00e1ginas de manual<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#4_Primeros_pasos_desde_la_terminal_sqlite3\" >4. Primeros pasos desde la terminal (sqlite3)<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#41_Crear_una_base_de_datos_db\" >4.1 Crear una base de datos (.db)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#42_Entrar_y_salir_del_shell_de_sqlite3\" >4.2 Entrar y salir del shell de sqlite3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#43_Crear_tablas_insertar_datos_y_consultar\" >4.3 Crear tablas, insertar datos y consultar<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#Crear_una_tabla_de_ejemplo\" >Crear una tabla de ejemplo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#Insertar_datos\" >Insertar datos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#Consultar_datos\" >Consultar datos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#Filtrar_y_ordenar\" >Filtrar y ordenar<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#44_Actualizar_y_eliminar_registros\" >4.4 Actualizar y eliminar registros<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#Actualizar_datos\" >Actualizar datos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#Eliminar_registros\" >Eliminar registros<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-33\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#Eliminar_una_tabla_completa\" >Eliminar una tabla completa<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-34\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#45_Importar_y_exportar_CSV\" >4.5 Importar y exportar CSV<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-35\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#Importar_CSV\" >Importar CSV<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-36\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#Exportar_CSV\" >Exportar CSV<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-37\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#46_Redireccion_de_salida_y_ejecucion_de_scripts\" >4.6 Redirecci\u00f3n de salida y ejecuci\u00f3n de scripts<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-38\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#Guardar_resultados_en_un_archivo\" >Guardar resultados en un archivo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-39\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#Ejecutar_scripts_SQL_externos\" >Ejecutar scripts SQL externos<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-40\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#47_Resumen_de_comandos_utiles\" >4.7 Resumen de comandos \u00fatiles<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-41\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#5_Modelado_y_buenas_practicas_de_esquema\" >5. Modelado y buenas pr\u00e1cticas de esquema<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-42\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#51_Claves_primarias_e_integridad_referencial\" >5.1 Claves primarias e integridad referencial<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-43\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#52_Indices_cuando_y_como_crearlos\" >5.2 \u00cdndices: cu\u00e1ndo y c\u00f3mo crearlos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-44\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#53_Normalizacion_ligera_y_convenciones\" >5.3 Normalizaci\u00f3n ligera y convenciones<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-45\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#54_Tipado_por_afinidad\" >5.4 Tipado por afinidad<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-46\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#6_Rendimiento_y_confiabilidad\" >6. Rendimiento y confiabilidad<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-47\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#61_Transacciones\" >6.1 Transacciones<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-48\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#62_PRAGMAs_esenciales\" >6.2 PRAGMAs esenciales<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-49\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#63_EXPLAIN_QUERY_PLAN\" >6.3 EXPLAIN QUERY PLAN<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-50\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#64_Escrituras_masivas\" >6.4 Escrituras masivas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-51\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#65_Vacuum_y_mantenimiento\" >6.5 Vacuum y mantenimiento<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-52\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#8_Seguridad_y_buenas_practicas_de_despliegue\" >8. Seguridad y buenas pr\u00e1cticas de despliegue<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-53\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#81_Permisos_de_archivos_y_rutas_seguras\" >8.1 Permisos de archivos y rutas seguras<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-54\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#82_Evitar_exposicion_directa_del_db\" >8.2 Evitar exposici\u00f3n directa del .db<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-55\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#83_Cifrado_y_proteccion_adicional\" >8.3 Cifrado y protecci\u00f3n adicional<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-56\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#84_Integridad_y_recuperacion\" >8.4 Integridad y recuperaci\u00f3n<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-57\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#9_Herramienta_grafica_DB_Browser_for_SQLite\" >9. Herramienta gr\u00e1fica: DB Browser for SQLite<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-58\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#91_Instalacion\" >9.1 Instalaci\u00f3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-59\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#92_Interfaz_principal\" >9.2 Interfaz principal<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-60\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#93_Crear_y_editar_tablas\" >9.3 Crear y editar tablas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-61\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#94_Importar_y_exportar_datos\" >9.4 Importar y exportar datos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-62\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#95_Ejecutar_scripts_SQL\" >9.5 Ejecutar scripts SQL<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-63\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#11_Casos_practicos\" >11. Casos pr\u00e1cticos<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-64\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#111_Mini_CRUD_de_usuarios\" >11.1 Mini CRUD de usuarios<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-65\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#112_Registro_de_logs_o_telemetria_local\" >11.2 Registro de logs o telemetr\u00eda local<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-66\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#113_Catalogo_o_inventario_simple_con_indices\" >11.3 Cat\u00e1logo o inventario simple con \u00edndices<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-67\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#12_Troubleshooting_Errores_comunes\" >12. Troubleshooting (Errores comunes)<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-68\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#125_Diferencias_por_PRAGMAs\" >12.5 Diferencias por PRAGMAs<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-69\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#13_Checklist_final_de_produccion\" >13. Checklist final de producci\u00f3n<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-70\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#134_Automatizacion_de_copias\" >13.4 Automatizaci\u00f3n de copias<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-71\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#14_Resumen_y_siguientes_pasos\" >14. Resumen y siguientes pasos<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-72\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#141_Recapitulacion\" >14.1 Recapitulaci\u00f3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-73\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#142_Cuando_usar_SQLite\" >14.2 Cu\u00e1ndo usar SQLite<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-74\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#143_Recursos_oficiales_y_documentacion\" >14.3 Recursos oficiales y documentaci\u00f3n<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-75\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#A_Apendices\" >A. Ap\u00e9ndices<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-76\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#A1_Hoja_de_comandos_del_shell_sqlite3\" >A.1 Hoja de comandos del shell sqlite3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-77\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#A2_Plantillas_SQL_basicas\" >A.2 Plantillas SQL b\u00e1sicas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-78\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#A3_Script_de_backup_automatico\" >A.3 Script de backup autom\u00e1tico<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-79\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#A4_Bibliografia_y_enlaces\" >A.4 Bibliograf\u00eda y enlaces<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"SQLite_en_Debian_13_%E2%80%94_Guia_Completa\"><\/span>SQLite en Debian 13 \u2014 Gu\u00eda Completa<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n<p>SQLite es una base de datos ligera, r\u00e1pida y auto-contenida que viene integrada en la mayor\u00eda de los sistemas operativos modernos. En <strong>Debian 13 \u201cTrixie\u201d<\/strong>, instalarla y comenzar a trabajar con ella es cuesti\u00f3n de minutos. En este tutorial aprender\u00e1s desde cero a dominar SQLite tanto desde la <strong>terminal<\/strong> como desde una <strong>interfaz gr\u00e1fica<\/strong> (DB Browser for SQLite), con ejemplos, buenas pr\u00e1cticas y optimizaciones reales.<\/p>\n\n<hr \/>\n\n<h2><span class=\"ez-toc-section\" id=\"Presentacion_y_objetivos\"><\/span>Presentaci\u00f3n y objetivos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>Este tutorial est\u00e1 pensado para usuarios y desarrolladores que deseen dominar <strong>SQLite en Debian 13<\/strong>, abarcando desde su instalaci\u00f3n, comandos esenciales y configuraci\u00f3n, hasta consejos de seguridad, rendimiento y migraciones.<\/p>\n\n<ul>\n  <li>Aprender a instalar y configurar SQLite en Debian 13.<\/li>\n  <li>Conocer los comandos fundamentales del shell <code class=\"\" data-line=\"\">sqlite3<\/code>.<\/li>\n  <li>Trabajar con bases de datos, tablas, consultas y transacciones.<\/li>\n  <li>Explorar <strong>DB Browser for SQLite<\/strong> como herramienta visual.<\/li>\n  <li>Aplicar buenas pr\u00e1cticas en modelado y rendimiento.<\/li>\n<\/ul>\n\n<h3><span class=\"ez-toc-section\" id=\"01_%C2%BFQue_aprenderas\"><\/span>0.1 \u00bfQu\u00e9 aprender\u00e1s?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n  <li>Crear, consultar y gestionar bases de datos SQLite desde la terminal.<\/li>\n  <li>Usar herramientas gr\u00e1ficas para manipular datos sin escribir SQL manualmente.<\/li>\n  <li>Entender los <strong>PRAGMA<\/strong> m\u00e1s importantes para optimizar rendimiento y consistencia.<\/li>\n  <li>Realizar copias de seguridad seguras y migraciones entre sistemas.<\/li>\n<\/ul>\n\n<h3><span class=\"ez-toc-section\" id=\"02_Requisitos_previos\"><\/span>0.2 Requisitos previos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<p>Para seguir este tutorial, necesitas:<\/p>\n\n<ul>\n  <li>Un sistema operativo <strong>Debian 13 Trixie<\/strong> actualizado.<\/li>\n  <li>Acceso a una <strong>terminal con privilegios sudo<\/strong>.<\/li>\n  <li>Conocimientos b\u00e1sicos de comandos <code class=\"\" data-line=\"\">apt<\/code> y estructura de archivos Linux.<\/li>\n<\/ul>\n\n<h3><span class=\"ez-toc-section\" id=\"03_Publico_objetivo_y_casos_de_uso\"><\/span>0.3 P\u00fablico objetivo y casos de uso<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<p>Este contenido est\u00e1 orientado a:<\/p>\n<ul>\n  <li>Estudiantes y autodidactas de programaci\u00f3n o administraci\u00f3n Linux.<\/li>\n  <li>Desarrolladores que necesiten una base de datos embebida o ligera.<\/li>\n  <li>Administradores que deseen auditar o analizar datos locales r\u00e1pidamente.<\/li>\n  <li>Proyectos de escritorio, IoT o scripts automatizados que no requieren un motor SQL complejo.<\/li>\n<\/ul>\n\n<hr \/>\n\n<h2><span class=\"ez-toc-section\" id=\"1_Introduccion_a_SQLite\"><\/span>1. Introducci\u00f3n a SQLite<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<h3><span class=\"ez-toc-section\" id=\"11_%C2%BFQue_es_SQLite\"><\/span>1.1 \u00bfQu\u00e9 es SQLite?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>SQLite es una <strong>biblioteca en C<\/strong> que implementa un motor de base de datos SQL sin servidor, totalmente contenido en un \u00fanico archivo. A diferencia de MySQL o PostgreSQL, no requiere demonios en segundo plano ni configuraci\u00f3n previa: cada base de datos es simplemente un archivo <code class=\"\" data-line=\"\">.db<\/code> que puede moverse, copiarse o versionarse f\u00e1cilmente.<\/p>\n\n<h3><span class=\"ez-toc-section\" id=\"12_Ventajas_y_limitaciones\"><\/span>1.2 Ventajas y limitaciones<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<span class=\"tabla-titulo\">Ventajas y limitaciones de SQLite<\/span>\n<table class=\"tabla-azul\">\n  <thead>\n    <tr><th>Ventajas<\/th><th>Limitaciones<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>Instalaci\u00f3n m\u00ednima: un solo binario (<code class=\"\" data-line=\"\">sqlite3<\/code>).<\/td>\n      <td>No est\u00e1 pensado para sistemas con miles de conexiones concurrentes.<\/td>\n    <\/tr>\n    <tr>\n      <td>Compatible con la mayor\u00eda del est\u00e1ndar SQL-92.<\/td>\n      <td>No soporta usuarios ni permisos granulares dentro del motor.<\/td>\n    <\/tr>\n    <tr>\n      <td>Soporta transacciones ACID completas.<\/td>\n      <td>Requiere control externo para backups y replicaci\u00f3n.<\/td>\n    <\/tr>\n    <tr>\n      <td>Extremadamente port\u00e1til: un archivo, multiplataforma.<\/td>\n      <td>No tiene procedimientos almacenados complejos.<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h3><span class=\"ez-toc-section\" id=\"13_Casos_de_uso_reales\"><\/span>1.3 Casos de uso reales<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n  <li><strong>Android<\/strong>: cada aplicaci\u00f3n usa una base SQLite para su almacenamiento local.<\/li>\n  <li><strong>Firefox y Chrome<\/strong>: almacenan historial, cookies y configuraci\u00f3n.<\/li>\n  <li><strong>Aplicaciones Linux<\/strong>: GNOME, Kdenlive, LibreOffice, etc.<\/li>\n  <li><strong>IoT y Raspberry Pi<\/strong>: ideal para sensores y dispositivos offline.<\/li>\n<\/ul>\n\n<h3><span class=\"ez-toc-section\" id=\"14_Arquitectura\"><\/span>1.4 Arquitectura<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>SQLite se compone de un <strong>motor SQL embebido<\/strong> que lee y escribe directamente en archivos de disco. Todo el procesamiento ocurre en el mismo proceso del programa cliente, lo que reduce la latencia y simplifica la gesti\u00f3n.<\/p>\n\n<div class=\"nota\">\n  <strong>Dato curioso:<\/strong> SQLite no usa sockets ni puertos TCP. Trabaja directamente con archivos y bloqueos de sistema (fcntl), lo que la hace m\u00e1s simple y segura en entornos locales.\n<\/div>\n\n<hr \/>\n\n<h2><span class=\"ez-toc-section\" id=\"2_Caracteristicas_clave_de_SQLite\"><\/span>2. Caracter\u00edsticas clave de SQLite<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<h3><span class=\"ez-toc-section\" id=\"21_Cumplimiento_SQL\"><\/span>2.1 Cumplimiento SQL<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>SQLite implementa gran parte del est\u00e1ndar <strong>SQL-92<\/strong> e incluye soporte para subconsultas, vistas, joins, triggers e \u00edndices. A pesar de su ligereza, es una base de datos relacional completa.<\/p>\n\n<h3><span class=\"ez-toc-section\" id=\"22_Transacciones_ACID\"><\/span>2.2 Transacciones ACID<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>SQLite es totalmente <strong>ACID<\/strong> (Atomicidad, Consistencia, Aislamiento y Durabilidad), incluso en sistemas embebidos. Cada escritura se asegura con journaling, protegiendo la integridad ante fallos o cortes el\u00e9ctricos.<\/p>\n\n<h3><span class=\"ez-toc-section\" id=\"23_Tipado_por_afinidad\"><\/span>2.3 Tipado por afinidad<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>El sistema de tipos de SQLite no es estricto. En lugar de tipos fijos, utiliza un modelo de <strong>afinidad<\/strong>, donde los valores se almacenan seg\u00fan el tipo declarado de la columna, pero pueden aceptar otros tipos compatibles.<\/p>\n\n<h3><span class=\"ez-toc-section\" id=\"24_Vistas_indices_y_triggers\"><\/span>2.4 Vistas, \u00edndices y triggers<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>SQLite soporta la creaci\u00f3n de vistas personalizadas, \u00edndices simples o compuestos y triggers para ejecutar acciones autom\u00e1ticas ante inserciones, actualizaciones o eliminaciones.<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\nCREATE VIEW usuarios_mayores AS\nSELECT nombre, edad FROM usuarios WHERE edad &gt;= 18;\n\nCREATE INDEX idx_usuarios_nombre ON usuarios(nombre);\n\nCREATE TRIGGER log_inserciones\nAFTER INSERT ON usuarios\nBEGIN\n  INSERT INTO auditoria (accion, fecha)\n  VALUES ('Inserci\u00f3n', datetime('now'));\nEND;\n<\/pre>\n\n<h3><span class=\"ez-toc-section\" id=\"25_Soporte_Unicode_y_portabilidad\"><\/span>2.5 Soporte Unicode y portabilidad<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>SQLite almacena texto en <strong>UTF-8 o UTF-16<\/strong>, compatible con cualquier idioma. Adem\u00e1s, al ser un \u00fanico archivo binario, puede moverse entre Linux, Windows o macOS sin perder compatibilidad ni estructura.<\/p>\n\n<hr \/>\n\n<h2><span class=\"ez-toc-section\" id=\"3_Instalacion_en_Debian_13\"><\/span>3. Instalaci\u00f3n en Debian 13<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<h3><span class=\"ez-toc-section\" id=\"31_Actualizar_indices_de_paquetes\"><\/span>3.1 Actualizar \u00edndices de paquetes<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Antes de instalar, actualiza la lista de paquetes del sistema:<\/p>\n\n<pre class=\"brush: sh; first-line: 1;\">\nsudo apt update\n<\/pre>\n\n<h3><span class=\"ez-toc-section\" id=\"32_Instalar_el_interprete_CLI\"><\/span>3.2 Instalar el int\u00e9rprete CLI<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Instala el paquete principal de SQLite con:<\/p>\n\n<pre class=\"brush: sh; first-line: 1;\">\nsudo apt install sqlite3\n<\/pre>\n\n<p>Este comando instalar\u00e1 el binario <code class=\"\" data-line=\"\">sqlite3<\/code> y sus dependencias.<\/p>\n\n<h3><span class=\"ez-toc-section\" id=\"33_Verificar_la_instalacion\"><\/span>3.3 Verificar la instalaci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre class=\"brush: sh; first-line: 1;\">\nsqlite3 --version\n<\/pre>\n<p>Deber\u00edas ver una salida similar a:<\/p>\n<pre class=\"brush: text; first-line: 1;\">\n3.45.2 2025-02-10 12:15:14 ...\n<\/pre>\n\n<h3><span class=\"ez-toc-section\" id=\"34_Paquetes_relacionados_y_paginas_de_manual\"><\/span>3.4 Paquetes relacionados y p\u00e1ginas de manual<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<span class=\"tabla-titulo\">Archivos instalados por SQLite<\/span>\n<table class=\"tabla-azul\">\n  <thead>\n    <tr><th>Ruta<\/th><th>Descripci\u00f3n<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr><td>\/usr\/bin\/sqlite3<\/td><td>Ejecutable principal del int\u00e9rprete CLI.<\/td><\/tr>\n    <tr><td>\/usr\/lib\/x86_64-linux-gnu\/libsqlite3.so<\/td><td>Biblioteca compartida usada por otras apps.<\/td><\/tr>\n    <tr><td>\/usr\/share\/man\/man1\/sqlite3.1.gz<\/td><td>P\u00e1gina del manual (consulta con <code class=\"\" data-line=\"\">man sqlite3<\/code>).<\/td><\/tr>\n  <\/tbody>\n<\/table>\n\n<div class=\"nota\">\n  <strong>Tip:<\/strong> Puedes probar el entorno con <code class=\"\" data-line=\"\">sqlite3 prueba.db<\/code> para abrir una base nueva. Si no existe, SQLite la crear\u00e1 autom\u00e1ticamente.\n<\/div>\n<!-- =========================\n     SQLite en Debian 13 \u2014 Parte 2\n     Autor: Javier Cach\u00f3n Garrido (javiercachon.com)\n     Compatible con Editor cl\u00e1sico y Gutenberg\n     Sintaxis: SyntaxHighlighter Evolved\n========================= -->\n\n<style>\n  .tabla-titulo {\n    background:#1e73be;\n    color:#fff;\n    padding:10px 14px;\n    font-weight:bold;\n    display:inline-block;\n    margin:24px 0 8px 0;\n    border-radius:6px;\n  }\n  table.tabla-azul {\n    width:100%;\n    border-collapse:collapse;\n    margin:10px 0 24px 0;\n  }\n  table.tabla-azul th, table.tabla-azul td {\n    border:1px solid #e5e7eb;\n    padding:10px 12px;\n    text-align:left;\n  }\n  table.tabla-azul th {\n    background:#f5f9ff;\n  }\n  .nota {\n    background:#f7fbff;\n    border-left:4px solid #1e73be;\n    padding:10px 14px;\n    margin:20px 0;\n    border-radius:6px;\n  }\n<\/style>\n\n<h1><span class=\"ez-toc-section\" id=\"4_Primeros_pasos_desde_la_terminal_sqlite3\"><\/span>4. Primeros pasos desde la terminal (sqlite3)<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n<p>El coraz\u00f3n de SQLite es su int\u00e9rprete de comandos <code class=\"\" data-line=\"\">sqlite3<\/code>. Desde aqu\u00ed podr\u00e1s crear bases de datos, ejecutar consultas SQL, importar\/exportar datos y realizar copias de seguridad. Todo ello sin depender de un servidor ni configuraci\u00f3n adicional.<\/p>\n\n<hr \/>\n\n<h2><span class=\"ez-toc-section\" id=\"41_Crear_una_base_de_datos_db\"><\/span>4.1 Crear una base de datos (.db)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>Para crear una nueva base de datos, simplemente escribe en la terminal:<\/p>\n\n<pre class=\"brush: sh; first-line: 1;\">\nsqlite3 mi_base.db\n<\/pre>\n\n<p>Esto abrir\u00e1 el <strong>shell interactivo<\/strong> de SQLite con el prompt:<\/p>\n\n<pre class=\"brush: text; first-line: 1;\">\nsqlite&gt;\n<\/pre>\n\n<p>Si el archivo <code class=\"\" data-line=\"\">mi_base.db<\/code> no exist\u00eda, se crear\u00e1 autom\u00e1ticamente en el directorio actual. Puedes cerrar el shell en cualquier momento con:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\n.quit\n<\/pre>\n\n<div class=\"nota\">\n  <strong>Tip:<\/strong> Usa rutas absolutas si quieres guardar la base en una carpeta espec\u00edfica, por ejemplo:\n  <code class=\"\" data-line=\"\">sqlite3 \/home\/javier\/sqlite\/mi_base.db<\/code>.\n<\/div>\n\n<hr \/>\n\n<h2><span class=\"ez-toc-section\" id=\"42_Entrar_y_salir_del_shell_de_sqlite3\"><\/span>4.2 Entrar y salir del shell de sqlite3<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>Una vez dentro, el prompt cambiar\u00e1 a <code class=\"\" data-line=\"\">sqlite&gt;<\/code>. Puedes ejecutar comandos SQL normales y tambi\u00e9n comandos internos del int\u00e9rprete (los que comienzan con un punto \u201c.\u201d).<\/p>\n\n<span class=\"tabla-titulo\">Comandos b\u00e1sicos del shell sqlite3<\/span>\n<table class=\"tabla-azul\">\n  <thead>\n    <tr><th>Comando<\/th><th>Descripci\u00f3n<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr><td><code class=\"\" data-line=\"\">.help<\/code><\/td><td>Muestra todos los comandos internos disponibles.<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">.databases<\/code><\/td><td>Lista las bases de datos abiertas (por defecto, una).<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">.tables<\/code><\/td><td>Muestra las tablas existentes en la base.<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">.schema [tabla]<\/code><\/td><td>Muestra la definici\u00f3n SQL de una tabla o de toda la base.<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">.mode column<\/code><\/td><td>Activa el formato de salida en columnas legibles.<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">.headers on<\/code><\/td><td>Muestra los nombres de columnas en los resultados.<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">.quit<\/code><\/td><td>Salir del shell (tambi\u00e9n <code class=\"\" data-line=\"\">.exit<\/code> o <kbd>Ctrl+D<\/kbd>).<\/td><\/tr>\n  <\/tbody>\n<\/table>\n\n<div class=\"nota\">\n  <strong>Recomendado:<\/strong> Antes de listar o consultar datos, activa siempre <code class=\"\" data-line=\"\">.headers on<\/code> y <code class=\"\" data-line=\"\">.mode column<\/code> para visualizar las tablas correctamente.\n<\/div>\n\n<hr \/>\n\n<h2><span class=\"ez-toc-section\" id=\"43_Crear_tablas_insertar_datos_y_consultar\"><\/span>4.3 Crear tablas, insertar datos y consultar<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<h3><span class=\"ez-toc-section\" id=\"Crear_una_tabla_de_ejemplo\"><\/span>Crear una tabla de ejemplo<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<pre class=\"brush: sql; first-line: 1;\">\nCREATE TABLE usuarios (\n  id INTEGER PRIMARY KEY AUTOINCREMENT,\n  nombre TEXT NOT NULL,\n  edad INTEGER,\n  correo TEXT\n);\n<\/pre>\n\n<p>Verifica que la tabla se cre\u00f3 correctamente:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\n.tables\n<\/pre>\n\n<p>Para ver su estructura completa:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\n.schema usuarios\n<\/pre>\n\n<h3><span class=\"ez-toc-section\" id=\"Insertar_datos\"><\/span>Insertar datos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<pre class=\"brush: sql; first-line: 1;\">\nINSERT INTO usuarios (nombre, edad, correo)\nVALUES ('Ana', 30, 'ana@example.com');\n\nINSERT INTO usuarios (nombre, edad, correo)\nVALUES ('Juan', 25, 'juan@example.com');\n\nINSERT INTO usuarios (nombre, edad, correo)\nVALUES ('Luc\u00eda', 35, 'lucia@example.com');\n<\/pre>\n\n<h3><span class=\"ez-toc-section\" id=\"Consultar_datos\"><\/span>Consultar datos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<pre class=\"brush: sql; first-line: 1;\">\n.headers on\n.mode column\nSELECT * FROM usuarios;\n<\/pre>\n\n<p>Salida esperada:<\/p>\n\n<pre class=\"brush: text; first-line: 1;\">\nid  nombre  edad  correo\n--  ------- ----  -----------------\n1   Ana     30    ana@example.com\n2   Juan    25    juan@example.com\n3   Luc\u00eda   35    lucia@example.com\n<\/pre>\n\n<h3><span class=\"ez-toc-section\" id=\"Filtrar_y_ordenar\"><\/span>Filtrar y ordenar<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<pre class=\"brush: sql; first-line: 1;\">\nSELECT nombre, edad\nFROM usuarios\nWHERE edad &gt;= 30\nORDER BY edad DESC;\n<\/pre>\n\n<div class=\"nota\">\n  <strong>Consejo:<\/strong> SQLite no diferencia entre may\u00fasculas y min\u00fasculas en palabras clave SQL. Tanto <code class=\"\" data-line=\"\">select<\/code> como <code class=\"\" data-line=\"\">SELECT<\/code> son v\u00e1lidos.\n<\/div>\n\n<hr \/>\n\n<h2><span class=\"ez-toc-section\" id=\"44_Actualizar_y_eliminar_registros\"><\/span>4.4 Actualizar y eliminar registros<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<h3><span class=\"ez-toc-section\" id=\"Actualizar_datos\"><\/span>Actualizar datos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<pre class=\"brush: sql; first-line: 1;\">\nUPDATE usuarios\nSET edad = 31\nWHERE nombre = 'Ana';\n<\/pre>\n\n<h3><span class=\"ez-toc-section\" id=\"Eliminar_registros\"><\/span>Eliminar registros<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<pre class=\"brush: sql; first-line: 1;\">\nDELETE FROM usuarios\nWHERE id = 2;\n<\/pre>\n\n<p>Confirma el resultado:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\nSELECT * FROM usuarios;\n<\/pre>\n\n<h3><span class=\"ez-toc-section\" id=\"Eliminar_una_tabla_completa\"><\/span>Eliminar una tabla completa<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<pre class=\"brush: sql; first-line: 1;\">\nDROP TABLE IF EXISTS usuarios;\n<\/pre>\n\n<div class=\"nota\">\n  <strong>Atenci\u00f3n:<\/strong> El comando <code class=\"\" data-line=\"\">DROP TABLE<\/code> elimina toda la estructura y los datos de la tabla. No se puede deshacer.\n<\/div>\n\n<hr \/>\n\n<h2><span class=\"ez-toc-section\" id=\"45_Importar_y_exportar_CSV\"><\/span>4.5 Importar y exportar CSV<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>SQLite incluye soporte integrado para leer y escribir archivos CSV, lo que resulta \u00fatil para intercambiar datos con hojas de c\u00e1lculo o sistemas externos.<\/p>\n\n<h3><span class=\"ez-toc-section\" id=\"Importar_CSV\"><\/span>Importar CSV<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<p>Supongamos que tienes un archivo <code class=\"\" data-line=\"\">usuarios.csv<\/code> con el siguiente contenido:<\/p>\n\n<pre class=\"brush: text; first-line: 1;\">\nnombre,edad,correo\nPedro,40,pedro@example.com\nLaura,28,laura@example.com\n<\/pre>\n\n<p>Importa el archivo con los comandos:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\n.mode csv\n.import usuarios.csv usuarios\n<\/pre>\n\n<p>SQLite leer\u00e1 el archivo y agregar\u00e1 los registros autom\u00e1ticamente a la tabla <code class=\"\" data-line=\"\">usuarios<\/code>.<\/p>\n\n<h3><span class=\"ez-toc-section\" id=\"Exportar_CSV\"><\/span>Exportar CSV<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<p>Para exportar el contenido de una tabla a un archivo CSV:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\n.headers on\n.mode csv\n.output export_usuarios.csv\nSELECT * FROM usuarios;\n.output stdout\n<\/pre>\n\n<p>Esto generar\u00e1 un archivo <code class=\"\" data-line=\"\">export_usuarios.csv<\/code> en tu carpeta actual con el contenido de la tabla.<\/p>\n\n<span class=\"tabla-titulo\">Opciones del modo .mode<\/span>\n<table class=\"tabla-azul\">\n  <thead>\n    <tr><th>Modo<\/th><th>Descripci\u00f3n<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr><td><code class=\"\" data-line=\"\">list<\/code><\/td><td>Salida en formato de lista, separada por \u201c|\u201d.<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">column<\/code><\/td><td>Formato tabulado y legible (ideal para consola).<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">csv<\/code><\/td><td>Formato CSV compatible con Excel, LibreOffice, etc.<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">tabs<\/code><\/td><td>Campos separados por tabulaciones.<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">html<\/code><\/td><td>Salida como tabla HTML (\u00fatil para informes web).<\/td><\/tr>\n  <\/tbody>\n<\/table>\n\n<hr \/>\n\n<h2><span class=\"ez-toc-section\" id=\"46_Redireccion_de_salida_y_ejecucion_de_scripts\"><\/span>4.6 Redirecci\u00f3n de salida y ejecuci\u00f3n de scripts<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<h3><span class=\"ez-toc-section\" id=\"Guardar_resultados_en_un_archivo\"><\/span>Guardar resultados en un archivo<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<pre class=\"brush: sql; first-line: 1;\">\n.output resultados.txt\nSELECT nombre, edad FROM usuarios;\n.output stdout\n<\/pre>\n\n<p>El resultado se guardar\u00e1 en el archivo <code class=\"\" data-line=\"\">resultados.txt<\/code>.<\/p>\n\n<h3><span class=\"ez-toc-section\" id=\"Ejecutar_scripts_SQL_externos\"><\/span>Ejecutar scripts SQL externos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<p>Tambi\u00e9n puedes ejecutar archivos SQL completos sin escribir cada comando manualmente. Por ejemplo, si tienes un archivo <code class=\"\" data-line=\"\">estructura.sql<\/code>:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\nCREATE TABLE productos (\n  id INTEGER PRIMARY KEY,\n  nombre TEXT,\n  precio REAL\n);\n\nINSERT INTO productos (nombre, precio)\nVALUES ('Teclado', 25.50),\n       ('Rat\u00f3n', 18.90);\n<\/pre>\n\n<p>Ejecuta el script con:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\n.read estructura.sql\n<\/pre>\n\n<p>Y luego comprueba las tablas:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\n.tables\n<\/pre>\n\n<div class=\"nota\">\n  <strong>Consejo:<\/strong> Los scripts <code class=\"\" data-line=\"\">.sql<\/code> son ideales para automatizar configuraciones o migraciones. Puedes crear plantillas y ejecutarlas en diferentes proyectos f\u00e1cilmente.\n<\/div>\n\n<hr \/>\n\n<h2><span class=\"ez-toc-section\" id=\"47_Resumen_de_comandos_utiles\"><\/span>4.7 Resumen de comandos \u00fatiles<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<span class=\"tabla-titulo\">Resumen de comandos sqlite3<\/span>\n<table class=\"tabla-azul\">\n  <thead>\n    <tr><th>Comando<\/th><th>Funci\u00f3n<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr><td><code class=\"\" data-line=\"\">.tables<\/code><\/td><td>Lista todas las tablas en la base de datos actual.<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">.schema<\/code><\/td><td>Muestra el c\u00f3digo SQL que define una tabla.<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">.headers on<\/code><\/td><td>Activa los encabezados de columna en los resultados.<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">.mode column<\/code><\/td><td>Usa formato de columnas legibles.<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">.output archivo.txt<\/code><\/td><td>Redirige la salida a un archivo.<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">.read script.sql<\/code><\/td><td>Ejecuta un archivo SQL externo.<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">.backup backup.db<\/code><\/td><td>Crea una copia de seguridad completa.<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">.quit<\/code><\/td><td>Sale del int\u00e9rprete SQLite.<\/td><\/tr>\n  <\/tbody>\n<\/table>\n\n<p>Con estos comandos b\u00e1sicos dominar\u00e1s la l\u00ednea de comandos de SQLite y podr\u00e1s gestionar tus bases de datos sin depender de interfaces gr\u00e1ficas. Es una herramienta ligera, poderosa y perfecta para automatizar tareas en Debian 13.<\/p>\n\n<div class=\"nota\">\n  <strong>Pr\u00f3xima parte:<\/strong> Modelado, claves primarias, PRAGMAs, rendimiento y DB Browser for SQLite.\n<\/div>\n<!-- =========================\n     SQLite en Debian 13 \u2014 Parte 3\n     Autor: Javier Cach\u00f3n Garrido (javiercachon.com)\n     Compatible con Editor cl\u00e1sico y Gutenberg\n     Sintaxis: SyntaxHighlighter Evolved con numeraci\u00f3n\n========================= -->\n\n<style>\n  .tabla-titulo {\n    background:#1e73be;\n    color:#fff;\n    padding:10px 14px;\n    font-weight:bold;\n    display:inline-block;\n    margin:24px 0 8px 0;\n    border-radius:6px;\n  }\n  table.tabla-azul {\n    width:100%;\n    border-collapse:collapse;\n    margin:10px 0 24px 0;\n  }\n  table.tabla-azul th, table.tabla-azul td {\n    border:1px solid #e5e7eb;\n    padding:10px 12px;\n    text-align:left;\n  }\n  table.tabla-azul th {\n    background:#f5f9ff;\n  }\n  .nota {\n    background:#f7fbff;\n    border-left:4px solid #1e73be;\n    padding:10px 14px;\n    margin:20px 0;\n    border-radius:6px;\n  }\n<\/style>\n\n<h1><span class=\"ez-toc-section\" id=\"5_Modelado_y_buenas_practicas_de_esquema\"><\/span>5. Modelado y buenas pr\u00e1cticas de esquema<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n<p>El dise\u00f1o correcto de la estructura de tu base de datos es esencial para mantener la integridad, el rendimiento y la escalabilidad. SQLite no impone tantas restricciones como otros motores, por lo que el modelo depende en gran medida de tu disciplina como desarrollador.<\/p>\n\n<h2><span class=\"ez-toc-section\" id=\"51_Claves_primarias_e_integridad_referencial\"><\/span>5.1 Claves primarias e integridad referencial<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>Siempre define una <strong>PRIMARY KEY<\/strong> en cada tabla. SQLite utiliza un identificador especial llamado <code class=\"\" data-line=\"\">ROWID<\/code> por defecto, pero es recomendable declararlo expl\u00edcitamente para mejorar la legibilidad y las relaciones.<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\nCREATE TABLE clientes (\n  id INTEGER PRIMARY KEY,\n  nombre TEXT NOT NULL,\n  telefono TEXT,\n  email TEXT UNIQUE\n);\n<\/pre>\n\n<p>Para relaciones entre tablas, usa <strong>FOREIGN KEYS<\/strong> y activa la integridad referencial:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\nPRAGMA foreign_keys = ON;\n\nCREATE TABLE pedidos (\n  id INTEGER PRIMARY KEY,\n  cliente_id INTEGER,\n  fecha TEXT,\n  total REAL,\n  FOREIGN KEY (cliente_id) REFERENCES clientes(id)\n);\n<\/pre>\n\n<div class=\"nota\">\n  <strong>Consejo:<\/strong> SQLite no activa las claves for\u00e1neas por defecto. Aseg\u00farate de ejecutar <code class=\"\" data-line=\"\">PRAGMA foreign_keys = ON;<\/code> al inicio de tu conexi\u00f3n o script.\n<\/div>\n\n<hr \/>\n\n<h2><span class=\"ez-toc-section\" id=\"52_Indices_cuando_y_como_crearlos\"><\/span>5.2 \u00cdndices: cu\u00e1ndo y c\u00f3mo crearlos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>Los \u00edndices aceleran las consultas que usan <code class=\"\" data-line=\"\">WHERE<\/code> o <code class=\"\" data-line=\"\">JOIN<\/code> sobre columnas frecuentes, pero tambi\u00e9n consumen espacio y ralentizan las escrituras. \u00dasalos con criterio.<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\nCREATE INDEX idx_clientes_nombre ON clientes(nombre);\nCREATE INDEX idx_pedidos_fecha ON pedidos(fecha);\n<\/pre>\n\n<p>Puedes inspeccionar el uso de \u00edndices con:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\nEXPLAIN QUERY PLAN\nSELECT * FROM clientes WHERE nombre = 'Ana';\n<\/pre>\n\n<h2><span class=\"ez-toc-section\" id=\"53_Normalizacion_ligera_y_convenciones\"><\/span>5.3 Normalizaci\u00f3n ligera y convenciones<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<ul>\n  <li>Usa nombres en <code class=\"\" data-line=\"\">snake_case<\/code> y en singular: <code class=\"\" data-line=\"\">usuario<\/code>, <code class=\"\" data-line=\"\">producto<\/code>.<\/li>\n  <li>Evita redundancias de datos innecesarias.<\/li>\n  <li>Usa <code class=\"\" data-line=\"\">INTEGER<\/code> para claves y <code class=\"\" data-line=\"\">TEXT<\/code> para cadenas.<\/li>\n  <li>Define <code class=\"\" data-line=\"\">NOT NULL<\/code> y <code class=\"\" data-line=\"\">DEFAULT<\/code> siempre que sea posible.<\/li>\n<\/ul>\n\n<h2><span class=\"ez-toc-section\" id=\"54_Tipado_por_afinidad\"><\/span>5.4 Tipado por afinidad<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<span class=\"tabla-titulo\">Tipos de datos y afinidad en SQLite<\/span>\n<table class=\"tabla-azul\">\n  <thead>\n    <tr><th>Tipo declarado<\/th><th>Afinidad<\/th><th>Ejemplo<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr><td>INTEGER<\/td><td>Num\u00e9rico entero<\/td><td><code class=\"\" data-line=\"\">42<\/code><\/td><\/tr>\n    <tr><td>REAL<\/td><td>Num\u00e9rico decimal<\/td><td><code class=\"\" data-line=\"\">3.1416<\/code><\/td><\/tr>\n    <tr><td>TEXT<\/td><td>Cadena de texto<\/td><td><code class=\"\" data-line=\"\">&#039;Debian&#039;<\/code><\/td><\/tr>\n    <tr><td>BLOB<\/td><td>Binario<\/td><td>Archivos, im\u00e1genes, etc.<\/td><\/tr>\n    <tr><td>NULL<\/td><td>Sin valor definido<\/td><td><code class=\"\" data-line=\"\">NULL<\/code><\/td><\/tr>\n  <\/tbody>\n<\/table>\n\n<div class=\"nota\">\n  <strong>Dato curioso:<\/strong> Puedes insertar texto en una columna <code class=\"\" data-line=\"\">INTEGER<\/code> y SQLite lo aceptar\u00e1. Aun as\u00ed, define los tipos correctamente por claridad y rendimiento.\n<\/div>\n\n<hr \/>\n\n<h1><span class=\"ez-toc-section\" id=\"6_Rendimiento_y_confiabilidad\"><\/span>6. Rendimiento y confiabilidad<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n<h2><span class=\"ez-toc-section\" id=\"61_Transacciones\"><\/span>6.1 Transacciones<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>Agrupar operaciones dentro de transacciones acelera las escrituras y garantiza la coherencia del conjunto de datos:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\nBEGIN TRANSACTION;\nINSERT INTO pedidos (cliente_id, fecha, total)\nVALUES (1, '2025-03-10', 59.90);\nUPDATE clientes SET telefono = '+34 612 345 678' WHERE id = 1;\nCOMMIT;\n<\/pre>\n\n<p>Si algo falla, usa <code class=\"\" data-line=\"\">ROLLBACK;<\/code> para revertir los cambios.<\/p>\n\n<h2><span class=\"ez-toc-section\" id=\"62_PRAGMAs_esenciales\"><\/span>6.2 PRAGMAs esenciales<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>Los <strong>PRAGMAs<\/strong> son configuraciones internas que ajustan el comportamiento del motor de SQLite. Puedes consultarlos o modificarlos seg\u00fan tu entorno.<\/p>\n\n<span class=\"tabla-titulo\">PRAGMAs m\u00e1s utilizados<\/span>\n<table class=\"tabla-azul\">\n  <thead>\n    <tr><th>PRAGMA<\/th><th>Descripci\u00f3n<\/th><th>Valores recomendados<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr><td><code class=\"\" data-line=\"\">foreign_keys<\/code><\/td><td>Activa la integridad referencial.<\/td><td><code class=\"\" data-line=\"\">ON<\/code><\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">journal_mode<\/code><\/td><td>Define el modo de journaling.<\/td><td><code class=\"\" data-line=\"\">WAL<\/code> (Write-Ahead Log)<\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">synchronous<\/code><\/td><td>Controla cu\u00e1ndo se sincroniza con disco.<\/td><td><code class=\"\" data-line=\"\">FULL<\/code> o <code class=\"\" data-line=\"\">NORMAL<\/code><\/td><\/tr>\n    <tr><td><code class=\"\" data-line=\"\">cache_size<\/code><\/td><td>Determina el tama\u00f1o del cach\u00e9 interno.<\/td><td>Depende del entorno (por defecto 2000)<\/td><\/tr>\n  <\/tbody>\n<\/table>\n\n<pre class=\"brush: sql; first-line: 1;\">\nPRAGMA foreign_keys = ON;\nPRAGMA journal_mode = WAL;\nPRAGMA synchronous = FULL;\n<\/pre>\n\n<div class=\"nota\">\n  <strong>Importante:<\/strong> Usa <code class=\"\" data-line=\"\">WAL<\/code> para mejorar la concurrencia de lectura\/escritura y <code class=\"\" data-line=\"\">synchronous=FULL<\/code> para garantizar la integridad ante cortes de energ\u00eda.\n<\/div>\n\n<h2><span class=\"ez-toc-section\" id=\"63_EXPLAIN_QUERY_PLAN\"><\/span>6.3 EXPLAIN QUERY PLAN<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>Esta sentencia permite analizar c\u00f3mo se ejecutar\u00e1 una consulta:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\nEXPLAIN QUERY PLAN\nSELECT * FROM pedidos WHERE cliente_id = 1;\n<\/pre>\n\n<p>Si ves la palabra <code class=\"\" data-line=\"\">SCAN<\/code> sin <code class=\"\" data-line=\"\">USING INDEX<\/code>, significa que la consulta recorre toda la tabla y puede mejorarse con un \u00edndice.<\/p>\n\n<h2><span class=\"ez-toc-section\" id=\"64_Escrituras_masivas\"><\/span>6.4 Escrituras masivas<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>Para insertar miles de filas, agr\u00fapalas en una \u00fanica transacci\u00f3n:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\nBEGIN;\nINSERT INTO registros (dato) VALUES ('A');\nINSERT INTO registros (dato) VALUES ('B');\n...\nCOMMIT;\n<\/pre>\n\n<p>Esto reduce dr\u00e1sticamente el tiempo de escritura, ya que se evita sincronizar el disco tras cada inserci\u00f3n.<\/p>\n\n<h2><span class=\"ez-toc-section\" id=\"65_Vacuum_y_mantenimiento\"><\/span>6.5 Vacuum y mantenimiento<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>SQLite no libera autom\u00e1ticamente el espacio de las filas eliminadas. Usa <code class=\"\" data-line=\"\">VACUUM;<\/code> para compactar la base de datos:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\nVACUUM;\n<\/pre>\n\n<p>Tambi\u00e9n puedes reindexar todas las tablas con:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\nREINDEX;\n<\/pre>\n\n<hr \/>\n\n<h1><span class=\"ez-toc-section\" id=\"8_Seguridad_y_buenas_practicas_de_despliegue\"><\/span>8. Seguridad y buenas pr\u00e1cticas de despliegue<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n<h2><span class=\"ez-toc-section\" id=\"81_Permisos_de_archivos_y_rutas_seguras\"><\/span>8.1 Permisos de archivos y rutas seguras<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>SQLite guarda toda la informaci\u00f3n en un solo archivo. Por ello, protege los permisos correctamente:<\/p>\n\n<pre class=\"brush: sh; first-line: 1;\">\nchmod 600 \/home\/javier\/sqlite\/produccion.db\nchown javier:javier \/home\/javier\/sqlite\/produccion.db\n<\/pre>\n\n<h2><span class=\"ez-toc-section\" id=\"82_Evitar_exposicion_directa_del_db\"><\/span>8.2 Evitar exposici\u00f3n directa del .db<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>Nunca coloques el archivo <code class=\"\" data-line=\"\">.db<\/code> dentro del directorio p\u00fablico de un servidor web (<code class=\"\" data-line=\"\">\/var\/www\/html<\/code> o similar).<\/p>\n\n<div class=\"nota\">\n  <strong>Riesgo:<\/strong> Si el archivo est\u00e1 en el directorio p\u00fablico, un usuario podr\u00eda descargarlo directamente escribiendo su ruta completa en el navegador.\n<\/div>\n\n<h2><span class=\"ez-toc-section\" id=\"83_Cifrado_y_proteccion_adicional\"><\/span>8.3 Cifrado y protecci\u00f3n adicional<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>SQLite no incluye cifrado por defecto, pero existen extensiones como <strong>SQLCipher<\/strong> que a\u00f1aden encriptaci\u00f3n AES-256 transparente.<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\n-- En SQLCipher:\nPRAGMA key = 'mi_clave_segura';\n<\/pre>\n\n<p>Otra alternativa es usar particiones cifradas con <strong>LUKS<\/strong> o herramientas como <code class=\"\" data-line=\"\">gocryptfs<\/code>.<\/p>\n\n<h2><span class=\"ez-toc-section\" id=\"84_Integridad_y_recuperacion\"><\/span>8.4 Integridad y recuperaci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>Verifica la integridad de tu base peri\u00f3dicamente con:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\nPRAGMA integrity_check;\n<\/pre>\n\n<p>Y repara inconsistencias con una copia limpia si es necesario. Tambi\u00e9n puedes automatizar backups con cron:<\/p>\n\n<pre class=\"brush: sh; first-line: 1;\">\nsqlite3 produccion.db \".backup '\/backups\/produccion_$(date +%F).db'\"\n<\/pre>\n\n<hr \/>\n\n<h1><span class=\"ez-toc-section\" id=\"9_Herramienta_grafica_DB_Browser_for_SQLite\"><\/span>9. Herramienta gr\u00e1fica: DB Browser for SQLite<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n<h2><span class=\"ez-toc-section\" id=\"91_Instalacion\"><\/span>9.1 Instalaci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>En Debian 13, DB Browser est\u00e1 disponible en los repositorios oficiales:<\/p>\n\n<pre class=\"brush: sh; first-line: 1;\">\nsudo apt install sqlitebrowser\n<\/pre>\n\n<h2><span class=\"ez-toc-section\" id=\"92_Interfaz_principal\"><\/span>9.2 Interfaz principal<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>Al abrir la aplicaci\u00f3n ver\u00e1s varias pesta\u00f1as clave:<\/p>\n\n<span class=\"tabla-titulo\">Pesta\u00f1as de DB Browser<\/span>\n<table class=\"tabla-azul\">\n  <thead>\n    <tr><th>Pesta\u00f1a<\/th><th>Funci\u00f3n<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr><td><strong>Database Structure<\/strong><\/td><td>Muestra las tablas, vistas e \u00edndices.<\/td><\/tr>\n    <tr><td><strong>Browse Data<\/strong><\/td><td>Permite explorar y editar registros.<\/td><\/tr>\n    <tr><td><strong>Execute SQL<\/strong><\/td><td>Ejecuta consultas manuales.<\/td><\/tr>\n    <tr><td><strong>Edit Pragmas<\/strong><\/td><td>Configura PRAGMAs desde interfaz.<\/td><\/tr>\n  <\/tbody>\n<\/table>\n\n<h2><span class=\"ez-toc-section\" id=\"93_Crear_y_editar_tablas\"><\/span>9.3 Crear y editar tablas<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>Puedes crear nuevas tablas desde el men\u00fa <em>\u201cNew Table\u201d<\/em>, definiendo nombres de columna y tipos de dato. Al finalizar, haz clic en <strong>Write Changes<\/strong> para guardar los cambios en disco.<\/p>\n\n<h2><span class=\"ez-toc-section\" id=\"94_Importar_y_exportar_datos\"><\/span>9.4 Importar y exportar datos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>DB Browser facilita la importaci\u00f3n y exportaci\u00f3n en m\u00faltiples formatos:<\/p>\n\n<ul>\n  <li>CSV (valores separados por coma)<\/li>\n  <li>SQL (script de recreaci\u00f3n)<\/li>\n  <li>JSON y XML<\/li>\n<\/ul>\n\n<p>Para importar: <strong>File \u2192 Import \u2192 Table from CSV<\/strong>.  \nPara exportar: <strong>File \u2192 Export \u2192 Table to SQL File<\/strong>.<\/p>\n\n<h2><span class=\"ez-toc-section\" id=\"95_Ejecutar_scripts_SQL\"><\/span>9.5 Ejecutar scripts SQL<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>En la pesta\u00f1a <strong>Execute SQL<\/strong> puedes ejecutar bloques de c\u00f3digo o abrir archivos completos:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\nCREATE TABLE productos (\n  id INTEGER PRIMARY KEY,\n  nombre TEXT,\n  precio REAL\n);\n\nINSERT INTO productos (nombre, precio)\nVALUES ('Monitor 24\"', 159.99),\n       ('Teclado mec\u00e1nico', 79.90);\n<\/pre>\n\n<p>Despu\u00e9s, pulsa <strong>Execute All<\/strong> para ejecutar todo el script.<\/p>\n\n<div class=\"nota\">\n  <strong>Consejo:<\/strong> No olvides hacer clic en <em>Write Changes<\/em> antes de cerrar DB Browser. Si no lo haces, los cambios se perder\u00e1n.\n<\/div>\n<!-- =========================\n     SQLite en Debian 13 \u2014 Parte 4\n     Autor: Javier Cach\u00f3n Garrido (javiercachon.com)\n     Compatible con Editor cl\u00e1sico y Gutenberg\n     Sintaxis: SyntaxHighlighter Evolved con numeraci\u00f3n\n========================= -->\n\n<style>\n  .tabla-titulo {\n    background:#1e73be;\n    color:#fff;\n    padding:10px 14px;\n    font-weight:bold;\n    display:inline-block;\n    margin:24px 0 8px 0;\n    border-radius:6px;\n  }\n  table.tabla-azul {\n    width:100%;\n    border-collapse:collapse;\n    margin:10px 0 24px 0;\n  }\n  table.tabla-azul th, table.tabla-azul td {\n    border:1px solid #e5e7eb;\n    padding:10px 12px;\n    text-align:left;\n  }\n  table.tabla-azul th {\n    background:#f5f9ff;\n  }\n  .nota {\n    background:#f7fbff;\n    border-left:4px solid #1e73be;\n    padding:10px 14px;\n    margin:20px 0;\n    border-radius:6px;\n  }\n<\/style>\n\n<h1><span class=\"ez-toc-section\" id=\"11_Casos_practicos\"><\/span>11. Casos pr\u00e1cticos<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n<p>Veamos algunos ejemplos \u00fatiles de uso real en Debian 13, donde SQLite brilla por su simplicidad y rendimiento local.<\/p>\n\n<hr \/>\n\n<h2><span class=\"ez-toc-section\" id=\"111_Mini_CRUD_de_usuarios\"><\/span>11.1 Mini CRUD de usuarios<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>Este ejemplo crea una tabla de usuarios, agrega datos, actualiza registros y los elimina.<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\n-- Crear tabla\nCREATE TABLE usuarios (\n  id INTEGER PRIMARY KEY AUTOINCREMENT,\n  nombre TEXT NOT NULL,\n  correo TEXT UNIQUE,\n  edad INTEGER\n);\n\n-- Insertar registros\nINSERT INTO usuarios (nombre, correo, edad)\nVALUES ('Mar\u00eda', 'maria@example.com', 28),\n       ('Luis', 'luis@example.com', 34);\n\n-- Consultar\nSELECT * FROM usuarios;\n\n-- Actualizar\nUPDATE usuarios SET edad = 29 WHERE nombre = 'Mar\u00eda';\n\n-- Eliminar\nDELETE FROM usuarios WHERE id = 2;\n<\/pre>\n\n<div class=\"nota\">\n  <strong>Consejo:<\/strong> Si ejecutas este CRUD dentro de una transacci\u00f3n <code class=\"\" data-line=\"\">BEGIN ... COMMIT;<\/code>, aseguras la atomicidad de las operaciones.\n<\/div>\n\n<hr \/>\n\n<h2><span class=\"ez-toc-section\" id=\"112_Registro_de_logs_o_telemetria_local\"><\/span>11.2 Registro de logs o telemetr\u00eda local<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>SQLite es perfecto para guardar eventos o m\u00e9tricas en dispositivos offline.<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\nCREATE TABLE logs (\n  id INTEGER PRIMARY KEY AUTOINCREMENT,\n  fecha TEXT DEFAULT (datetime('now')),\n  nivel TEXT,\n  mensaje TEXT\n);\n\nINSERT INTO logs (nivel, mensaje)\nVALUES ('INFO', 'Sistema iniciado'),\n       ('WARNING', 'Uso de CPU alto'),\n       ('ERROR', 'Proceso detenido');\n<\/pre>\n\n<p>Puedes ver los \u00faltimos 10 registros con:<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\nSELECT * FROM logs ORDER BY fecha DESC LIMIT 10;\n<\/pre>\n\n<h2><span class=\"ez-toc-section\" id=\"113_Catalogo_o_inventario_simple_con_indices\"><\/span>11.3 Cat\u00e1logo o inventario simple con \u00edndices<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<pre class=\"brush: sql; first-line: 1;\">\nCREATE TABLE inventario (\n  id INTEGER PRIMARY KEY,\n  producto TEXT NOT NULL,\n  stock INTEGER,\n  precio REAL\n);\n\nCREATE INDEX idx_inventario_producto ON inventario(producto);\n\nINSERT INTO inventario (producto, stock, precio)\nVALUES ('Port\u00e1til Lenovo', 10, 999.90),\n       ('Monitor 27\"', 7, 189.50),\n       ('Teclado mec\u00e1nico', 15, 79.99);\n\nSELECT producto, stock FROM inventario WHERE stock < 10;\n<\/pre>\n\n<div class=\"nota\">\n  <strong>Tip:<\/strong> Los \u00edndices en campos como <code class=\"\" data-line=\"\">producto<\/code> o <code class=\"\" data-line=\"\">stock<\/code> aceleran las consultas, especialmente cuando crece el volumen de registros.\n<\/div>\n\n<hr \/>\n\n<h1><span class=\"ez-toc-section\" id=\"12_Troubleshooting_Errores_comunes\"><\/span>12. Troubleshooting (Errores comunes)<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n<p>SQLite es muy estable, pero algunos errores son frecuentes. Aqu\u00ed tienes una gu\u00eda r\u00e1pida de diagn\u00f3stico.<\/p>\n\n<span class=\"tabla-titulo\">Errores frecuentes y soluciones<\/span>\n<table class=\"tabla-azul\">\n  <thead>\n    <tr><th>Error<\/th><th>Causa<\/th><th>Soluci\u00f3n<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td><code class=\"\" data-line=\"\">no such table: ...<\/code><\/td>\n      <td>Intentas consultar una tabla inexistente o en la base equivocada.<\/td>\n      <td>Ejecuta <code class=\"\" data-line=\"\">.tables<\/code> o revisa el archivo <code class=\"\" data-line=\"\">.db<\/code> correcto.<\/td>\n    <\/tr>\n    <tr>\n      <td><code class=\"\" data-line=\"\">database is locked<\/code><\/td>\n      <td>La base est\u00e1 en uso por otro proceso o DB Browser a\u00fan no liber\u00f3 el archivo.<\/td>\n      <td>Cierra instancias abiertas. Usa <code class=\"\" data-line=\"\">PRAGMA journal_mode=WAL;<\/code> para concurrencia.<\/td>\n    <\/tr>\n    <tr>\n      <td><code class=\"\" data-line=\"\">UNIQUE constraint failed<\/code><\/td>\n      <td>Intentas insertar valores duplicados en una columna UNIQUE.<\/td>\n      <td>Verifica claves \u00fanicas con <code class=\"\" data-line=\"\">SELECT DISTINCT columna<\/code>.<\/td>\n    <\/tr>\n    <tr>\n      <td>Problemas con CSV<\/td>\n      <td>Delimitadores o codificaci\u00f3n incorrecta (UTF-8).<\/td>\n      <td>Guarda el CSV en UTF-8 y usa <code class=\"\" data-line=\"\">.mode csv<\/code> antes de importar.<\/td>\n    <\/tr>\n    <tr>\n      <td><code class=\"\" data-line=\"\">malformed database schema<\/code><\/td>\n      <td>Modificaci\u00f3n manual o fallo en migraci\u00f3n.<\/td>\n      <td>Exporta a SQL (<code class=\"\" data-line=\"\">.dump<\/code>) y reconstruye la base.<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2><span class=\"ez-toc-section\" id=\"125_Diferencias_por_PRAGMAs\"><\/span>12.5 Diferencias por PRAGMAs<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Si una consulta no se comporta igual entre entornos, revisa tus <code class=\"\" data-line=\"\">PRAGMA<\/code>. El modo WAL, la sincronizaci\u00f3n y las claves for\u00e1neas pueden alterar resultados.<\/p>\n\n<pre class=\"brush: sql; first-line: 1;\">\nPRAGMA foreign_keys;\nPRAGMA journal_mode;\nPRAGMA synchronous;\n<\/pre>\n\n<hr \/>\n\n<h1><span class=\"ez-toc-section\" id=\"13_Checklist_final_de_produccion\"><\/span>13. Checklist final de producci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n<p>Antes de usar SQLite en entornos reales o compartir tu base de datos, repasa estos puntos clave:<\/p>\n\n<ul>\n  <li>\u2705 <strong>Integridad activada<\/strong>: <code class=\"\" data-line=\"\">PRAGMA foreign_keys = ON;<\/code><\/li>\n  <li>\u2705 <strong>Modo WAL<\/strong> habilitado para concurrencia y rendimiento.<\/li>\n  <li>\u2705 <strong>Backups verificados<\/strong> con <code class=\"\" data-line=\"\">.backup<\/code> o <code class=\"\" data-line=\"\">sqlite3 &quot;.dump&quot;<\/code>.<\/li>\n  <li>\u2705 <strong>Permisos 600<\/strong> en el archivo <code class=\"\" data-line=\"\">.db<\/code> (solo propietario).<\/li>\n  <li>\u2705 <strong>Ruta segura<\/strong> fuera del directorio p\u00fablico web.<\/li>\n  <li>\u2705 <strong>Vacuum<\/strong> ejecutado tras grandes eliminaciones.<\/li>\n  <li>\u2705 <strong>PRAGMA integrity_check;<\/strong> pasado sin errores.<\/li>\n<\/ul>\n\n<h2><span class=\"ez-toc-section\" id=\"134_Automatizacion_de_copias\"><\/span>13.4 Automatizaci\u00f3n de copias<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>Puedes programar un cron diario para guardar copias autom\u00e1ticas:<\/p>\n\n<pre class=\"brush: sh; first-line: 1;\">\n0 3 * * * sqlite3 \/home\/javier\/sqlite\/produccion.db \\\n\".backup '\/home\/javier\/backups\/produccion_$(date +\\%F).db'\"\n<\/pre>\n\n<div class=\"nota\">\n  <strong>Consejo:<\/strong> Conserva al menos 7 d\u00edas de copias y verifica que las copias est\u00e9n accesibles antes de eliminar las antiguas.\n<\/div>\n\n<hr \/>\n\n<h1><span class=\"ez-toc-section\" id=\"14_Resumen_y_siguientes_pasos\"><\/span>14. Resumen y siguientes pasos<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n<h2><span class=\"ez-toc-section\" id=\"141_Recapitulacion\"><\/span>14.1 Recapitulaci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>SQLite en Debian 13 ofrece una soluci\u00f3n de base de datos r\u00e1pida, ligera y sin mantenimiento. Su filosof\u00eda \u201ccero configuraci\u00f3n\u201d lo convierte en un aliado perfecto para desarrolladores, docentes y entornos embebidos.<\/p>\n\n<p>En este curso hemos aprendido a:<\/p>\n\n<ul>\n  <li>Instalar y usar <code class=\"\" data-line=\"\">sqlite3<\/code> desde la terminal.<\/li>\n  <li>Crear, consultar e importar datos f\u00e1cilmente.<\/li>\n  <li>Optimizar el rendimiento mediante \u00edndices, transacciones y PRAGMAs.<\/li>\n  <li>Usar DB Browser for SQLite para administraci\u00f3n visual.<\/li>\n  <li>Garantizar seguridad, backups y despliegues fiables.<\/li>\n<\/ul>\n\n<h2><span class=\"ez-toc-section\" id=\"142_Cuando_usar_SQLite\"><\/span>14.2 Cu\u00e1ndo usar SQLite<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<span class=\"tabla-titulo\">SQLite vs motores cliente-servidor<\/span>\n<table class=\"tabla-azul\">\n  <thead>\n    <tr><th>Situaci\u00f3n<\/th><th>SQLite<\/th><th>MySQL \/ PostgreSQL<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>Prototipos, desarrollo local<\/td><td>\u2705 Ideal<\/td><td>Sobrecalificado<\/td>\n    <\/tr>\n    <tr>\n      <td>Aplicaciones m\u00f3viles o IoT<\/td><td>\u2705 Perfecto<\/td><td>No aplicable<\/td>\n    <\/tr>\n    <tr>\n      <td>Servidor multiusuario concurrente<\/td><td>\u274c Limitado<\/td><td>\u2705 Recomendado<\/td>\n    <\/tr>\n    <tr>\n      <td>Administraci\u00f3n sin servidor<\/td><td>\u2705 Sin configuraci\u00f3n<\/td><td>\u274c Requiere servicio activo<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2><span class=\"ez-toc-section\" id=\"143_Recursos_oficiales_y_documentacion\"><\/span>14.3 Recursos oficiales y documentaci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<ul>\n  <li><a href=\"https:\/\/www.sqlite.org\/docs.html\" target=\"_blank\" rel=\"noopener\">Documentaci\u00f3n oficial de SQLite<\/a><\/li>\n  <li><a href=\"https:\/\/sqlitebrowser.org\/\" target=\"_blank\" rel=\"noopener\">DB Browser for SQLite<\/a><\/li>\n  <li><a href=\"https:\/\/packages.debian.org\/trixie\/sqlite3\" target=\"_blank\" rel=\"noopener\">Paquete sqlite3 en Debian 13<\/a><\/li>\n  <li><a href=\"https:\/\/packages.debian.org\/trixie\/sqlitebrowser\" target=\"_blank\" rel=\"noopener\">Paquete sqlitebrowser en Debian 13<\/a><\/li>\n<\/ul>\n\n<hr \/>\n\n<h1><span class=\"ez-toc-section\" id=\"A_Apendices\"><\/span>A. Ap\u00e9ndices<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n<h2><span class=\"ez-toc-section\" id=\"A1_Hoja_de_comandos_del_shell_sqlite3\"><\/span>A.1 Hoja de comandos del shell sqlite3<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<span class=\"tabla-titulo\">Comandos m\u00e1s usados<\/span>\n<table class=\"tabla-azul\">\n  <thead>\n    <tr><th>Acci\u00f3n<\/th><th>Comando<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr><td>Listar tablas<\/td><td><code class=\"\" data-line=\"\">.tables<\/code><\/td><\/tr>\n    <tr><td>Ver estructura<\/td><td><code class=\"\" data-line=\"\">.schema &lt;tabla&gt;<\/code><\/td><\/tr>\n    <tr><td>Resultados legibles<\/td><td><code class=\"\" data-line=\"\">.headers on<\/code> + <code class=\"\" data-line=\"\">.mode column<\/code><\/td><\/tr>\n    <tr><td>Importar CSV<\/td><td><code class=\"\" data-line=\"\">.mode csv<\/code> + <code class=\"\" data-line=\"\">.import fichero.csv tabla<\/code><\/td><\/tr>\n    <tr><td>Backup<\/td><td><code class=\"\" data-line=\"\">.backup copia.db<\/code><\/td><\/tr>\n    <tr><td>Salir<\/td><td><code class=\"\" data-line=\"\">.quit<\/code><\/td><\/tr>\n  <\/tbody>\n<\/table>\n\n<h2><span class=\"ez-toc-section\" id=\"A2_Plantillas_SQL_basicas\"><\/span>A.2 Plantillas SQL b\u00e1sicas<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<pre class=\"brush: sql; first-line: 1;\">\nCREATE TABLE ejemplo (\n  id INTEGER PRIMARY KEY,\n  nombre TEXT NOT NULL,\n  fecha TEXT DEFAULT (date('now'))\n);\n\nINSERT INTO ejemplo (nombre) VALUES ('Entrada 1');\nSELECT * FROM ejemplo;\n<\/pre>\n\n<h2><span class=\"ez-toc-section\" id=\"A3_Script_de_backup_automatico\"><\/span>A.3 Script de backup autom\u00e1tico<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<pre class=\"brush: sh; first-line: 1;\">\n#!\/bin\/bash\nDB=\"\/home\/javier\/sqlite\/produccion.db\"\nDEST=\"\/home\/javier\/backups\"\nmkdir -p \"$DEST\"\nsqlite3 \"$DB\" \".backup '$DEST\/produccion_$(date +%F).db'\"\necho \"Backup completado en $(date)\"\n<\/pre>\n\n<h2><span class=\"ez-toc-section\" id=\"A4_Bibliografia_y_enlaces\"><\/span>A.4 Bibliograf\u00eda y enlaces<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n  <li><a href=\"https:\/\/www.sqlite.org\/cli.html\" target=\"_blank\" rel=\"noopener\">SQLite Command-Line Interface<\/a><\/li>\n  <li><a href=\"https:\/\/wiki.debian.org\/SQLite\" target=\"_blank\" rel=\"noopener\">SQLite en Debian Wiki<\/a><\/li>\n  <li><a href=\"https:\/\/sqlitebrowser.org\/docs\/\" target=\"_blank\" rel=\"noopener\">Documentaci\u00f3n DB Browser<\/a><\/li>\n  <li><a href=\"https:\/\/www.sqlite.org\/pragma.html\" target=\"_blank\" rel=\"noopener\">Listado de PRAGMAs de SQLite<\/a><\/li>\n<\/ul>\n\n<div class=\"nota\">\n  <strong>Conclusi\u00f3n final:<\/strong> SQLite representa la elegancia de lo simple: un solo archivo, toda una base de datos. En Debian 13 es estable, moderno y totalmente integrado. Ideal para tus proyectos personales, acad\u00e9micos o de desarrollo local.\n<\/div>\n\n<div style='text-align:center' class='yasr-auto-insert-overall'><\/div><div style='text-align:center' class='yasr-auto-insert-visitor'><\/div>","protected":false},"excerpt":{"rendered":"<p>SQLite es una biblioteca de c\u00f3digo abierto que implementa un sistema de gesti\u00f3n de bases de datos relacionales muy ligero. Su principal caracter\u00edstica es que no requiere un servidor independiente, ya que se integra directamente como una biblioteca en la aplicaci\u00f3n, y toda la base de datos se almacena en un solo archivo. Es ideal para aplicaciones de un solo usuario, dispositivos m\u00f3viles y aplicaciones embebidas, y se diferencia de sistemas cliente-servidor como MySQL por su simplicidad y portabilidad. <\/p>\n","protected":false},"author":1,"featured_media":7261,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[5,176,3],"tags":[295,296],"class_list":["post-7260","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desarrollo","category-desarrollo-web","category-sistemas","tag-bases-datos","tag-sql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Gu\u00eda completa de SQLite en Debian 13: instalaci\u00f3n, gesti\u00f3n y herramientas gr\u00e1ficas. | javiercachon.com<\/title>\n<meta name=\"description\" content=\"SQLite es una base de datos relacional de c\u00f3digo abierto que se utiliza en una amplia variedad de aplicaciones, desde sistemas operativos hasta desarrollo web.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gu\u00eda completa de SQLite en Debian 13: instalaci\u00f3n, gesti\u00f3n y herramientas gr\u00e1ficas. | javiercachon.com\" \/>\n<meta property=\"og:description\" content=\"SQLite es una base de datos relacional de c\u00f3digo abierto que se utiliza en una amplia variedad de aplicaciones, desde sistemas operativos hasta desarrollo web.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/\" \/>\n<meta property=\"og:site_name\" content=\"javiercachon.com\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javiercachon82\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/javiercachon82\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-20T14:01:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-20T14:01:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/10\/SQLite.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Javier Cach\u00f3n Garrido\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/x.com\/udegeek\" \/>\n<meta name=\"twitter:site\" content=\"@udegeek\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Javier Cach\u00f3n Garrido\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/javiercachon.com\\\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\\\/\"},\"author\":{\"name\":\"Javier Cach\u00f3n Garrido\",\"@id\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/#\\\/schema\\\/person\\\/56ea56e1350676921cc43a3bcfd6c997\"},\"headline\":\"Gu\u00eda completa de SQLite en Debian 13: instalaci\u00f3n, gesti\u00f3n y herramientas gr\u00e1ficas.\",\"datePublished\":\"2025-10-20T14:01:42+00:00\",\"dateModified\":\"2025-10-20T14:01:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\\\/\"},\"wordCount\":2816,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/#\\\/schema\\\/person\\\/56ea56e1350676921cc43a3bcfd6c997\"},\"image\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/javiercachon.com\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/SQLite.jpg\",\"keywords\":[\"Bases Datos\",\"SQL\"],\"articleSection\":[\"Desarrollo\",\"Desarrollo Web\",\"Sistemas\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/javiercachon.com\\\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/javiercachon.com\\\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\\\/\",\"url\":\"https:\\\/\\\/javiercachon.com\\\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\\\/\",\"name\":\"Gu\u00eda completa de SQLite en Debian 13: instalaci\u00f3n, gesti\u00f3n y herramientas gr\u00e1ficas. | javiercachon.com\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/javiercachon.com\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/SQLite.jpg\",\"datePublished\":\"2025-10-20T14:01:42+00:00\",\"dateModified\":\"2025-10-20T14:01:46+00:00\",\"description\":\"SQLite es una base de datos relacional de c\u00f3digo abierto que se utiliza en una amplia variedad de aplicaciones, desde sistemas operativos hasta desarrollo web.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/javiercachon.com\\\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/javiercachon.com\\\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\\\/#primaryimage\",\"url\":\"https:\\\/\\\/javiercachon.com\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/SQLite.jpg\",\"contentUrl\":\"https:\\\/\\\/javiercachon.com\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/SQLite.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/javiercachon.com\\\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"inicio\",\"item\":\"https:\\\/\\\/javiercachon.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Gu\u00eda completa de SQLite en Debian 13: instalaci\u00f3n, gesti\u00f3n y herramientas gr\u00e1ficas.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/#website\",\"url\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/\",\"name\":\"javiercachon.com\",\"description\":\"es una plataforma educativa revolucionaria que busca democratizar el acceso al conocimiento en inform\u00e1tica.\",\"publisher\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/#\\\/schema\\\/person\\\/56ea56e1350676921cc43a3bcfd6c997\"},\"alternateName\":\"javiercachon.com\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/#\\\/schema\\\/person\\\/56ea56e1350676921cc43a3bcfd6c997\",\"name\":\"Javier Cach\u00f3n Garrido\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/javiercachon.com\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Montanas-JC-logo-azul.jpg\",\"url\":\"https:\\\/\\\/javiercachon.com\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Montanas-JC-logo-azul.jpg\",\"contentUrl\":\"https:\\\/\\\/javiercachon.com\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Montanas-JC-logo-azul.jpg\",\"width\":250,\"height\":34,\"caption\":\"Javier Cach\u00f3n Garrido\"},\"logo\":{\"@id\":\"https:\\\/\\\/javiercachon.com\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Montanas-JC-logo-azul.jpg\"},\"description\":\"Javier Cach\u00f3n Garrido es un experto en inform\u00e1tica, apasionado por el c\u00f3digo abierto y la educaci\u00f3n tecnol\u00f3gica. Como fundador de JavierCachon.com, impulsa la formaci\u00f3n en GNU\\\/Linux y software libre, promoviendo el aprendizaje accesible y colaborativo. Su misi\u00f3n es democratizar el conocimiento en TI, ofreciendo recursos gratuitos y de calidad para profesionales y entusiastas del sector. Es un profeta y predicador que evangeliza la tecnolog\u00eda, la inform\u00e1tica y telecomunicaciones, acomp\u00e1\u00f1ale en su aventura y pasi\u00f3n por los sistemas operativos abiertos GNU\\\/Linux.\",\"sameAs\":[\"https:\\\/\\\/javiercachon.com\\\/\",\"https:\\\/\\\/www.facebook.com\\\/javiercachon82\",\"https:\\\/\\\/www.instagram.com\\\/edugeek\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/javiercachongarrido\\\/\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/x.com\\\/udegeek\",\"https:\\\/\\\/www.youtube.com\\\/@edugeek\",\"https:\\\/\\\/wiki.javiercachon.com\\\/wiki\\\/index.php\\\/Usuario:Ojosdegato\"],\"url\":\"https:\\\/\\\/javiercachon.com\\\/es\\\/author\\\/ojosdegato\\\/\"},false]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Gu\u00eda completa de SQLite en Debian 13: instalaci\u00f3n, gesti\u00f3n y herramientas gr\u00e1ficas. | javiercachon.com","description":"SQLite es una base de datos relacional de c\u00f3digo abierto que se utiliza en una amplia variedad de aplicaciones, desde sistemas operativos hasta desarrollo web.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/","og_locale":"es_ES","og_type":"article","og_title":"Gu\u00eda completa de SQLite en Debian 13: instalaci\u00f3n, gesti\u00f3n y herramientas gr\u00e1ficas. | javiercachon.com","og_description":"SQLite es una base de datos relacional de c\u00f3digo abierto que se utiliza en una amplia variedad de aplicaciones, desde sistemas operativos hasta desarrollo web.","og_url":"https:\/\/javiercachon.com\/es\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/","og_site_name":"javiercachon.com","article_publisher":"https:\/\/www.facebook.com\/javiercachon82","article_author":"https:\/\/www.facebook.com\/javiercachon82","article_published_time":"2025-10-20T14:01:42+00:00","article_modified_time":"2025-10-20T14:01:46+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/10\/SQLite.jpg","type":"image\/jpeg"}],"author":"Javier Cach\u00f3n Garrido","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/x.com\/udegeek","twitter_site":"@udegeek","twitter_misc":{"Escrito por":"Javier Cach\u00f3n Garrido","Tiempo de lectura":"13 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/javiercachon.com\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#article","isPartOf":{"@id":"https:\/\/javiercachon.com\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/"},"author":{"name":"Javier Cach\u00f3n Garrido","@id":"https:\/\/javiercachon.com\/es\/#\/schema\/person\/56ea56e1350676921cc43a3bcfd6c997"},"headline":"Gu\u00eda completa de SQLite en Debian 13: instalaci\u00f3n, gesti\u00f3n y herramientas gr\u00e1ficas.","datePublished":"2025-10-20T14:01:42+00:00","dateModified":"2025-10-20T14:01:46+00:00","mainEntityOfPage":{"@id":"https:\/\/javiercachon.com\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/"},"wordCount":2816,"commentCount":0,"publisher":{"@id":"https:\/\/javiercachon.com\/es\/#\/schema\/person\/56ea56e1350676921cc43a3bcfd6c997"},"image":{"@id":"https:\/\/javiercachon.com\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#primaryimage"},"thumbnailUrl":"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/10\/SQLite.jpg","keywords":["Bases Datos","SQL"],"articleSection":["Desarrollo","Desarrollo Web","Sistemas"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/javiercachon.com\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/javiercachon.com\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/","url":"https:\/\/javiercachon.com\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/","name":"Gu\u00eda completa de SQLite en Debian 13: instalaci\u00f3n, gesti\u00f3n y herramientas gr\u00e1ficas. | javiercachon.com","isPartOf":{"@id":"https:\/\/javiercachon.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/javiercachon.com\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#primaryimage"},"image":{"@id":"https:\/\/javiercachon.com\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#primaryimage"},"thumbnailUrl":"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/10\/SQLite.jpg","datePublished":"2025-10-20T14:01:42+00:00","dateModified":"2025-10-20T14:01:46+00:00","description":"SQLite es una base de datos relacional de c\u00f3digo abierto que se utiliza en una amplia variedad de aplicaciones, desde sistemas operativos hasta desarrollo web.","breadcrumb":{"@id":"https:\/\/javiercachon.com\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/javiercachon.com\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/javiercachon.com\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#primaryimage","url":"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/10\/SQLite.jpg","contentUrl":"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/10\/SQLite.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/javiercachon.com\/guia-completa-de-sqlite-en-debian-13-instalacion-gestion-y-herramientas-graficas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"inicio","item":"https:\/\/javiercachon.com\/"},{"@type":"ListItem","position":2,"name":"Gu\u00eda completa de SQLite en Debian 13: instalaci\u00f3n, gesti\u00f3n y herramientas gr\u00e1ficas."}]},{"@type":"WebSite","@id":"https:\/\/javiercachon.com\/es\/#website","url":"https:\/\/javiercachon.com\/es\/","name":"javiercachon.com","description":"es una plataforma educativa revolucionaria que busca democratizar el acceso al conocimiento en inform\u00e1tica.","publisher":{"@id":"https:\/\/javiercachon.com\/es\/#\/schema\/person\/56ea56e1350676921cc43a3bcfd6c997"},"alternateName":"javiercachon.com","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/javiercachon.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":["Person","Organization"],"@id":"https:\/\/javiercachon.com\/es\/#\/schema\/person\/56ea56e1350676921cc43a3bcfd6c997","name":"Javier Cach\u00f3n Garrido","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/javiercachon.com\/wp-content\/uploads\/2024\/11\/Montanas-JC-logo-azul.jpg","url":"https:\/\/javiercachon.com\/wp-content\/uploads\/2024\/11\/Montanas-JC-logo-azul.jpg","contentUrl":"https:\/\/javiercachon.com\/wp-content\/uploads\/2024\/11\/Montanas-JC-logo-azul.jpg","width":250,"height":34,"caption":"Javier Cach\u00f3n Garrido"},"logo":{"@id":"https:\/\/javiercachon.com\/wp-content\/uploads\/2024\/11\/Montanas-JC-logo-azul.jpg"},"description":"Javier Cach\u00f3n Garrido es un experto en inform\u00e1tica, apasionado por el c\u00f3digo abierto y la educaci\u00f3n tecnol\u00f3gica. Como fundador de JavierCachon.com, impulsa la formaci\u00f3n en GNU\/Linux y software libre, promoviendo el aprendizaje accesible y colaborativo. Su misi\u00f3n es democratizar el conocimiento en TI, ofreciendo recursos gratuitos y de calidad para profesionales y entusiastas del sector. Es un profeta y predicador que evangeliza la tecnolog\u00eda, la inform\u00e1tica y telecomunicaciones, acomp\u00e1\u00f1ale en su aventura y pasi\u00f3n por los sistemas operativos abiertos GNU\/Linux.","sameAs":["https:\/\/javiercachon.com\/","https:\/\/www.facebook.com\/javiercachon82","https:\/\/www.instagram.com\/edugeek\/","https:\/\/www.linkedin.com\/in\/javiercachongarrido\/","https:\/\/x.com\/https:\/\/x.com\/udegeek","https:\/\/www.youtube.com\/@edugeek","https:\/\/wiki.javiercachon.com\/wiki\/index.php\/Usuario:Ojosdegato"],"url":"https:\/\/javiercachon.com\/es\/author\/ojosdegato\/"},false]}},"yasr_visitor_votes":{"stars_attributes":{"read_only":false,"span_bottom":false},"number_of_votes":0,"sum_votes":0},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/javiercachon.com\/wp-content\/uploads\/2025\/10\/SQLite.jpg","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/posts\/7260","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/comments?post=7260"}],"version-history":[{"count":8,"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/posts\/7260\/revisions"}],"predecessor-version":[{"id":7269,"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/posts\/7260\/revisions\/7269"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/media\/7261"}],"wp:attachment":[{"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/media?parent=7260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/categories?post=7260"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/javiercachon.com\/es\/wp-json\/wp\/v2\/tags?post=7260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}