Tabla de Contenidos
SQL
Información general de lenguaje SQL, motores y herramientas.
- Información General - SQL.
- Cosas más específicas para Helpcom, por motor: MySQL-sintaxis, PostgreSQL-sintaxis, SQLite-sintaxis.
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 elFROM
.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 simplementemae_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... ;
Software
Los siguientes son ejemplos de software que se están usando en Helpcom.
Motores
- 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.
- SQLite - https://www.sqlite.org/ - usado por productos como Draco.
- MongoDB
- VoltDB
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: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 |