SQL



SQL  (por sus siglas en inglés Structured Query Language; en español lenguaje de consulta estructurada) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en ellas. Una de sus características es el manejo del álgebra y el cálculo relacional que permiten efectuar consultas con el fin de recuperar, de forma sencilla, información de bases de datos, así como hacer cambios en ellas.






VENTAJAS DE SQL SERVER
  • Es un sistema de gestión de base de datos.
  • Es útil para manejar y obtener datos de la red de redes.
  • Nos permite olvidarnos de los ficheros que forman la base de datos.
  • Si trabajamos en una red social nos permite agregar otros servidores de SQL Server. Por ejemplo dos personas que trabajan con SQL Server, uno de ellos se puede conectar al servidor de su otro compañero y así se puede ver las bases de datos del otro compañero con SQL Server.
  • SQL permite administrar permisos a todo. También  permite que  alguien conecte su SQLO al nuestro pero sin embargo podemos decirle que no puede ver esta base de datos pero otro si.


DESVENTAJAS DE SQL SERVER


  •      Utiliza mucho la memoria RAM  para las instalaciones y utilización de software.
  •      No se puede utilizar como practicas porque se prohíben muchas cosas, tiene restricciones en lo particular.

  • La relación, calidad y el precio esta muy debajo comparado con oracle.

  •     Tiene muchos bloqueos a nivel de página, un tamaño de página fijo y demasiado pequeño, una pésima implementación de los tipos de datos variables.






CARACTERÍSTICAS GENERALES DE SQL

SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales y permite así gran variedad de operaciones.

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 y la orientación a objetos. De esta forma, una sola sentencia puede equivaler a uno o más programas que se utilizarían en un lenguaje de bajo nivel orientado a registros. SQL también tiene las siguientes características:
* Lenguaje de definición de datos: El LDD de SQL proporciona comandos para la definición de esquemas de relación, borrado de relaciones y modificaciones de los esquemas de relación.
*  Lenguaje interactivo de manipulación de datos: El LMD de SQL incluye lenguajes de consultas basado tanto en álgebra relacional como en cálculo relacional de tuplas.

*  Integridad: El LDD de SQL incluye comandos para especificar las restricciones de integridad que deben cumplir los datos almacenados en la base de datos.

*        Definición de vistas: El LDD incluye comandos para definir las vistas.

*     Control de transacciones: SQL tiene comandos para especificar el comienzo y el final de una transacción.

*    SQL incorporado y dinámico: Esto quiere decir que se pueden incorporar instrucciones de SQL en lenguajes de programación como: C++, C, Java, PHP, Cobol, Pascal y Fortran.

*    Autorización: El LDD incluye comandos para especificar los derechos de acceso a las relaciones y a las vistas.

TIPOS DE DATOS

Algunos de los tipos de datos básicos de SQL son:

*  Varchar: Recibe cadena de palabras compuestas de letras, números y caracteres especiales.
*       Date: una fecha de calendario que contiene el año (de cuatro cifras), el mes y el día.
*      Time: La hora del día en horas minutos segundos (el valor predeterminado es 0).
*      Datetime: la combinación de Date y Time.

OPTIMIZACIÓN

Como ya se dijo antes, y suele ser común en los lenguajes de acceso a bases de datos de alto nivel, SQL es un lenguaje declarativo. O sea, que especifica qué es lo que se quiere y no cómo conseguirlo, por lo que una sentencia no establece explícitamente un orden de ejecución.

El orden de ejecución interno de una sentencia puede afectar seriamente a la eficiencia del SGBD, por lo que se hace necesario que éste lleve a cabo una optimización antes de su ejecución. Muchas veces, el uso de índices acelera una instrucción de consulta, pero ralentiza la actualización de los datos. Dependiendo del uso de la aplicación, se priorizará el acceso indexado o una rápida actualización de la información. La optimización difiere sensiblemente en cada motor de base de datos y depende de muchos factores.

Existe una ampliación de SQL conocida como FSQL (Fuzzy SQL, SQL difuso) que permite el acceso a bases de datos difusas, usando la lógica difusa. Este lenguaje ha sido implementado a nivel experimental y está evolucionando rápidamente.


VERSIONES
El código fuente original de SQL Server que fue utilizado en las versiones previas a la versión 7.0 habría sido comprado de Sybase, pero fue actualizado en las versiones 7.0 y 2000, y reescrito en la versión 2005. Generalmente, cada 2-3 años, una nueva versión es lanzada y, entre estos lanzamientos, se proponen service packes con mejoras y correcciones de bugs, y hotfixes por problemas urgentes en el sistema de seguridad o bugs críticos.

HISTORIA DE VERSIONES
Versión
Año
Nombre de la versión
Nombre clave
1.0
(
OS/2)
1989
SQL Server 1-0
SQL
4.21
(WinNT)
1993
SQL Server 4.21
SEQUEL
6.0
1995
SQL Server 6.0
SQL95
6.5
1996
SQL Server 6.5
Hydra
7.0
1998
SQL Server 7.0
Sphinx
-
1999
SQL Server 7.0
OLAP Tools
Plato
8.0
2000
SQL Server 2000
8.0
2003
SQL Server 2000
64-bit Edition
Libertoz
9.0
2005
SQL Server 2005
Yukon
10.0
2008
SQL Server 2008
Katmai
10.25
2010
SQL Azure DB
CloudDatabase
10.50
2010
SQL Server 2008 R2
Kilimanjaro
11.0
2012
SQL Server 2012
Denali
12.0
2014
SQL Server 2014
SQL14 (antes Hekaton)



    ESPECIFICACIONES

La sigla SQL significa Structured Query Language, o su equivalente en Español Lenguaje de Pregunta Estructurado, Este es un lenguaje Universal que esta implementado en todos los Motores de Bases de Datos razón por la cual el SQL es el lenguaje estándar de comunicación entre los diferentes Motores existentes.

La creación de este lenguaje es sin duda alguna uno de los más importantes avances en el mundo de las bases de datos, si este no existiera, el tiempo que tomaría pasar información de un MBD a otro, seria realmente extenso y haría de los MBD algo complicado.

SQL es un lenguaje completamente normalizado que facilita el trabajo con cualquier tipo de lenguaje a la par con cualquier tipo de Base de Datos, sin embargo, esto no es equivalente a decir que es igual en todos los MBD, estos implementan diferentes funciones de acuerdo a la manera como mas favorezca al MBD, estas funciones no siempre funcionan en otros.


RESEÑA HISTÓRICA DE SQL

El SQL esta directa y estrechamente relacionado a las bases de datos, por lo tanto nacen casi al mismo tiempo y en 1970 cuando Codd desarrolla el modelo relacional, lo hace implementando con este un Lenguaje llamado SEQUEL, que estaba basado en el desarrollo llevado a cabo en los laboratorios de la IBM.

El lenguaje tuvo tanto éxito que luego de unos años, IBM con su Motor System R. y Oracle lo hicieron parte de sus MBD, para luego evolucionar a lo que hoy conocemos como SQL, que luego se convierte en el lenguaje predilecto de todos los MBD, y en 1986 es estandarizado por el ANSI como SQL-86 o SQL I, que poco tiempo después también seria estandarizado por la ISO.

En el año de 1992, se suprimen algunas funcionalidades y se implementan otras, dando así origen a el SQL-92 o SQL II, que es Lenguaje que se utiliza en este momento como predeterminado, sin embargo ya se trabaja en una nueva versión llamada SQL III.


CARACTERÍSTICAS PRINCIPALES

• Lenguaje que permite el acceso a las bases de datos

• Aprovecha al máximo el poder y la flexibilidad de los Sistemas Relacionales, lo cual facilita las operaciones necesarias sobre estos


• Es un lenguaje declarativo de alto nivel


• Permite una elevada productividad en codificación gracias a su base teórica.


• Aparte de la facilidad para efectuar consultas, SQL también puede servir como LDD, LDV y LMD


• Permite concesión y negación de permisos, restricciones de integridad, controles a la transacción y modificación de los esquemas


• El lenguaje fue modificado con el fin de mantenerlo solo a nivel conceptual y externo
• Se puede usar de manera Interactiva, para esto, las sentencias SQL se escriben y se llevan acabo en líneas de comandos


• también puede usarse de manera Integrada, que esta dirigido a usuarios mas avanzados, que utilizan un lenguaje de programación anfitrión y el SQL como sublenguaje de datos


• El SQL Estático es una técnica para el manejo embebido del SQL, y las sentencias que se utilizan no varían en ningún momento mientras se lleve a cabo la ejecución del programa


• El SQL Dinámico también es una técnica para el uso embebido del SQL, pero a diferencia del SQL estático, esta modifica todas o gran parte de las sentencias mientras se ejecuta el programas


• Para evitar problemas en el orden de ejecución interno, se debe llevar a cabo una optimización, antes de ejecutar las sentencias


• Otra versión del SQL es el FSQL, que es el mismo SQL, pero basado en lógica difusa, para lógicamente ser implementado en bases de datos difusas


SINTAXIS DE SQL

COMANDOS PARA DEFINICIÓN DE DATOS:

CREATE TABLE: Se utiliza para crear una nueva relación a la que se le asigna un nombre y unos atributos:

DROP TABLE: Borra una relación existente así como también sus atributos y la tupla asignada a esta relación

ALTER TABLE: Modifica la tabla, agrega un atributo a una de estas, además de cambiar la tupla del código de la Base de Datos

CREATE INDEX: Comando empleado para crear índices, estos índices se crean bajo un nombre y pueden ser eliminados cuando son innecesarios

DROP INDEX: Este comando es usado para borrar los índices de la tabla relacionada y la tupla del catalogo


COMANDOS PARA MANIPULACIÓN DE DATOS:

SELECT: Esta instrucción tienen como fin, recuperar la información desde una base de datos. Existen funciones que están relacionadas con el comando SELECT, por ejemplo:

 DISTINCT: Antes de ejecutar la sentencia SELECT, esta instrucción borrara todos los errores de redundancia de datos que puedan existir.


 COUNT: Se utiliza para obtener el numero de valores en la columna


 SUM: Suma todos los elementos de una columna, siempre y cuando estos sean numéricos


 AVG: Hace un promedio de los datos numéricos de una columna


 MIN o MAX: Se usa para obtener el mayor o menor valor de una Columna


 COUNT(*): Se implementa para contar la orientación de una tabla sin eliminación de valores duplicados


 GROUP BY: Reordena virtual, lógicamente y en grupos una tabla


 HAVING: Esta sentencia se usa para eliminar grupos de datos


 ORDER BY: Ordena la tabla en un orden especifico


 EXIST: Esta función es una especie de calificador de existencia, es decir, evalúa todos los precoseos lógicos y se cumple cuando el retorno de estos no son nulos


 Una subconsulta se hace combinando el Parámetro SELECT con cualquiera de las anteriores Instrucciones

UPDATE: Se utiliza para modificar los atributos de una o mas tuplas seleccionadas

DELETE: Comando utilizado para borrar las tuplas desde una relación, si se digita solo, se borran todas, pero al combinarlo con el comando WHERE, se pueden seleccionar las tuplas que se van a borrar

INSERT: Agrega una tupla a una relación, para esto se debe especificar el nombre de la relación y una lista ordenada de valores que se agregaran a la tupla

No hay comentarios:

Publicar un comentario