Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
sql [2018/10/04 22:01] lmachucasql [2024/12/18 13:33] (actual) lmachuca
Línea 4: Línea 4:
  
   * Información General - [[wp>SQL]].   * Información General - [[wp>SQL]].
 +  * Cosas más específicas para Helpcom, por motor: [[f1:MySQL-sintaxis]], [[f1:PostgreSQL-sintaxis]], [[f1:SQLite-sintaxis]].
  
-=====Expresiones Generales=====+=====Expresiones DDL===== 
 + 
 +==== Schemas ==== 
 +Un schema es una unidad lógica estructural que reúne tablas, vistas y funciones. Un schema está bien definido en SQ93 y en PostgreSQL; en MySQL, un schema es equivalente a una base de datos.
  
 ==== Tablas ==== ==== Tablas ====
Línea 61: Línea 65:
 En lenguaje SQL no hay una forma estandarizada para listar tablas. En distintos motores existen distintos mecanismos. En lenguaje SQL no hay una forma estandarizada para listar tablas. En distintos motores existen distintos mecanismos.
  
-^  ^  PostgreSQL  ^  MySQL  ^  SQLite +**Mostrar tablas en el schema:**
-^   Mostrar tablas\\ de la conexión actual | ''\dt'' |  ''show tables;''  | ''SHOW TABLES'' +
-^   Buscar tablas\\ en el sistema   | ''select tablename from pg_catalog.pg_tables\\ where schemaname="midb"''  | ''select table_name from information_schema.tables\\ where table_schema="midb"''  | |+
  
 +  * Postgres: ''\dt'' y similares.
 +  * MySQL: ''show tables;'' y similares.
 +  * SQite: ????
  
-==== Mostrar ====+ 
 +==== Vistas ==== 
 + 
 +Una vista es una tabla virtual cuya estructura calza la definición de tipo de datos de una consulta, es decir está [[#Mostrar Registros|definida en términos de un SELECT]]: 
 + 
 +<code sql> 
 +  CREATE VIEW vista AS   
 +  SELECT f(x,y) AS columna1, CAST(g(x,y) AS INTEGER) AS columna2  
 +  FROM x JOIN Y ON ... 
 +  ORDER BY ... 
 +  ; 
 +</code> 
 + 
 +Para que una vista esté definida, la consulta debe ser resoluble al momento de crear la vista, ergo todos los nombres, funciones y schemas usados en la vista deben existir. 
 + 
 +==== Funciones ==== 
 + 
 +TBD 
 + 
 +===== CRUD ===== 
 +==== Mostrar Registros ====
  
 La instrucción **SELECT** es para buscar información. La instrucción **SELECT** es para buscar información.
Línea 80: Línea 105:
 En la consulta: En la consulta:
  
-  * ''campos'' puede ser una lista de uno o más campos, conteos o fórmulas. Asterisco ("''*''") se usa para indicar mostrar todos los campos de una tabla.+  * ''campos'' puede ser una lista de uno o más campos, conteos o fórmulas. Asterisco ("''*''") se usa para indicar mostrar todos los campos de la tupla de tablas nombradas en el ''FROM''.
   * ''tablas'' puede ser una lista de una o más tablas o uniones de tablas (JOIN, UNION, etc), con o sin su fuente de base de datos (por ejemplo, ''crux.mae_usuarios'' o simplemente ''mae_usuarios'').   * ''tablas'' puede ser una lista de una o más tablas o uniones de tablas (JOIN, UNION, etc), con o sin su fuente de base de datos (por ejemplo, ''crux.mae_usuarios'' o simplemente ''mae_usuarios'').
   * ''condicion1, condicion2'' es una lista opcional de condiciones en el lenguaje lógico de SQL. Una condición puede ser comparar el valor de un campo, por ejemplo "''WHERE mae_nombre_empresa LIKE '%Lily%' ''"   * ''condicion1, condicion2'' es una lista opcional de condiciones en el lenguaje lógico de SQL. Una condición puede ser comparar el valor de un campo, por ejemplo "''WHERE mae_nombre_empresa LIKE '%Lily%' ''"
Línea 86: Línea 111:
  
  
-==== Agregar Datos====+==== Escribir Registros ====
  
-Las instrucciones **INSERT** y **UPDATE** agregan información.+Las instrucciones **INSERT** y **UPDATE** agregan o actualizan información.
  
 <code mysql> <code mysql>
Línea 100: Línea 125:
  
 </code> </code>
 +
 +La sintaxis en general es la misma entre MySQL, PostgreSQL y SQLite.
 +
 +MySQL y SQLite permiten ''INSERT IGNORE'', que inserta una fila si se puede hacer sin errores y termina sin hacer nada y sin errores si no se puede.
  
 ==== Eliminar Datos==== ==== Eliminar Datos====
Línea 125: Línea 154:
 ====Motores==== ====Motores====
  
-  * MySQL Server Community - https://dev.mysql.com/downloads/mysql/ . Usado por productos como [[:Crux]].+  * MariaDB SQL Server - https://downloads.mariadb.org/ - Usado para [[:Crux]]. 
 +  * MySQL Server Community - https://dev.mysql.com/downloads/mysql/ .
   * PostgreSQL Server - http://postgresql.org/ . Usado por productos como [[:Orión]].   * PostgreSQL Server - http://postgresql.org/ . Usado por productos como [[:Orión]].
   * SQLite - https://www.sqlite.org/ - usado por productos como [[:Draco]].   * SQLite - https://www.sqlite.org/ - usado por productos como [[:Draco]].
Línea 133: Línea 163:
 ====Gestores==== ====Gestores====
  
-  * DBeaver Community - https://dbeaver.io/download/+  * [[:f1:Dbeaver|DBeaver Community]] - https://dbeaver.io/download/
- +  * MySQL Query Browser (desahuciado en 2019). 
-DBeaver es un GUI (interface gráficapara la gestión de base de datos en varios motores. Es abierto y multiplataforma basado en Java FX y está disponible en los recursos compartidos de Helpcom. Ofrecen descargas tanto para Linux como Windows. +  * SQYog Community. 
- +  * MySQL Workbench. 
-Para la instalación ver [[Dbeaver]]. +  * ''mysql'' línea de comandos para un servicio de MySQL o MariaDB
- +  * ''psql'' línea de comandos para un servicio de PostgreSQL. 
-  * MySQL Query Browser  +  * ''sqlite3'' - línea de comandos para procesar un archivo de SQLite.
-  * MySQL Workbench +
- +
-Query Browser es un GUI (interface gráfica) para la consulta de base de datos MySQL Server 4.1 a 5.5. MySQL Workbench es el sucesor de Query Browser y soporta modelos de bases de datos de MySQL 5.1 a 8.x, y está disponible en Linux en el gestor de paquetes con un nombre como ''mysql-tools-workbench'' o similar. +
- +
-Para la instalación ver [[Query Browser]]. +
- +
-  * ''mysql'' +
- +
-''mysql'' es la línea de comandos de MySQL. Viene como opción en MySQL Community Server en Windows y en Linux viene disponible como un paquete con un nombre como ''mysql-client'' similar. +
- +
-  * ''psql'' +
- +
-''psql'' es la línea de comandos de PostgreSQL. En Linux viene disponible como un paquete con un nombre como ''postgresql-client'' o similar. +
   * SQLitebrowser   * SQLitebrowser
- 
-SQLitebrowser es una interface gráfica para crear, gestionar y respaldar archivos de base de datos en SQLite2 (no en SQLite3). En Linux está disponible con el nombre de paquete ''sqlitebrowser'' o similar. 
  
 =====Más Información===== =====Más Información=====
sql.1538690482.txt.gz · Última modificación: 2018/10/04 22:01 por lmachuca
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0