SQL

Información general de lenguaje SQL, motores y herramientas.

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

La instrucción CREATE TABLE crea tablas con columnas siguiendo tipos de datos.

  CREATE TABLE tabla 
  ( columna1 tipo1 modificadores...
  , columna2 tipo2 modificadores...
  , ....
    PRIMARY KEY (tupla...)
  );

Este comando crea una tabla llamada tabla con N columnas, llamadas columna1...columnaN, con tipos y modificadores cada uno en su línea. Las llaves primarias de la tabla se designan juntando las columnas en una tupla....

Por ejemplo:

CREATE TABLE libro (
  isbn VARCHAR(20) NOT NULL,
  titulo VARCHAR(80) NOT NULL,
  autor INTEGER,
  edicion INTEGER,
  anyo INTEGER
  hardprint BOOLEAN,
  hardcover BOOLEAN,
  PRIMARY KEY (isbn)
);

Crea una tabla con la estructura siguiente:

                        Table "public.libro"
  Column   |         Type          | Collation | Nullable | Default 
-----------+-----------------------+-----------+----------+---------
 isbn      | character varying(20) |           | not null | 
 titulo    | character varying(85) |           |          | 
 author    | integer               |           |          | 
 edicion   | integer               |           |          | 
 anyo      | integer               |           |          | 
 hardprint | boolean               |           |          | 
 hardcover | boolean               |           |          | 
Indexes:
    "libro_pkey" PRIMARY KEY, btree (isbn)

Si se tiene los privilegios adecuados, una tabla creada se elimina con DROP tabla.

En MySQL es posible recuperar la sentencia que creó una tabla con SHOW CREATE TABLE tabla.

En lenguaje SQL no hay una forma estandarizada para listar tablas. En distintos motores existen distintos mecanismos.

Mostrar tablas en el schema:

  • Postgres: \dt y similares.
  • MySQL: show tables; y similares.
  • SQite: ????

Vistas

Una vista es una tabla virtual cuya estructura calza la definición de tipo de datos de una consulta, es decir está definida en términos de un SELECT:

  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 ...
  ;

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.

  SELECT campos
  FROM tablas
  WHERE (condicion1 [AND/OR] condicion2 [AND/OR]...)
  [ORDER BY orden [ASC/DESC] ]
  ;

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 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).
  • 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%' ”.
  • orden es una lista de campos o de fórmulas, del más prioritario al menos prioritario, para ordenar los resultados. Por ejemplo “ORDER BY cantidad_vendida, WEEKDAY(fecha_venta)” ordenaría una lista de ventas de la que vendió más a menos y luego por el día de semana de la venta.

Escribir Registros

Las instrucciones INSERT y UPDATE agregan o actualizan información.

  INSERT INTO tablas VALUES
  (fila1),(fila2), ...
  ;
 
  UPDATE tablas SET cambios...
  WHERE (condicion1 [AND/OR] condicion2 [AND/OR]...)
  ;

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

La instrucción DELETE permite eliminar registros (filas) de una tabla en la base de datos.

  DELETE FROM tablas 
  WHERE condiciones...
  ;
No se olvide de poner el WHERE en el DELETE FROM

Software

Los siguientes son ejemplos de software que se están usando en Helpcom.

Motores

Gestores

  • MySQL Query Browser (desahuciado en 2019).
  • SQYog Community.
  • MySQL Workbench.
  • mysql - línea de comandos para un servicio de MySQL o MariaDB.
  • psql - línea de comandos para un servicio de PostgreSQL.
  • sqlite3 - línea de comandos para procesar un archivo de SQLite.
  • SQLitebrowser

Más Información

Páginas que pueden tener información relacionada:

2018/10/04 17:09Luis Machuca Bezzaza
2018/10/04 23:17Luis Machuca Bezzaza
2018/10/03 14:03Luis Machuca Bezzaza
2017/10/13 14:15Luis Machuca Bezzaza
2022/04/01 14:22Luis Machuca Bezzaza
2018/05/07 15:10Luis Machuca Bezzaza
2017/10/05 16:13Luis Machuca Bezzaza
2018/08/13 14:59Luis Machuca Bezzaza
2017/12/27 13:59Luis Machuca Bezzaza
2018/10/03 14:03Luis Machuca Bezzaza
2018/08/13 18:24Luis Machuca Bezzaza
2018/10/04 23:17Luis Machuca Bezzaza
sql.txt · Última modificación: 2024/12/18 13:33 por lmachuca
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0