martes, 25 de marzo de 2008

mision sucre

restricciones le permiten definir la manera en que SQL Server 2005 Database Engine (Motor de base de datos de SQL Server 2005) exigirá automáticamente la integridad de una base de datos. Las restricciones definen reglas relativas a los valores permitidos en las columnas y constituyen el mecanismo estándar para exigir la integridad. El uso de restricciones es preferible al uso de Desencadenadores DML, reglas y valores predeterminados. El optimizador de consultas también utiliza definiciones de restricciones para generar planes de ejecución de consultas de alto rendimiento.
Clases de restricciones
SQL Server 2005 admite las siguientes clases de restricciones:
· NOT NULL especifica que la columna no acepta valores NULL. Para obtener más información, vea Permitir valores NULL.
· Las restricciones CHECK exigen la integridad del dominio mediante la limitación de los valores que se pueden asignar a una columna. Para obtener más información, vea Restricciones CHECK.Una restricción CHECK especifica una condición de búsqueda booleana (se evalúa como TRUE, FALSE o desconocido) que se aplica a todos los valores que se indican en la columna. Se rechazan todos los valores que se evalúan como FALSE. En una misma columna se pueden especificar varias restricciones CHECK. En el siguiente ejemplo se muestra la creación de la restricción chk_id. Esta restricción aumenta las exigencias del dominio de la clave principal asegurándose de que se indiquen para la clave solamente los números comprendidos en un intervalo especificado.
Copiar códigoCREATE TABLE cust_sample ( cust_id int PRIMARY KEY, cust_name char(50), cust_address char(50), cust_credit_limit money, CONSTRAINT chk_id CHECK (cust_id BETWEEN 0 and 10000 ) )
· Las restricciones UNIQUE exigen la unicidad de los valores de un conjunto de columnas. En una restricción UNIQUE, dos filas de la tabla no pueden tener el mismo valor en las columnas. Las claves principales también exigen exclusividad, pero no aceptan NULL como uno de los valores exclusivos.
· Las restricciones PRIMARY KEY identifican la columna o el conjunto de columnas cuyos valores identifican de forma exclusiva cada una de las filas de una tabla..Dos filas de la tabla no pueden tener el mismo valor de clave principal. No se pueden asignar valores NULL a ninguna de las columnas de una clave principal. Se recomienda utilizar una columna pequeña de tipo entero como clave principal.
· Todas las tablas tienen que tener una clave principal. Una columna o combinación de columnas certificada como valor de clave principal se denomina clave candidata. En el siguiente ejemplo se crea la tabla part_sample y especifica el campo part_nmbr como clave principal.
Copiar códigoCREATE TABLE part_sample (Part_nmbr int PRIMARY KEY, part_name char(30), part_weight decimal (6,2), part_color char (15));
· Las restricciones FOREIGN KEY identifican y exigen las relaciones entre las tablas.
· Una clave externa de una tabla apunta a una clave candidata de otra tabla. En el siguiente ejemplo, la tabla order_part establece una clave externa que hace referencia a la tabla part_sample previamente definida.
Copiar códigoCREATE TABLE order_part (order_nmbr int, part_nmbr int FOREIGN KEY REFERENCES part_sample(part_nmbr) ON DELETE NO ACTION, qty_ordered int);GO
No se puede insertar una fila que tenga un valor de clave externa, excepto NULL, si no hay una clave candidata con dicho valor. La cláusula ON DELETE controla las acciones que se llevarán a cabo si intenta eliminar una fila a la que apuntan las claves externas existentes. La cláusula ON DELETE tiene las siguientes opciones:
o NO ACTION especifica que la eliminación produce un error.
o CASCADE especifica que también se eliminan todas las filas con claves externas que apuntan a la fila eliminada.
o SET NULL especifica que todas las filas con claves externas que apuntan a la fila eliminada se establecen en NULL.
o SET DEFAULT especifica que todas las filas con claves externas que apuntan a la fila eliminada se establecen en sus valores predeterminados..
La cláusula ON UPDATE define las acciones que se llevarán a cabo si intenta actualizar un valor de clave candidata a la que apuntan las claves externas existentes. Esta cláusula también admite las opciones NO ACTION, CASCADE, SET NULL y SET DEFAULT.
Restricciones de tabla y de columna
Las restricciones se dividen en restricciones de columna o restricciones de tabla. La restricción de columna se especifica como parte de una definición de columna y sólo se aplica a esa columna. Las restricciones de los ejemplos anteriores son restricciones de columna. Las restricciones de tabla se declaran de forma independiente de la definición de las columnas y se pueden aplicar a varias columnas de la tabla. Las restricciones de tabla se deben utilizar cuando una restricción tiene que incluir varias columnas.
Por ejemplo, si una tabla tiene dos o más columnas en la clave principal, tiene que utilizar una restricción de tabla para incluir dichas columnas en la clave principal. Piense en una tabla que registra los sucesos de una máquina de una fábrica. Suponga que se pueden producir eventos de distintos tipos al mismo tiempo, pero no se pueden producir dos eventos del mismo tipo a la vez. Esto se puede garantizar en la tabla si se incluyen las columnas event_type y event_time en una clave principal de dos columnas, tal como se muestra en el siguiente ejemplo.
Copiar códigoCREATE TABLE factory_process (event_type int, event_time date time, event_time char(50), event_desc char (1024),

trabajo mision sucre

DESARROLLO
* Como se declara en “Lenguaje C”
Como declarar un arreglo en C.Bueno un arreglo es un conjunto de variables del mismo tipo que se identifican con un mismo nombre pero se distinguen por medio de un indice.El tipo puede ser cualquier tipo (int, char, float, etc)rango es el número de elementos del arreglo
En lenguaje C todos los arreglos se empiezan con 0 (cero) esto significa que el primer elemento de un arreglo es ceroEjemplo:
#include //se inicializa la función mainint main(){int n[ 10 ]; //se declara el arreglo con 10 elemntosint i; //contador//se inicializan el contadorfor ( i = 0; i < 10; i++ ) {n[ i ] = 0; // establece el elemento i a 0} /* fin de for */printf( "%s%13s\n", "Elemento", "Valor" );// muestra el contenido del arreglo n en forma tabularfor ( i = 0; i < 10; i++ ) {printf( "%7d%13d\n", i, n[ i ] );} // fin de forreturn 0; //termina correctamente} // fin de main
Los arreglos también pueden ser bidimensionales o multidimensionales, pero eso no lo veremos después.... espero que en clase y si no pues ya lo estaré posteando
.Tipos de datos n 'C' existen básicamente cuatro tipos de datos, aunque como se verá después, podremos definir nuestros propios tipos de datos a partir de estos cuatro. A continuación se detalla su nombre, el tamaño que ocupa en memoria y el rango de sus posibles valores.

TIPO Tamaño Rango de valores

char 1 byte -128 a 127

int 2 bytes -32768 a 32767

float 4 bytes 3'4 E-38 a 3'4 E+38

double 8 bytes 1'7 E-308 a 1'7 E+308
Las variablesUna variable es un tipo de dato, referenciado mediante un identificador (que es el nombre de la variable). Su contenido podrá ser modificado a lo largo del programa.
Una variable sólo puede pertenecer a un tipo de dato. Para poder utilizar una variable, primero tiene que ser declarada:

[calificador]
Es posible inicializar y declarar más de una variable del mismo tipo en la misma sentencia:
[calificador] ,=,=,
/* Uso de las variables */
#include
main() /* Suma dos valores */
int num1=4,num2,num3=6;
printf("El valor de num1 es %d",num1);
printf("\nEl valor de num3 es %d",num3);
num2=num1+num3;
printf("\nnum1 + num3 = %d",num2);
b ) ¿ Dónde se declaran ?
Las variables pueden ser de dos tipos según el lugar en que las declaremos: globales o locales.La variable global se declara antes de la main ( ). Puede ser utilizada en cualquier parte del programa y se destruye al finalizar éste.
La variable local se declara después de la main ( ), en la función en que vaya a ser utilizada. Sólo existe dentro de la función en que se declara y se destruye al finalizar dicha función.
El identificador (nombre de la variable) no puede ser una palabra clave y los caracteres que podemos utilizar son las letras: a-z y A-Z (­ojo! la ñ o Ñ no está permitida), los números: 0-9 y el símbolo de subrayado _.
Además hay que tener en cuenta que el primer caracter no puede ser un número.
/* Declaración de variables */

#include

Int a;
Main () /* Muestra dos valores */
{
Int b=4;
Printf ("b es local y vale %d",b);
a=5;
Printf ("\na es global y vale %d",a);
}

Los lenguajes imperativos son aquellos en los que se especifica cómo conseguir los objetivos que se persiguen. C; C++; Javascript y Perl, entre otros muchos, pertenecen a esta categoría. Por contra, los lenguajes declarativos son aquellos en los que se especifica que objetivo se persigue, sin preocuparse por el cómo. SQL y HTML son quizás los ejemplos más representativos de esta categoría.
[2] El propio Stroustrup reconoce en el prólogo de su primer libro sobre C++: "Se ha dado gran importancia a mantener compatibilidad con C.... C++ debe la mayor parte a C. C es mantenido como un subconjunto).
[3] De hecho, el mentado compilador Zortech C++, se ofrecía como: "The World's first 'TRUE' C++ compiler for MS-DOS".
[4] Stroustrup señala que una de las razones que llevaron a K&R a diseñar el C fue no tener que programar en ensamblador (*), y que en el diseño de C++ se cuidó no perder las ventajas ganadas en este sentido. Precisamente comenzó a desarrollar C++ como un lenguaje que le ayudara en el trabajo de diseño de un Sistea Operativo distribuido.
(*) En ocasiones, C ha sido considerado como un "lenguaje ensamblador de alto nivel".
[5] "You are not doing OO just because you are compiling with C++" Ian Joyner "C++??"
[6] Bjarne Stroustrup. Entrevista con Al Stevens’s en Dr. Dobb's Journal Sept. 1992.
[7] Entrevista en "C++ Pointers and Dynamic Memory Management" de Michael C. Daconta. Edit. John Wiley & Sons, Inc. ISBN 0-471-04998-0









*PALABRA RESERVADA CLASS
Aunque antes se han dado una serie de restricciones sobre cuáles son los nombres válidos que se pueden dar en C# a los identificadores, falta todavía por dar una: los siguientes nombres no son válidos como identificadores ya que tienen un significado especial en el lenguaje:

abstract, as, base, bool, break, byte, case, catch, char, checked, class, const, continue, decimal, default, delegate, do, double, else, enum, event, explicit, extern false, finally, fixed, float, for, foreach, goto, if, implicit, in, int, interface, internal, lock, is, long, namespace, new, null, object, operator, out, override, params, private, protected, public, readonly, ref, return, sbyte, sealed, short, sizeof, stackalloc, static, string, struct, switch, this, throw, true, try, typeof, uint, ulong, unchecked, unsafe, ushort, ing, virtual, void, while
Aparte de estas palabras reservadas, si en futuras implementaciones del lenguaje se decidiese incluir nuevas palabras reservadas, Microsoft dice que dichas palabras habrían de incluir al menos dos símbolos de subrayado consecutivos (__) Por tanto, para evitar posibles conflictos futuros no se recomienda dar a nuestros identificadores nombres que contengan dicha secuencia de símbolos.

Aunque directamente no podemos dar estos nombres a nuestros identificadores, C# proporciona un mecanismo para hacerlo indirectamente y de una forma mucho más legible que usando secuencias de escape. Este mecanismo consiste en usar el carácter @ para prefijar el nombre coincidente con el de una palabra reservada que queramos dar a nuestra variable. Por ejemplo, el siguiente código es válido:

class @class
{
static void @static(bool @bool)
{
if (@bool)
Console.WriteLine("cierto");
else
Console.WriteLine("falso");
}
}

Lo que se ha hecho en el código anterior ha sido usar @ para declarar una clase de nombre class con un método de nombre static que toma un parámetro de nombre bool, aún cuando todos estos nombres son palabras reservadas en C#.

Hay que precisar que aunque el nombre que nosotros escribamos sea por ejemplo @class, el nombre con el que el compilador va a tratar internamente al identificador es solamente class. De hecho, si desde código escrito en otro lenguaje adaptado a .NET distinto a C# hacemos referencia a éste identificador y en ese lenguaje su nombre no es una palabra reservada, el nombre con el que deberemos referenciarlo es class, y no @class (si también fuese en ese lenguaje palabra reservada habría que referenciarlo con el mecanismo que el lenguaje incluyese para ello, que quizás también podría consistir en usar @ como en C#)

En realidad, el uso de @ no se tiene porqué limitar a preceder palabras reservadas en C#, sino que podemos preceder cualquier nombre con él. Sin embargo, hacer esto no se recomienda, pues es considerado como un mal hábito de programación y puede provocar errores muy sutiles como el que muestra el siguiente ejemplo:

class A
{
int a; // (1)
int @a; // (2)

public static void Main()


Si intentamos compilar este código se producirá un error que nos informará de que el campo de nombre a ha sido declarado múltiples veces en la clase A. Esto se debe a que como @ no forma parte en realidad del nombre del identificador al que precede, las declaraciones marcadas con comentarios como (1) y (2) son equivalentes.

Hay que señalar por último una cosa respecto al carácter @: sólo puede preceder al nombre de un identificador, pero no puede estar contenido dentro del mismo. Es decir, identificadores como i5322@fie.us.es no son válidos.





















*CLASES Y FUNCIONES AMIGAS

Una función fuera de una clase puede definirse como función amiga por la clase que le da libre acceso a los miembros privados de la clase. Hay casos en que esto ayuda a hacer más legible un programa, y permite el acceso controlado a los datos.
Una función aislada puede ser declarada como amiga, así como miembro de otras clases, e incluso se le puede dar el estatus de amiga a clases enteras, si es necesario.
No pueden ser funciones amigas los constructores ni los destructores.

Dentro de las clases podemos definir funciones (o clases) como amigas de la clase. Esto significa que le estamos dando acceso a una función (o clase) a que modifique los datos miembros de la clase.
Esto es especialmente útil para la sobrecarga de operadores como veremos más adelante.
Por el momento sólo diremos que una función (o clase) amiga tiene acceso a los datos miembros de la clase que la declara como amiga.
Para ilustrar ésto veremos el siguiente ejemplo. Tenemos una clase llamada Número, que consta de un dato miembro llamado x. Tiene una función pública mostrar () que saca por pantalla el valor de x. Además declara una función amiga llamada establecer (), que recibe el objeto a modificar y un número de punto flotante double para establecer el valor del objeto.
Como vemos estamos utilizando la función no a través del objeto sino pasándole el objeto pasado como parámetro.
(Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones sobre las mismas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo lanzar consultas con el fin de recuperar información de interés de una base de datos, de una forma sencilla.

El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales permitiendo gran variedad de operaciones sobre los mismos. Es un lenguaje declarativo de alto nivel o de no procedimiento, que gracias a su fuerte base teórica y su orientación al manejo de conjuntos de registros, y no a registros individuales, permite una alta productividad en codificación. De esta forma una sola sentencia puede equivaler a uno o más programas que utilizasen un lenguaje de bajo nivel orientado a registro.

El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos.Existen dos tipos de comandos SQL:
los DLL que permiten crear y definir nuevas bases de datos, campos e índices.
los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.
Comandos DLL Comando Descripción CREATE Utilizado para crear nuevas tablas, campos e índices DROP Empleado para eliminar tablas e índices ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos. Comandos DML Comando Descripción SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación. UPDATE Utilizado para modificar los valores de los campos y registros especificados DELETE Utilizado para eliminar registros de una tabla de una base de datos Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular. Cláusula Descripción FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar GROUP BY Utilizada para separar los registros seleccionados en grupos específicos HAVING Utilizada para expresar la condición que debe satisfacer cada grupo ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico Operador Uso AND Es el "y" lógico. Evalua dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas. OR Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdar si alguna de las dos es cierta. NOT Negación lógica. Devuelve el valor contrario de la expresión. Operador Uso <> Mayor que Distinto de <= Menor ó Igual que >= Mayor ó Igual que = Igual que BETWEEN Utilizado para especificar un intervalo de valores. LIKE Utilizado en la comparación de un modelo In Utilizado para especificar registros de una base de datos Funciones de AgregadoLas funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros para devolver un único valor que se aplica a un grupo de registros. Función Descripción AVG Utilizada para calcular el promedio de los valores de un campo determinado COUNT Utilizada para devolver el número de registros de la selección SUM Utilizada para devolver la suma de todos los valores de un campo determinado MAX Utilizada para devolver el valor más alto de un campo especificado MIN Utilizada para devolver el valor más bajo de un campo especificado





CONSULTA DE SELECCION

La sintaxis básica de una consulta de selección es la siguiente:SELECT Campos FROM Tabla;En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos, por ejemplo:SELECT Nombre, Telefono FROM Clientes;Esta consulta devuelve un recordset con el campo nombre y teléfono de la tabla clientes.Adicionalmente se puede especificar el orden en que se desean recuperar los registros de las tablas mediante la claúsula ORDER BY Lista de Campos. En donde Lista de campos representa los campos a ordenar. Ejemplo:SELECT CodigoPostal, Nombre, Telefono FROM Clientes ORDER BY Nombre;Esta consulta devuelve los campos CodigoPostal, Nombre, Telefono de la tabla Clientes ordenados por el campo Nombre.Se pueden ordenar los registros por mas de un campo, como por ejemplo:SELECT CodigoPostal, Nombre, Telefono FROM Clientes ORDER BY CodigoPostal, Nombre;Incluso se puede especificar el orden de los registros: ascendente mediante la claúsula (ASC -se toma este valor por defecto) ó descendente (DESC)SELECT CodigoPostal, Nombre, Telefono FROM Clientes ORDER BY CodigoPostal DESC , Nombre ASC;El predicado se incluye entre la claúsula y el primer nombre del campo a recuperar, los posibles predicados son: Predicado Descripción ALL Devuelve todos los campos de la tabla TOP Devuelve un determinado número de registros de la tabla DISTINCT Omite los registros cuyos campos seleccionados coincidan totalmente DISTINCTROW Omite los registros duplicados basandose en la totalidad del registro y no sólo en los campos seleccionados. ALLSi no se incluye ninguno de los predicados se asume ALL. El Motor de base de datos selecciona todos los registros que cumplen las condiciones de la instrucción SQL. No se conveniente abusar de este predicado ya que obligamos al motor de la base de datos a analizar la estructura de la tabla para averiguar los campos que contiene, es mucho más rápido indicar el listado de campos deseados.SELECT ALL FROM Empleados; SELECT * FROM Empleados; TOPDevuelve un cierto número de registros que entran entre al principio o al final de un rango especificado por una cláusula ORDER BY. Supongamos que queremos recuperar los nombres de los 25 primeros estudiantes del curso 1994:SELECT TOP 25 Nombre, Apellido FROM Estudiantes ORDER BY Nota DESC;Si no se incluye la cláusula ORDER BY, la consulta devolverá un conjunto arbitrario de 25 registros de la tabla Estudiantes .El predicado TOP no elige entre valores iguales. En el ejemplo anterior, si la nota media número 25 y la 26 son iguales, la consulta devolverá 26 registros. Se puede utilizar la palabra reservada PERCENT para devolver un cierto porcentaje de registros que caen al principio o al final de un rango especificado por la cláusula ORDER BY. Supongamos que en lugar de los 25 primeros estudiantes deseamos el 10 por ciento del curso:SELECT TOP 10 PERCENT Nombre, Apellido FROM Estudiantes ORDER BY Nota DESC;El valor que va a continuación de TOP debe ser un Integer sin signo.TOP no afecta a la posible actualización de la consulta.DISTINCTOmite los registros que contienen datos duplicados en los campos seleccionados. Para que los valores de cada campo listado en la instrucción SELECT se incluyan en la consulta deben ser únicos.Por ejemplo, varios empleados listados en la tabla Empleados pueden tener el mismo apellido. Si dos registros contienen López en el campo Apellido, la siguiente instrucción SQL devuelve un único registro:SELECT DISTINCT Apellido FROM Empleados;Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos indicados en la cláusula SELECT posean un contenido diferente. El resultado de una consulta que utiliza DISTINCT no es actualizable y no refleja los cambios subsiguientes realizados por otros usuarios.DISTINCTROWDevuelve los registros diferentes de una tabla; a diferencia del predicado anterior que sólo se fijaba en el contenido de los campos seleccionados, éste lo hace en el contenido del registro completo independientemente de los campo indicados en la cláusula SELECT.SELECT DISTINCTROW Apellido FROM Empleados;Si la tabla empleados contiene dos registros: Antonio López y Marta López el ejemplo del predicado DISTINCT devuleve un único registro con el valor López en el campo Apellido ya que busca no duplicados en dicho campo. Este último ejemplo devuelve dos registros con el valor López en el apellido ya que se buscan no duplicados en el registro completo. En determinadas circunstancias es necesario asignar un nombre a alguna columna determinada de un conjunto devuelto, otras veces por simple capricho o por otras circunstancias. Para resolver todas ellas tenemos la palabra reservada AS que se encarga de asignar el nombre que deseamos a la columna deseada. Tomado como referencia el ejemplo anterior podemos hacer que la columna devuelta por la consulta, en lugar de llamarse apellido (igual que el campo devuelto) se llame Empleado. En este caso procederíamos de la siguiente forma:SELECT DISTINCTROW Apellido AS Empleado FROM Empleados;Para concluir este capítulo se debe hacer referencia a la recuperación de registros de bases de datos externa. Es ocasiones es necesario la recuperación de información que se encuentra contenida en una tabla que no se encuentra en la base de datos que ejecutará la consulta o que en ese momento no se encuentra abierta, esta situación la podemos salvar con la palabra reservada IN de la siguiente forma:SELECT DISTINCTROW Apellido AS Empleado FROM Empleados IN 'c:\databases\gestion.mdb';En donde c:\databases\gestion.mdb es la base de datos que contiene la tabla Empleados.


CRITERIOS DE SELECCIÓN

Antes de comenzar el desarrollo de este capítulo hay que recalcar tres detalles de vital importancia. El primero de ellos es que cada vez que se desee establecer una condición referida a un campo de texto la condición de búsqueda debe ir encerrada entre comillas simples; la segunda es que no se posible establecer condiciones de búsqueda en los campos memo y; la tercera y última hace referencia a las fechas. Las fechas se deben escribir siempre en formato mm-dd-aa en donde mm representa el mes, dd el día y aa el año, hay que prestar atención a los separadores -no sirve la separación habitual de la barra (/), hay que utilizar el guión (-) y además la fecha debe ir encerrada entre almohadillas (#). Por ejemplo si deseamos referirnos al día 3 de Septiembre de 1995 deberemos hacerlo de la siguente forma; #09-03-95# ó #9-3-95#.Operadores LógicosLos operadores lógicos soportados por SQL son: AND, OR, XOR, Eqv, Imp, Is y Not. A excepción de los dos últimos todos poseen la siguiente sintaxis: operador En donde expresión1 y expresión2 son las condiciones a evaluar, el resultado de la operación varía en función del operador lógico. La tabla adjunta muestra los diferentes posibles resultados: Operador Resultado Verdad AND Falso Falso Verdad AND Verdad Verdad Falso AND Verdad Falso Falso AND Falso Falso Verdad OR Falso Verdad Verdad OR Verdad Verdad Falso OR Verdad Verdad Falso OR Falso Falso Verdad XOR Verdad Falso Verdad XOR Falso Verdad Falso XOR Verdad Verdad Falso XOR Falso Falso Verdad Eqv Verdad Verdad Verdad Eqv Falso Falso Falso Eqv Verdad Falso Falso Eqv Falso Verdad Verdad Imp Verdad Verdad Verdad Imp Falso Falso Verdad Imp Null Null Falso Imp Verdad Verdad Falso Imp Falso Verdad Falso Imp Null Verdad Null Imp Verdad Verdad Null Imp Falso Null Null Imp Null Null Si a cualquiera de las anteriores condiciones le anteponemos el operador NOT el resultado de la operación será el contrario al devuelto sin el operador NOT.El último operador denominado Is se emplea para comparar dos variables de tipo objeto Is . este operador devuelve verdad si los dos objetos son igualesSELECT * FROM Empleados WHERE Edad > 25 AND Edad <> 25 AND Edad < sueldo =" 100;" estado =" 'Soltero';"> 100 AND Sueldo < 500) OR (Provincia = 'Madrid' AND Estado = 'Casado');Intervalos de ValoresPara indicar que deseamos recuperar los registros según el intervalo de valores de un campo emplearemos el operador Between cuya sintaxis es:campo [Not] Between valor1 And valor2 (la condición Not es opcional)En este caso la consulta devolvería los registros que contengan en "campo" un valor incluido en el intervalo valor1, valor2 (ambos inclusive). Si anteponemos la condición Not devolverá aquellos valores no incluidos en el intervalo.SELECT * FROM Pedidos WHERE CodPostal Between 28000 And 28999; (Devuelve los pedidos realizados en la provincia de Madrid)SELECT IIf(CodPostal Between 28000 And 28999, 'Provincial', 'Nacional') FROM Editores; (Devuelve el valor 'Provincial' si el código postal se encuentra en el intervalo, 'Nacional' en caso contrario)Se utiliza para comparar una expresión de cadena con un modelo en una expresión SQL. Su sintaxis es:expresión Like modeloEn donde expresión es una cadena modelo o campo contra el que se compara expresión. Se puede utilizar el operador Like para encontrar valores en los campos que coincidan con el modelo especificado. Por modelo puede especificar un valor completo (Ana María), o se pueden utilizar caracteres comodín como los reconocidos por el sistema operativo para encontrar un rango de valores (Like An*).El operador Like se puede utilizar en una expresión para comparar un valor de un campo con una expresión de cadena. Por ejemplo, si introduce Like C* en una consulta SQL, la consulta devuelve todos los valores de campo que comiencen por la letra C. En una consulta con parámetros, puede hacer que el usuario escriba el modelo que se va a utilizar.El ejemplo siguiente devuelve los datos que comienzan con la letra P seguido de cualquier letra entre A y F y de tres dígitos:Like 'P[A-F]#'Este ejemplo devuelve los campos cuyo contenido empiece con una letra de la A a la D seguidas de cualquier cadena.Like '[A-D]*'En la tabla siguiente se muestra cómo utilizar el operador Like para comprobar expresiones con diferentes modelos. Tipo de coincidencia Modelo Planteado Coincide No coincide Varios caracteres 'a*a' 'aa', 'aBa', 'aBBBa' 'aBC' Carácter especial 'a[*]a' 'a*a' 'aaa' Varios caracteres 'ab*' 'abcdefg', 'abc' 'cab', 'aab' Un solo carácter 'a?a' 'aaa', 'a3a', 'aBa' 'aBBBa' Un solo dígito 'a#a' 'a0a', 'a1a', 'a2a' 'aaa', 'a10a' Rango de caracteres '[a-z]' 'f', 'p', 'j' '2', '&' Fuera de un rango '[!a-z]' '9', '&', '%' 'b', 'a' Distinto de un dígito '[!0-9]' 'A', 'a', '&', '~' '0', '1', '9' Combinada 'a[!b-m]#' 'An9', 'az0', 'a99' 'abc', 'aj0'
Este operador devuelve aquellos registros cuyo campo indicado coincide con alguno de los en una lista. Su sintaxis es:expresión [Not] In(valor1, valor2, . . .)SELECT * FROM Pedidos WHERE Provincia In ('Madrid', 'Barcelona', 'Sevilla'); La cláusula WHERE puede usarse para determinar qué registros de las tablas enumeradas en la cláusula FROM aparecerán en los resultados de la instrucción SELECT. Depués de escribir esta cláusula se deben especificar las condiciones expuestas en los partados 3.1 y 3.2. Si no se emplea esta cláusula, la consulta devolverá todas las filas de la tabla. WHERE es opcional, pero cuando aparece debe ir a continuación de FROM.SELECT Apellidos, Salario FROM Empleados WHERE Salario > 21000;SELECT Id_Producto, Existencias FROM Productos WHERE Existencias <= Nuevo_Pedido;SELECT * FROM Pedidos WHERE Fecha_Envio = #5/10/94#;SELECT Apellidos, Nombre FROM Empleados WHERE Apellidos = 'King';SELECT Apellidos, Nombre FROM Empleados WHERE Apellidos Like 'S*';SELECT Apellidos, Salario FROM Empleados WHERE Salario Between 200 And 300;SELECT Apellidos, Salario FROM Empl WHERE Apellidos Between 'Lon' And 'Tol';SELECT Id_Pedido, Fecha_Pedido FROM Pedidos WHERE Fecha_Pedido Between #1-1-94# And #30-6-94#;SELECT Apellidos, Nombre, Ciudad FROM Empleados WHERE Ciudad In ('Sevilla', 'Los Angeles', 'Barcelona');


AGRUPAMIENTO DE REGISTROS

Combina los registros con valores idénticos, en la lista de campos especificados, en un único registro. Para cada registro se crea un valor sumario si se incluye una función SQL agregada, como por ejemplo Sum o Count, en la instrucción SELECT. Su sintaxis es:SELECT campos FROM tabla WHERE criterio GROUP BY campos del grupoGROUP BY es opcional. Los valores de resumen se omiten si no existe una función SQL agregada en la instrucción SELECT. Los valores Null en los campos GROUP BY se agrupan y no se omiten. No obstante, los valores Null no se evalúan en ninguna de las funciones SQL agregadas.Se utiliza la cláusula WHERE para excluir aquellas filas que no desea agrupar, y la cláusula HAVING para filtrar los registros una vez agrupados.A menos que contenga un dato Memo u Objeto OLE , un campo de la lista de campos GROUP BY puede referirse a cualquier campo de las tablas que aparecen en la cláusula FROM, incluso si el campo no esta incluido en la instrucción SELECT, siempre y cuando la instrucción SELECT incluya al menos una función SQL agregada.Todos los campos de la lista de campos de SELECT deben o bien incluirse en la cláusula GROUP BY o como argumentos de una función SQL agregada.SELECT Id_Familia, Sum(Stock) FROM Productos GROUP BY Id_Familia;Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier registro agrupado por la cláusula GROUP BY que satisfaga las condiciones de la cláusula HAVING.HAVING es similar a WHERE, determina qué registros se seleccionan. Una vez que los registros se han agrupado utilizando GROUP BY, HAVING determina cuales de ellos se van a mostrar.SELECT Id_Familia Sum(Stock) FROM Productos GROUP BY Id_Familia HAVING Sum(Stock) > 100 AND NombreProducto Like BOS*;Calcula la media aritmética de un conjunto de valores contenidos en un campo especificado de una consulta. Su sintaxis es la siguienteAvg(expr)En donde expr representa el campo que contiene los datos numéricos para los que se desea calcular la media o una expresión que realiza un cálculo utilizando los datos de dicho campo. La media calculada por Avg es la media aritmética (la suma de los valores dividido por el número de valores). La función Avg no incluye ningún campo Null en el cálculo.SELECT Avg(Gastos) AS Promedio FROM Pedidos WHERE Gastos > 100;Calcula el número de registros devueltos por una consulta. Su sintaxis es la siguienteCount(expr)En donde expr contiene el nombre del campo que desea contar. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL). Puede contar cualquier tipo de datos incluso texto.Aunque expr puede realizar un cálculo sobre un campo, Count simplemente cuenta el número de registros sin tener en cuenta qué valores se almacenan en los registros. La función Count no cuenta los registros que tienen campos null a menos que expr sea el carácter comodín asterisco (*). Si utiliza un asterisco, Count calcula el número total de registros, incluyendo aquellos que contienen campos null. Count(*) es considerablemente más rápida que Count(Campo). No se debe poner el asterisco entre dobles comillas ('*').SELECT Count(*) AS Total FROM Pedidos;Si expr identifica a múltiples campos, la función Count cuenta un registro sólo si al menos uno de los campos no es Null. Si todos los campos especificados son Null, no se cuenta el registro. Hay que separar los nombres de los campos con ampersand (&).SELECT Count(FechaEnvío & Transporte) AS Total FROM Pedidos;Devuelven el mínimo o el máximo de un conjunto de valores contenidos en un campo especifico de una consulta. Su sintaxis es:Min(expr) Max(expr)En donde expr es el campo sobre el que se desea realizar el cálculo. Expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL).SELECT Min(Gastos) AS ElMin FROM Pedidos WHERE Pais = 'España'; SELECT Max(Gastos) AS ElMax FROM Pedidos WHERE Pais = 'España';Devuelve estimaciones de la desviación estándar para la población (el total de los registros de la tabla) o una muestra de la población representada (muestra aleatoria) . Su sintaxis es:StDev(expr) StDevP(expr)En donde expr representa el nombre del campo que contiene los datos que desean evaluarse o una expresión que realiza un cálculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL)StDevP evalúa una población, y StDev evalúa una muestra de la población. Si la consulta contiene menos de dos registros (o ningún registro para StDevP), estas funciones devuelven un valor Null (el cual indica que la desviación estándar no puede calcularse).SELECT StDev(Gastos) AS Desviacion FROM Pedidos WHERE Pais = 'España'; SELECT StDevP(Gastos) AS Desviacion FROM Pedidos WHERE Pais= 'España';
Devuelve la suma del conjunto de valores contenido en un campo especifico de una consulta. Su sintaxis es:Sum(expr)En donde expr respresenta el nombre del campo que contiene los datos que desean sumarse o una expresión que realiza un cálculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL).SELECT Sum(PrecioUnidad * Cantidad) AS Total FROM DetallePedido; Devuelve una estimación de la varianza de una población (sobre el total de los registros) o una muestra de la población (muestra aleatoria de registros) sobre los valores de un campo. Su sintaxis es:Var(expr) VarP(expr)VarP evalúa una población, y Var evalúa una muestra de la población. Expr el nombre del campo que contiene los datos que desean evaluarse o una expresión que realiza un cálculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL)
Si la consulta contiene menos de dos registros, Var y VarP devuelven Null (esto indica que la varianza no puede calcularse). Puede utilizar Var y VarP en una expresión de consulta o en una Instrucción SQL.SELECT Var(Gastos) AS Varianza FROM Pedidos WHERE Pais = 'España'; SELECT VarP(Gastos) AS Varianza FROM Pedidos WHERE Pais = 'España';

trabajo mision sucre

Campo clave:
Es un campo particular dentro del registro, que permite la identificación exclusiva y unívoca de cada registro. La clave debe ser un valor que no se repita, como por ejemplo, el número de cédula de identidad, número de identificación, el número de carnet en una
Campos clave
Vamos a revisar algunas definiciones de campos clave.
Clave primaria
1. Cada registro es único dentro de una tabla (ningún otro registro dentro de la tabla tiene todos sus campos dentro de la tabla iguales a los de cualquier otro registro).
2. Para que cada registro sea único, por lo menos un campo no debe repetirse en ningún otro registro. Basándonos en este ultimo punto, el campo único se denomina campo de clave primaria.
Clave foránea
Es un campo creado con la finalidad de vincular o relacionar tablas. Esto se logra usando valores idénticos en la clave primaria de una tabla y los campos foráneos de otras.