Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| sql [2024/12/18 13:33] – lmachuca | sql [2025/06/16 19:14] (actual) – lmachuca | ||
|---|---|---|---|
| Línea 7: | Línea 7: | ||
| =====Expresiones DDL===== | =====Expresiones DDL===== | ||
| + | |||
| ==== Schemas ==== | ==== 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. | 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. | ||
| + | |||
| + | <code sql> | ||
| + | CREATE SCHEMA helpcomschema OWNER usuario; -- crear un schema | ||
| + | GRANT USAGE ON SCHEMA helpcomschema TO usuario2; -- permitir conectar | ||
| + | DROP SCHEMA helpcomschema; | ||
| + | DROP SCHEMA helpcomschema CASCADE; -- bajar un schema y todos sus objetos. | ||
| + | </ | ||
| + | |||
| + | |||
| + | En PostgreSQL se muestra los schemas de una conexión con '' | ||
| + | |||
| + | En SQLite y MySQL no existe una forma estandarizada de mostrar los schemas de una conexión. | ||
| ==== Tablas ==== | ==== Tablas ==== | ||
| Línea 28: | Línea 41: | ||
| Por ejemplo: | Por ejemplo: | ||
| - | < | + | < |
| CREATE TABLE libro ( | CREATE TABLE libro ( | ||
| - | isbn VARCHAR(20) NOT NULL, | + | isbn VARCHAR(20) NOT NULL UNIQUE, |
| - | titulo | + | titulo |
| - | | + | |
| - | | + | |
| - | | + | |
| hardprint BOOLEAN, | hardprint BOOLEAN, | ||
| hardcover BOOLEAN, | hardcover BOOLEAN, | ||
| Línea 44: | Línea 57: | ||
| < | < | ||
| Table " | Table " | ||
| - | Column | + | Column |
| - | -----------+-----------------------+-----------+----------+--------- | + | ------------+-----------------------+-----------+----------+--------- |
| - | | + | |
| - | | + | |
| - | author | + | author_id |
| - | edicion | + | edicion_id |
| - | anyo | + | año |
| - | | + | |
| - | | + | |
| Indexes: | Indexes: | ||
| " | " | ||
| Línea 61: | Línea 74: | ||
| En MySQL es posible recuperar la sentencia que creó una tabla con '' | En MySQL es posible recuperar la sentencia que creó una tabla con '' | ||
| + | |||
| + | En PostgreSQL, SQLite, etc, y en SQ92 no existe una sentencia directa para observar el schema. Aunque la tabla mostrada anteriormente se puede componer usando los registros del schema de sistema '' | ||
| + | |||
| + | <code sql> | ||
| + | select column_name, | ||
| + | from information_schema.columns | ||
| + | where table_catalog=' | ||
| + | </ | ||
| + | |||
| + | |||
| + | Lo que resulta en la siguiente salida: | ||
| + | |||
| + | < | ||
| + | | ||
| + | -------------+-------------------+------+-------+----------+----------------------- | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | </ | ||
| - | En lenguaje SQL no hay una forma estandarizada para listar tablas. En distintos motores existen distintos mecanismos. | ||
| **Mostrar tablas en el schema:** | **Mostrar tablas en el schema:** | ||
| - | | + | En lenguaje SQL no hay una forma estandarizada para listar tablas. En distintos motores existen distintos mecanismos. |
| + | |||
| + | | ||
| * MySQL: '' | * MySQL: '' | ||
| - | * SQite: | + | * SQite: |
| + | |||
| + | En SQL92 se puede obtener una vista generalizada de tablas de un schema consultando '' | ||
| + | |||
| + | <code sql> | ||
| + | select table_name, table_type | ||
| + | from information_schema.tables | ||
| + | where table_catalog=' | ||
| + | </ | ||
| + | |||
| + | Las tablas con tipo '' | ||
| + | |||
| + | **Eliminar una tabla** | ||
| + | |||
| + | <code sql> | ||
| + | DROP TABLE libro; -- eliminar si no hay depedencias | ||
| + | DROP TABLE libro CASCADE; -- eliminar la tabla, y todas sus filas y tablas dependientes. | ||
| + | </ | ||
| Línea 85: | Línea 140: | ||
| 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. | 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. | ||
| + | |||
| + | **Eliminar una vista** | ||
| + | |||
| + | <code sql> | ||
| + | DROP VIEW vista; | ||
| + | </ | ||
| + | |||
| ==== Funciones ==== | ==== Funciones ==== | ||
| - | TBD | + | : |
| + | |||
| + | ==== Tipos de Datos ==== | ||
| + | |||
| + | Los siguientes tipos de datos son globales en SQL: | ||
| + | |||
| + | {| class=" | ||
| + | |- | ||
| + | ! INTEGER || Un número entero, con signo, de hasta 32 o 64 bits. || '' | ||
| + | |- | ||
| + | ! REAL || Un número flotante en rango de IEEE754 '' | ||
| + | |- | ||
| + | ! CHAR(n) | ||
| + | |- | ||
| + | ! TEXT || Un blob de tamaño variable, \\ parseado como texto **en el collation de la tabla**. || ''" | ||
| + | |- | ||
| + | ! BLOB || Un blob tratado como un binario. || | ||
| + | |- | ||
| + | |} | ||
| + | |||
| + | Cada motor agrega sus tipos de datos propios. Algunos tipos que son bastante comunes son '' | ||
| + | |||
| + | |||
| + | ==== UDL ==== | ||
| + | |||
| + | :FIXME: TBD | ||
| ===== CRUD ===== | ===== CRUD ===== | ||
