Академический Документы
Профессиональный Документы
Культура Документы
);
Arrancar isql
Para crear una base de datos en forma interactiva usando la interfaz de comandos de isql, se debe
trabajar en el servidor. Posicione una terminal de comandos en el subdirectorio bin y arranque isql como
sigue:
1
C:\Archivos de programa\Firebird\Firebird_1_5\bin>isql↵
Use CONNECT or CREATE DATABASE to specify a database
Para verificar que realmente hay una base de datos ahí, escriba esta consulta:
SQL>SELECT * FROM RDB$RELATIONS;↵
¡La pantalla se llenará con una gran cantidad de datos! Esta consulta selecciona todas las filas de la tabla
de sistema adonde Firebird almacena los metadatos para las tablas. Una base de datos “ vacía” no está
vacía -contiene una base de datos que será completada con metadatos a medida que Ud. cree objetos
en ella.
Crear ForeKey
CREATE DOMAIN D_IDENTIFICADOR AS BIGINT;
CREATE DOMAIN D_CHAR3 AS CHAR(3);
CREATE DOMAIN D_FECHA2010 AS DATE CHECK (VALUE >= '01-01-2010');
CREATE TABLE MOVIMCAB (
MVC_IDENTI D_IDENTIFICADOR NOT NULL,
MVC_TIPMOV D_CHAR3,
MVC_IDECLI D_IDENTIFICADOR,
MVC_FECHAX D_FECHA2010);
ALTER TABLE MOVIMCAB ADD CONSTRAINT PK_MOVIMCAB PRIMARY KEY (MVC_IDENTI);
ALTER TABLE MOVIMCAB ADD CONSTRAINT FK_MOVIMCAB FOREIGN KEY (MVC_IDECLI) REFERENCES
CLIENTES(CLI_IDENTI);
2
);
set term ^ ;
CREATE TRIGGER t1_autoincrement_ID FOR mitabla
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
if (NEW.idMitabla is NULL OR NEW.idMitabla = 0) then NEW.idMitabla = GEN_ID(gen_mitabla_id, 1);
END ^
set term ; ^
3
AÑADIDA EN: IB
MODIFICADA EN: Versión Firebird 2.1
SUM( campo ) DESCRIPCION: Devuelve la suma de los valores del campo
seleccionado.
EJEMPLO:
Select cod_cliente,sum(ventas) from ARTICULOS
CONDICIONALES
CASE DESCRIPCION: Devuelve un valor de un número de
WHEN condición posibilidades.
then resultado [WHEN...] CASE SIMPLE.
[ELSE resultado] END EJEMPLO:
Select name,
edat,
case upper(sexo)
when 'H' then 'Hombre'
when 'm' then 'Mujer'
else 'Unknown'
end,
religion
from personas
CASE condición DESCRIPCION: Devuelve un valor de un número de
WHEN valor posibilidades.
THEN resultado CASE CONDICIONAL.
[WHEN ...] EJEMPLO:
[ELSE resultado] END CanVote = case
when Age >= 18 then 'Yes'
when Age < 18 then 'No'
else 'Unsure'
end;
DESCRIPCION: La función COALESCE toma dos o más
COALESCE ( , [, ... ]) argumentos y devuelve el valor del primer argumento si no es
NULL. si todos los argumentos se evalúan comoNULL, se
devuelve NULL.
TIPO RESULTADO: Depende de la entrada
EJEMPLO:
select
coalesce (Nickname, FirstName, 'Mr./Mrs.') || ' ' ||
LastName as FullName from Persons
FUNCIONAL EN: DSQL, PSQL
AGREGADA EN: Versión Firebird 1.5
CADENAS
BIT_LENGHT (STR) DESCRIPCION: Devuelve la longitud en bits de la cadena de
entrada.
TIPO RESULTADO: Integer
EJEMPLO:
select bit_length('Hello!') from rdb$database
-- Devuelve 48
FUNCIONAL EN: DSQL, PSQL
AGREGADA EN: Versión Firebird 2.0
MODIFICADA EN: Versión Firebird 2.1
CHAR_LENGTH (STR) DESCRIPCION: Devuelve la longitud de caracteres de la cadena
4
de entrada.
TIPO RESULTADO: Integer
EJEMPLO:
Select char_length('Hello!') from rdb$database
-- Devuelve 6
FUNCIONAL EN: DSQL, PSQL
AGREGADA EN: Versión Firebird 2.0
MODIFICADA EN: Versión Firebird 2.1
OCTET_LENGTH (STR) DESCRIPCION: Devuelve la longitud en bytes (octetos) de la
cadena de entrada.
TIPO RESULTADO: Integer
EJEMPLO:
select octet_length('Hello!') from rdb$database
-- Devuelve 6
FUNCIONAL EN: DSQL, PSQL
AGREGADA EN: Versión Firebird 2.0
MODIFICADA EN: Versión Firebird 2.1
DESCRIPCION: Recupera cualquier secuencia de caracteres de
SUBSTRING(str FROM startpos [FO una cadena.
R length]) TIPO RESULTADO: VARCHAR (n) o BLOB
EJEMPLO:
SUBSTRING('FIREBIRD' FROM 2 FOR 1) 'I'
SUBSTRING('FIREBIRD' FROM 2 FOR 2) 'IR'
SUBSTRING('FIREBIRD' FROM 1 FOR 3) 'FIR'
FUNCIONAL EN: DSQL, PSQL
AGREGADA EN: Versión Firebird 1.0
MODIFICADA EN: Versión Firebird 2.0 y 2.1
5
AGREGADA EN: IB
MODIFICADA EN: Versión Firebird 2.0 y 2.1
OTROS
CAST ( expression AS { datatype | DESCRIPCION: Se usa para convertir un tipo de datos en otro
[TYPE OF] domain }) dentro de una instrucción SELECT, por lo general en la cláusula
WHERE, para comparar los diferentes tipos de datos.
¡Atención!. Hay diferencias entre los Dialectos 1 y 3 de Firebird.
TIPO RESULTADO: El elegido por el usuario.
EJEMPLO:
SELECT CAST('NOW' AS TIMESTAMP) AS TIME_FINISHED FROM
RDB$DATABASE
FUNCIONAL EN: DSQL, ESQL, PSQL
AGREGADA EN: IB
MODIFICADA EN: Versión Firebird 2.0 y 2.1
EXTRACT ( FROM ) DESCRIPCION:Devuelve una variedad de elementos extraídos
::= YEAR | MONTH | WEEK | DAY mediante la descodificación de los campos de tipo fecha /
| WEEKDAY | YEARDAY | HOUR hora. Puede funcionar en los dialectos 1 y 3.
| MINUTE | SECOND | TIPO RESULTADO: smallint o numérico
MILLISECOND EJEMPLO:
::= a DATE, TIME or TIMESTAMP SELECT
expression
IRST_NAME ||' '||LAST_NAME AS FULL_NAME,
EXTRACT(MONTH FROM DATE_OF_BIRTH)||'/'||EXTRACT
(DAY FROM DATE_OF_BIRTH)
AS BIRTHDAY
ROM MEMBERSHIP
WHERE FIRST_NAME IS NOT NULL AND LAST_NAME IS NOT NU
LL
SELECT
FIRST_NAME ||' '||LAST_NAME AS FULL_NAME,
EXTRACT(MONTH FROM DATE_OF_BIRTH)||'/'||EXTRACT
(DAY FROM DATE_OF_BIRTH)
AS BIRTHDAY
FROM MEMBERSHIP
WHERE FIRST_NAME IS NOT NULL AND LAST_NAME IS NOT NU
LL
ORDER BY 2;
FUNCIONAL EN: DSQL, ESQL, PSQL
AGREGADA EN: IB 6
MODIFICADA EN: Versión Firebird 2.1
VARIABLES DEL SISTEMA
6
CURRENT_CONNECTION DESCRIPCION: Devuelve el identificador de la conexión en
curso.
TIPO RESULTADO: Integer
EJEMPLO:
select current_connection from rdb$database
execute procedure P_Login(current_connection)
FUNCIONAL EN: DSQL, PSQL
AGREGADA EN: Versión Firebird 1.5
MODIFICADA EN: Versión Firebird 2.1
CURRENT_DATE Devuelve la fecha del sistema.Devuelve TIMESTAMP.
La fecha del sistema que está ejecutando el servidor Firebird.
No hay ninguna zona horaria asociada con la fecha actual del
sistema.
CURRENT_ROLE DESCRIPCION: Devuelve el ROL de la conexion en curso. Si no
esta activa devuelve NONE.
TIPO RESULTADO: Devuelve VARCHAR(31)
EJEMPLO:
if (current_role <> 'MANAGER') then exception
only_managers_may_delete; else deletefrom Customers where
custno = :custno;
FUNCIONAL EN: DSQL, PSQL
AGREGADA EN: Versión Firebird 1.0
CURRENT_TIME [( precision )] DESCRIPCION: Establece la precision en se se medirá la hora.
precision ::= 0 | 1 | 2 | 3 NOTA: La parte fraccionaria de CURRENT_TIME solía ser
siempre ".0000", dando una precisión efectiva de 0 decimales.
Ahora usted puede especificar una precisión personalizada. El
valor predeterminado es aún 0 decimales, es decir, segundo de
precisión.
TIPO RESULTADO: Time
EJEMPLO:
7
select current_timestamp(2) from rdb$database -- returns e.g.
2008-08-13 14:20:23.1200
FUNCIONAL EN: DSQL, PSQL , ESQL
MODIFICADA EN: Versión Firebird 2.0
CURRENT_TRANSACTION DESCRIPCION: Devulve el identificador de la transacción activa.
TIPO RESULTADO: Integer
EJEMPLO:
select current_transaction from rdb$database
New.Txn_ID = current_transaction;
FUNCIONAL EN: DSQL, PSQL
MODIFICADA EN: Versión Firebird 2.5
CURRENT_USER DESCRIPCION: Devuelve el nombre del usuario conectado
actualmente. Es totalmente equivalente al usuario.
TIPO RESULTADO: VARCHAR(31)
EJEMPLO:
create trigger bi_customers for customers
before insert as begin New.added_by =CURRENT_USER;
New.purchases = 0; end
if (inserting or updating) then begin if
(new.serial_num is null) then new.serial_num =
gen_id(gen_serials, 1); end
FUNCIONAL EN: PSQL
AGREGADA EN: Versión Firebird 1.5
NEW DESCRIPCION: NEW contiene la nueva versión de un registro de
base de datos que acaba de insertar o actualizar. A partir de
Firebird 2.0 es de sólo lectura en desencadenador es AFTER.
TIPO RESULTADO: Data row
FUNCIONAL EN: PSQL, triggers only
MODIFICADA EN: Versión Firebird 1.5 y 2.0
8
de base de datos justo antes de un borrado o actualización. A
partir de Firebird 2.0 es de sólo lectura.
TIPO RESULTADO: Data row
FUNCIONAL EN: PSQL, triggers only
MODIFICADA EN: Versión Firebird 1.5 y 2.0
9
AGREGADA EN: Versión Firebird 1.5
UPDATING DESCRIPCION: Disponible sólo en triggers, actualizando indica si
se esta realizando un operacion de actualizacion en ese
momento.Para uso en acción de múltiples factores
desencadenantes.
TIPO RESULTADO: BOOLEAN
EJEMPLO:
if (inserting or updating) then begin if
(new.serial_num is null) then new.serial_num =
gen_id(gen_serials, 1); end
FUNCIONAL EN: PSQL
AGREGADA EN: Versión Firebird 1.5
GDSCODE DESCRIPCION: contiene una representación numérica del
código de Firebird actual de error. A partir de Firebird 2.0, el
mismo es TRUE en un bloque WHEN ANY si su ejecución fue
provocada por un error de Firebird, de lo contrario contiene 0.
GDSCODE también es 0 en WHEN SQLCODE y WHEN
EXCEPTION, así como en cualquier otro lugar en PSQL.
TIPO RESULTADO: INTEGER
EJEMPLO:
_____________________________________________________________________________
_______
MATEMATICAS
10
DESCRIPCION: Devuelve el arco tangente del campo
seleccionado.
ATAN ( number ) TIPO RESULTADO: DOUBLE PRECISION
FUNCIONAL EN: DSQL, PSQL
AGREGADA EN: Versión Firebird 2.1
11
DESCRIPCION: Devuelve la cotangente de un ángulo. El
COT ( angle )
argumento debe ser dado en radianes.
TIPO RESULTADO: DOUBLE PRECISION
12