SQL
El SQL (Structured query language), lenguaje de consulta estructurado, es un lenguaje surgido de un proyecto de investigación de IBM para el acceso a bases de datos relacionales. Actualmente se ha convertido en un estándar de lenguaje de bases de datos, y la mayoría de los sistemas de bases de datos lo soportan, desde sistemas para ordenadores personales, hasta grandes ordenadores.
Por supuesto, a partir del estándar cada sistema ha desarrollado su propio SQL que puede variar de un sistema a otro, pero con cambios que no suponen ninguna complicación para alguien que conozca un SQL concreto, como el que vamos a ver aquí corespondiente al Access2000.
Como su nombre indica, el SQL nos permite realizar consultas a la base de datos. Pero el nombre se queda corto ya que SQL además realiza funciones de definición, control y gestión de la base de datos. Las sentencias SQL se clasifican según su finalidad dando origen a tres ‘lenguajes’ o mejor dicho sublenguajes:
|
Una sentencia SQL es como una frase (escrita en inglés ) con la que decimos lo que queremos obtener y de donde obtenerlo.
Todas las sentencias empiezan con un verbo (palabra reservada que indica la acción a realizar), seguido del resto de cláusulas, algunas obligatorias y otras opcionales que completan la frase. Todas las sentencias siguen una sintaxis para que se puedan ejecutar correctamente, para describir esa sintaxis utilizaremos un diagrama sintácticocomo el que se muestra a continuación.
|
Las palabras que aparecen en mayúsculas son palabras reservadas se tienen que poner tal cual y no se pueden utilizar para otro fin, por ejemplo, en el diagrama de la figura tenemos las palabras reservadasSELECT, ALL, DISTINCT, FROM, WHERE.
Las palabras en minúsculas son variables que el usuario deberá sustituir por un dato concreto. En el diagrama tenemos nbcolumna, expresion-tabla y condicion-de-busqueda. |
Una sentencia válida se construye siguiendo la línea a través del diagrama hasta el punto que marca el final. Las líneas se siguen de izquierda a derecha y de arriba abajo. Cuando se quiere alterar el orden normal se indica con una flecha.
|
¿Cómo se interpretaría el diagrama sintáctico de la figura? Hay que empezar por la palabra SELECT, después puedes poner ALL o bienDISTINCT o nada, a continuación un nombre de columna, o varios separados por comas, a continuación la palabra FROM y una expresión-tabla, y por último de forma opcional puedes incluir la cláusula WHERE con una condición-de-búsqueda. Por ejemplo: SELECT ALL col1,col2,col3 FROM mitabla SELECT col1,col2,col3 FROM mitabla SELECT DISTINCT col1 FROM mitabla SELECT col1,col2 FROM mitabla WHERE col2 = 0 Todas estas sentencias se podrían escribir y no darían lugar a errores sintácticos. Cuando una palabra opcional está subrayada, esto indica que ese es el valor por defecto ( el valor que se asume si no se pone nada). En el ejemplo anterior las dos primeras sentencias son equivalentes (en el diagrama ALL aparece subrayada). |
Este manual está basado en el SQL del motor de base de datos que utiliza el Access2000, el Microsoft Jet 4.x, para que los ejemplos y ejercicios se puedan ejecutar y probar. Aunque el curso esté realizado para Access2000, sirve también para Access en sus versiones posteriores Access 2002, Access 2003 y Access 2007.
Para crear y después ejecutar una sentencia SQL en Access, lo fácil es utilizar la ventana SQL de las consultas.
|
Para crear una consulta de selección, seguir los siguientes pasos:
Abrir la base de datos donde se encuentra la consulta a crear.
Hacer clic sobre el objeto Consulta que se encuentra a la izquierda de la ventana de la base de datos.
Hacer clic sobre el botón Nuevo
|
Seleccionar Vista Diseño.
Hacer clic sobre el botón Aceptar. |
Como no queremos utilizar el generador de consultas sino escribir nuestras propias sentencias SQL, no agregamos ninguna tabla.
Hacer clic sobre el botón Cerrar. Aparecerá la ventana de diseño de consultas. |
Hacer clic sobre el botón
|
Una vez escrita sólo nos queda ver si está bien hecha. Hacer clic sobre el botón
Si nos hemos equivocado a la hora de escribir la sintaxis, Access nos saca un mensaje de error y muchas veces el cursor se queda posicionado en la palabra donde ha saltado el error. Ojo, a veces el error está antes o después de donde se ha quedado el cursor.
Si no saca ningún mensaje de error, esto quiere decir que la sentencia respeta la sintaxis definida, pero esto no quiere decir que la sentencia esté bien, puede que no obtenga lo que nosotros queremos, en este caso habrá que rectificar la sentencia.
Guardar la consulta haciendo clic sobre el botón
Las consultas simples
|
Las condiciones de selección son las condiciones que pueden aparecer en la cláusula WHERE.
En SQL tenemos cinco condiciones básicas:
el test de comparación el test de rango el test de pertenencia a un conjunto el test de valor nulo el test de correspondencia con patrón . |
Compara el valor de una expresión con el valor de otra. La sintaxis es la siguiente: | |
| = igual que <> distinto de < menor que <= menor o igual > mayor que >= mayor o igual |
SELECT numemp, nombre
FROM empleados WHERE ventas > cuota |
Lista los empleados cuyas ventas superan su cuota
|
SELECT numemp, nombre
FROM empleados WHERE contrato < #01/01/1988# |
Lista los empleados contratados antes del año 88 (cuya fecha de contrato sea anterior al 1 de enero de 1988).
¡¡Ojo!!, las fechas entre almohadillas # # deben estar con el formato mes,dia,año aunque tengamos definido otro formato para nuestras fechas. |
SELECT numemp, nombre
FROM empleados WHERE YEAR(contrato) < 1988 |
Este ejemplo obtiene lo mismo que el anterior pero utiliza la función year(). Obtiene los empleados cuyo año de la fecha de contrato sea menor que 1988.
|
SELECT oficina
FROM oficinas WHERE ventas < objetivo * 0.8 |
Lista las oficinas cuyas ventas estén por debajo del 80% de su objetivo.
Hay que utilizar siempre el punto decimal aunque tengamos definida la coma como separador de decimales. |
SELECT oficina
FROM oficinas WHERE dir = 108 |
Lista las oficinas dirigidas por el empleado 108.
Es un sistema gestor de bases de datos relacionales de Microsoft Corporation orientado a sistemas medianos y grandes aunque también puede rodar en ordenadores personales. SQL es la herramienta de SQL Server que permite definir y gestionar todas las bases de datos almacenadas en el servidor SQL Server 2005.
tabien cómo se utiliza el SQL Server Management Studio para manejar las bases de datos del servidor
Para empezar entramos a través del acceso directo o a través de Inicio, Programas, Microsoft SQL Server 2005, SQL Server Management Studio.
Lo primero que deberemos hacer es establecer la conexión con el servidor:
seleccionamos el nombre del servidor y pulsamos el botón Conectar. Se abrirá la ventana inicial del SQL Server Management Studio
En la parte izquierda tenemos abierto el panel Explorador de Objetos en el que aparece debajo del nombre del servidor con el que estamos conectados una serie de carpetas y objetos que forman parte del servidor.
En el panel de la derecha se muestra la zona de trabajo, que varía según lo que tengamos seleccionado en el Explorador de objetos, en este caso vemos el contenido de la carpeta que representa el servidorord01.
En la parte superior tenemos el menú de opciones y la barra de herramientas Estándar.
SQL Server 2005 no exige las extensiones de nombre de archivo .mdf, .ndf y .ldf, pero estas extensiones ayudan a identificar las distintas clases de archivos y su uso.
Cada base de datos tiene al menos 2 archivos (un archivo de datos principal y un archivo de registro) y opcionalmente un grupo de archivos.
En el Explorador de objetos, si desplegamos la carpeta Bases de datos nos aparecen Bases de datos del sistema y las bases de datos de usuario después de la carpeta Instantáneas...
Después de la instalación, en la carpeta Bases de datos del sistema se habrá creado una especial denominada master se utiliza como base de datos de usuario por defecto.
Las demás bases de datos forman también parte del diccionario de datos y las utiliza el sistema para llevar a cabo su gestión.
Para cada archivo físico podemos definir una serie de parámetros como el tipo de archivo (si es de datos o de transacciones Registro) y su ocupación inicial (Tamaño inicial).
Si no indicamos ninguna ubicación podemos ver que los guarda en la carpeta del SQL Server/MSSQL.n/MSSQL/DATA.
n representa un número que puede variar de una instalación a otra.
Para poder realizar acciones sobre la base de datos, ésta debe estar desconectada. Para ello, desde el SSMS, desplegamos el menú contextual de la base de datos que nos interese manipular y seleccionaremos la opción Poner fuera de conexión:
Aparecerá un símbolo a la izquierda de la base de datos
Para volver a conectar la base de datos y seguir trabajando con ella, accederemos al mismo menú contextual pero elegiremos la opción Poner en conexión:
En la mayoría de los sistemas gestores de bases de datos tenemos un tipo de datos de tipo contador, autonumérico, autoincremental, etc. Este tipo hace que el propio sistema es el encargado de rellenar el campo con un valor que va incrementando conforme se crean más filas de datos en la tabla.
Las columnas de este tipo se utilizan normalmente para numerar las filas de la tabla, como no habrán dos filas con el mismo valor (el sistema se encarga de incrementar el valor cada vez que se crea una nueva fila), estos campos se suelen utilizar como claves primarias.
En SQL Server 2005 no existe el tipo de datos Contador pero se consigue el mismo funcionamiento asignando a la columna un tipo de datos numérico y definiendo la columna como columna de identidad.
En las propiedades de la columna marcamos Sí en la propiedad (Identidad) y a continuación podemos indicar en qué valor queremos que empiece el contador (Inicialización de identidad) y en cuánto incrementará cada vez que se cree un nuevo registro (Incremento de identidad).
Aunque este tipo de columnas se utiliza frecuentemente como clave primaria, SQL Server no le asigna automáticamente esta función, la tenemos que definir nosotros mismos, pero sí fuerza a que sea una columna sin valores nulos. No se puede definir más de una columna de identidad por tabla.
La nueva columna se colocará delante:
Del mismo modo si queremos eliminar la definición de una columna, nos posicionamos en la columna a eliminar y seleccionamos la opción Eliminar columna:
O simplemente hacemos clic en la zona a la izquierda del nombre y pulsamos la tecla Supr.
Finalmente guardamos la tabla, nos pedirá el nombre de la tabla:
|
No hay comentarios:
Publicar un comentario