EJERCICIOS

EJERCICIOS 



RELACION O TABLA 


TUPLA RELACIÓN DOMINIO CARDINALIDAD



PROPIEDADES DE TABLAS 


PASO DE ENTIDAD/RELACION DE CHEN AL MODELO RELACIONAL



RELACIONES ISA 



ENTIDADES DÉBILES Y FUERTES  




MOTORES DE BASE DATOS 



REPRESENTACIÓN DE ESQUEMA DE BASE DE DATOS RELACIONALES 




GRAFOS RELACIONALES 


PRIMERA FORMA NORMAL


DEPENDENCIA FUNCIONALES 


SEGUNDA FORMA NORMAL 


TERCERA FORMA NORMAL


CUARTA FORMA NORMAL 


DEPENDENCIA MULTIVALUADA 


QUINTA FORMA NORMAL 


INDICAN CODIGOS DE MATERIAL SUMINISTRADO POR UN PROVEEDOR Y UTILIZADO EN UN DETERMINADO PROYECTO.

SI OCURRE UNA RESTRICCION ESPECIAL COMO POR EJEMPLO: CUANDO UN PROVEEDOR NOS HA SUMINISTRADO ALGUNA VEZ 
UN DETERMINADO MATERIAL, SI ESE MATERIAL APARECE EN OTRO PROYECTO, HAREMOS QUE EL PROVEEDOR NOS SUMINISTRE 
TAMBIEN ESE MATERIAL PARA ESE PROYECTO.


FORMA NORMAL DE DOMINIO CLAVE 


EJEMPLO:



ESTUDIANTE (SID, NIVELGRADO, EDIFICIO, CUOTA)



CLAVE: SID



RESTRICCIONES    EDIFICIO -----> CUOTA



SID no debe comenzar con el digito 1 



LUEGO SE NECESITA HACER DE LA DEPENDENCIA FUNCIONAL EDIFICIO -----> CUOTA UNA CONSECUENCIA LOGICA DE LAS CLAVES.



SI EDIFICIO FUERA UN ATRIBUTO DE LA CLAVE EDIFICIO ---> CUOTA SERIA UNA CONSECUENCIA LOGICA DE LA CLAVE





MOTORES DE BASE DE DATOS  II


SQL



DDL


DML


NOTAS PREVIAS 



VERSION SQL


HISTORIA SQL 

Los orígenes del SQL nos llevan a la década de 1970, cuando en los laboratorios de IBM, se creó el nuevo software de base de datos System R. Y para gestionar los datos almacenados en System R, se creó el lenguaje SQL. En un principio se llamó SEQUEL, un nombre que todavía se utiliza como una pronunciación alternativa para SQL, pero más tarde fue renombrado a sólo SQL.
En 1979, una compañía llamada Relational Software, que luego se convirtió en Oracle, vio el potencial comercial del lenguaje SQL y lanzó su propia versión modificada, denominada Oracle V2.
Ahora en su tercera década de existencia, el lenguaje SQL ofrece una gran flexibilidad a los usuarios soportando bases de datos distribuidas, es decir, bases de datos que se pueden ejecutar en varias redes de ordenadores a la vez. Certificado por ANSI e ISO, el lenguaje SQL se ha convertido en un estándar de lenguaje de consulta de base de datos, siendo la base de una gran variedad de aplicaciones de bases de datos bien establecidos en Internet hoy en día. Sirve tanto para propósitos empresariales como para necesidades académicas y funciona tanto en equipos individuales como en servidores de empresa.


FUNCIONAMIENTO 

cómo funcionan las bases de datos, les resultará muy interesante saber que su funcionamiento se basa en el envío de instrucciones de los usuarios a la base de datos. El lenguaje en el que se le envían es Structure Query Language, más conocido como SQL.


PROSECO DE INSTRUCCION SQL 

GO 
ENVIA LOTES DE INSTRUCIONES DE TRANSACT-SQL A LAS HERRAMIENTAS Y UTILIDADES 
NO SE TRATA REALMENTE DE UNA INSTRUCION DE TRANSACT -SQL

EXEC 
EJECUTA UNA FUNCION DEFINIDA POR EL USUARIO UN PROCEDIMIENTO DE SISTEMA UN PROCEDIMIENTO ALMACENADO DEFINIDO POR EL USUARIO O UN PROCEDIMIENTO ALMACENADO EXTENDIDO 
CONTROLA LA EJECUCION DE UNA CADENA DE CARACTERES DENTRO UN LOTE DE TRANSACT- SQL

ELEMENTOS SQL 

COMANDOS 
CLASULAS 
OPERADORES 
FUNCIONES 
LITERALES 
METADATOS
NORMA DE ESCRITURA (SINTAXIS)

CODIGO SQL 

COMANDOS. LAS DISTINTAS INSTRUCIONES QUE SE PUEDEN REALIZAR DESDE SQL 

DML=LENGUAJE DE MANIPULACION DE DATOS 
SELECT
INSTER
DELETE 
UPDATE
DDL=LENGUAJE DEFINITION DE DATOS 
CREATE 
DROP 
ALFERT   

NORMA DE ESCRITURA 

-EN SQL NO SE DISTINGUE ENTRE MAYUSCULAS Y MINUSCULAS 
DA LO MISMO COMO SE ESCRIBA
-AL FINAL DE UNA INSTRUCION LO DETERMINA UN PUNTO Y COMA

-LAS INSTRUCIONES (SELECT, INSERT) PUEDEN SER PARTIDOS POR ESPACIOS 

- LOS COMENTARIOS EN LOS CODIGOS SQL COMIENZAN POR */ Y TERMINA CON /*

CREACION DE BASE DATOS 

CREACION DE UNA BASE DE DATOS 
SE USA LA INSTRUCCIONS:
CREATE TO DATA BASE_NOMBRE DE LA BASE 

OBJETOS DE BASE DATOS 

OBJETOS 
TABLAS 
CONSULTAS 
FORMULARIOS 
INFORMES 

CREACION DE TABLAS 

Créate table_nombre de la tabla

TIPOS DE DATOS 


DOMINIOS


CONSULTAS DE TABLAS 

SELECT [ ALL / DISTINC ] [ * ] / [ListaColumnas_Expresiones] AS [Expresion]
FROM Nombre_Tabla_Vista 
WHERE Condiciones
ORDER BY ListaColumnas [ ASC / DESC ]

BORRAR TABLAS 

droptable_nombre de la tabla

MODIFICAR TABLAS 

Para modificar una tabla, use un comando ALTER TABLE. Puede usar un comando ALTER TABLE para agregar, modificar o quitar las restricciones o columnas (eliminar). Un comando ALTER TABLE tiene la siguiente sintaxis:

ALTER TABLE table_name predicate

RESTRICCIONES 

as restricciones se puede definir cuando creamos la tabla (CREATE TABLE) o posteriormente con la sentencia ALTER TABLE.

Las posibles restricciones son:

NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT


INSTRUCCIONES DDL

TRANSACCIONES 

USE NorthWind
DECLARE @Error int
--Declaramos una variable que utilizaremos para almacenar un posible código de error

BEGIN TRAN
--Iniciamos la transacción
UPDATE Products SET UnitPrice=20 WHERE ProductName ='Chai'
--Ejecutamos la primera sentencia
SET @Error=@@ERROR
--Si ocurre un error almacenamos su código en @Error
--y saltamos al trozo de código que deshara la transacción. Si, eso de ahí es un 
--GOTO, el demonio de los programadores, pero no pasa nada por usarlo
--cuando es necesario
IF (@Error<>0) GOTO TratarError

--Si la primera sentencia se ejecuta con éxito, pasamos a la segunda
UPDATE Products SET UnitPrice=20 WHERE ProductName='Chang'
SET @Error=@@ERROR
--Y si hay un error hacemos como antes
IF (@Error<>0) GOTO TratarError

--Si llegamos hasta aquí es que los dos UPDATE se han completado con 
--éxito y podemos "guardar" la transacción en la base de datos
COMMIT TRAN

TratarError:
--Si ha ocurrido algún error llegamos hasta aquí
If @@Error<>0 THEN
BEGIN
PRINT 'Ha ecorrido un error. Abortamos la transacción'
--Se lo comunicamos al usuario y deshacemos la transacción
--todo volverá a estar como si nada hubiera ocurrido
ROLLBACK TRAN
END


COMMIT 

BEGIN TRANSACTION;   
DELETE FROM HumanResources.JobCandidate  
    WHERE JobCandidateID = 13;   
COMMIT TRANSACTION;   

ROLLBACK 

El siguiente ejemplo muestra el efecto de revertir una transacción nombrada.

USE tempdb;  
GO  
CREATE TABLE ValueTable ([value] int);  
GO  
  
DECLARE @TransactionName varchar(20) = 'Transaction1';  
  
BEGIN TRAN @TransactionName  
       INSERT INTO ValueTable VALUES(1), (2);  
ROLLBACK TRAN @TransactionName;  
  
INSERT INTO ValueTable VALUES(3),(4);  
  
SELECT [value] FROM ValueTable;  
  
DROP TABLE ValueTable; 

SINTAXIS SELECT 

SELECT "nom de colonne" FROM "nombre_tabla";

OPERACIONES COMPARACIONES 



BETWEEN


Por ejemplo, podríamos desear seleccionar la visualización de toda la información de ventas entre el 06 de enero de 1999, y el 10 de enero de 1999, en la Tabla Store_Information,

SELECT *
FROM Store_Information
WHERE Txn_Date BETWEEN '06-Jan-1999' AND '10-Jan-1999';

IN 

Por ejemplo, podríamos desear seleccionar todos los registros para los negocios de Los Ángeles y San Diego en la Tabla Store_Information,

SELECT *
FROM Store_Information
WHERE Store_Name IN ('Los Angeles', 'San Diego');

LIKE 

Deseamos encontrar todos los negocios cuyos nombres contengan ‘AN’. Para hacerlo, ingresamos,

SELECT *
FROM Store_Information
WHERE Store_Name LIKE '%AN%';

IS NULL





DISEÑO DE BASE DE DATOS 


FUNCIONE 

unción BDPROMEDIO

Devuelve el promedio de las entradas seleccionadas en la base de datos.

Función BDCONTAR

Cuenta el número de celdas que contienen números en una base de datos.

Función BDCONTARA

Cuenta el número de celdas no vacías en una base de datos.

Función BDEXTRAER

Extrae de una base de datos un único registro que cumple los criterios especificados.

Función BDMAX

Devuelve el valor máximo de las entradas seleccionadas de la base de datos.

Función BDMIN

Devuelve el valor mínimo de las entradas seleccionadas de la base de datos.

Función BDPRODUCTO

Multiplica los valores de un campo concreto de registros de una base de datos que cumplen los criterios especificados.

Función BDDESVEST

Calcula la desviación estándar a partir de una muestra de entradas seleccionadas en la base de datos.

Función BDDESVESTP

Calcula la desviación estándar en función de la población total de las entradas seleccionadas de la base de datos.

Función BDSUMA

Suma los números de la columna de campo de los registros de la base de datos que cumplen los criterios.

Función BDVAR

Calcula la varianza a partir de una muestra de entradas seleccionadas de la base de datos.

Función BDVARP

Calcula la varianza a partir de la población total de entradas seleccionadas de la base de datos.


HAVING




SUBCONSULTAS 

Una subconsulta es una consulta que está anidado dentro de una SELECT, INSERT, UPDATE, o DELETEdeclaración, o dentro de otra subconsulta. Una subconsulta se puede utilizar en cualquier lugar donde se permita una expresión

En este ejemplo, una subconsulta se usa como una expresión de columna denominada MaxUnitPrice en una declaración SELECT.

USE AdventureWorks2016;
GO
SELECT Ord.SalesOrderID, Ord.OrderDate,
    (SELECT MAX(OrdDet.UnitPrice)
     FROM Sales.SalesOrderDetail AS OrdDet
     WHERE Ord.SalesOrderID = OrdDet.SalesOrderID) AS MaxUnitPrice
FROM Sales.SalesOrderHeader AS Ord;
GO


EXITS


UNIONES 


UPDATE 

La consulta SQL UPDATE se utiliza para modificar los registros existentes en una tabla.

UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];

DELETE 

 la instrucción DELETE elimina uno o más registros de una tabla . Se puede definir un subconjunto para su eliminación mediante una condición, de lo contrario, se eliminarán todos los registros

DELETE FROM table_name
WHERE [condition];

DELETE FROM table_name;

DELETE FROM Customers;

VISTA,CREACION DE VISTA 

 crea una vista en la tabla de empleados para restringir el acceso solo a aquellos registros en los que el departamento es 201:

CREATE VIEW view_dept_201
 AS SELECT emp_id, name, hire_date
 FROM gdb.employees
 WHERE department = 201;
borrar vista 
drop view 



SINÓNIMOS 

ESTA INSTRUCCIÓN SE PONE AL CREAR SINÓNIMOS 


CREATE SYNONYM  PEGASO.OBSEMULT FOR 

   GAS.OBSEMULT@DESA;



CREATE PUBLIC  SYNONYM PEGASO.OBSEMULT

   FOR GAS.OBSEMULT@DESA; 



CREATE PUBLIC DATABASE LINK DESA

CONNECT TO DESA 

IDENTIFIED    BY  ud953_fl

USING "DESA";





DECODE 

En este ejemplo, se consulta la tabla para ver quien esta ejecutando algún comando en la base de datos. La columna COMAND muestra un código numérico para cada comando, pero se pretende reportar una descripción textual para un conjunto reducido de comandos. Para esto se utiliza DECODE examinando el contenido de la columna COMMAND. 

   
    SELECT  sid, serial#, username,

                 DECODE  (command, 

                 0, "None",
                 
                 2, "Insert",

                 3, "Select",

                 6, "Update", 

                 7, "Delete",

                 8, "Drop",

                 "Other")  cmd 

  FROM   v$session

WHERE   type  <>  "BACKGROUND";


RESULTADO:

SID                       SERIAL#                     USERNAME                      CMD 
-----                      -----------                     -----------------                    -------                 

7                            147                                                                              None

8                            147                                                                              None

9                            24                                 CHIPD                                 Other

11                            4                                  CHIPD                                 Select




FUNCIONES XML 

Estas son las funciones mas usadas:

*position(). Devuelve la posición del nodo actual relativa al conjunto de nodos del contexto.

*count(conjuntoNodos). Devuelve el numero de nodos del conjunto pasado como parámetro.

*concat(cadena1, cadena2,...). Devuelve la concatenación de sus argumentos.
*substring(cadena, inicio, fin). Devuelve la subcadena que comienza en la posición inicio y termina en fin

  



producto cruzado o cartesiano de tablas





CUBE Y ROLLUP 

Vamos a trabajar con la siguiente tabla. Además una tabla como esta aunque no sea real sirve perfectamente para mostrar como funciona WITH CUBE ROLLUP.

Mientras que WITH CUBE genera un conjunto de resultados que muestra agregados para todas las combinaciones de valores de las columnas seleccionadas, WHIT ROLLUP genera un conjunto de resultados que muestra agregados para una jerarquía de valores de las columnas seleccionadas.
Es decir, con CUBE aparecen los resultado totalizados por TipoTransaccion, por Divisa, y por totales absolutos, mientras que con ROLLUP sólo aparecerían los totales agrupados por lo que nosotros indiquemos. 


SELECT  'TipoTransacion'= CASE
                                               WHEN GROUPING(TipoTransaccion)=1 THEN 'Todas'
                                               ELSE ISNULL(TipoTransaccion, 'N/D')
                               END,
                'Divisa'= CASE
                                               WHEN GROUPING(Divisa)=1 THEN 'Todas'
                                               ELSE ISNULL(Divisa, 'N/D')
                               END,                                    
                SUM(Cantidad) Cantidad
                FROM Movimientos
                GROUP BY TipoTransaccion, Divisa
                WITH ROLLUP




GROUPING 

Esta instrucción sirve para asegurarnos de que todas las sumas de las ventas esten en GROUP BY






ASOCIACIÓN DE TABLAS 

Esta seria una instrucción para asociar una tabla:

ALTER TABLE `tcliente_realizado` 
ADD CONSTRAINT `tcliente_tnombreProducto`  
FOREIGN KEY (`id_contacto`) 
REFERENCES `bdPais`.`tCodigoPostal` (`id_Cliente` 
ON DELETE NO ACTION ON UPDATE NO ACTION;





BORRADO DE REGISTROS 

Para eliminar los registros de una tabla usamos el comando "delete":

DELETE  FROM  usuarios;

Automáticamente mostrara un mensaje indicando la cantidad de registros que ha eliminado.

Si no queremos eliminar todos los registros, sino solamente algunos, debemos indicar cual o cuales, para ello utilizamos el comando "DELETE"  junto con la clausula "WHERE" con la cual establecemos la condición que deben cumplir los registros a borrar. 

Por ejemplo, queremos eliminar aquel registro cuyo nombre de usuario es "ROY":

DELETE FROM  usuarios;

WHERE nombre="ROY";


ACTUALIZACIÓN DE REGISTROS 


Update es la instrucción del lenguaje SQL que nos sirve para modificar los registros de una tabla. Como para el caso de Delete, necesitamos especificar por medio de Where cuáles son los registros en los que queremos hacer efectivas nuestras modificaciones. Además, obviamente, tendremos que especificar cuáles son los nuevos valores de los campos que deseamos actualizar.

UPDATE nombre_tabla Set nombre_campo1 = valor_campo1, nombre _campo2 = valor_campo2,...  WHERE  condiciones_ de_ selección

Un ejemplo mas aplicado:

UPDATE clientes Set nombre="Roy"  WHERE  nombre="Alexander" 


Mediante esta sentencia cambiamos el nombre Roy por el de Alexander en todos los registros cuyos nombres sea Roy.


Cambien deben ser cuidadoso  de no olvidarse de usar WHERE, de lo contrario, modificaremos todos los registros de nuestra tabla.


UPDATE  producto  Set precio=990, descuento=25

Esta sentencia modificaría el campo precio y el campo descuento en todos los productos de la tabla producto. Si tenemos una tabla con miles de productos con esa sentencia se actualizaran todos, de modo que la totalidad de los registros tendrían el mismo precio y el mismo descuento.

 

obtencion de datos multiples tablas








FUNCIONES DE CONVERSIÓN 

USE Northwind
go
Select SUBSTRING(ProductName, 1, 30) As Producto, UnitPrice As Precio
FROM Products Where CAST(UnitPrice As int) LIKE ‘3%’
go
— Note que Cast convierte el Precio (UnitPrice) a Entero (int)
— Use CONVERT. 
USE Northwind
GO
Select SUBSTRING(ProductName, 1, 30) AS Producto, UnitPrice
FROM Products Where CONVERT(int, UnitPrice) LIKE ‘3%’
GO

AGRUPACIÓN DE RESULTADOS AVANZADOS 


SELECT EmployeeID, COUNT(*) AS TotalPedidos, COUNT(ShipRegion) AS FilasNoNulas,

MIN(ShippedDate) AS FechaMin, MAX(ShippedDate) AS FechaMax,

SUM(Freight) PesoTotal, AVG(Freight) PesoPromedio

FROM Orders


GROUP BY EmployeeID


En este caso obtenemos los mismos datos pero agrupándolos por empleado, de modo que para cada empleado de la base de datos sabemos cuantos pedidos ha realizado, cuando fue el primero y ultimo, etc.



SEMANTICA

La consulta siguiente obtiene las frases clave que se identificaron en el documento de ejemplo.Muestra los resultados en orden descendente por la puntuación que clasifica la importancia estadística de cada frase clave.
Esta consulta llama a la función semantickeyphrasetable.

SET @Title = 'Sample Document.docx' 
 
SELECT @DocID = DocumentID 
    FROM Documents 
    WHERE DocumentTitle = @Title 
 
SELECT @Title AS Title, keyphrase, score 
    FROM SEMANTICKEYPHRASETABLE(Documents, *, @DocID) 
    ORDER BY score DESC  



RELACIONES SIN IGUALDAD

Los operadores de comparación comprueban si dos expresiones son iguales. Se pueden usar en todas las expresiones, excepto en las de los tipos de datos textntext o image. En la siguiente tabla se presentan los operadores de comparación Transact-SQL.
OperadorSignificado
= (Es igual a)Igual a
> (Mayor que)Mayor que
< (Menor que)Menor que
>= (Mayor o igual a)Mayor o igual que
<= (Menor o igual a)Menor o igual que
<> (No es igual a)No es igual a
!= (No es igual a)No es igual a (no es del estándar ISO)
!< (No menor que)No es menor que (no es del estándar ISO)
!> (no mayor que)No es mayor que (no es del estándar ISO)




PRECEDENCIA DE OPERADORES

Los operadores tienen los niveles de prioridad que se muestran en la siguiente tabla. Un operador con un nivel más altos se evalúa antes que un operador con un nivel más bajo.
NivelTipo de operaciónOperador
1Principal. , [] ()
2Unario! not
3Multiplicativo* / %
4Aditivo+ -
5Ordenación< > <= >=
6Igualdad= != <>
7AND condicionaland &&
8OR condicionalor &#124;&#124;




FUNCIONES DE FECHA Y MANEJO DE FECHAS E INTERVALOS

Argumentos que se indican como time_exp puede ser el nombre de una columna, el resultado de otra función escalar, o un escape de hora ODBC o escape de marca de tiempo de ODBC, donde el tipo de datos subyacente podría representarse como SQL_CHAR, SQL_VARCHAR, SQL_TYPE_TIME y SQL_TYPE_TIMESTAMP.
El CURRENT_DATE y CURRENT_TIME CURRENT_TIMESTAMP timedate funciones escalares se han agregado en ODBC 3.0 para alinearse con SQL-92.
FunciónDescripción
() CURRENT_DATE(ODBC 3.0)Devuelve la fecha actual.
CURRENT_TIME [(precisión de tiempo )](ODBC 3.0)Devuelve la hora local actual. El precisión de tiempo argumento determina la precisión de segundos del valor devuelto.
CURRENT_TIMESTAMP
[( precisión de la marca de tiempo )] (ODBC 3.0)
Devuelve la fecha local actual y la hora local como un valor de marca de tiempo.El precisión de la marca de tiempo argumento determina la precisión de segundos de la marca de tiempo devuelto.
CURDATE () (ODBC 1.0)Devuelve la fecha actual.
() CURTIME (ODBC 1.0)Devuelve la hora local actual.
DAYNAME ( date_exp )(ODBC 2.0)Devuelve una cadena de caracteres que contiene el nombre específico del origen de datos del día (por ejemplo, Sunday a Saturday o Sun. a Sat. para un origen de datos que utiliza inglés, o bien Sonntag a Samstag para un origen de datos que utiliza alemán) para la parte del día date_exp.
DAYOFMONTH (date_exp ) (ODBC 1.0)Devuelve el día del mes en función del campo de mes en date_exp como un valor entero en el intervalo de 1 a 31.
DAYOFWEEK (date_exp ) (ODBC 1.0)Devuelve el día de la semana basado en el campo de la semana en date_expcomo un valor entero en el intervalo de 1 a 7, donde 1 representa el domingo.
DAYOFYEAR ( date_exp) (ODBC 1.0)Devuelve el día del año según el campo año en date_exp como un valor entero en el intervalo de 1-366.
EXTRAER ( extraer campo FROM origen de extracción ) (ODBC 3.0)Devuelve el extraer campo parte de la origen de extracción. El origen de extracción argumento es una expresión de intervalo o datetime. El extraer campoargumento puede ser una de las siguientes palabras clave:

AÑO MES DÍA HORA MINUTO SEGUNDO

La precisión del valor devuelto es definido por la implementación. La escala es 0, a menos que se especifica en segundo lugar, en cuyo caso la escala no es menor que la precisión de fracciones de segundos de la origen de extracción campo.
HORA ( time_exp )(ODBC 1.0)Devuelve la hora en función del campo de hora en time_exp como un valor entero en el intervalo de 0 a 23.
MINUTO ( time_exp )(ODBC 1.0)Devuelve el minuto basándose en el campo de miuntos en time_exp como un valor entero en el intervalo de 0 a 59.
MES ( date_exp )(ODBC 1.0)Devuelve el mes según el campo de mes en date_exp como un valor entero en el intervalo de 1 a 12.
MONTHNAME (date_exp ) (ODBC 2.0)Devuelve una cadena de caracteres que contiene el nombre específico del origen de datos del mes (por ejemplo, January a December o enero a diciembre de un origen de datos que utiliza a inglés, o bien Januar a Dezember para un origen de datos que utiliza alemán) para la parte del mes date_exp.
AHORA () (ODBC 1.0)Devuelve la fecha y hora como un valor de marca de tiempo actual.
TRIMESTRE ( date_exp) (ODBC 1.0)Devuelve el trimestre en date_exp como un valor entero en el intervalo de 1 a 4, donde 1 representa el 1 de enero hasta el 31 de marzo.
SEGUNDO ( time_exp )(ODBC 1.0)Devuelve el segundo basándose en el segundo campo de time_exp como un valor entero en el intervalo de 0 a 59.
TIMESTAMPADD (intervalointeger_exptimestamp_exp ) (ODBC 2.0)Devuelve la marca de tiempo que se calcula sumando integer_exp intervalos de tipo intervalo a timestamp_exp. Los valores válidos de intervalo son las siguientes palabras clave:

SQL_TSI_FRAC_SECOND

SQL_TSI_SECOND

SQL_TSI_MINUTE

SQL_TSI_HOUR

SQL_TSI_DAY

SQL_TSI_WEEK

SQL_TSI_MONTH

SQL_TSI_QUARTER

SQL_TSI_YEAR

donde las fracciones de segundo se expresan en milmillonésimas de segundo.Por ejemplo, la siguiente instrucción SQL devuelve el nombre de cada empleado y su fecha de aniversario:

SELECT NAME, {fn TIMESTAMPADD(SQL_TSI_YEAR, 1, HIRE_DATE)} FROM EMPLOYEES

Si timestamp_exp es un valor de tiempo y intervalo especifica los días, semanas, meses, trimestres o años, la parte de fecha de timestamp_exp se establece en la fecha actual calcular la marca de tiempo resultante.

Si timestamp_exp es un valor de fecha y intervalo especifica fracciones segundos, segundos, minutos u horas, la parte de hora timestamp_exp se establece en 0 antes de calcular la marca de tiempo resultante.

Una aplicación determina qué intervalos es compatible con un origen de datos mediante una llamada a SQLGetInfo con la opción SQL_TIMEDATE_ADD_INTERVALS.
TIMESTAMPDIFF no (intervalotimestamp_exp1timestamp_exp2 )(ODBC 2.0)Devuelve el número entero de intervalos de tipo intervalo mediante el cual timestamp_exp2 es mayor que timestamp_exp1. Los valores válidos de intervaloson las siguientes palabras clave:

SQL_TSI_FRAC_SECOND

SQL_TSI_SECOND

SQL_TSI_MINUTE

SQL_TSI_HOUR

SQL_TSI_DAY

SQL_TSI_WEEK

SQL_TSI_MONTH

SQL_TSI_QUARTER

SQL_TSI_YEAR

donde las fracciones de segundo se expresan en milmillonésimas de segundo.Por ejemplo, la siguiente instrucción SQL devuelve el nombre de cada empleado y el número de años que ha sido contratado piensan:

SELECT NAME, {fn TIMESTAMPDIFF(SQL_TSI_YEAR, {fn CURDATE()}, HIRE_DATE)} FROM EMPLOYEES

Si una de las expresiones de marca de tiempo es un valor de tiempo y intervaloespecifica los días, semanas, meses, trimestres o años, la parte de la fecha de esa marca de tiempo se establece en la fecha actual antes de calcular la diferencia entre las marcas de tiempo.

Si una de las expresiones de marca de tiempo es un valor de fecha y intervaloespecifica fracciones segundos, segundos, minutos u horas, la parte de hora de esa marca de tiempo se establece en 0 antes de calcular la diferencia entre las marcas de tiempo.





1 comentario: