0% encontró este documento útil (0 votos)
9 vistas24 páginas

Resumen PostgresSQL v.2

Cargado por

Solid Alex
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
9 vistas24 páginas

Resumen PostgresSQL v.2

Cargado por

Solid Alex
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 24

SQL

1. Introducción al SQL:
- SQL es un lenguaje estándar para definir, manipular y controlar bases
de datos relacionales.
- Es declarativo (indicar que hacer), similar al inglés, y accesible en
sistemas relacionales comerciales.
- Ha evolucionado a través de revisiones, como SQL1, SQL92, SQL1999,
SQL: 2003, etc.
2. PostgreSQL:
- PostgreSQL es un SGBD orientado a objetos usado en software libre.
- Cumple con estándares SQL92 y SQL99.
- Es compatible con diversas plataformas, incluyendo Windows desde la
versión 8.0.
3. Modos de Ejecución SQL:
- Ejecución directa (SQL interactivo).
- Ejecución incrustada (SQL en código de otro lenguaje).
- Ejecución a través de clientes gráficos.
4. Procesamiento de Sentencias SQL:
- Análisis (sintaxis), validación (semántica), optimización y ejecución.
5. Elementos del Lenguaje SQL:
5.1 Código SQL:
- Comandos: Instrucciones realizadas desde SQL
- Cláusulas: Palabras especiales que modifican el funcionamiento de un
comando, como WHERE (filtro de resultados), ORDER BY (ordenar
resultados), etc.
- Operadores: Permiten crear expresiones complejas, como
operadores aritméticos (+, -, *, /), lógicos (>, <, !=, <>, AND, OR), etc.
- Funciones: Utilizadas para obtener valores complejos, como SUM()
para sumar valores o DATE() para trabajar con fechas.
- Literales: Valores específicos utilizados en consultas, como números (2), decimales (12.34), o cadenas de texto ('Avda Cardenal Cisneros').
- Metadatos: Información sobre la propia base de datos, obtenida a través de consultas específicas.
5.2 Normas de escritura:
- En SQL, no se distingue entre mayúsculas y minúsculas.
- Las instrucciones finalizan con un punto y coma.
- Los comandos SQL pueden dividirse por espacios o saltos de línea.
- Se pueden tabular líneas para mejorar la legibilidad del código.
- Los comentarios inician con /* y terminan con */.
6. Normas de Escritura en SQL:
- No se distingue entre mayúsculas y minúsculas.
- Las instrucciones terminan con punto y coma.
- Los comandos SQL pueden dividirse por espacios o saltos de línea.
- Se pueden tabular líneas para facilitar la lectura.
- Comentarios inician con /* y terminan con */.
Instalación Postgresql
sudo apt update Para actualizar el repositorio
sudo apt upgrade Actualiza los paquetes que tenemos instalados
sudo apt install postgresql postgresql-contrib Instala el paquete indicado
Sudo passwd postgres asignar una contraseña al usuario
Su postgres logear con el usuario
Cd ir al home de postgres, sino da error
Psql conectar con la base de datos
Sudo nano /etc/postgresql/14/main/postgresql.conf editar archivo .conf
- listen_addresses = "localhost"
- listen_addresses = "*"
sudo nano /etc/postgresql/14/main/pg_hba.conf editar archivo .conf
- host all all all md5 (añadir línea al final del archivo con tabulaciones)
sudo service postgresql start/restart/status/stop (empezar, reiniciar, etc.)
sudo apt install postgresql-client instalar en lado cliente

/p = buffer
a. Crear un Rol (Usuario):
CREATE ROLE alias WITH SUPERUSER CREATEDB LOGIN PASSWORD 'la_contraseña_que_le_quieras_poner';
- CREATE ROLE: Crea un nuevo rol (usuario).
- alias: Nombre del rol.
- WITH SUPERUSER: Concede privilegios de superusuario.
- CREATEDB: Permite al rol crear bases de datos.
- LOGIN: Permite al rol iniciar sesión.
- PASSWORD 'la_contraseña_que_le_quieras_poner': Establece una contraseña.
b. Crear una Base de Datos Asociada con el Rol:
CREATE DATABASE alias_plan OWNER alias;
- CREATE DATABASE: Crea una nueva base de datos.
- alias_plan: Nombre de la base de datos.
- OWNER alias: Establece al rol como propietario de la base de datos.
FROM
Especifica la lista de tablas:
ORDER
Clasifica el resultado de la consulta

2.1 Claves Ajenas:


- Una clave ajena es una columna en una tabla que se refiere a la clave
primaria de otra tabla.
- Establece relaciones entre las tablas, vinculando datos mediante
identificadores únicos.
2.2 Representación Gráfica:
- Se utiliza un diagrama de entidad-relación para representar visualmente
las tablas y sus relaciones.
- Las tablas son cajas, y las líneas conectan claves primarias con claves
foráneas.
2.3 Integridad Referencial:
- La integridad referencial asegura que los valores en las claves foráneas
existan en las claves primarias correspondientes.
- Evita relaciones inconsistentes y garantiza la coherencia de los datos en
la base de datos relacional.
Producto Cartesiano:
- El producto cartesiano es una forma de combinar dos tablas.
- Combina todas las filas de la primera tabla con todas las de la segunda.
- La tabla resultante tiene columnas de ambas tablas y todas las
combinaciones posibles de filas.
Ejemplo sin Alias de Tabla:

- Puede haber ambigüedad si hay columnas con el mismo nombre en ambas


tablas.
- Para resolverlo, se usa el formato `tabla.columna`,
como `plan.nombre` y `proyecto.nombre`.
Alias de Tabla:

- Se pueden usar alias para simplificar nombres de tabla largos.


Uso con Claves Primarias y Foráneas:

- Se puede combinar el producto cartesiano con la selección (WHERE) usando


claves primarias y foráneas para obtener datos más precisos y relevantes.
Operadores en PostgreSQL:

1. Operadores Lógicos:
Con la cláusula "WHERE" se puede usar más de un operador lógico
1.1 Operadores Lógicos:
- `NOT`: Invierte el resultado de una condición.
- `AND`: Se usa para combinar condiciones con "y".
- `OR`: Se usa para combinar condiciones con "o".
2. Operadores Relacionales (o de Comparación):
1.2 Operadores Relacionales:
- `=`: Significa igual.
- `<>` o `!=`: Significa distinto.
- `>`: Mayor que.
- `<`: Menor que.
- `>=`: Mayor o igual que.
- `<=`: Menor o igual que.
Devuelven valores de tipo booleano
1.2.1 Coincidencia de Patrones (Operador LIKE):
- `LIKE`: Devuelve verdadero si la cadena coincide con el patrón.
- `NOT LIKE`: Devuelve verdadero si la cadena no coincide con el patrón.
- Patrones: `%` (comodín), `_` (marcador de posición).
3. Operadores Matemáticos:
- `+`: Se usa para sumar.
- `-`: Se usa para restar.
- `*`: Se usa para multiplicar.
- `/`: Se usa para dividir.
- `%`: Devuelve el resto de la división.
- `^`: Eleva un número a una potencia.
- `!`: Calcula el factorial.
2 Funciones
2.1 Funciones aritméticas
Trabajan con valores de tipo numérico:
- Simples (número, variable, columna)
- Grupos de valores
En todas las funciones de grupo, al indicar los argumentos se
pueden emplear las cláusulas DISTINCT y ALL

Las funciones de cadenas de caracteres trabajan con datos de tipo CHARACTER, CHARACTER VARYING y TEXT. Estos datos incluyen cualquier carácter
alfanumérico
La función date_trunc en bases de datos se utiliza para truncar un valor de fecha y hora a una unidad de tiempo específica, estableciendo los
campos menos significativos en 0 según la precisión definida por el parámetro text.

Funciones de conversión / formato de datos


Transforman un tipo de dato en otro

Función COALESCE
Evalúa varios valores en orden y
devuelve el primero que no sea nulo
Subconsultas
Subselect
Permite anidar el resultado de una consulta dentro de la consulta padre:
- Tienen la misma sintaxis, el “;” se omite en la subconsulta Tipos de
- Se encuentra contenida entre parentesís Subconsultas
- Restricciones en columnas y filas
- No debe contener la cláusula ORDER BY
- La subconsulta se ejecuta por cada fila de la consulta padre
Monofila
Devuelve 1 fila y 1 columna
Se usan operadores (=, >, >=, <=, !=)
Multifila
Devuelve más de una fila en una columna
Usan operadores multifila como IN, ANY o SOME, ALL

Multicolumna
Devuelve más de una fila y con más de una columna
- Van en la cláusula where
- Deben coincidir número y tipo de datos

Agrupaciones
Uso básico de GROUP BY:
GROUP BY se utiliza para agrupar resultados por una o más columnas.
Restricciones en la cláusula SELECT con GROUP BY:
- En la lista de selección (SELECT), solo puedes incluir constantes, funciones de agrupación, expresiones idénticas a las de GROUP BY, y expresiones
que evalúen el mismo valor para todas las filas de un grupo.
- Las columnas que no están en GROUP BY deben usarse con funciones de agrupación.
Funciones de agrupación:
- Puedes usar funciones como COUNT, SUM, AVG en la cláusula SELECT para realizar cálculos en cada grupo.
Uso de HAVING:
- La cláusula HAVING se usa junto con GROUP BY para filtrar grupos basados en condiciones específicas. Es similar a WHERE, pero se aplica a grupos
en lugar de filas individuales.
El orden de evaluación es: WHERE, GROUP BY, HAVING, y finalmente ORDER BY.

Combinaciones Externas
Combinan registros de dos tablas que cumplen la condición
Left Outer Join (Left Join):
- Muestra todos los registros de la tabla de la izquierda.
- Si no hay coincidencias con la tabla de la derecha, los campos de esta última aparecen como
"null".
Right Outer Join (Right Join):
- Muestra todos los registros de la tabla de la derecha.
- Si no hay coincidencias con la tabla de la izquierda, los campos de esta última aparecen como
"null".
Full Outer Join (Full Join):
- Retorna todos los registros de ambas tablas.
- Si un registro de la tabla izquierda no tiene coincidencias en la tabla derecha, los campos de
esta última aparecen como "null". Lo mismo ocurre si la tabla de la derecha no encuentra
coincidencias en la tabla izquierda.

Consultas Correlacionadas
Si la subconsulta y la consulta acceden a una misma columna se han de usar distintos alias para
esa columna
Operador EXISTS
Comprueba la existencia de filas en una subconsulta
Cláusulas LIMIT y OFFSET
LIMIT:
- Restringe el número de registros devueltos por una consulta.
- Recibe un argumento numérico positivo (primer registro es el 0)
OFFSET:
- Indica el número del primer registro a retornar.
- Se utiliza junto con LIMIT para omitir las primeras m filas antes de devolver n filas.
También se puede usar la cláusula fetch.

- ROW y ROWS son sinónimos.


- FIRST y NEXT son sinónimos.
- start número entero que debe ser cero o positivo.
- El row_count, es número entero mayor o igual que 1.

Operadores UNION, INTERSECT y EXCEPT


3.1 Operador UNION:
 Combina resultados de dos o más instrucciones SELECT en un único conjunto de resultados.
 Elimina duplicados a menos que se use UNION ALL.
3.2 Operador INTERSECT:
 Combina los resultados de dos o más instrucciones SELECT en un solo conjunto de resultados.
 Devuelve las filas disponibles en ambas consultas.
3.3 Operador EXCEPT:
 Devuelve registros de la primera consulta que no están en la salida de la segunda consulta.
 Comparación de conjuntos de resultados.
Sentencias INSERT, UPDATE y DELETE.
2. Inserción de datos - Orden INSERT:
La orden INSERT se utiliza para agregar filas de datos a una tabla.
 NombreTabla: La tabla en la que se insertarán las filas.
 [(columna [, columna] ...)]: Columna o columnas donde se insertarán valores. Si no se especifican, se consideran todas por defecto.
 (valor [, valor] ...): Valores correspondientes a las columnas, deben coincidir con el tipo de dato de cada columna.

Si hay restricciones como NOT NULL en una columna, se deben proporcionar valores o se generará un error.
No es necesario especificar el nombre de las columnas si se proporcionan valores en el mismo orden en que están definidas en la tabla.

2.1 Inserción con SELECT:


En esta sección se describe cómo realizar inserciones utilizando la sentencia INSERT junto con una consulta SELECT. Esto permite agregar
múltiples filas a una tabla basándose en los resultados de una consulta. Aquí tienes un resumen y ejemplos adicionales:

 NombreTabla1: La tabla en la que se insertarán las filas.


 [(columna [, columna] ...)]: Columnas en las que se insertarán valores. Opcional si se desean insertar en todas las columnas.
 SELECT {columna [, columna] ... | *}: Consulta que devuelve las filas a insertar.
 FROM NombreTabla2: Tabla de la cual se obtienen los datos.
 [CLÁUSULAS DE SELECT]: Restricciones o condiciones opcionales.
Insertar datos de empleados del departamento 30 en la tabla EMPLE30: Insertar los mismos datos usando * para todas las columnas:

Insertar apellidos de empleados del departamento 20 en la tabla Insertar un nuevo empleado ('GARCÍA') en la tabla EMPLE en el
NOMBRES: departamento con más empleados:

Insertar un empleado ('QUIROGA') en la tabla EMPLE con los mismos


datos que 'GIL':

Nota: Se debe tener en cuenta la longitud de las columnas para evitar errores.
3. Modificación - Orden UPDATE:
La orden UPDATE se utiliza para modificar los valores de las columnas de una o varias filas de una tabla.
UPDATE NombreTabla SET columna1 = valor1, ..., columnaN = valorN WHERE condición;

 NombreTabla: La tabla cuyas columnas se van a actualizar.


 SET: Indica las columnas que se van a actualizar y sus nuevos valores.
 WHERE: Selecciona las filas que se van a actualizar. Si se omite, la actualización afectará a todas las filas de la tabla.
Sin la cláusula
where el cambio
afecta a todos
indiscriminadam
ente

3.1 UPDATE con SELECT:


La sentencia UPDATE con SELECT permite realizar actualizaciones utilizando resultados de subconsultas

Igualar la localidad y el número de teléfono del investigador 20 a los del investigador 30:

Para todos los empleados del departamento de 'CONTABILIDAD', cambiar su salario al doble del salario de 'SÁNCHEZ' y su apellido a
minúsculas:
Cambiar el salario a la mitad y la comisión a 0 para empleados del Modificar el número de departamento de 'Jesica Galindo' al
departamento con mayor número de empleados: departamento donde hay más empleados cuyo oficio sea
'EMPLEADO':

Borrado de filas - Orden DELETE:


La orden DELETE se utiliza para eliminar una o varias filas de una tabla.
La cláusula WHERE es esencial para especificar las filas que se desean eliminar.

TRUNCATE
Borra todas las filas de una tabla rápidamente.
No puede usarse si hay referencias de clave ajena a la tabla desde otras tablas.

4.2 VACUUM:
La instrucción VACUUM se utiliza para liberar el espacio de almacenamiento ocupado por filas borradas y realizar otras tareas relacionadas con
el mantenimiento de la base de datos
 [FULL]: Realiza un procesamiento más extenso, incluyendo mover filas entre bloques para compactar la tabla.
 [VERBOSE]: Muestra un detalle de la actividad del proceso de VACUUM.
 [tabla]: Especifica la tabla a la que se aplica el VACUUM.
 VACUUM sin opciones procesa todas las tablas de la base de datos actual.
 VACUUM puede actuar en paralelo con otras operaciones normales en la tabla.
 VACUUM FULL es más lento y requiere un bloqueo exclusivo sobre la tabla durante el procesamiento.
 VACUUM es importante para liberar espacio y mantener la eficiencia de la base de datos, especialmente en tablas que se actualizan
frecuentemente.

También podría gustarte