Información general de lenguaje SQL, motores y herramientas.
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.
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:
\dt
y similares.show tables;
y similares.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.
TBD
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.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.
La instrucción DELETE permite eliminar registros (filas) de una tabla en la base de datos.
DELETE FROM tablas WHERE condiciones... ;
Los siguientes son ejemplos de software que se están usando en Helpcom.
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.Páginas que pueden tener información relacionada:
2018/10/04 17:09 | Luis Machuca Bezzaza | |
2018/10/04 23:17 | Luis Machuca Bezzaza | |
2018/10/03 14:03 | Luis Machuca Bezzaza |
2017/10/13 14:15 | Luis Machuca Bezzaza | |
2022/04/01 14:22 | Luis Machuca Bezzaza | |
2018/05/07 15:10 | Luis Machuca Bezzaza | |
2017/10/05 16:13 | Luis Machuca Bezzaza | |
2018/08/13 14:59 | Luis Machuca Bezzaza | |
2017/12/27 13:59 | Luis Machuca Bezzaza | |
2018/10/03 14:03 | Luis Machuca Bezzaza | |
2018/08/13 18:24 | Luis Machuca Bezzaza |
2018/10/04 23:17 | Luis Machuca Bezzaza |