Administrar Bases De Datos PostgreSQL Desde La Línea De Comandos

Ahora es un buen momento para aprender bases de datos relacionales y SQL. Desde el desarrollo web hasta la ciencia de datos, se utilizan en todas partes.

En la encuesta Stack Overflow 2021 , 4 de las 5 principales tecnologías de bases de datos utilizadas por los desarrolladores profesionales eran sistemas de gestión de bases de datos relacionales.  

PostgreSQL es una excelente opción como primer sistema de administración de bases de datos relacionales para aprender.

  1. Es ampliamente utilizado en la industria, incluso en Uber, Netflix, Instagram, Spotify y Twitch .
  2. Es de código abierto, por lo que no estará limitado a un proveedor en particular.
  3. Tiene más de 25 años y en ese tiempo se ha ganado una reputación de estabilidad y confiabilidad.

Ya sea que esté aprendiendo de la certificación de base de datos relacional freeCodeCamp o esté probando PostgreSQL en su propia computadora, necesita una forma de crear y administrar bases de datos, insertar datos en ellas y consultar datos de ellas.

Si bien existen varias aplicaciones gráficas para interactuar con PostgreSQL, usar psql y la línea de comandos es probablemente la forma más directa de comunicarse con su base de datos.

¿Qué es psql?

psql es una herramienta que le permite interactuar con bases de datos PostgreSQL a través de una interfaz de terminal. Cuando instala PostgreSQL en una máquina, psql se incluye automáticamente.

psql le permite escribir consultas SQL, enviarlas a PostgreSQL y ver los resultados. También le permite usar metacomandos (que comienzan con una barra invertida) para administrar las bases de datos. Incluso puede escribir scripts y automatizar tareas relacionadas con sus bases de datos.

Ahora, ejecutar una base de datos en su computadora local y usar la línea de comando puede parecer intimidante al principio. Estoy aquí para decirles que realmente no es tan malo. Esta guía le enseñará los aspectos básicos de la administración de bases de datos de PostgreSQL desde la línea de comandos, incluido cómo crear, administrar, respaldar y restaurar bases de datos.

Requisito previo: instalar PostgreSQL

Si aún no ha instalado PostgreSQL en su computadora, siga las instrucciones para su sistema operativo en la documentación oficial de PostgreSQL .

Cuando instale PostgreSQL, se le pedirá una contraseña. Guárdelo en un lugar seguro, ya que lo necesitará para conectarse a cualquier base de datos que cree.

Cómo conectarse a una base de datos

Tiene dos opciones cuando usa psql para conectarse a una base de datos: puede conectarse a través de la línea de comando o usando la aplicación psql. Ambos proporcionan prácticamente la misma experiencia.

Opción 1: conectarse a una base de datos con la línea de comando

Abre una terminal. Puede asegurarse de que psql esté instalado escribiendo psql --version. Debería ver psql (PostgreSQL) version_numberdónde version_numberestá la versión de PostgreSQL que está instalada en su máquina. En mi caso, es 14.1.

Comprobando la versión de psql a través de la línea de comando

Comprobando la versión de psql a través de la línea de comando

El patrón para conectarse a una base de datos es:

psql -d database_name -U username

La -dbandera es una alternativa más corta para --dbnamewhile -Ues una alternativa para --username.

Cuando instaló PostgreSQL, se crearon una base de datos y un usuario predeterminados, ambos llamados postgres. Así que ingrese psql -d postgres -U postgrespara conectarse a la postgresbase de datos como postgressuperusuario.

psql -d postgres -U postgres

Se te solicitará una contraseña. Ingrese la contraseña que eligió cuando instaló PostgreSQL en su computadora. El indicador de su terminal cambiará para mostrar que ahora está conectado a la base de postgresdatos.

Conexión a una base de datos desde la línea de comandos con psql

Conexión a una base de datos desde la línea de comandos con psql

Si desea conectarse directamente a una base de datos como usted mismo (en lugar de como postgressuperusuario), ingrese el nombre de usuario de su sistema como el valor de nombre de usuario.

Opción 2: conectarse a una base de datos con la aplicación psql

Inicie la aplicación psql: se llamará "SQL Shell (psql)". Se le pedirá un servidor, una base de datos, un puerto y un nombre de usuario. Simplemente presione enter para seleccionar los valores predeterminados, que son localhost, postgres, 5432y postgres.

A continuación, se le pedirá la contraseña que eligió cuando instaló PostgreSQL. Una vez que ingrese esto, el indicador de su terminal cambiará para mostrar que está conectado a la base de postgresdatos.

Conexión a una base de datos con la aplicación psql

Conexión a una base de datos con la aplicación psql

Nota: si está en Windows, es posible que vea una advertencia como “La página de códigos de la consola (850) difiere de la página de códigos de Windows (1252) Es posible que los caracteres de 8 bits no funcionen correctamente. Consulte la página de referencia de psql 'Notas para usuarios de Windows' para obtener más detalles". No necesita preocuparse por esto en esta etapa. Si desea obtener más información al respecto, consulte la documentación de psql .

Cómo obtener ayuda en psql

Para ver una lista de todos los metacomandos de psql y un breve resumen de lo que hacen, use el \?comando.

\?

comando de ayuda de psql

comando de ayuda de psql

Si desea ayuda con un comando de PostgreSQL, use \ho \helpy el comando.

\h COMMAND

Esto le dará una descripción del comando, su sintaxis (con partes opcionales entre corchetes) y una URL para la parte relevante de la documentación de PostgreSQL.

psql que describe la instrucción DROP TABLE

psql que describe la instrucción DROP TABLE

Cómo salir de un comando en psql

Si ejecutó un comando que tarda mucho tiempo o imprime demasiada información en la consola, puede salir escribiendo q.

q

Cómo crear una base de datos

Antes de que pueda administrar cualquier base de datos, deberá crear una.

Nota: los comandos SQL deben terminar con un punto y coma, mientras que los metacomandos (que comienzan con una barra invertida) no necesitan hacerlo.

El comando SQL para crear una base de datos es:

CREATE DATABASE database_name;

Para esta guía, vamos a trabajar con datos de libros, así que vamos a crear una base de datos llamada books_db.

CREATE DATABASE books_db;

Cómo enumerar bases de datos

Puede ver una lista de todas las bases de datos disponibles con el comando list.

\l

Listado de todas las bases de datos

Listado de todas las bases de datos

Debería ver books_db, así como postgres, template0y template1. (El CREATE DATABASEcomando en realidad funciona copiando la base de datos estándar, llamada template1. Puede leer más sobre esto en la documentación de PostgreSQL ).

El uso \l+mostrará información adicional, como el tamaño de las bases de datos y sus espacios de tabla (la ubicación en el sistema de archivos donde se almacenarán los archivos que representan la base de datos).

\l+

Listado de todas las bases de datos con información adicional

Listado de todas las bases de datos con información adicional

Cómo cambiar bases de datos

Actualmente sigues conectado a la base de datos predeterminada postgres. Para conectarse a una base de datos o cambiar entre bases de datos, use el \ccomando.

\c database_name

Entonces \c books_dblo conectará a la base de books_dbdatos. Tenga en cuenta que el aviso de su terminal cambia para reflejar la base de datos a la que está conectado actualmente.

Cambio de bases de datos

Cambio de bases de datos

Cómo eliminar una base de datos

Si desea eliminar una base de datos, use el DROP DATABASEcomando.

DROP DATABASE database_name;

Solo podrá eliminar una base de datos si es un superusuario, como postgres, o si es el propietario de la base de datos.

Si intenta eliminar una base de datos que no existe, obtendrá un error. Úselo IF EXISTSpara obtener un aviso en su lugar.

DROP DATABASE IF EXISTS database_name;

Eliminación de una base de datos

Eliminación de una base de datos

No puede eliminar una base de datos que tenga conexiones activas. Entonces, si desea eliminar la base de datos a la que está conectado actualmente, deberá cambiar a otra base de datos.

Cómo crear tablas

Antes de que podamos administrar tablas, debemos crear algunas y completarlas con algunos datos de muestra.

El comando para crear una tabla es:

CREATE TABLE table_name();

Esto creará una tabla vacía. También puede pasar valores de columna entre paréntesis para crear una tabla con columnas. Como mínimo, una tabla básica debe tener una clave principal (un identificador único para diferenciar cada fila) y una columna con algunos datos.

Para nuestro books_db, crearemos una tabla para autores y otra para libros. Para los autores, registraremos su nombre y apellido. Para los libros, registraremos el título y el año en que se publicaron.

Nos aseguraremos de que los autores first_namey last_namelos libros titleno sean nulos, ya que esta es información bastante vital para saber sobre ellos. Para ello incluimos la NOT NULLrestricción.

CREATE TABLE authors(
	author_id SERIAL PRIMARY KEY, 
	first_name VARCHAR(100) NOT NULL, 
	last_name VARCHAR(100) NOT NULL
);

CREATE TABLE books(
	book_id SERIAL PRIMARY KEY, 
	title VARCHAR(100) NOT NULL, 
	published_year INT
);

Verá CREATE TABLEimpreso en la terminal si la tabla se creó correctamente.

Ahora conectemos las dos tablas agregando una clave externa a los libros. Las claves externas son identificadores únicos que hacen referencia a la clave principal de otra tabla. Los libros pueden, por supuesto, tener varios autores, pero no vamos a entrar en las complejidades de las relaciones de muchos a muchos en este momento.

Agregue una clave externa bookscon el siguiente comando:

ALTER TABLE books ADD COLUMN author_id INT REFERENCES authors(author_id);

A continuación, insertemos algunos datos de muestra en las tablas. Empezaremos con authors.

INSERT INTO authors (first_name, last_name) 
VALUES (‘Tamsyn’, ‘Muir’), (‘Ann’, ‘Leckie’), (‘Zen’, ‘Cho’);

Seleccione todo desde authorspara asegurarse de que el comando de inserción funcionó.

SELECT * FROM authors;

Consultar todos los datos de la tabla de autores

Consultar todos los datos de la tabla de autores

A continuación, insertaremos algunos datos de libros en books.

INSERT INTO books(title, published_year, author_id) 
VALUES (‘Gideon the Ninth’, 2019, 1), (‘Ancillary Justice’, 2013, 2), (‘Black Water Sister’, 2021, 3);

Si corres SELECT * FROM books;verás los datos del libro.

Consultar todos los datos de la tabla de libros

Consultar todos los datos de la tabla de libros

Cómo enumerar todas las tablas

Puede usar el \dtcomando para listar todas las tablas en una base de datos.

\dt

Porque books_dbverás booksy authors. También verá books_book_id_seqy authors_author_id_seq. Estos realizan un seguimiento de la secuencia de números enteros utilizados como identificadores por las tablas porque solíamos SERIALgenerar sus claves principales.

Listado de todas las tablas en una base de datos

Listado de todas las tablas en una base de datos

Cómo describir una tabla

Para ver más información sobre una tabla en particular, puede usar el comando describir tabla: \d table_name. Esto enumerará las columnas, los índices y cualquier referencia a otras tablas.

\d table_name

Describiendo la tabla de autores

Describiendo la tabla de autores

El uso \dt+ table_nameproporcionará más información, como sobre el almacenamiento y la compresión.

Cómo cambiar el nombre de una tabla

Si alguna vez necesita cambiar el nombre de una tabla, puede cambiarle el nombre con el ALTER TABLEcomando.

ALTER TABLE table_name RENAME TO new_table_name;

Cómo eliminar una tabla

Si desea eliminar una tabla, puede usar el DROP TABLEcomando.

DROP TABLE table_name;

Si intenta eliminar una tabla que no existe, obtendrá un error. Puede evitar esto al incluir la IF EXISTSopción en la instrucción. De esta manera, recibirá un aviso en su lugar.

DROP TABLE IF EXISTS table_name;

Cómo administrar comandos y consultas más largos

Si está escribiendo consultas SQL más largas, la línea de comandos no es la forma más ergonómica de hacerlo. Probablemente sea mejor escribir su SQL en un archivo y luego hacer que psql lo ejecute.

Si está trabajando con psql y cree que su próxima consulta será larga, puede abrir un editor de texto desde psql y escribirlo allí. Si tiene una consulta existente, o tal vez desee ejecutar varias consultas para cargar datos de muestra, puede ejecutar comandos desde un archivo que ya está escrito.

Opción 1: abre un editor de texto desde psql

Si ingresa el \ecomando, psql abrirá un editor de texto. Cuando guarde y cierre el editor, psql ejecutará el comando que acaba de escribir.

\e

Escribir comandos en un editor de texto

Escribir comandos en un editor de texto

En Windows, el editor de texto predeterminado para psql es Notepad, mientras que en MacOs y Linux es vi. Puede cambiar esto a otro editor configurando el EDITORvalor en las variables de entorno de su computadora.

Opción 2: ejecutar comandos y consultas desde un archivo

Si tiene comandos particularmente largos o múltiples comandos que desea ejecutar, sería mejor escribir el SQL en un archivo con anticipación y hacer que psql ejecute ese archivo una vez que esté listo.

El \icomando le permite leer la entrada de un archivo como si lo hubiera escrito en la terminal.

\i path_to_file/file_name.sql

Nota: si está ejecutando este comando en Windows, aún necesita usar barras diagonales en la ruta del archivo.

Si no especifica una ruta, psql buscará el archivo en el último directorio en el que estuvo antes de conectarse a PostgreSQL.

Ejecutar comandos SQL desde un archivo

Ejecutar comandos SQL desde un archivo

Cómo cronometrar consultas

Si desea ver cuánto tardan sus consultas, puede activar el tiempo de ejecución de consultas.

\timing

Esto mostrará en milisegundos el tiempo que tardó en completarse la consulta.

Si \timingvuelve a ejecutar el comando, desactivará el tiempo de ejecución de la consulta.

Uso del tiempo de ejecución de consultas

Uso del tiempo de ejecución de consultas

Cómo importar datos desde un archivo CSV

Si tiene un archivo CSV con datos y desea cargarlo en una base de datos PostgreSQL, puede hacerlo desde la línea de comandos con psql.

Primero, cree un archivo CSV llamado films.csvcon la siguiente estructura (no importa si usa Excel, Google Sheets, Numbers o cualquier otro programa).

Una hoja de cálculo con datos de películas de Pixar

Una hoja de cálculo con datos de películas de Pixar

Abra psql y cree una films_dbbase de datos, conéctese a ella y cree una filmstabla.

CREATE DATABASE films_db;

\c films_db

CREATE TABLE films(
	id SERIAL PRIMARY KEY,
	title VARCHAR(100),
	year INT,
	running_time INT
);

Luego puede usar el \copycomando para importar el archivo CSV a films. Debe proporcionar una ruta absoluta a donde se encuentra el archivo CSV en su computadora.

\copy films(title, year, running_time) FROM 'path_to_file' DELIMITER ‘,’ CSV HEADER;

La DELIMITERopción especifica el carácter que separa las columnas en cada fila del archivo que se está importando, CSVespecifica que es un archivo CSV y HEADERespecifica que el archivo contiene una línea de encabezado con los nombres de las columnas.

Nota: No es necesario que los nombres de las columnas de la filmstabla coincidan con los nombres de las columnas, films.csvpero sí deben estar en el mismo orden.

Úselo SELECT * FROM films;para ver si el proceso fue exitoso.

Importación de datos desde un archivo .csv.

Importación de datos desde un archivo .csv

Cómo hacer una copia de seguridad de una base de datos conpg_dump

Si necesita hacer una copia de seguridad de una base de datos, pg_dumphay una utilidad que le permite extraer una base de datos en un archivo de script SQL u otro tipo de archivo comprimido.

Primero, en la línea de comando (no en psql), navegue a la bincarpeta PostgreSQL.

cd "C:\Program Files\PostgreSQL\14\bin"

Luego ejecute el siguiente comando, usando postgrescomo nombre de usuario y completando la base de datos y el archivo de salida que desea usar.

pg_dump -U username database_name > path_to_file/filename.sql

Úselo postgrespara el nombre de usuario y se le pedirá la postgrescontraseña de superusuario. pg_dumpluego creará un .sqlarchivo que contiene los comandos SQL necesarios para recrear la base de datos.

Copia de seguridad de una base de datos en un archivo .sql.

Copia de seguridad de una base de datos en un archivo .sql

Si no especifica una ruta para el archivo de salida, pg_dumpguardará el archivo en el último directorio en el que estuvo antes de conectarse a PostgreSQL.

Contenido del archivo de copia de seguridad films.sql

Contenido del archivo de copia de seguridad films.sql

Puede pasar la bandera -vo a para ver qué está haciendo en cada paso.--verbosepg_dumppg_dump

Ejecutando pg_dump en modo detallado.

Ejecutando pg_dump en modo detallado

También puede hacer una copia de seguridad de una base de datos en otros formatos de archivo, como .tar(un formato de archivo).

pg_dump -U username -F t database_name > path_to_file/filename.tar

Aquí la -Fbandera le dice pg_dumpque va a especificar un formato de salida, mientras tque le dice que va a estar en el .tarformato.

Cómo restaurar una base de datos

Puede restaurar una base de datos desde un archivo de respaldo utilizando psql o la pg_restoreutilidad. El que elija depende del tipo de archivo desde el que está restaurando la base de datos.

  1. Si realizó una copia de seguridad de la base de datos en un formato de texto sin formato, como .sql, use psql.
  2. Si realizó una copia de seguridad de la base de datos en un formato de archivo, como .tar, use pg_restore.

Opción 1: restaurar una base de datos usando psql

Para restaurar una base de datos desde un .sqlarchivo, en la línea de comando (no en psql), use psql -U username -d database_name -f filename.sql.

Puede utilizar la base de films_dbdatos y films.sqlel archivo que utilizó anteriormente o crear un nuevo archivo de copia de seguridad.

Cree una base de datos vacía para que el archivo restaure los datos. Si está utilizando films.sqlpara restaurar films_db, lo más fácil podría ser eliminarlo films_dby volver a crearlo.

DROP DATABASE films_db;

CREATE DATABASE films_db;

En una terminal separada (no en psql), ejecute el siguiente comando, pasándolo postgrescomo el nombre de usuario y los nombres de la base de datos y el archivo de copia de seguridad que está utilizando.

psql -U username -d database_name -f path_to_file/filename.sql

La -dbandera apunta a psql a una base de datos específica, mientras que la -fbandera le dice a psql que lea desde el archivo especificado.

Si no especifica una ruta para el archivo de respaldo, psql buscará el archivo en el último directorio en el que estuvo antes de conectarse a PostgreSQL.

Se le pedirá la postgrescontraseña de superusuario y luego verá una serie de comandos impresos en la línea de comandos mientras psql recrea la base de datos.

Restaurar una base de datos usando psql.

Restaurar una base de datos usando psql

Este comando ignora cualquier error que ocurra durante la restauración. Si desea dejar de restaurar la base de datos si se produce un error, pase --set ON_ERROR_STOP=on.

psql -U username -d database_name --set ON_ERROR_STOP=on -f filename.sql

Opción 2: restaurar una base de datos usandopg_restore

Para restaurar una base de datos usando pg_restore, use pg_restore -U username -d database_name path_to_file/filename.tar.

Cree una base de datos vacía para que el archivo restaure los datos. Si está restaurando films_dbdesde un films.tararchivo, lo más fácil podría ser eliminarlo films_dby volver a crearlo.

DROP DATABASE films_db;

CREATE DATABASE films_db;

En la línea de comando (no en psql), ejecute el siguiente comando, pasándolo postgrescomo nombre de usuario y los nombres de la base de datos y el archivo de copia de seguridad que está utilizando.

pg_restore -U username -d database_name path_to_file/filename.tar

Restaurar una base de datos usando pg_restore

Restaurar una base de datos usando pg_restore

También puede pasar la bandera -vo --verbosepara ver qué pg_restoreestá haciendo en cada paso.

Usando pg_restore en modo detallado

Usando pg_restore en modo detallado

Cómo salir de psql

Si ha terminado con psql y quiere salir de él, ingrese quito \q.

\q

Esto cerrará la aplicación psql si la estaba usando, o lo regresará a su símbolo del sistema habitual si estaba usando psql desde la línea de comandos.

Dónde tomarlo desde aquí

Hay muchas más cosas que puede hacer con psql, como administrar esquemas, roles y espacios de tablas. Pero esta guía debería ser suficiente para comenzar a administrar bases de datos PostgreSQL desde la línea de comandos.

Espero que esta guía le resulte útil a medida que continúa aprendiendo sobre PostgreSQL y las bases de datos relacionales.

Esta historia se publicó originalmente en https://www.freecodecamp.org/news/manage-postgresql-with-psql/

#psql #postgresql 

What is GEEK

Buddha Community

Administrar Bases De Datos PostgreSQL Desde La Línea De Comandos

Administrar Bases De Datos PostgreSQL Desde La Línea De Comandos

Ahora es un buen momento para aprender bases de datos relacionales y SQL. Desde el desarrollo web hasta la ciencia de datos, se utilizan en todas partes.

En la encuesta Stack Overflow 2021 , 4 de las 5 principales tecnologías de bases de datos utilizadas por los desarrolladores profesionales eran sistemas de gestión de bases de datos relacionales.  

PostgreSQL es una excelente opción como primer sistema de administración de bases de datos relacionales para aprender.

  1. Es ampliamente utilizado en la industria, incluso en Uber, Netflix, Instagram, Spotify y Twitch .
  2. Es de código abierto, por lo que no estará limitado a un proveedor en particular.
  3. Tiene más de 25 años y en ese tiempo se ha ganado una reputación de estabilidad y confiabilidad.

Ya sea que esté aprendiendo de la certificación de base de datos relacional freeCodeCamp o esté probando PostgreSQL en su propia computadora, necesita una forma de crear y administrar bases de datos, insertar datos en ellas y consultar datos de ellas.

Si bien existen varias aplicaciones gráficas para interactuar con PostgreSQL, usar psql y la línea de comandos es probablemente la forma más directa de comunicarse con su base de datos.

¿Qué es psql?

psql es una herramienta que le permite interactuar con bases de datos PostgreSQL a través de una interfaz de terminal. Cuando instala PostgreSQL en una máquina, psql se incluye automáticamente.

psql le permite escribir consultas SQL, enviarlas a PostgreSQL y ver los resultados. También le permite usar metacomandos (que comienzan con una barra invertida) para administrar las bases de datos. Incluso puede escribir scripts y automatizar tareas relacionadas con sus bases de datos.

Ahora, ejecutar una base de datos en su computadora local y usar la línea de comando puede parecer intimidante al principio. Estoy aquí para decirles que realmente no es tan malo. Esta guía le enseñará los aspectos básicos de la administración de bases de datos de PostgreSQL desde la línea de comandos, incluido cómo crear, administrar, respaldar y restaurar bases de datos.

Requisito previo: instalar PostgreSQL

Si aún no ha instalado PostgreSQL en su computadora, siga las instrucciones para su sistema operativo en la documentación oficial de PostgreSQL .

Cuando instale PostgreSQL, se le pedirá una contraseña. Guárdelo en un lugar seguro, ya que lo necesitará para conectarse a cualquier base de datos que cree.

Cómo conectarse a una base de datos

Tiene dos opciones cuando usa psql para conectarse a una base de datos: puede conectarse a través de la línea de comando o usando la aplicación psql. Ambos proporcionan prácticamente la misma experiencia.

Opción 1: conectarse a una base de datos con la línea de comando

Abre una terminal. Puede asegurarse de que psql esté instalado escribiendo psql --version. Debería ver psql (PostgreSQL) version_numberdónde version_numberestá la versión de PostgreSQL que está instalada en su máquina. En mi caso, es 14.1.

Comprobando la versión de psql a través de la línea de comando

Comprobando la versión de psql a través de la línea de comando

El patrón para conectarse a una base de datos es:

psql -d database_name -U username

La -dbandera es una alternativa más corta para --dbnamewhile -Ues una alternativa para --username.

Cuando instaló PostgreSQL, se crearon una base de datos y un usuario predeterminados, ambos llamados postgres. Así que ingrese psql -d postgres -U postgrespara conectarse a la postgresbase de datos como postgressuperusuario.

psql -d postgres -U postgres

Se te solicitará una contraseña. Ingrese la contraseña que eligió cuando instaló PostgreSQL en su computadora. El indicador de su terminal cambiará para mostrar que ahora está conectado a la base de postgresdatos.

Conexión a una base de datos desde la línea de comandos con psql

Conexión a una base de datos desde la línea de comandos con psql

Si desea conectarse directamente a una base de datos como usted mismo (en lugar de como postgressuperusuario), ingrese el nombre de usuario de su sistema como el valor de nombre de usuario.

Opción 2: conectarse a una base de datos con la aplicación psql

Inicie la aplicación psql: se llamará "SQL Shell (psql)". Se le pedirá un servidor, una base de datos, un puerto y un nombre de usuario. Simplemente presione enter para seleccionar los valores predeterminados, que son localhost, postgres, 5432y postgres.

A continuación, se le pedirá la contraseña que eligió cuando instaló PostgreSQL. Una vez que ingrese esto, el indicador de su terminal cambiará para mostrar que está conectado a la base de postgresdatos.

Conexión a una base de datos con la aplicación psql

Conexión a una base de datos con la aplicación psql

Nota: si está en Windows, es posible que vea una advertencia como “La página de códigos de la consola (850) difiere de la página de códigos de Windows (1252) Es posible que los caracteres de 8 bits no funcionen correctamente. Consulte la página de referencia de psql 'Notas para usuarios de Windows' para obtener más detalles". No necesita preocuparse por esto en esta etapa. Si desea obtener más información al respecto, consulte la documentación de psql .

Cómo obtener ayuda en psql

Para ver una lista de todos los metacomandos de psql y un breve resumen de lo que hacen, use el \?comando.

\?

comando de ayuda de psql

comando de ayuda de psql

Si desea ayuda con un comando de PostgreSQL, use \ho \helpy el comando.

\h COMMAND

Esto le dará una descripción del comando, su sintaxis (con partes opcionales entre corchetes) y una URL para la parte relevante de la documentación de PostgreSQL.

psql que describe la instrucción DROP TABLE

psql que describe la instrucción DROP TABLE

Cómo salir de un comando en psql

Si ejecutó un comando que tarda mucho tiempo o imprime demasiada información en la consola, puede salir escribiendo q.

q

Cómo crear una base de datos

Antes de que pueda administrar cualquier base de datos, deberá crear una.

Nota: los comandos SQL deben terminar con un punto y coma, mientras que los metacomandos (que comienzan con una barra invertida) no necesitan hacerlo.

El comando SQL para crear una base de datos es:

CREATE DATABASE database_name;

Para esta guía, vamos a trabajar con datos de libros, así que vamos a crear una base de datos llamada books_db.

CREATE DATABASE books_db;

Cómo enumerar bases de datos

Puede ver una lista de todas las bases de datos disponibles con el comando list.

\l

Listado de todas las bases de datos

Listado de todas las bases de datos

Debería ver books_db, así como postgres, template0y template1. (El CREATE DATABASEcomando en realidad funciona copiando la base de datos estándar, llamada template1. Puede leer más sobre esto en la documentación de PostgreSQL ).

El uso \l+mostrará información adicional, como el tamaño de las bases de datos y sus espacios de tabla (la ubicación en el sistema de archivos donde se almacenarán los archivos que representan la base de datos).

\l+

Listado de todas las bases de datos con información adicional

Listado de todas las bases de datos con información adicional

Cómo cambiar bases de datos

Actualmente sigues conectado a la base de datos predeterminada postgres. Para conectarse a una base de datos o cambiar entre bases de datos, use el \ccomando.

\c database_name

Entonces \c books_dblo conectará a la base de books_dbdatos. Tenga en cuenta que el aviso de su terminal cambia para reflejar la base de datos a la que está conectado actualmente.

Cambio de bases de datos

Cambio de bases de datos

Cómo eliminar una base de datos

Si desea eliminar una base de datos, use el DROP DATABASEcomando.

DROP DATABASE database_name;

Solo podrá eliminar una base de datos si es un superusuario, como postgres, o si es el propietario de la base de datos.

Si intenta eliminar una base de datos que no existe, obtendrá un error. Úselo IF EXISTSpara obtener un aviso en su lugar.

DROP DATABASE IF EXISTS database_name;

Eliminación de una base de datos

Eliminación de una base de datos

No puede eliminar una base de datos que tenga conexiones activas. Entonces, si desea eliminar la base de datos a la que está conectado actualmente, deberá cambiar a otra base de datos.

Cómo crear tablas

Antes de que podamos administrar tablas, debemos crear algunas y completarlas con algunos datos de muestra.

El comando para crear una tabla es:

CREATE TABLE table_name();

Esto creará una tabla vacía. También puede pasar valores de columna entre paréntesis para crear una tabla con columnas. Como mínimo, una tabla básica debe tener una clave principal (un identificador único para diferenciar cada fila) y una columna con algunos datos.

Para nuestro books_db, crearemos una tabla para autores y otra para libros. Para los autores, registraremos su nombre y apellido. Para los libros, registraremos el título y el año en que se publicaron.

Nos aseguraremos de que los autores first_namey last_namelos libros titleno sean nulos, ya que esta es información bastante vital para saber sobre ellos. Para ello incluimos la NOT NULLrestricción.

CREATE TABLE authors(
	author_id SERIAL PRIMARY KEY, 
	first_name VARCHAR(100) NOT NULL, 
	last_name VARCHAR(100) NOT NULL
);

CREATE TABLE books(
	book_id SERIAL PRIMARY KEY, 
	title VARCHAR(100) NOT NULL, 
	published_year INT
);

Verá CREATE TABLEimpreso en la terminal si la tabla se creó correctamente.

Ahora conectemos las dos tablas agregando una clave externa a los libros. Las claves externas son identificadores únicos que hacen referencia a la clave principal de otra tabla. Los libros pueden, por supuesto, tener varios autores, pero no vamos a entrar en las complejidades de las relaciones de muchos a muchos en este momento.

Agregue una clave externa bookscon el siguiente comando:

ALTER TABLE books ADD COLUMN author_id INT REFERENCES authors(author_id);

A continuación, insertemos algunos datos de muestra en las tablas. Empezaremos con authors.

INSERT INTO authors (first_name, last_name) 
VALUES (‘Tamsyn’, ‘Muir’), (‘Ann’, ‘Leckie’), (‘Zen’, ‘Cho’);

Seleccione todo desde authorspara asegurarse de que el comando de inserción funcionó.

SELECT * FROM authors;

Consultar todos los datos de la tabla de autores

Consultar todos los datos de la tabla de autores

A continuación, insertaremos algunos datos de libros en books.

INSERT INTO books(title, published_year, author_id) 
VALUES (‘Gideon the Ninth’, 2019, 1), (‘Ancillary Justice’, 2013, 2), (‘Black Water Sister’, 2021, 3);

Si corres SELECT * FROM books;verás los datos del libro.

Consultar todos los datos de la tabla de libros

Consultar todos los datos de la tabla de libros

Cómo enumerar todas las tablas

Puede usar el \dtcomando para listar todas las tablas en una base de datos.

\dt

Porque books_dbverás booksy authors. También verá books_book_id_seqy authors_author_id_seq. Estos realizan un seguimiento de la secuencia de números enteros utilizados como identificadores por las tablas porque solíamos SERIALgenerar sus claves principales.

Listado de todas las tablas en una base de datos

Listado de todas las tablas en una base de datos

Cómo describir una tabla

Para ver más información sobre una tabla en particular, puede usar el comando describir tabla: \d table_name. Esto enumerará las columnas, los índices y cualquier referencia a otras tablas.

\d table_name

Describiendo la tabla de autores

Describiendo la tabla de autores

El uso \dt+ table_nameproporcionará más información, como sobre el almacenamiento y la compresión.

Cómo cambiar el nombre de una tabla

Si alguna vez necesita cambiar el nombre de una tabla, puede cambiarle el nombre con el ALTER TABLEcomando.

ALTER TABLE table_name RENAME TO new_table_name;

Cómo eliminar una tabla

Si desea eliminar una tabla, puede usar el DROP TABLEcomando.

DROP TABLE table_name;

Si intenta eliminar una tabla que no existe, obtendrá un error. Puede evitar esto al incluir la IF EXISTSopción en la instrucción. De esta manera, recibirá un aviso en su lugar.

DROP TABLE IF EXISTS table_name;

Cómo administrar comandos y consultas más largos

Si está escribiendo consultas SQL más largas, la línea de comandos no es la forma más ergonómica de hacerlo. Probablemente sea mejor escribir su SQL en un archivo y luego hacer que psql lo ejecute.

Si está trabajando con psql y cree que su próxima consulta será larga, puede abrir un editor de texto desde psql y escribirlo allí. Si tiene una consulta existente, o tal vez desee ejecutar varias consultas para cargar datos de muestra, puede ejecutar comandos desde un archivo que ya está escrito.

Opción 1: abre un editor de texto desde psql

Si ingresa el \ecomando, psql abrirá un editor de texto. Cuando guarde y cierre el editor, psql ejecutará el comando que acaba de escribir.

\e

Escribir comandos en un editor de texto

Escribir comandos en un editor de texto

En Windows, el editor de texto predeterminado para psql es Notepad, mientras que en MacOs y Linux es vi. Puede cambiar esto a otro editor configurando el EDITORvalor en las variables de entorno de su computadora.

Opción 2: ejecutar comandos y consultas desde un archivo

Si tiene comandos particularmente largos o múltiples comandos que desea ejecutar, sería mejor escribir el SQL en un archivo con anticipación y hacer que psql ejecute ese archivo una vez que esté listo.

El \icomando le permite leer la entrada de un archivo como si lo hubiera escrito en la terminal.

\i path_to_file/file_name.sql

Nota: si está ejecutando este comando en Windows, aún necesita usar barras diagonales en la ruta del archivo.

Si no especifica una ruta, psql buscará el archivo en el último directorio en el que estuvo antes de conectarse a PostgreSQL.

Ejecutar comandos SQL desde un archivo

Ejecutar comandos SQL desde un archivo

Cómo cronometrar consultas

Si desea ver cuánto tardan sus consultas, puede activar el tiempo de ejecución de consultas.

\timing

Esto mostrará en milisegundos el tiempo que tardó en completarse la consulta.

Si \timingvuelve a ejecutar el comando, desactivará el tiempo de ejecución de la consulta.

Uso del tiempo de ejecución de consultas

Uso del tiempo de ejecución de consultas

Cómo importar datos desde un archivo CSV

Si tiene un archivo CSV con datos y desea cargarlo en una base de datos PostgreSQL, puede hacerlo desde la línea de comandos con psql.

Primero, cree un archivo CSV llamado films.csvcon la siguiente estructura (no importa si usa Excel, Google Sheets, Numbers o cualquier otro programa).

Una hoja de cálculo con datos de películas de Pixar

Una hoja de cálculo con datos de películas de Pixar

Abra psql y cree una films_dbbase de datos, conéctese a ella y cree una filmstabla.

CREATE DATABASE films_db;

\c films_db

CREATE TABLE films(
	id SERIAL PRIMARY KEY,
	title VARCHAR(100),
	year INT,
	running_time INT
);

Luego puede usar el \copycomando para importar el archivo CSV a films. Debe proporcionar una ruta absoluta a donde se encuentra el archivo CSV en su computadora.

\copy films(title, year, running_time) FROM 'path_to_file' DELIMITER ‘,’ CSV HEADER;

La DELIMITERopción especifica el carácter que separa las columnas en cada fila del archivo que se está importando, CSVespecifica que es un archivo CSV y HEADERespecifica que el archivo contiene una línea de encabezado con los nombres de las columnas.

Nota: No es necesario que los nombres de las columnas de la filmstabla coincidan con los nombres de las columnas, films.csvpero sí deben estar en el mismo orden.

Úselo SELECT * FROM films;para ver si el proceso fue exitoso.

Importación de datos desde un archivo .csv.

Importación de datos desde un archivo .csv

Cómo hacer una copia de seguridad de una base de datos conpg_dump

Si necesita hacer una copia de seguridad de una base de datos, pg_dumphay una utilidad que le permite extraer una base de datos en un archivo de script SQL u otro tipo de archivo comprimido.

Primero, en la línea de comando (no en psql), navegue a la bincarpeta PostgreSQL.

cd "C:\Program Files\PostgreSQL\14\bin"

Luego ejecute el siguiente comando, usando postgrescomo nombre de usuario y completando la base de datos y el archivo de salida que desea usar.

pg_dump -U username database_name > path_to_file/filename.sql

Úselo postgrespara el nombre de usuario y se le pedirá la postgrescontraseña de superusuario. pg_dumpluego creará un .sqlarchivo que contiene los comandos SQL necesarios para recrear la base de datos.

Copia de seguridad de una base de datos en un archivo .sql.

Copia de seguridad de una base de datos en un archivo .sql

Si no especifica una ruta para el archivo de salida, pg_dumpguardará el archivo en el último directorio en el que estuvo antes de conectarse a PostgreSQL.

Contenido del archivo de copia de seguridad films.sql

Contenido del archivo de copia de seguridad films.sql

Puede pasar la bandera -vo a para ver qué está haciendo en cada paso.--verbosepg_dumppg_dump

Ejecutando pg_dump en modo detallado.

Ejecutando pg_dump en modo detallado

También puede hacer una copia de seguridad de una base de datos en otros formatos de archivo, como .tar(un formato de archivo).

pg_dump -U username -F t database_name > path_to_file/filename.tar

Aquí la -Fbandera le dice pg_dumpque va a especificar un formato de salida, mientras tque le dice que va a estar en el .tarformato.

Cómo restaurar una base de datos

Puede restaurar una base de datos desde un archivo de respaldo utilizando psql o la pg_restoreutilidad. El que elija depende del tipo de archivo desde el que está restaurando la base de datos.

  1. Si realizó una copia de seguridad de la base de datos en un formato de texto sin formato, como .sql, use psql.
  2. Si realizó una copia de seguridad de la base de datos en un formato de archivo, como .tar, use pg_restore.

Opción 1: restaurar una base de datos usando psql

Para restaurar una base de datos desde un .sqlarchivo, en la línea de comando (no en psql), use psql -U username -d database_name -f filename.sql.

Puede utilizar la base de films_dbdatos y films.sqlel archivo que utilizó anteriormente o crear un nuevo archivo de copia de seguridad.

Cree una base de datos vacía para que el archivo restaure los datos. Si está utilizando films.sqlpara restaurar films_db, lo más fácil podría ser eliminarlo films_dby volver a crearlo.

DROP DATABASE films_db;

CREATE DATABASE films_db;

En una terminal separada (no en psql), ejecute el siguiente comando, pasándolo postgrescomo el nombre de usuario y los nombres de la base de datos y el archivo de copia de seguridad que está utilizando.

psql -U username -d database_name -f path_to_file/filename.sql

La -dbandera apunta a psql a una base de datos específica, mientras que la -fbandera le dice a psql que lea desde el archivo especificado.

Si no especifica una ruta para el archivo de respaldo, psql buscará el archivo en el último directorio en el que estuvo antes de conectarse a PostgreSQL.

Se le pedirá la postgrescontraseña de superusuario y luego verá una serie de comandos impresos en la línea de comandos mientras psql recrea la base de datos.

Restaurar una base de datos usando psql.

Restaurar una base de datos usando psql

Este comando ignora cualquier error que ocurra durante la restauración. Si desea dejar de restaurar la base de datos si se produce un error, pase --set ON_ERROR_STOP=on.

psql -U username -d database_name --set ON_ERROR_STOP=on -f filename.sql

Opción 2: restaurar una base de datos usandopg_restore

Para restaurar una base de datos usando pg_restore, use pg_restore -U username -d database_name path_to_file/filename.tar.

Cree una base de datos vacía para que el archivo restaure los datos. Si está restaurando films_dbdesde un films.tararchivo, lo más fácil podría ser eliminarlo films_dby volver a crearlo.

DROP DATABASE films_db;

CREATE DATABASE films_db;

En la línea de comando (no en psql), ejecute el siguiente comando, pasándolo postgrescomo nombre de usuario y los nombres de la base de datos y el archivo de copia de seguridad que está utilizando.

pg_restore -U username -d database_name path_to_file/filename.tar

Restaurar una base de datos usando pg_restore

Restaurar una base de datos usando pg_restore

También puede pasar la bandera -vo --verbosepara ver qué pg_restoreestá haciendo en cada paso.

Usando pg_restore en modo detallado

Usando pg_restore en modo detallado

Cómo salir de psql

Si ha terminado con psql y quiere salir de él, ingrese quito \q.

\q

Esto cerrará la aplicación psql si la estaba usando, o lo regresará a su símbolo del sistema habitual si estaba usando psql desde la línea de comandos.

Dónde tomarlo desde aquí

Hay muchas más cosas que puede hacer con psql, como administrar esquemas, roles y espacios de tablas. Pero esta guía debería ser suficiente para comenzar a administrar bases de datos PostgreSQL desde la línea de comandos.

Espero que esta guía le resulte útil a medida que continúa aprendiendo sobre PostgreSQL y las bases de datos relacionales.

Esta historia se publicó originalmente en https://www.freecodecamp.org/news/manage-postgresql-with-psql/

#psql #postgresql 

joe biden

1617255938

¿Cómo migrar los buzones de correo de Exchange a la nube de Office 365?

Si tiene problemas para migrar los buzones de correo de Exchange a Office 365, debe leer este artículo para saber cómo migrar los buzones de correo de Exchange EDB a Office 365. Al migrar a Office 365, los usuarios pueden acceder a sus buzones de correo desde cualquier lugar y desde cualquier dispositivo.

En esta publicación, explicaremos las razones detrás de esta migración y una solución profesional para migrar de Exchange a Office 365.

Razones para migrar Exchange Server a la nube de Office 365

Office 365 apareció por primera vez en 2011 y, dado que se considera la mejor plataforma para aquellas organizaciones que desean administrar todo su sistema de correo electrónico en la nube. Estas son las características clave de Office 365:

  1. Permite trabajar desde cualquier lugar y desde cualquier lugar.
  2. No se preocupe por el spam y el malware.
  3. La seguridad proporcionada por Office 365 es altamente confiable.
  4. Controla el costo total y brinda flexibilidad financiera.
  5. Todas las actualizaciones y mejoras son administradas por Microsoft.

¿Cómo migrar los buzones de correo de Exchange a Office 365?

Hay varias formas manuales de migrar los buzones de correo de Exchange EDB a Office 365, pero para evitar estos complicados y prolongados procedimientos, presentamos una solución de terceros, es decir, la herramienta de migración de Exchange, que es automatizada y directa para la migración de Exchange a Office 365. La herramienta funciona rápidamente y migra todos los elementos del buzón de Exchange Server a Office 365.

La herramienta de migración de Datavare Exchange es demasiado fácil de usar y ofrece pasos sencillos para migrar EDB a Office 365:

  1. Descargue e instale el software en su sistema.
  2. Agregue el archivo EDB de Exchange con el botón Examinar.
  3. Seleccione exportar a buzones de correo de Office 365.
  4. Proporcione los detalles de inicio de sesión de la cuenta de Office 365.
  5. Seleccione la carpeta y presione el botón Finalizar.

Por lo tanto, todos sus buzones de correo de Exchange EDB ahora se migran a Office 365.
Nota: puede usar filtros para migrar los elementos de datos deseados de la cuenta de Exchange a la de Office 365

Líneas finales

Este blog le indica una solución profesional para la migración de buzones de correo de Exchange a la cuenta de Office 365. Dado que las soluciones manuales son complicadas, sugerimos la herramienta de migración de Exchange, que es demasiado simple de usar. Los usuarios no se enfrentan a problemas al operar el programa. La mejor parte de este software es que no necesita habilidades técnicas para realizar la migración. Se puede comprender el funcionamiento del software descargando la versión de demostración que permite la migración de los primeros 50 elementos por carpeta.

Más información:- https://www.datavare.com/software/edb-migration.html

#herramienta de migración de intercambio #migración de intercambio #migrar buzones de correo de exchange

joe biden

1617257581

Software de restauración de Exchange para restaurar sin problemas PST en Exchange Server

¿Quiere restaurar los buzones de correo de PST a Exchange Server? Entonces, estás en la página correcta. Aquí, lo guiaremos sobre cómo puede restaurar fácilmente mensajes y otros elementos de PST a MS Exchange Server.

Muchas veces, los usuarios necesitan restaurar los elementos de datos de PST en Exchange Server, pero debido a la falta de disponibilidad de una solución confiable, los usuarios no pueden obtener la solución. Háganos saber primero sobre el archivo PST y MS Exchange Server.

Conozca PST y Exchange Server

PST es un formato de archivo utilizado por MS Outlook, un cliente de correo electrónico de Windows y muy popular entre los usuarios domésticos y comerciales.

Por otro lado, Exchange Server es un poderoso servidor de correo electrónico donde todos los datos se almacenan en un archivo EDB. Los usuarios generalmente guardan la copia de seguridad de los buzones de correo de Exchange en el archivo PST, pero muchas veces, los usuarios deben restaurar los datos del archivo PST en Exchange. Para resolver este problema, estamos aquí con una solución profesional que discutiremos en la siguiente sección de esta publicación.

Un método profesional para restaurar PST a Exchange Server

No le recomendamos que elija una solución al azar para restaurar los datos de PST en Exchange Server. Por lo tanto, al realizar varias investigaciones, estamos aquí con una solución inteligente y conveniente, es decir, Exchange Restore Software. Es demasiado fácil de manejar por todos los usuarios y restaurar cómodamente todos los datos del archivo PST a Exchange Server.

Funciones principales ofrecidas por Exchange Restore Software

El software es demasiado simple de usar y se puede instalar fácilmente en todas las versiones de Windows. Con unos pocos clics, la herramienta puede restaurar los elementos del buzón de Exchange.

No es necesario que MS Outlook restaure los datos PST en Exchange. Todos los correos electrónicos, contactos, notas, calendarios, etc. se restauran desde el archivo PST a Exchange Server.

Todas las versiones de Outlook son compatibles con la herramienta, como Outlook 2019, 2016, 2013, 2010, 2007, etc. La herramienta proporciona varios filtros mediante los cuales se pueden restaurar los datos deseados desde un archivo PST a Exchange Server. El programa se puede instalar en todas las versiones de Windows como Windows 10, 8.1, 8, 7, XP, Vista, etc.

Descargue la versión de demostración del software de restauración de Exchange y analice el funcionamiento del software restaurando los primeros 50 elementos por carpeta.

Líneas finales

No existe una solución manual para restaurar los buzones de correo de Exchange desde el archivo PST. Por lo tanto, hemos explicado una solución fácil e inteligente para restaurar datos de archivos PST en Exchange Server. Simplemente puede usar este software y restaurar todos los datos de PST a Exchange Server.

Más información:- https://www.datavare.com/software/exchange-restore.html

#intercambio de software de restauración #intercambio de restauración #buzón del servidor de intercambio #herramienta de restauración de intercambio

Lilly  Wilson

Lilly Wilson

1658252280

Cree la paginación AJAX de Datatables desde PostgreSQL con PHP

Con la paginación, puede mostrar muchos datos en la página de manera efectiva.

Puede implementar esto fácilmente usando el complemento DataTables jQuery.

En este tutorial, muestro cómo puede crear la paginación AJAX de DataTables con búsqueda y clasificación desde la base de datos PostgreSQL usando PHP.

1. Estructura de la mesa

Estoy usando  employeesla tabla en el ejemplo. Tiene la siguiente estructura:

CREATE TABLE employees (
    id serial PRIMARY KEY,
    emp_name varchar(80) NOT NULL,
    salary varchar(20) NOT NULL,
    gender varchar(10) NOT NULL,
    city varchar(80) NOT NULL,
    email varchar(80) NOT NULL
)

2. Configuración

Cree una config.phppara la configuración de la base de datos.

Código completado

<?php

$host = "localhost";
$user = "postgres";
$password = "root";
$dbname = "tutorial";
$con = pg_connect("host=$host dbname=$dbname user=$user password=$password");

if (!$con) {
   die('Connection failed.');
}

3. Descargar e incluir

  • Descarga Datatables desde  aquí .
  • Incluir datatables.min.css, biblioteca jQuery y datatables.min.js.
  • También puede utilizar CDN.
<!-- Datatable CSS -->
<link href='//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css' rel='stylesheet' type='text/css'>

<!-- jQuery Library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

<!-- Datatable JS -->
<script src="//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>

4.HTML

Cree un  <table id='empTable' class='display dataTable'> nombre de columna y agregue en  <thead>.

Código completado

<!-- Datatable CSS -->
<link href='//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css' rel='stylesheet' type='text/css'>

<!-- jQuery Library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

<!-- Datatable JS -->
<script src="//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>

<!-- Table -->
<table id='empTable' class='display dataTable'>

  <thead>
    <tr>
      <th>Employee name</th>
      <th>Email</th>
      <th>Gender</th>
      <th>Salary</th>
      <th>City</th>
    </tr>
  </thead>

</table>

5. PHP

Crear ajaxfile.phparchivo.

Lee los valores POST de DataTables y los asigna a las variables.

Cuente los registros totales con y sin filtro de búsqueda de la employeestabla.

Obtenga registros de employees la tabla e inicialice  $data Array con valores.

NOTA: los nombres de las claves de matriz deben ser los mismos que los definidos en la columnsopción al inicializar DataTables.

Inicialice $responseArray con los valores requeridos y regrese en formato JSON.

Código completado

<?php
## Database configuration
include 'config.php';

## Read value
$draw = $_POST['draw'];
$row = $_POST['start'];
$rowperpage = $_POST['length']; // Rows display per page
$columnIndex = $_POST['order'][0]['column']; // Column index
$columnName = $_POST['columns'][$columnIndex]['data']; // Column name
$columnSortOrder = $_POST['order'][0]['dir']; // asc or desc
$searchValue = $_POST['search']['value']; // Search value

## Search 
$searchQuery = "id>$1";
$searchQueryVal = array();
$searchQueryVal[] = 0;

if($searchValue != ''){
     $searchQuery .= " and (emp_name ilike $2 or 
          email ilike $3 or 
          city ilike $4 ) ";

     $searchQueryVal[] = '%'.$searchValue.'%';
     $searchQueryVal[] = '%'.$searchValue.'%';
     $searchQueryVal[] = '%'.$searchValue.'%';

}

## Total number of records without filter
$sql = "select count(*) as allcount from employees";
$result = pg_query($con,$sql);
$records = pg_fetch_assoc($result);
$totalRecords = $records['allcount'];

## Total number of record with filter
$sql = "select count(*) as allcount from employees where ".$searchQuery;
$result = pg_query_params($con,$sql,$searchQueryVal);
$records = pg_fetch_assoc($result);
$totalRecordwithFilter = $records['allcount'];

## Fetch records
$sql = "select * from employees where ".$searchQuery." order by ".$columnName." ".$columnSortOrder." limit $rowperpage OFFSET $row";

$empRecords = pg_query_params($con,$sql,$searchQueryVal);
$data = array();

while ($row = pg_fetch_assoc($empRecords)) {
    $data[] = array( 
        "emp_name"=>$row['emp_name'],
        "email"=>$row['email'],
        "gender"=>$row['gender'],
        "salary"=>$row['salary'],
        "city"=>$row['city']
    );
}

## Response
$response = array(
    "draw" => intval($draw),
    "iTotalRecords" => $totalRecords,
    "iTotalDisplayRecords" => $totalRecordwithFilter,
    "aaData" => $data
);

echo json_encode($response);

6. jQuery

Inicialice DataTables en <table id='empTable'>.

Habilite el procesamiento del lado del servidor y configure el método POST usando opciones. Enviar solicitud AJAX a  'ajaxfile.php'.

En la  columnsopción, pase los nombres de las claves que se leen en la devolución de llamada exitosa de AJAX.

Código completado

$(document).ready(function(){
   $('#empTable').DataTable({
      'processing': true,
      'serverSide': true,
      'serverMethod': 'post',
      'ajax': {
          'url':'ajaxfile.php'
      },
      'columns': [
         { data: 'emp_name' },
         { data: 'email' },
         { data: 'gender' },
         { data: 'salary' },
         { data: 'city' },
      ]
   });
});

7. Salida

Ver salida


8. Conclusión

Si obtiene un error JSON al cargar la página, verifique las consultas SQL nuevamente y devuelva la respuesta y use la pestaña de red del navegador para depurar.

Fuente:  https://makitweb.com

#php #postgresql #ajax 

Derrick  Ferry

Derrick Ferry

1659821820

Cargue Datos PostgreSQL En El Desplazamiento De La Página Usando PHP

El desplazamiento infinito muestra un número limitado de registros en la página, los nuevos registros se cargan automáticamente cuando el desplazamiento de la página llega al final de la página.

En este tutorial, muestro cómo puede cargar datos de Postgresql en el desplazamiento de la página usando jQuery, AJAX y PHP.

1. Estructura de la mesa

Estoy usando postsla tabla en el ejemplo.

CREATE TABLE posts (
     id serial PRIMARY KEY,
     title varchar(100) NOT NULL,
     description text NOT NULL,
     link varchar(255) NOT NULL
)

2. Configuración

Crear config.phparchivo para la configuración de la base de datos.

Código completado

<?php

$host = "localhost";
$user = "postgres";
$password = "root";
$dbname = "tutorial";
$con = pg_connect("host=$host dbname=$dbname user=$user password=$password");

if (!$con) {
   die('Connection failed.');
}

3.HTML y PHP

Establecí 3 en $rowperpage(cambie su valor según la cantidad de registros que desee mostrar en la página a la vez).

Obtenga el número total de registros de postsla tabla y asígnelos a la $allcountvariable.

Use $rowperpagein limit para obtener registros. Haga un bucle en los registros obtenidos y cree un diseño.

Crea 3 campos ocultos –

  1. Almacenar la posición inicial. Establézcalo en 0.
  2. Almacene el número de filas obtenidas a la vez. Establézcalo en 3.
  3. Almacene el número total de registros.

Código completado

<div class="container">

<?php

 include "config.php";

 // Row per page
 $rowperpage = 3;
 
 // counting total number of posts
 $sql = "select count(*) as allcount from posts";
 $result = pg_query($con,$sql);
 $records = pg_fetch_assoc($result);
 $allcount = $records['allcount'];

 // select first 3 posts
 $sql = "select * from posts order by id asc limit $rowperpage OFFSET 0";

 $records = pg_query($con, $sql);

 while ($row = pg_fetch_assoc($records)) {

    $id = $row['id'];
    $title = $row['title'];
    $content = $row['description'];
    $shortcontent = substr($content, 0, 160)."...";
    $link = $row['link'];
?>

    <div class="post" id="post_<?php echo $id; ?>">
       <h2><?php echo $title; ?></h2>
       <p>
          <?php echo $shortcontent; ?>
       </p>
       <a href="<?= $link ?>" target="_blank" class="more">More</a>
    </div>

<?php
}
?>

  <input type="hidden" id="start" value="0">
  <input type="hidden" id="rowperpage" value="<?= $rowperpage ?>">
  <input type="hidden" id="totalrecords" value="<?= $allcount ?>">

</div>

4. AJAX

Crear ajaxfile.phparchivo.

Establezca el valor predeterminado de $start0 y $rowperpage3. Si los valores son POST, asigne los valores a las variables.

Obtenga registros de postsla tabla donde use POST $rowperpagey $starten LIMIT. Haga un bucle en los registros obtenidos y cree un diseño HTML y asigne a la $htmlvariable.

Volver $html_

Código completado

<?php
## Database configuration
include 'config.php';

$start = 0;$rowperpage = 3;
if(isset($_POST['start'])){
   $start = $_POST['start']; 
}
if(isset($_POST['rowperpage'])){
   $rowperpage = $_POST['rowperpage']; 
}

## Fetch records
$sql = 'select * from posts order by id desc limit '.$rowperpage.' OFFSET '.$start;

$records = pg_query($con, $sql);
$html = '';

while ($row = pg_fetch_assoc($records)) {
   $id = $row['id'];
   $title = $row['title'];
   $content = $row['description'];
   $shortcontent = substr($content, 0, 160)."...";
   $link = $row['link'];

   // Creating HTML structure
   $html .= '<div id="post_'.$id.'" class="post">';
   $html .= '<h2>'.$title.'</h2>';
   $html .= '<p>'.$shortcontent.'</p>';
   $html .= "<a href='".$link."' target='_blank' class='more'>More</a>";
   $html .= '</div>';

}

echo $html;

5. jQuery

Crear 2 funciones –

  • checkWindowSize(): uso de esta función para verificar la altura para cargar contenido nuevo llamando a fetchData()la función. Además, llamar a esta función en la página que se carga por primera vez para mostrar contenido nuevo si la página no tiene suficiente contenido.
  • fetchData(): uso de esta función para obtener registros.

Leer valores de elementos ocultos y asignarlos a las variables. Agregue rowperpagecon starty verifique si es <= allcount, si es así, envíe la solicitud AJAX POST a ajaxfile.php, pase starty rowperpagecomo datos.

En una devolución de llamada exitosa, agregue la respuesta después del último class="post"elemento y verifique nuevamente el tamaño de la ventana llamando a checkWindowSize().

Definir 2 eventos –

  • desplazamiento: detecte el desplazamiento de la página y verifique si el desplazamiento llega al final o no. Si lo alcanza, llame fetchData()para obtener nuevos registros.
  • touchmove: esto es para que los dispositivos móviles detecten el desplazamiento.

Código completado

checkWindowSize();

// Check if the page has enough content or not. If not then fetch records
function checkWindowSize(){
   if($(window).height() >= $(document).height()){
      // Fetch records
      fetchData();
   }
}

// Fetch records
function fetchData(){
   var start = Number($('#start').val());
   var allcount = Number($('#totalrecords').val());
   var rowperpage = Number($('#rowperpage').val());
   start = start + rowperpage;

   if(start <= allcount){
      $('#start').val(start);

      $.ajax({
         url:"ajaxfile.php",
         type: 'post',
         data: {start:start,rowperpage: rowperpage},
         success: function(response){

            // Add
            $(".post:last").after(response).show().fadeIn("slow");

            // Check if the page has enough content or not. If not then fetch records
            checkWindowSize();
         }
      });
   }
}

$(document).on('touchmove', onScroll); // for mobile

function onScroll(){

   if($(window).scrollTop() > $(document).height() - $(window).height()-100) {
      fetchData(); 
   }
}

$(window).scroll(function(){

   var position = $(window).scrollTop();
   var bottom = $(document).height() - $(window).height();

   if( position == bottom ){
      fetchData(); 
   }

});

6. CSS

.container{
  width: 55%;
  margin: 0 auto;
  border: 0px solid black;
  padding: 10px 0px;
}

/* post */.post{
  width: 97%;
  min-height: 200px;
  padding: 5px;
  border: 1px solid gray;
  margin-bottom: 15px;
}

.post h2{
  letter-spacing: 1px;
  font-weight: normal;
  font-family: sans-serif;
}


.post p{
  letter-spacing: 1px;
  text-overflow: ellipsis;
  line-height: 25px;
}

/* more link */.more{
  color: blue;
  text-decoration: none;
  letter-spacing: 1px;
  font-size: 16px;
}

7. Salida

Ver salida


8. Conclusión

Ajuste $rowperpageel valor según sus requisitos. Este código funciona incluso si la página tiene menos contenido la primera vez que se carga.

Fuente:  https://makitweb.com

#php #ajax #jquery #postgresql