Professional Documents
Culture Documents
coche. Los programas Orientados a objetos utilizan muchos objetos para realizar las acciones que
se desean realizar y ellos mismos tambin son objetos. Es decir, el taller de coches ser un objeto
que utilizar objetos coche, herramienta, mecnico, recambios, etc.
Clases en POO
Las clases son declaraciones de objetos, tambin se podran definir como abstracciones de
objetos. Esto quiere decir que la definicin de un objeto es la clase. Cuando programamos un
objeto y definimos sus caractersticas y funcionalidades en realidad lo que estamos haciendo es
programar una clase. En los ejemplos anteriores en realidad hablbamos de las clases coche o
fraccin porque slo estuvimos definiendo, aunque por encima, sus formas.
Propiedades en clases
Las propiedades o atributos son las caractersticas de los objetos. Cuando definimos una
propiedad normalmente especificamos su nombre y su tipo. Nos podemos hacer a la idea de que
las propiedades son algo as como variables donde almacenamos datos relacionados con los
objetos.
Mtodos en las clases
Son las funcionalidades asociadas a los objetos. Cuando estamos programando las clases las
llamamos mtodos. Los mtodos son como funciones que estn asociadas a un objeto.
Objetos en POO
Los objetos son ejemplares de una clase cualquiera. Cuando creamos un ejemplar tenemos que
especificar la clase a partir de la cual se crear. Esta accin de crear un objeto a partir de una clase
se llama instanciar (que viene de una mala traduccin de la palabra instace que en ingls significa
ejemplar). Por ejemplo, un objeto de la clase fraccin es por ejemplo 3/5. El concepto o definicin
de fraccin sera la clase, pero cuando ya estamos hablando de una fraccin en concreto 4/7,
8/1000 o cualquier otra, la llamamos objeto.
Para crear un objeto se tiene que escribir una instruccin especial que puede ser distinta
dependiendo el lenguaje de programacin que se emplee, pero ser algo parecido a esto.
Cuando tenemos un objeto sus propiedades toman valores. Por ejemplo, cuando tenemos un
coche la propiedad color tomar un valor en concreto, como por ejemplo rojo o gris metalizado. El
valor concreto de una propiedad de un objeto se llama estado.
Para acceder a un estado de un objeto para ver su valor o cambiarlo se utiliza el operador punto.
miCoche.color = rojo
El objeto es miCoche, luego colocamos el operador punto y por ltimo el nombre e la propiedad a
la que deseamos acceder. En este ejemplo estamos cambiando el valor del estado de la propiedad
del objeto a rojo con una simple asignacin.
Mensajes en objetos
Un mensaje en un objeto es la accin de efectuar una llamada a un mtodo. Por ejemplo, cuando
le decimos a un objeto coche que se ponga en marcha estamos pasndole el mensaje ponte en
marcha.
Para mandar mensajes a los objetos utilizamos el operador punto, seguido del mtodo que
deseamos invocar.
miCoche.ponerseEnMarcha()
En este ejemplo pasamos el mensaje ponerseEnMarcha(). Hay que colocar parntesis igual que
cualquier llamada a una funcin, dentro iran los parmetros.
Otras cosas
Hay mucho todava que conocer de la POO ya que slo hemos hecho referencia a las cosas ms
bsicas. Tambin existen mecanismos como la herencia y el polimorfismo que son unas de las
posibilidades ms potentes de la POO.
La herencia sirve para crear objetos que incorporen propiedades y mtodos de otros objetos. As
podremos construir unos objetos a partir de otros sin tener que reescribirlo todo. Puedes
encontrar en DesarrolloWeb.com un artculo completo dedicado a la Herencia.
El polimorfismo sirve para que no tengamos que preocuparnos sobre lo que estamos trabajando, y
abstraernos para definir un cdigo que sea compatible con objetos de varios tipos. Puedes acceder
a otro artculo para saber ms sobre Polimorfismo.
Son conceptos avanzados que cuesta explicar en las lneas de ese informe. No hay que olvidar que
existen libros enteros dedicados a la POO y aqu solo pretendemos dar un repaso a algunas cosas
para que os suenen cuando tengis que poneros delante de ellas en los lenguajes de programacin
que debe conocer un desarrollador del web. Sin embargo, si quieres saber ms tambin puedes
PROGRAMACION ESTRUCTURADA
La programacin estructurada es un paradigma de programacin orientado a mejorar la
claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando
nicamente subrutinas y tres estructuras: secuencia, seleccin (if y switch)
e iteracin (bucles for y while), considerando innecesario y contraproducente el uso de la
instruccin de transferencia incondicional (GOTO), que podra conducir a "cdigo espagueti",
que es mucho ms difcil de seguir y de mantener, y era la causa de muchos errores de
programacin.
Surgi en la dcada de 1960, particularmente del trabajo de Bhm y Jacopini,1 y una famosa
carta, La sentencia goto considerada perjudicial, de Edsger Dijkstraen 19682 y fue
reforzado tericamente por el teorema del programa estructurado, y prcticamente por la
aparicin de lenguajes como ALGOL con adecuadas y ricas estructuras de control.
VERIFICACION VALIDACION
Diferencia entre validacin y verificacin
Mensaje jchaustre el Dom Feb 28, 2010 1:22 am
Muchas veces se confunde verificacin con validacin. Barry W. Boehm (1979) puso en claro
con pocas palabras la diferencia:
En la Validacin el resultado final del desarrollo software se debe ajustar a lo que el usuario quera
(sus necesidades)? En la mayora de las ocasiones el producto desarrollado no casa con la ideas del
cliente, normalmente porque a ste suele faltarle capacidad tcnica de expresin.
En la Verificacin el cdigo que estamos construyendo debe estar en armona con la especificacin
que hemos tomado del usuario. El resultado final del desarrollo software debe concordar con la
especificacin (requisitos) del sistema, por lo que debemos asegurarnos que el desarrollo final
coincida con dicha especificacin
Un sistema puede pasar la validacin, sin embargo, no pasa la verificacin. Cumple con la
especificacin del usuario, con lo que l quera, cubre sus necesidades pero internamente puede
adolecer de graves detalles como: un precario diseo en la base de datos; uso de un excesivo e
innecesario nmero de lneas de cdigo, por desconocer las potencialidades del lenguaje de
desarrollo o de tcnicas avanzadas de programacin como la POO y uso incorrecto en la BD de
instrucciones propias del lenguaje de desarrollo, en lugar de las sentencias adecuadas de SQL.
Las dos utilizan mtodos de diseo de casos de prueba y estrategias de prueba, para la validacin
usamos Pruebas de Caja Negra (Grafos, particin equivalente y prueba de valores lmites) para la
verificacin empleamos Pruebas de Caja Blanca (Prueba de Camino crtico: Grafo de flujo,
complejidad ciclomtica; prueba de Condicin: ramificaciones, dominio, operador relacional y de
ramificacin; Prueba de Flujo de datos y Prueba de Bucles).
VALIDACIONES DE RIESGO, TIPOS DE RIESGO
Al igual que un jefe de proyecto debe identificar riesgos y buscar soluciones durante la
etapa de desarrollo del software para conseguir los objetivos marcados, el test
manager debe identificar los riesgos relacionados con el proceso de pruebas, as
como evaluar la criticidad y probabilidad de los mismos. Gracias a este anlisis se
podr generar un plan de contingencia.
Algunos de los riesgos ms comunes durante la fase de pruebas suelen ser:
Falta de los recursos necesarios para ejecutar las pruebas segn el plan
No refirindose a los datos, sino los puntos de unin con otras plataformas e
integraciones con terceros. Es muy til definir y mantener las interfaces y mecanismos
de comunicacin con terceros para evitar futuros problemas.
4. Requerimientos de pruebas
Desde el equipo de pruebas, se fomentar el uso de estndares, tecnologas abiertas,
as como buenas practicas de desarrollo (por ejemplo TDD, integracin contnua, etc)
5. Gestin de defectos
Una tarea de gran importancia es el seguimiento y priorizacin de los defectos
encontrados. Estos deben ser incluidos en los planings de siguientes iteraciones para
que sean resueltos. Adems, deben ser trazados para conocer cuando y en qu
versin han sido resueltos.
Siguiendo estos puntos, conseguiremos reducir en gran medida los riesgos ms
comunes durante el desarrollo de software. Hay que tener en cuenta que se debe
trabajar en sincronia con los dems grupos implicados, desde la parte de gestin,
pasando por desarrollo, pruebas, despliegue, Unos dependen de otros y los
problemas de unos se propagan a otros.
SEUDOCODIGCO
En ciencias de la computacin, y anlisis numrico, el pseudocdigo (o falso lenguaje) es
una descripcin de alto nivel compacta e informal1 del principio operativo de un programa
informtico u otro algoritmo.
Utiliza las convenciones estructurales de un lenguaje de programacin real,2 pero est
diseado para la lectura humana en lugar de la lectura mediante mquina, y con
independencia de cualquier otro lenguaje de programacin. Normalmente, el pseudocdigo
omite detalles que no son esenciales para la comprensin humana del algoritmo, tales como
declaraciones de variables, cdigo especfico del sistema y algunas subrutinas. El lenguaje de
programacin se complementa, donde sea conveniente, con descripciones detalladas
en lenguaje natural, o con notacin matemtica compacta. Se utiliza pseudocdigo pues este
es ms fcil de entender para las personas que el cdigo del lenguaje de programacin
convencional, ya que es una descripcin eficiente y con un entorno independiente de los
principios fundamentales de un algoritmo. Se utiliza comnmente en los libros de texto y
Representacin de variables
Cuando representamos datos, numricos o alfanumricos, debemos
darles un nombre. Una variable es un nombre que representa el valor de
un dato. En esencia, una variable es una zona o posicin de memoria en
la computadora donde se almacena informacin. En un pseudocdigo y
tambin en un programa se pueden crear tantas variables como
queramos. Ejemplos:
A = 50; Variable tipo numrica A cuyo valor es 50.
Ciudad = "Asuncin"; Variable alfanumrica o de tipo carcter Ciudad,
cuyo valor es "Asuncin"
X = C + B; Variable numrica X cuyo valor es la suma de los valores de
las variables numricas C y B. (Nota: C y B deben tener algn valor).
Asignacin
Para asignar un valor a una variable se utilizar el smbolo = que en este
contexto significa es reemplazado por. De forma general tendremos
que:
Nombre_variable = expresin
El valor de Nombre_variable se sustituye por el valor de expresin
Ejemplos:
C = 13
B = 25
X=C+B
(despus de estas instrucciones, X contendr el valor 13 +
25 = 38)
Operador
Mayor que
Menor que
Igual a
Menor o igual que
Mayor o igual que
Distinto
Operadores aritmticos
Signo
+
*
/
^
MOD
Significado
Suma
Resta
Multiplicacin
Divisin
Potenciacin
Resto de la divisin entera
Estructuras de seleccin
El formato de la estructura de seleccin es:
si (condicin) entonces
instruccin 1
instruccin 2
...................
instruccin n
si no
instruccin a
instruccin b
...................
instruccin z
Ejemplo
25 <= 25
25 <> 25
25 <> 4
50 <= 100
500 >= 1
1=6
Resultado
Verdadero
Falso
Verdadero
Verdadero
Verdadero
Falso
fin si
El resultado de evaluar la condicin puede ser verdadero o falso: en el
caso de que sea verdadero, se ejecutarn: instruccin 1, instruccin 2,
... , instruccin n. Si el resultado de evaluar condicin es falso se
ejecutarn: instruccin a, instruccin b, ... , instruccin z.
Ejemplo:
Si A = 5 entonces
Imprimir("A es 5")
si no
imprimir("A no es igual a 5")
fin si
Estructuras de repeticin
El formato de la estructura de repeticin es:
mientras (condicin)
instruccin 1
instruccin 2
.....
instruccin n
fin mientras
El resultado de evaluar condicin puede ser verdadero o falso:
Mientras sea verdadero, se ejecutarn: instruccin 1, instruccin 2, ... ,
instruccin
n.
Estas
instrucciones
dejarn
de
ejecutarse
cuando condicin sea falso.
Ejemplo:
leer(contrasea)
mientras (contrasea < > "joshua")
imprimir("La contrasea es incorrecta !")
leer (contrasea)
fin-mientras
imprimir("Ha tecleado la contrasea correcta")
Nota: El bucle se repetir mientras que contrasea <> joshua sea
verdadero
Salida de resultados
A=5
B=7
C=2
A=A+B+C
B=C/2
A=A/B+A^C
Imprimir(A)
A=5
B=7
3.
4.
5.
6.
C=1
D = (A == B)
E = (A <> B)
F = (MOD(B/A) >= C)
leer(A)
leer(B)
leer(C)
D = (A == B)
E = (A <> B)
F = (MOD(B/A) >= C)
leer (A)
resultado = 1
mientras (A>1)
resultado = resultado * A
A=A1
fin mientras
imprimir(resultado)
leer (A)
Si (A>0)
Imprimir (A,es positivo)
Si no
Imprimir (A,es negativo)
Fin si
leer (NumeroA)
leer (NumeroB)
Si (NumeroA < NumeroB)
imprimir ("El mayor es:", NumeroB)
si-no
imprimir ("El mayor es:", NumeroA)
fin-si
TESTING DE INTEGRACIN
Verifica las interfaces entre componentes, las interacciones entre las diferentes partes de
un sistema, tales como el sistema operativo, sistema de archivos, hardware, o interfaces
con otros sistemas.
Puede haber ms de un nivel de pruebas de integracin y puede llevarse a cabo sobre
objetos de prueba de tamao variable. Por ejemplo: Pruebas de integracin de
componentes verifican las interacciones entre las los componentes del software y se
realiza despus de las pruebas de componentes.
Cuanto mayor sea el alcance de la integracin, ms difcil se hace para aislar las fallas de
un elemento o sistema especfico, que puede conducir a un aumento del riesgo.
Las estrategias sistemticas de integracin pueden estar basadas en la arquitectura del
sistema (por ejemplo, de arriba abajo y de abajo hacia arriba), tareas funcionales, las
secuencias de procesamiento de transacciones, o algn otro aspecto del sistema o
componente. Con el fin de reducir el riesgo de encontrar errores demasiado tarde, la
integracin normalmente es incremental.
ALCANCE:
TESTING DE SISTEMA
La calidad del software es observada desde el punto de vista del usuario. El entorno de
prueba debe corresponder al entorno de produccin tanto como sea posible para reducir
al mnimo el riesgo de incidentes debidos al ambiente especficamente y que no se
encontraron en las pruebas. Pueden incluir pruebas basadas en los riesgos y/o
especificaciones sobre los requerimientos, procesos de negocio, casos de uso, u otras
descripciones de alto nivel del comportamiento del sistema, las interacciones con el
sistema operativo y los recursos del sistema.
Deben investigar tanto requerimientos funcionales y no funcionales del sistema. Estos
requerimientos pueden existir como texto y/o modelos.
ALCANCE:
TESTING DE ACEPTACIN
Son a menudo responsabilidad de los clientes y/o usuarios de un sistema; otras partes
interesadas pueden participar tambin. La meta en las pruebas de aceptacin es el de
establecer confianza en el sistema, las partes del sistema o las caractersticas especficas
y no funcionales del sistema. Encontrar defectos no es el foco principal en las pruebas de
aceptacin. Las pruebas de aceptacin pueden evaluar la disposicin del sistema para el
uso, aunque no es necesariamente el nivel final de las pruebas. Por ejemplo, una prueba
de integracin de sistemas a gran escala puede venir en pos de la prueba de aceptacin
para un sistema.
La prueba de aceptacin se puede presentar como algo ms que una prueba de nivel
nico, por ejemplo: Se pueden realizar pruebas de aceptacin sobre un producto de
software cuando se instala o se integra. Las pruebas de aceptacin de la usabilidad de un
componente puede hacerse durante las pruebas de componentes. Las pruebas de
aceptacin de una nueva mejora funcional puede hacerse antes de la prueba del sistema.
ALCANCE:
llevarse a cabo en todos los niveles del Testing (por ejemplo, las pruebas de unidad
pueden estar basadas en la especificacin de componentes). Se pueden llevar a cabo en
todos los niveles de pruebas.
TESTING NO FUNCIONAL
Es la prueba de cmo funciona el sistema. Incluyen, pero no se limitan a, las pruebas de
rendimiento, pruebas de carga, pruebas de estrs, pruebas de usabilidad, pruebas de
mantenimiento, pruebas de fiabilidad y pruebas de portabilidad.
Las pruebas no funcionales se pueden realizar en todos los niveles del Testing. El termino
pruebas no funcionales describe las pruebas necesarias para medir las caractersticas de
los sistemas y software que se puede cuantificar en una escala variable, tales como
tiempos de respuesta para las pruebas de rendimiento.
Objetivo: Describir las pruebas necesarias para medir las caractersticas de los sistemas
que se puede cuantificar en una escala variable
PREGUNTAS SQL
El lenguaje de consulta estructurado o SQL (por sus siglas en ingls Structured Query
Language) es unlenguaje declarativo de acceso a bases de datos relacionales que permite
especificar diversos tipos de operaciones en ellas. Una de sus caractersticas es el manejo
del lgebra y el clculo relacional que permiten efectuar consultascon el fin de recuperar de
forma sencilla informacin bases de datos, as como hacer cambios en ellas.
ndice
[ocultar]
1 Orgenes y evolucin
2.2 Optimizacin
4.1 Definicin
4.3.2 Ejemplo
4.4 UPDATE
4.4.1 Ejemplo
4.5 DELETE
4.5.2 Ejemplo
5 Recuperacin de clave
6 Disparadores
8 Referencias
9 Vase tambin
10 Enlaces externos
Orgenes y evolucin[editar]
Los orgenes del SQL estn ligados a los de las bases de datos relacionales. En 1970 E. F.
Codd propone elmodelo relacional y asociado a este un sublenguaje de acceso a
los datos basado en el clculo de predicados. Basndose en estas ideas, los laboratorios
de IBMdefinieron el lenguaje SEQUEL (Structured English Query Language) que ms tarde
fue ampliamente implementado por el sistema de gestin de bases de datos(SGBD)
experimental System R, desarrollado en 1977 tambin por IBM. Sin embargo, fue Oracle quien
lo introdujo por primera vez en 1979 en un producto comercial.
El SEQUEL termin siendo el predecesor de SQL, que es una versin evolucionada del
primero. El SQL pasa a ser el lenguaje por excelencia de los diversossistemas de gestin de
bases de datos relacionales surgidos en los aos siguientes y fue por fin estandarizado en
1986 por el ANSI, dando lugar a la primera versin estndar de este lenguaje, el "SQL-86" o
"SQL1". Al ao siguiente este estndar es tambin adoptado por la ISO.
Sin embargo, este primer estndar no cubra todas las necesidades de los desarrolladores e
inclua funcionalidades de definicin de almacenamiento que se consider suprimirlas. As
que, en 1992, se lanz un nuevo estndar ampliado y revisado del SQL llamado "SQL-92" o
"SQL2".
En la actualidad el SQL es el estndar de facto de la inmensa mayora de los SGBD
comerciales. Y, aunque la diversidad de aadidos particulares que incluyen las distintas
implementaciones comerciales del lenguaje es amplia, el soporte al estndar SQL-92 es
general y muy amplio.
El ANSI SQL sufri varias revisiones y agregados a lo largo del tiempo:
Ao Nombre
1986 SQL-86
Alias
SQL-87
1989 SQL-89
1992 SQL-92
Comentarios
Primera publicacin hecha por ANSI. Confirmada por ISO en 1987.
Revisin menor.
SQL2
Revisin mayor.
2005 SQL:2005
2008 SQL:2008
SQL incorporado y dinmico: Esto quiere decir que se pueden incorporar instrucciones
de SQL en lenguajes de programacin como: C++, C, Java, PHP, Cobol, Pascal y Fortran.
Autorizacin: El LDD incluye comandos para especificar los derechos de acceso a las
relaciones y a las vistas.
Tipos de Datos[editar]
Algunos de los tipos de datos bsicos de SQL son:
Date: una fecha de calendario que contiene el ao (de cuatro cifras), el mes y el da.
Time: La hora del da en horas minutos segundos (el valor predeterminado es 0).
Optimizacin[editar]
Como ya se dijo antes, y suele ser comn en los lenguajes de acceso a bases de datos de alto
nivel, el SQL es un lenguaje declarativo. O sea, que especifica qu es lo que se quiere y no
cmo conseguirlo, por lo que una sentencia no establece explcitamente un orden de
ejecucin.
El orden de ejecucin interno de una sentencia puede afectar seriamente a la eficiencia del
SGBD, por lo que se hace necesario que ste lleve a cabo una optimizacin antes de su
ejecucin. Muchas veces, el uso de ndices acelera una instruccin de consulta, pero ralentiza
la actualizacin de los datos. Dependiendo del uso de la aplicacin, se priorizar el acceso
indexado o una rpida actualizacin de la informacin. La optimizacin difiere sensiblemente
en cada motor de base de datos y depende de muchos factores.
Existe una ampliacin de SQL conocida como FSQL (Fuzzy SQL, SQL difuso) que permite el
acceso a bases de datos difusas, usando la lgica difusa. Este lenguaje ha sido implementado
a nivel experimental y est evolucionando rpidamente.
CREATE | CREAR[editar]
Este comando permite crear objetos de datos, como nuevas bases de datos, tablas, vistas
y procedimientos almacenados.
Ejemplo (crear una tabla)
CREATE TABLE 'CUSTOMERS';
ALTER | MODIFICAR[editar]
Este comando permite modificar la estructura de una tabla u objeto. Se pueden
agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar ndices a una
tabla, modificar un trigger, etc.
Ejemplo (agregar columna a una tabla)
ALTER TABLE 'ALUMNOS' ADD EDAD INT UNSIGNED;
DROP| ELIMINAR[editar]
Este comando elimina un objeto de la base de datos. Puede ser una
tabla, vista, ndice, trigger, funcin, procedimiento o cualquier objeto que el motor de la base
de datos soporte. Se puede combinar con la sentencia ALTER.
Ejemplo
DROP TABLE 'ALUMNOS';.
Definicin[editar]
Un lenguaje de manipulacin de datos (Data Manipulation Language, o DML en ingls) es un
lenguaje proporcionado por el sistema de gestin de base de datos que permite a los usuarios
llevar a cabo las tareas de consulta o manipulacin de los datos, organizados por el modelo de
datos adecuado.
El lenguaje de manipulacin de datos ms popular hoy da es SQL, usado para recuperar y
manipular datos en una base de datos relacional.
SELECT | SELECCIONAR[editar]
La sentencia SELECT nos permite consultar los datos almacenados en una tabla de la base
de datos.
Forma bsica[editar]
SELECT [ALL | DISTINCT ]
<nombre_campo> [{,<nombre_campo>}]
FROM <nombre_tabla>|<nombre_vista>
[{,<nombre_tabla>|<nombre_vista>}]
[WHERE <condicin> [{ AND|OR <condicin>}]]
[GROUP BY <nombre_campo> [{,<nombre_campo >}]]
[HAVING <condicin>[{ AND|OR <condicin>}]]
[ORDER BY <nombre_campo>|<indice_campo> [ASC | DESC]
[{,<nombre_campo>|<indice_campo> [ASC | DESC ]}]]
SELECT
ALL
Palabra clave que indica que la sentencia de SQL que queremos ejecutar es de
seleccin.
Indica que queremos seleccionar todos los valores.Es el valor por defecto y no
suele especificarse casi nunca.
WHERE
Especifica una condicin que debe cumplirse para que los datos sean devueltos
por la consulta. Admite los operadores lgicos AND y OR.
GROUP
BY
HAVING
ORDER
BY
Ejemplo:
Para formular una consulta a la tabla Coches y recuperar los campos matricula, marca,
modelo, color, numero_kilometros, num_plazas debemos ejecutar la siguiente consulta. Los
datos sern devueltos ordenados por marca y por modelo en orden ascendente, de menor a
mayor. La palabra clave FROM indica que los datos sern recuperados de la tabla Coches.
Clusula WHERE[editar]
La clusula WHERE es la instruccin que nos permite filtrar el resultado de una
sentencia SELECT. Habitualmente no deseamos obtener toda la informacin existente en la
tabla, sino que queremos obtener slo la informacin que nos resulte til en ese momento. La
clusula WHERE filtra los datos antes de ser devueltos por la consulta. Cuando en la Clusula
WHERE queremos incluir un tipo texto, debemos incluir el valor entre comillas simples.
Ejemplos:
En nuestro ejemplo, se desea consultar un coche en concreto, para esto se agreg una
clusula WHERE. Esta clusula especifica una o varias condiciones que deben cumplirse para
que la sentencia SELECT devuelva los datos. En este caso la consulta devolver slo los
datos del coche con matrcula para que la consulta devuelva slo los datos del coche con
matrcula MF-234-ZD o bien la matrcula FK-938-ZL . Se puede utilizar la
clusula WHERE solamente, en combinacin con tantas condiciones como queramos.
SELECT matricula, marca, modelo, color, numero_kilometros, num_plazas
FROM Coches
WHERE matricula = 'MF-234-ZD'
OR matricula = 'FK-938-ZL' ;
Una Condicin WHERE puede ser negada a travs del Operador Lgico NOT. La Siguiente
consulta devolver todos los datos de la tabla Coches, menos el que tenga la Matrcula MF234-ZD .
SELECT matricula,marca, modelo, color, numero_kilometros, num_plazas
FROM coches
La Siguiente consulta utiliza la condicional DISTINCT, la cual nos devolver todos los valores
distintos formados por los Campos Marca y Modelo. de la tablacoches.
SELECT DISTINCT marca, modelo FROM coches;
Clusula ORDER BY[editar]
La clusula ORDER BY es la instruccin que nos permite especificar el orden en el que sern
devueltos los datos. Podemos especificar la ordenacin ascendente o descendente a travs
de las palabras clave ASC y DESC. La ordenacin depende del tipo de datos que este
definido en la columna, de forma que un campo nmerico ser ordenado como tal, y un
alfanmerico se ordenar de la A a la Z, aunque su contenido sea nmerico. El valor
predeterminado es ASC si no se especifica al hacer la consulta.
Ejemplos:
SELECT matricula,
marca,
modelo,
color,
numero_kilometros,
num_plazas
FROM coches
ORDER BY marca ASC,modelo DESC; Este ejemplo, selecciona todos los campos matricula,
marca, modelo, color, numero_kilometros y num_plazas de la tabla coches, ordenndolos por
los campos marca y modelo, marca en forma ascendente y modelo en forma descendente.
SELECT matricula,
marca,
modelo,
color,
numero_kilometros, num_plazas
FROM coches
ORDER BY 2;
Este ejemplo, selecciona todos los campos matrcula, marca, modelo, color,
numero_kilometros y num_plazas de la tabla coches, ordenndolos por el campomarca, ya
que aparece en segundo lugar dentro de la lista de campos que componen la SELECT.
INSERT | INSERTAR[editar]
Una sentencia INSERT de SQL agrega uno o ms registros a una (y slo una) tabla en una
base de datos relacional.
Forma bsica[editar]
INSERT INTO 'tablatura' ('columna1',['columna2,... '])
VALUES ('valor1', ['valor2,...'])
Las cantidades de columnas y valores deben ser iguales. Si una columna no se especifica, le
ser asignado el valor por omisin. Los valores especificados (o implcitos) por la
sentencia INSERT debern satisfacer todas las restricciones aplicables. Si ocurre un error de
sintaxis o si alguna de las restricciones es violada, no se agrega la fila y se devuelve un error.
Ejemplo[editar]
INSERT INTO agenda_telefonica (nombre, numero)
VALUES ('Roberto Jeldrez', 4886850);
Cuando se especifican todos los valores de una tabla, se puede utilizar la sentencia acortada:
INSERT INTO nombreTabla VALUES ('valor1', ['valor2,...'])
Ejemplo (asumiendo que 'nombre' y 'nmero' son las nicas columnas de la tabla
'agenda_telefonica'):
INSERT INTO agenda_telefonica
VALUES ('Jhonny Aguiar', 080473968);
Formas avanzadas[editar]
Una caracterstica de SQL (desde SQL-92) es el uso de constructores de filas para insertar
mltiples filas a la vez, con una sola sentencia SQL:
INSERT INTO ''tabla'' (''columna1'', [''columna2,... ''])
VALUES (''valor1a'', [''valor1b,...'']),
(''value2a'', [''value2b,...'']),...;
Esta caracterstica es soportada por DB2, PostgreSQL (desde la versin 8.2), MySQL, y H2.
Ejemplo (asumiendo que 'nombre' y 'nmero' son las nicas columnas en la tabla
'agenda_telefonica'):
INSERT INTO agenda_telefonica VALUES ('Roberto Fernndez', '4886850'),
('Alejandro Sosa', '4556550');
Que poda haber sido realizado por las sentencias
INSERT INTO agenda_telefonica VALUES ('Roberto Fernndez', '4886850');
INSERT INTO agenda_telefonica VALUES ('Alejandro Sosa', '4556550');
Notar que las sentencias separadas pueden tener semntica diferente (especialmente con
respecto a los triggers), y puede tener diferente rendimiento que la sentencia de insercin
mltiple.
Para insertar varias filas en MS SQL puede utilizar esa construccin:
INSERT INTO phone_book
SELECT 'John Doe', '555-1212'
UNION ALL
SELECT 'Peter Doe', '555-2323';
Tenga en cuenta que no se trata de una sentencia SQL vlida de acuerdo con el estndar
SQL (SQL: 2003), debido a la clusula subselect incompleta.
Para hacer lo mismo en Oracle se usa la Tabla DUAL, siempre que se trate de solo una simple
fila:
INSERT INTO phone_book
SELECT 'John Doe', '555-1212' FROM DUAL
UNION ALL
SELECT 'Peter Doe','555-2323' FROM DUAL
Una implementacin conforme al estndar de esta lgica se muestra el siguiente ejemplo, o
como se muestra arriba (no aplica en Oracle):
INSERT INTO phone_book
SELECT 'John Doe', '555-1212' FROM LATERAL ( VALUES (1) ) AS t(c)
UNION ALL
SELECT 'Peter Doe','555-2323' FROM LATERAL ( VALUES (1) ) AS t(c)
Copia de filas de otras tablas[editar]
Un INSERT tambin puede utilizarse para recuperar datos de otros, modificarla si es
necesario e insertarla directamente en la tabla. Todo esto se hace en una sola sentencia SQL
que no implica ningn procesamiento intermedio en la aplicacin cliente. Un SUBSELECT se
utiliza en lugar de la clusula VALUES. El SUBSELECT puede contener JOIN, llamadas a
funciones, y puede incluso consultar en la misma TABLA los datos que se inserta.
Lgicamente, el SELECT se evala antes que la operacin INSERT est iniciada. Un ejemplo
se da a continuacin.
INSERT INTO phone_book2
SELECT *
FROM phone_book
WHERE name IN ('John Doe', 'Peter Doe')
Una variacin es necesaria cuando algunos de los datos de la tabla fuente se est insertando
en la nueva tabla, pero no todo el registro. (O cuando los esquemas de las tablas no son
iguales.)
INSERT INTO phone_book2 ( [name], [phoneNumber] )
SELECT [name], [phoneNumber]
FROM phone_book
WHERE name IN ('John Doe', 'Peter Doe')
El SELECT produce una tabla (temporal), y el esquema de la tabla temporal debe coincidir con
el esquema de la tabla donde los datos son insertados.
UPDATE[editar]
Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de
registros existentes en una tabla.
Ejemplo[editar]
UPDATE My_table SET field1 = 'updated value asd' WHERE field2 = 'N';
DELETE[editar]
Una sentencia DELETE de SQL borra uno o ms registros existentes en una tabla.
Forma bsica[editar]
DELETE FROM tabla WHERE columna1 = 'valor1'
Ejemplo[editar]
DELETE FROM My_table WHERE field2 = 'N';
Recuperacin de clave[editar]
Los diseadores de base de datos que usan una clave suplente como la clave principal para
cada tabla, se ejecutar en el ocasional escenario en el que es necesario recuperar
automticamente la base de datos, generando una clave primaria de una sentencia SQL
INSERT para su uso en otras sentencias SQL. La mayora de los sistemas no permiten
sentencias SQL INSERT para retornar fila de datos. Por lo tanto, se hace necesario aplicar
una solucin en tales escenarios.
Implementaciones comunes incluyen:
Utilizando una sentencia SELECT especfica de base de datos, sobre una tabla temporal
que contiene la ltima fila insertada. DB2 implementa esta caracterstica de la siguiente
manera:
SELECT *
FROM NEW TABLE ( INSERT INTO phone_book VALUES ( 'Cristobal
Jeldrez','0426.817.10.30' ) ) AS t
Utilizando una sentencia SELECT despus de la sentencia INSERT con funcin especfica
de base de datos, que devuelve la clave primaria generada por el registro insertado ms
recientemente.
Utilizando una combinacin nica de elementos del original SQL INSERT en una posterior
sentencia SELECT.
Utilizando un INSERT con la clusula RETURNING para Oracle, que slo se puede utilizar
dentro de un PL/SQL bloque, en el caso de PostgreSQL se puede usar tambin tanto con
Disparadores[editar]
Los disparadores, tambin conocidos como desencadenantes (triggers en ingls) son
definidos sobre la tabla en la que opera la sentencia INSERT, y son evaluados en el contexto
de la operacin. Los desencadenantes BEFORE INSERT permiten la modificacin de los
valores que se insertarn en la tabla. Los desencadenantes AFTER INSERT no puede
modificar los datos de ahora en adelante, pero se puede utilizar para iniciar acciones en otras
tablas, por ejemplo para aplicar mecanismos de auditora.