• No se han encontrado resultados

Índice de contenido. Velneo ODBC Driver 20. Telf. (+34) velneo.es

N/A
N/A
Protected

Academic year: 2021

Share "Índice de contenido. Velneo ODBC Driver 20. Telf. (+34) velneo.es"

Copied!
23
0
0

Texto completo

(1)

Índice de contenido

Odbc Driver... 3 Configuración...3 Referencia de comandos SQL...5 Sentencia SELECT...5 Sintaxis...5 Entradas... 5 Salidas... 6

Sentencia SELECT simple...6

Sentencia Select conteniendo las palabras clave ALL y DISTINCT...6

Sentencia select con expresiones aritméticas...7

Cláusula WHERE...8 Operadores de comparación...8 Operadores lógicos...9 Sub Query...9 Predicado BETWEEN...10 Predicado LIKE(%, _ Y \)...10 Predicado NULL...11

Predicado de comparación cuantificada...11

Predicado EXISTS...11

Predicado IN...11

Funciones de agregado...12

Uso de las palabras clave DISTINCT y ALL...12

ORDER BY... 13

GROUP BY y HAVING...13

GROUP BY...13

HAVING... 14

Combinación de WHERE ,GROUP BY,HAVING ,ORDER BY...14

Operaciones con conjuntos...14

UNION... 14

UNION ALL...14

Operación de renombrado...15

Alias de columna...15

SELECT con múltiples tablas...15

Uso del operador ...15

Sentencia INSERT INTO...15

Syntax... 15

(2)

Salidas... 16

Formas de sentencias INSERT...16

Notas de uso...17

Sentencia UPDATE...17

Sintaxis... 17

Entradas... 17

Salidas... 18

Formas de la sentencia UPDATE...18

Con expresiones aritméticas...18

Cláusula WHERE y sub consultas...19

Notas de uso...20

Sentencia DELETE...20

Sintaxis... 20

Entradas... 20

Salidas... 21

Formas de la sentencia DELETE...21

Cláusula WHERE, sub consultas...21

(3)

Odbc Driver

Se trata del driver de acceso a datos Velneo. Satisface los siguientes estándares ODBC: - Driver ODBC Version: 3.00

- ODBC Version: 3.52

- ODBC API Conformance Level 1 - ODBC SQL Conformance Core Level - ODBC SQL Interface Core Level - ANSI SQL-92 Entry Level

No se podrá instalar Velneo ODBC Driver ni en Windows XP ni en WIndows 2003. Si lo hacemos, el programa de instalación mostrará un aviso y abortará la instalación.

No se podrá instalar la versión de 64 bits de Velneo ODBC Driver en sistemas operativos de 32 bits. Si lo hacemos, el programa de instalación mostrará un aviso y abortará la instalación. No debemos instalar un componente de Velneo de 64 bits en una carpeta donde tengamos instalados compoonentes de 32 bits ni viceversa.

Configuración

En la configuración del driver debemos definir los siguientes elementos:

Data source name: Nombre por el que se conocerá la conexión ODBC y que será usado en los distintos clientes del driver ODBC.

Description: Campo opcional que permite documentar el uso del driver.

Username: Nombre de usuario necesario para acceder a la ejecución de la instancia. Debemos asegurarnos de que el grupo de usuarios al que pertenezca al usuario tenga activada la propiedad Puede ejecutar proyectos de datos con vDataClient y que tenga asignados permisos para ejecutar la instancia de datos con la que se quiera establecer la conexión.

Password: Contraseña del usuario necesaria para acceder a la ejecución de la instancia.

(4)

Port: Si no lo hemos indicado en Hostname, podremos indicar aquí el puerto de acceso.

No debemos definir el puerto en ambos.

Database: Instancia del proyecto de datos a cuyos datos queremos acceder.

Una vez configurados los campos anteriores podemos hacer uso del botón "Get" que nos devuelve el listado de instancias a las que el usuario tiene acceso en ese servidor.

Una vez seleccionada la instancia podemos pulsar el botón "Ok" y la conexión a base de datos quedará configurada.

El botón "Test" nos permite comprobar que la conexión está establecida.

Pulsando el botón "Diagnostics" podremos ver los mensajes de sistema que devuelve el driver. Una ayuda rápida en inglés se desplegará al pulsar el botón "Help".

Cuando definimos una conexión a una instancia además de las tablas del proyecto en curso, tendremos disponibles las instancias de datos de todos los proyectos heredados, y por tanto, se podrá acceder a la información de todas las tablas disponibles heredadas.

De esta forma será más sencillo acceder a la información y facilita la configuración de conexiones del driver, minimizando las tareas de administración.

Notas importantes:

Hasta la versión 7.17 no se podían vincular tablas de Velneo desde MS Access, pero sí es posible a partir de la versión 7.18.

(5)

En la versión 7.18 solamente se podrán vincular tablas que tengan índices de clave única, es decir, que cuando hay índices en la tabla que no sean de tipo clave única, no se podrá realizar la vinculación.

A partir de la versión 7.19, para conectarnos a un vServer con protocolo VATPS activado que produce excepciones (por ejemplo cuando nos conectamos a un vServer con un certificado autogenerado), debemos añadir la excepción en un fichero.

En Windows hay que añadirlo a la rama de registro: HKEY_CURRENT_USER\Software\Velneo\SslExceptions

Añadiendo como claves alfabéticas (REG_SZ), las VRL’s correspondientes, con la clave vacía, por ejemplo:

subdominio.dominio.com:9999

En Linux la ruta del fichero es (en el usuario que lanza el componente): $HOME/.config/Velneo/SslExceptions.conf

Por ejemplo, si queremos ignorar las excepciones cuando nos conectamos a localhost:6900, el fichero quedaría de la siguiente manera:

[General]

localhost:6900=""

En OSX, el fichero estará en ~/Library/Preferences y se llamará com.velneo.SslExceptions.plist.

Referencia de comandos SQL

En este capítulo se incluye información sobre la lista de comandos SQL.

Sentencia SELECT

Sintaxis

SELECT [ALL|DISTINCT] expresión [ AS nombre ] [, ...] [ FROM tabla [ WHERE condición ]

(6)

[ GROUP BY columna [, ...] ] [ HAVING condición [, ...] ] [ UNION select ]

[ ORDER BY columna [ ASC | DESC ] [, ...] ]

Entradas

expresión

Nombre de una columna de una tabla o una expresión.

nombre

Especifica otro nombre de columna o una expresión usando la cláusula AS. nombre no puede ser usado en la condición WHERE. Sí puede, sin embargo, ser referenciado en cláusulas

ORDER BY, HAVING o GROUP BY asociadas.

table

Nombre de una tabla existente referenciada por la cláusula FROM.

condición

Expresión booleana que devuelva un resultado true or false. Ver la cláusula WHERE.

columna

Nombre de una columna de una tabla.

select

Una sentencia select con todas sus funcionalidades excepto la cláusula ORDER BY.

Salidas

rows

Conjunto completo de filas resultantes de la especificación de la consulta.

count

Número de filas devueltas por la consulta.

Sentencia SELECT simple

Sentencias select que sólo contienen nombres de columna y una única tabla:

(7)

Ejemplos:

SELECT * FROM ANEXOS

- Seleccionar todos los registros de todas las columnas de ANEXOS. SELECT CODIGO FROM ANEXOS

SELECT NOMBRE FROM ANEXOS

SELECT CODIGO, NOMBRE FROM ANEXOS

- Seleccionar todos los registros de las columnas especificadas de ANEXOS.

Sentencia Select conteniendo las palabras clave ALL y DISTINCT

Sentencias select que contienen palabras claves cuantificadores. Si no se especifican palabras claves, se tomará ALL por defecto.

SELECT DISTINCT fieldname FROM tablename SELECT ALL fieldname FROM tablename

Ejemplos:

SELECT ALL * FROM ANEXOS

- Seleccionar todos los registros de todas las columnas de ANEXOS. SELECT DISTINCT * FROM ANEXOS

- Seleccionar los registros de todas las columnas de ANEXOS, quitando aquellos que tengan valores duplicados en las mismas.

SELECT ALL CODIGO FROM ANEXOS SELECT ALL NOMBRE FROM ANEXOS

SELECT ALL CODIGO, NOMBRE FROM ANEXOS

- Seleccionar todos los registros de las columnas especificadas de ANEXOS. SELECT DISTINCT CODIGO FROM ANEXOS

SELECT DISTINCT NOMBRE FROM ANEXOS

SELECT DISTINCT CODIGO, NOMBRE FROM ANEXOS SELECT DISTINCT SUM(CODIGO) FROM ANEXOS

(8)

Sentencia select con expresiones aritméticas

Los operadores aritméticos manipulan operandos numéricos.

+ (unario): Hace positivo el operando. Ejemplo: SELECT +3 FROM ANEXOS;

- (unario): Niega el operando.

Ejemplo: SELECT -CODIGO FROM ANEXOS;

+: Suma de números.

Ejemplo: SELECT CODIGO + 200 FROM ANEXOS;

-: Resta de números.

Ejemplo: SELECT CODIGO - 100 FROM ANEXOS;

*: Multiplicación de números.

Ejemplo: SELECT CODIGO * 5 FROM ANEXOS;

/: División de números.

Ejemplo: SELECT CODIGO / 10 FROM ANEXOS; Más ejemplos:

SELECT NUM_ANEXOS1 + 10 - NUM_ANEXOS2 FROM LIBROS SELECT NUM_ANEXOS1 + 10, NUM_ANEXOS2 +10 FROM LIBROS SELECT CODIGO +10-20/2 *100 FROM ANEXOS

SELECT CODIGO +(10-20)/2 *(100 +2) FROM ANEXOS

Cláusula WHERE

La cláusula WHERE en sentencias SELECT es usada para especificar los criterios de selección basados en una condición de búsqueda.

SELECT <select list> FROM <table reference> WHERE <search condition>

Operadores de comparación

Los operadores de comparación son usados en condiciones que comparan una expresión con otra. El resultado de la comparación puede ser TRUE o FALSE.

(9)

=: Igual que.

Ejemplo: SELECT NOMBRE FROM ANEXOS WHERE CODIGO = 15;

<>: Distinto de.

Ejemplo: SELECT NOMBRE FROM ANEXOS WHERE CODIGO <> 15;

>: Mayor que.

Ejemplo: SELECT NOMBRE FROM ANEXOS WHERE CODIGO > 15;

<: Menor que.

Ejemplo: SELECT NOMBRE FROM ANEXOS WHERE CODIGO < 15;

>=: Mayor o igual que.

Ejemplo: SELECT NOMBRE FROM ANEXOS WHERE CODIGO >= 15;

<=: Menor o igual que.

Ejemplo: SELECT NOMBRE FROM ANEXOS WHERE CODIGO <= 15; Más ejemplos:

SELECT NOMBRE FROM ANEXOS WHERE NOMBRE <= ‘jack’; SELECT CODIGO FROM ANEXOS WHERE NOMBRE = ‘jack’; SELECT CODIGO FROM ANEXOS WHERE NOMBRE < ‘jack’;

Los operadores de comparación pueden ser usados también en campos de tipo cadena.

Operadores lógicos

Operadores lógicos que manipulan el resultado de condiciones.

NOT: Devuelve TRUE si la condición siguiente es FALSE. Devuelve FALSE si es TRUE. Ejemplo: SELECT * FROM ANEXOS WHERE NOT (CODIGO = 10)

AND: Devuelve TRUE si las dos condiciones componentes son TRUE. Devuelve FALSE si alguna es FALSE.

Ejemplo: SELECT * FROM ANEXOS WHERE CODIGO=10 AND NOMBRE=’test’

OR: Devuelve TRUE si alguna de las condiciones componentes son TRUE. Devuelve FALSE si ambas son FALSE.

Ejemplo: SELECT * FROM ANEXOS WHERE CODIGO=10 OR NOMBRE=’test’ Más ejemplos:

(10)

SELECT NOMBRE FROM ANEXOS WHERE (NOMBRE <= ‘jack’ AND CODIGO <> 15) OR (CODIGO=10 AND NOMBRE=’test’)

SELECT NOMBRE FROM ANEXOS WHERE (NOMBRE <= ‘jack’ OR CODIGO <> 15) AND (CODIGO=10 OR NOMBRE=’test’)

Sub Query

Una condición de búsqueda puede incluir una sub consulta. El grado y cardinalidad de la sub consulta puede ser 1. Las sub consultas no pueden tener cláusulas GROUP BY O HAVING. Ejemplos:

SELECT * FROM ANEXOS WHERE CODIGO = (SELECT CODIGO FROM IDIOMAS WHERE NOMBRE =’Test’)

SELECT * FROM ANEXOS WHERE NOMBRE = (SELECT NOMBRE FROM IDIOMAS WHERE CODIGO =20)

Predicado BETWEEN

Mayor que o igual y menor que o igual entre dos límites. Ejemplos:

SELECT * FROM ANEXOS WHERE CODIGO BETWEEN 30 AND 50; SELECT * FROM ANEXOS WHERE NOT (CODIGO BETWEEN 10 AND 20)

Predicado LIKE(%, _ Y \)

El predicado LIKE busca cadenas que coincidan con un patrón determinado. Este patrón es especificado por una cadena en la que el signo _ y el signo % pueden tener un significado especial.

%: Busca coincidencia con cualquier cadena de cero o más caracteres.

Ejemplo: SELECT NOMBRE FROM ANEXOS WHERE NOMBRE LIKE ‘ab%cd’

_: Busca coincidencia con cualquier carácter único.

Ejemplo: SELECT NOMBRE FROM ANEXOS WHERE NOMBRE LIKE ‘ab_cd’

ESCAPE: Escape es interpretado de forma literal, útil cuando se desea buscar cadenas que contengan un tanto por ciento (%) o un carácter de subrayado (_).

(11)

Más ejemplos:

SELECT campo1 FROM tabla1 WHERE cadenaCampo1 LIKE ‘%Valor%’ - Devolverá todas las cadenas que contengan la cadena "Valor".

SELECT campo1 FROM tabla1 WHERE cadenaCampo1 LIKE ‘ab_cd’ - Devolverá aquellas cadenas que tengan 5 caracteres que empiecen por ab y terminen en cd.

SELECT fieldname1 FROM tablename1 WHERE stringfieldname1 LIKE ‘ab\%cd%’ - Devolverá todas las cadenas que empiecen por ab%cd.

SELECT fieldname1 FROM tablename1 WHERE stringfieldname1 LIKE ‘ab\_cd%’ - Devolverá todas las cadenas que empiecen por ab_cd.

SELECT fieldname1 FROM tablename1 WHERE stringfieldname1 LIKE ‘ab\\cd%’ - Devolverá todas las cadenas que empiecen por ab\cd.

SELECT fieldname1 FROM tablename1 WHERE stringfieldname1 NOT LIKE ‘ab\\cd%’ - Devolverá todas las cadenas que no empiecen por ab\cd.

Predicado NULL

Busca valores nulos. Este es el único operador que puede ser usado para buscar valores nulos. Ejemplos:

SELECT * FROM ANEXOS WHERE CODIGO IS NOT NULL; SELECT * FROM ANEXOS WHERE CODIGO IS NULL;

Predicado de comparación cuantificada

Compara el valor de cada valor en una lista o en una lista resultante de una consulta. Debe ir precedido de =, !=, >, <, <= o >=. Evalúa FALSE si la consulta no devuelve filas.

Ejemplos:

SELECT * FROM ANEXOS WHERE CODIGO >= ALL (SELECT CODIGO FROM IDIOMAS); SELECT * FROM ANEXOS WHERE CODIGO = SOME (SELECT CODIGO FROM IDIOMAS);

Predicado EXISTS

Devuelve TRUE si una sub-consulta retorna al menos una fila.

SELECT * FROM EMP WHERE EXISTS (SELECT ENAME FROM EMP WHERE MGR IS NULL);

(12)

SELECT * FROM EMP WHERE NOT EXISTS (SELECT ENAME FROM EMP WHERE MGR IS NULL);

Predicado IN

Comprueba si el valor es igual a cada valor de una lista o de una lista resultante de una consulta. SELECT * FROM ANEXOS WHERE CODIGO IN (10, 20);

SELECT * FROM ANEXOS WHERE CODIGO NOT IN (10,20);

SELECT * FROM ANEXOS WHERE CODIGO IN (SELECT CODIGO FROM IDIOMAS); SELECT * FROM ANEXOS WHERE CODIGO NOT IN (SELECT CODIGO FROM IDIOMAS);

NOTA Esta cláusula no es funciona con cláusulas multi-tabla.

Funciones de agregado

Realizan un cálculo sobre un conjunto de valores y devuelven un solo valor.

SUM: Devuelve la suma de todos los valores los valores de la expresión numérica. Solamente puede utilizarse con columnas numéricas.

Ejemplo: SELECT SUM(CODIGO) FROM ANEXOS

AVG: Devuelve el promedio de los valores de un grupo. Solamente puede utilizarse con columnas numéricas.

Ejemplo: SELECT AVG(CODIGO) FROM ANEXOS

COUNT: Devuelve el número de valores de un grupo. Ejemplo: SELECT COUNT(CODIGO) FROM ANEXOS

COUNT(*): Devuelve el número de filas seleccionadas. Ejemplo: SELECT COUNT(*) FROM ANEXOS

MAX: Devuelve el valor máximo de la expresión. Ejemplo: SELECT MAX(NOMBRE) FROM ANEXOS

MIN: Devuelve el valor mínimo de la expresión. Ejemplo: SELECT SUM(CODIGO) FROM ANEXOS

(13)

Las palabras clave opcional DISTINCT puede ser usada con SUM, AVG y COUNT para eliminar valores duplicados antes de que una función de agregado sea ejecutada (el valor por defecto es ALL).

Ejemplos:

SELECT SUM(DISTINCT CODIGO) FROM ANEXOS SELECT COUNT(ALL CODIGO) FROM ANEXOS

SELECT SUM(DISTINCT CODIGO), COUNT(ALL NOMBRE), AVG(DISTINCT CODIGO) FROM ANEXOS

Más ejemplos:

SELECT DISTINCT SUM(num_anexos1), AVG(codigo), MAX(nombre) FROM LIBROS - Quita registros duplicados obtenidos en el resultado.

SELECT SUM(CODIGO) + AVG(CODIGO) FROM ANEXOS

ORDER BY

Cláusula que especifica el orden utilizado en las columnas devueltas en una instrucción SELECT. No es posible usarla en sub-consultas.

Argumentos:

ASC (por defecto): Indica que los valores de la columna especificada se deben ordenar de manera ascendente, desde el valor más bajo al más alto.

Ejemplo: SELECT * FROM ANEXOS ORDER BY CODIGO

DESC (por defecto): Indica que los valores de la columna especificada se deben ordenar de manera descendente, desde el valor más alto al más bajo.

Ejemplo: SELECT * FROM ANEXOS ORDER BY CODIGO DESC Más ejemplos:

SELECT * FROM ANEXOS WHERE CODIGO = 1 AND CODIGO =2 ORDER BY NOMBRE - Orden ascendente por defecto.

SELECT * FROM ENCUADER WHERE CODIGO = 1 AND CODIGO =2 ORDER BY CODIGO, LOCAL, NOMBRE - Orden ascendente por defecto.

SELECT * FROM ANEXOS WHERE CODIGO = 1 AND CODIGO =2 ORDER BY NOMBRE DESC, CODIGO ASC

(14)

SELECT * FROM ANEXOS WHERE CODIGO = 1 AND CODIGO =2 ORDER BY NOMBRE DESC, LOCAL ASC, CODIGO DESC

GROUP BY y HAVING

GROUP BY

Agrupa un conjunto de filas seleccionado en un conjunto de filas de resumen de acuerdo a los valores de una o más columnas o expresiones.

Especifica los grupos en los que han de ser situadas las filas seleccionadas y, si en la cláusula SELECT se han incluido funciones de agregado, calcula un valor de resumen para cada grupo. Ejemplos:

SELECT campo1, AVG(campo2) FROM tabla1 GROUP BY campo1 SELECT campo1, campo2 FROM tabla1 GROUP BY campo1,campo2

SELECT COUNT(campo1), SUM(campo2) FROM tabla1 GROUP BY campo1,campo2

HAVING

Especifica una condición de búsqueda para un grupo o un agregado. Habitualmente es usado con la cláusula GROUP BY.

Ejemplos:

SELECT campo1, AVG(campo2) FROM tabla1 GROUP BY campo1 HAVING AVG(campo2) > 1000

SELECT campo1, AVG(campo2) FROM tabla1 GROUP BY campo1 HAVING AVG(campo2) > 1000 AND campo1=20

SELECT * FROM tabla1 GROUP BY campo1 HAVING campo1 = 20 AND campo2 = ‘abc’

Combinación de WHERE ,GROUP BY,HAVING ,ORDER BY

Ejemplos:

SELECT SUM(CUSTID) AS sumcus FROM salestb WHERE salesperson > 'c' GROUP BY status HAVING sumcus > 124 ORDER BY status

(15)

Puede ser llevadas a cabo a través de operadores de conjuntos, éstos combinan el resultado de dos consultas en una única colección.

UNION

Devuelve todas las filas con valores diferentes de cada consulta. Ejemplos:

(SELECT distinct campo1 FROM tabla1) UNION (SELECT distinct campo2 FROM tabla2)

UNION ALL

Devuelve todas las filas seleccionadas por cada consulta, incluyendo todas las duplicadas. Ejemplos:

(SELECT SAL FROM EMP WHERE JOB = 'CLERK' UNION SELECT SAL FROM EMP WHERE JOB = 'ANALYST');

Operación de renombrado

Alias de columna

Se trata de un nombre alternativo para sustituir el nombre de columna en un conjunto resultante de una consulta.

Ejemplos:

SELECT AVG(CODIGO) AS “Código promediado” FROM ANEXOS

SELECT SUM(NOMBRE) AS anexo, CODIGO FROM ANEXOS GROUP BY CODIGO HAVING anexo > 10

SELECT con múltiples tablas

La cláusula SELECT que contenga múltiples tablas devolverá producto cruzado de tablas. Ejemplo:

SELECT * FROM ANEXOS, IDIOMAS

(16)

Usando el operador . el nombre de la tabla puede ser usado para referenciar una columna. Ejemplo:

SELECT ANEXOS.CODIGO, IDIOMAS.NOMBRE FROM ANEXOS, IDIOMAS;

Sentencia INSERT INTO

Syntax

INSERT INTO tabla

{ VALUES ( valor1 [, ...] ) | SELECT consulta }

También es posible especificar las columnas para las que queramos insertar datos:

INSERT INTO tabla [ ( columna [, ...] ) ]

{ VALUES ( valor1 [, ...] ) | SELECT consulta }

Entradas

table: El nombre de una tabla existente.

column: El nombre de una columna de la tabla.

valor1: El valor asignado a la columna correspondiente.

Consulta: Una consulta (query) válida. La lista resultante de la SELECT de esta sub consulta debe tener el mismo número de columnas que la lista resultante de la sentencia INSERT.

Salidas

INSERT #

Mensaje retornado y se insertaron filas. # es el número de filias insertadas.

Formas de sentencias INSERT

INSERT INTO ANEXOS VALUES (47,'Nuevo');

Inserta un nuevo registro con los valores 47 para el primer campo y "Nuevo" para el segundo. INSERT INTO ANEXOS (CODIGO) VALUES (44);

Inserta un nuevo registro con el valor 44 para el CODIGO y el resto de los campos por defecto. INSERT INTO ANEXOS (NOMBRE) VALUES ('Nuevo');

(17)

Inserta un nuevo registro con el valor "Nuevo" para el NOMBRE y CODIGO con valor auto-incrementado si así está declarado.

INSERT INTO ANEXOS (CODIGO,NOMBRE) VALUES (47,'Nuevo');

Inserta un nuevo registro con el valor 47 en el CODIGO y el valor "Nuevo" en el NOMBRE. INSERT INTO IDIOMAS SELECT * FROM ANEXOS;

Inserta todos los registros de ANEXOS en IDIOMAS. Inserta solamente si el grado de la sub-consulta es igual al grado de los IDIOMAS.

INSERT INTO IDIOMAS SELECT CODIGO, NOMBRE FROM ANEXOS;

Inserta todos los registros de ANEXOS en IDIOMAS. Inserta solamente si el grado de la sub-consulta es igual al grado de IDIOMAS. La sub-sub-consulta solamente puede contener los campos seleccionados.

INSERT INTO IDIOMAS (CODIGO, NOMBRE) SELECT CODIGO, NOMBRE FROM ANEXOS; Inserta las columnas especificadas en la sub-consulta a las columnas especificadas de la tabla. INSERT INTO IDIOMAS (CODIGO, NOMBRE) SELECT CODIGO, NOMBRE FROM ANEXOS WHERE CODIGO BETWEEN 10 AND 20;

Inserta registros basados en la condición de la sub-consulta (cláusula WHERE).

Notas de uso

El mismo nombre de columna no debería aparecer más de una vez en el argumento de columna. El número de columnas especificado en el argumento de columna debe ser igual al número de valores proporcionados. Si se omite el argumento columna, el número de valores debe ser igual al grado de la tabla.

La expresión para cada columna debería ser del tipo de datos adecuado, pues no se hará una corrección automática del tipo.

Las columnas de la lista de destino pueden ser listadas en cualquier orden.

Sentencia UPDATE

Sintaxis

UPDATE- Reemplaza valores de columnas en una tabla. [ WHERE condición ]

(18)

Entradas

tabla: Nombre de una tabla existente.

columna: Nombre de una columna de la tabla.

SET: Indica que las columnas siguientes se les asignarán valores específicos.

Si se omite el nombre de una de las columnas de la tabla en la cláusula SET, el valor de la misma permanecerá inalterado.

Expresión: Una expresión o valor válidos para asignar a la columna.

condición: Una condición de búsqueda.

WHERE restringe las filas actualizadas a aquellas en las que la condición especificada es TRUE. Si se omite la cláusula WHERE, el driver actualizará todas las filas de la tabla.

La condición de búsqueda en la sentencia UPDATE puede ser uno de los predicados siguientes:

• Predicado de comparación.

• Predicado BETWEEN.

• Predicado IN.

• Predicado LIKE.

• Predicado NULL.

• Predicado de comparación cuantificada.

• Predicado EXISTS.

Salidas

UPDATE #

Mensaje devuelto si el resultado ha sido satisfactorio. El carácter # significa el número de filas actualizadas. Si # es igual a 0, querrá decir que no se actualizó fila alguna.

Formas de la sentencia UPDATE

La sentencia UPDATE básica actualiza todos los registros de una tabla con nuevos valores. Ejemplos:

(19)

Actualiza todos los registros solamente si ninguno de los campos es la clave primaria. Si no, retorna error.

UPDATE ANEXOS NOMBRE = ‘Testado’

Actualiza solamente los campos especificados, el resto permanecerán inalterados.

Con expresiones aritméticas

Las operaciones aritméticas usan operandos numéricos. Ejemplos:

UPDATE LIBROS SET NUM_ANEXOS1 = NUM_ANEXOS2 +10 Evalúa la expresión aritmética y la actualiza en todos los registros.

Cláusula WHERE y sub consultas

Busca registros basándose en una condición y actualiza solamente aquellos que cumplan la condción. La condición de búsqueda pude tener cualesquiera predicados y sub consultas.

• Predicado de comparación.

• Predicado BETWEEN.

• Predicado IN.

• Predicado LIKE.

• Predicado NULL.

• Predicado de comparación cuantificada.

• Predicado EXISTS. Ejemplos:

UPDATE ANEXOS SET CODIGO=23 WHERE CODIGO = 22;

UPDATE ANEXOS SET CODIGO= 10 WHERE CODIGO = (SELECT CODIGO FROM IDIOMAS WHERE NOMBRE = ‘test’);

UPDATE ANEXOS SET NOMBRE= NULL;

UPDATE ANEXOS SET NOMBRE =’upd’ WHERE CODIGO = 1500; UPDATE ANEXOS SET NOMBRE = ’upd’ WHERE CODIGO > 3000; UPDATE ANEXOS SET NOMBRE = ’upd’ WHERE CODIGO < 30;

(20)

UPDATE ANEXOS SET NOMBRE = ’upd’ WHERE CODIGO >= 20; UPDATE ANEXOS SET NOMBRE = ’upd’ WHERE CODIGO <= 1500; UPDATE ANEXOS SET NOMBRE = ’upd’ WHERE CODIGO <> 3000;

UPDATE ANEXOS SET NOMBRE = ’upd’ WHERE CODIGO BETWEEN 30 AND 50; UPDATE ANEXOS SET NOMBRE = ’upd’ WHERE NOMBRE IN ('SMITH', 'WARD');

UPDATE ANEXOS SET NOMBRE = ’upd’ WHERE CODIGO >= ALL (SELECT CODIGO FROM IDIOMAS WHERE CODIGO = 20);

UPDATE ANEXOS SET NOMBRE = ’upd’ WHERE NOMBRE = SOME (SELECT NOMBRE FROM IDIOMAS WHERE CODIGO > 10);

UPDATE ANEXOS SET NOMBRE = ’upd’ WHERE EXISTS (SELECT CODIGO FROM IDIOMAS WHERE CODIGO = 10);

UPDATE ANEXOS SET NOMBRE = ’upd’ WHERE NOMBRE LIKE ‘a_a%’

Notas de uso

La misma columna no puede aparecer más de una vez en la cláusula SELECT.

Si no se especifica ninguna cláusula WHERE serán actualizadas todas las filas de la tabla.

Sentencia DELETE

Borra filas de una tabla.

Sintaxis

DELETE FROM tabla [WHERE condición]

Entradas

tabla: Nombre de una tabla existente.

condición: Se trata de una consulta SQL de selección que retorna las filas a borrar.

En el capítulo dedicado a la sentencia SELECT encontrarás información sobre la cláusula WHERE.

La condición de búsqueda en la sentencia DELETE puede ser uno de los predicados siguientes:

(21)

• Predicado BETWEEN.

• Predicado IN.

• Predicado LIKE.

• Predicado NULL.

• Predicado de comparación cuantificada.

• Predicado EXISTS.

Salidas

DELETE count

Mensaje retornado si los elementos son borrados satisfactoriamente. "count" es el número de filas borradas. Si es 0, querrá decir que no se ha borrado ninguna fila.

Formas de la sentencia DELETE

Forma básica: Borrar todos los registros de una tabla:

Ejemplos:

DELETE FROM ANEXOS;

Cláusula WHERE, sub consultas

Busca registros basándose en una condición y borra solamente aquellos que la cumplen. La condición de búsqueda puede tener cualesquiera predicados y sub consultas.

Ejemplos categorizados basados en predicados:

Predicado LIKE

DELETE FROM ANEXOS WHERE NOMBRE LIKE ‘%Val%’ Encontrará todas las cadenas que incluyan la cadena "Val". DELETE FROM ANEXOS WHERE NOMBRE LIKE ‘ab_cd’

Encontrará todas las cadenas que tengan 5 caracteres que comiencen por "ab" y terminen en "cd".

DELETE FROM ANEXOS WHERE NOMBRE LIKE ‘ab\%cd%’ Encontrará todas las cadenas que comiencen por "ab%cd".

(22)

DELETE FROM ANEXOS WHERE NOMBRE LIKE ‘ab\_cd%’ Encontrará todas las cadenas que comiencen por "ab_cd". DELETE FROM ANEXOS WHERE NOMBRE LIKE ‘ab\\cd%’ Encontrará todas las cadenas que comiencen por "ab\cd".

DELETE FROM ANEXOS WHERE NOMBRE NOT LIKE ‘ab\\cd%’ Encontrará todas las cadenas que no comiencen por "ab\cd".

Predicado de comparación

DELETE FROM ANEXOS WHERE CODIGO = 1500; DELETE FROM ANEXOS WHERE CODIGO > 3000; DELETE FROM ANEXOS WHERE CODIGO < 30; DELETE FROM ANEXOS WHERE CODIGO >= 20; DELETE FROM ANEXOS WHERE CODIGO <= 1500; DELETE FROM ANEXOS WHERE CODIGO <> 3000;

Operadores lógicos

DELETE FROM ANEXOS WHERE CODIGO = 10 AND CODIGO = 20; DELETE FROM ANEXOS WHERE CODIGO = 10 OR CODIGO = 20;

Predicado BETWEEN

DELETE FROM ANEXOS WHERE CODIGO BETWEEN 30 AND 50; DELETE FROM ANEXOS WHERE CODIGO NOT BETWEEN 3 AND 5;

Predicado IN

DELETE FROM ANEXOS WHERE CODIGO IN (10,20); DELETE FROM ANEXOS WHERE CODIGO NOT IN (10,20);

Predicado NULL

DELETE FROM ANEXOS WHERE CODIGO IS NOT NULL; DELETE FROM ANEXOS WHERE CODIGO IS NULL;

Predicado de comparación cuantificada

(23)

DELETE FROM ANEXOS WHERE CODIGO = SOME (SELECT CODIGO FROM IDIOMAS);

Predicado EXISTS

DELETE FROM ANEXOS WHERE EXISTS (SELECT CODIGO FROM IDIOMAS WHERE NOMBRE IS NULL);

Notas de uso

Referencias

Documento similar

Aparte de la existencia de otras diferencias de procedimiento respecto a la relación jurídica con la Administración, hay que insistir sobre la idea, como ya hemos dicho en el

la tabla sugiere orden entre las filas la tabla sugiere orden entre las columnas (lo que no es incorrecto del todo). Percepción de

¿Tenemos a nuestro alcance en Prevención herramientas basadas en este tipo de tecnologías?... TIC’S EN

(29) Cfr. MUÑOZ MACHADO: Derecho público de las Comunidades Autóno- mas, cit., vol. Es necesario advertir que en la doctrina clásica este tipo de competencias suele reconducirse

CODIGO DESCRIPCION STOCK PRECIO

a) De acuerdo con los precedentes jurisprudenciales de este tribunal (Ver TC/0007/12, del 22 de marzo de 2012, p.9), el recurso de revisión de la especie resulta

INGENIERÍA AGROINDUSTRIAL É INDUSTRIAS ALIMENTARIAS --- CODIGO NOMBRE COMPLETO 1 EXA... FACULTAD DE INGENIERIA INDUSTRIAL

After finishing the 4 th st, remove the hook from the loop, insert the hook in the first double crochet (from front to back) and insert the hook through the free loop after