You are on page 1of 11

Curso de Sql Server

El SQL es un lenguaje estndar de programacin para el acceso a bases de datos. El lenguaje SQL se utiliza para acceder y manipular datos en cualquier base de datos del mercado, como por ejemplo, para las bases de datos MySQL, Oracle, DB2, SQL Server, Access. El SQL es un lenguaje estructurado y un estndar ANSI para el acceso y manipulacin de los datos de cualquier base de datos. El SQL se compone de sentencias SQL, cada una con una utilidad diferente, como por ejemplo: Creacin de una base de datos (CREATE DATABASE) Creacin de una tabla (CREATE TABLE) Creacin de una vista (CREATE VIEW) Creacin de un ndice de una tabla (CREATE INDEX) Creacin de procedimientos almacenados (CREATE PROCEDURE) Creacin de disparadores (CREATE TRIGGER) Consultar los datos almacenados en una tabla (SELECT) Insertar datos en una tabla (INSERT) Modificar datos ya existentes en una tabla (UPDATE) Borrar datos almacenados en una tabla (DELETE) Dar permiso de acceso a los datos de una tabla (GRANT) Eliminar permisos de acceso a datos de una tabla (REVOKE) Finalizar la transaccin de una sentencia SQL (COMMIT) Retroceder la transaccin de una sentencia SQL (ROLLBACK).

Un sistema de base de datos suele contener varias bases de datos. Cada base de datos suele contener varias tablas. Las tablas almacenan los datos organizados por filas. Cada fila contiene varios campos. Cada campo tiene una serie de propiedades, como por ejemplo, el nombre del campo, su longitud, tipo de dato que se va a almacenar, etc.

Las sentencias SQL no son sensibles a maysculas y minsculas, es decir, 'SELECT' y 'select' son dos palabras iguales para SQL. Algunos sistemas de bases de datos necesitan un punto y coma despus de cada sentencia SQL para ejecutarse correctamente

CREATE DATATABASE mibasedeatos;


Este punto y coma tambin puede servir para separar una sentencia SQL de otra sentencia SQL en la misma lnea.

CREATE DATATABASE mibasedeatos; CREATE TABLE mitabla1;


Las sentencias SQL se pueden agrupar por funcionalidades: 1.- Lenguaje de definicin de datos (DDL). DDL est compuesto por sentencias para la creacin (CREATE), modificacin (ALTER) y borrado (DROP) de los componentes principales de una base de datos: base de datos (DATABASE) tablas (TABLE) vistas (VIEW) ndices (INDEX) procedimientos almacenados (PROCEDURE) disparadores (TRIGGER).

2.- Lenguaje de manipulacin de datos (DML). DML est compuesto por sentencias que sirven para : consultar (SELECT) insertar (INSERT) modificar (UPDATE) borrar (DELETE)

3.- Lenguaje de control de datos (DCL). DCL est compuesto por sentencias SQL para controlar las funciones de administracin : Confirmar la operacion (COMMIT) Retroceder la operacion (ROLLBACK) Dar permisos (GRANT)

Quitar permisos (REVOKE) Una de las sentencias SQL ms importantes es SELECT, ya que permite realizar consultas sobre los datos almacenados en la base de datos. Sintaxis SQL SELECT

SELECT * FROM nombretabla SELECT columna1, columna2 FROM nombretabla


Para los ejemplos, tendremos la siguiente tabla de personas denominada personas Estos son los datos almacenados en la tabla personas

nombre ANTONIO ANTONIO LUIS


apellido1 PEREZ GARCIA LOPEZ

apellido2 GOMEZ BENITO PEREZ

Si queremos consultar todos los datos de la tabla personas

SELECT * FROM personas


Este ser el resultado:

nombre ANTONIO ANTONIO LUIS


apellido1 PEREZ GARCIA LOPEZ

apellido2 GOMEZ BENITO PEREZ

Si queremos consulta todos los nombres y primer apellido de todas las personas

SELECT nombre, apellido1 FROM personas


Este ser el resultado:

nombre ANTONIO ANTONIO LUIS

apellido1 PEREZ GARCIA LOPEZ

Al realizar una consulta puede ocurrir que existan valores repetidos para algunas columnas. Por ejemplo

SELECT nombre FROM personas

nombre ANTONIO LUIS ANTONIO


Esto no es un problema, pero a veces queremos que no se repitan, por ejemplo, si queremos saber los nombre diferentes que hay en la tabla personas", entonces utilizaremos DISTINCT.

SELECT DISTINCT nombre FROM personas

nombre ANTONIO LUIS


La clusula WHERE se utiliza para hacer filtros en las consultas, es decir, seleccionar solamente algunas filas de la tabla que cumplan una determinada condicin. El valor de la condicin debe ir entre comillas simples ''. Por ejemplo: Seleccionar las personas cuyo nombre sea ANTONIO

SELECT * FROM personas WHERE nombre = 'ANTONIO'

nombre ANTONIO ANTONIO

apellido1 PEREZ GARCIA

apellido2 GOMEZ BENITO

Los operadores AND y OR se utilizan para filtrar resultados con 2 condiciones. El operador AND mostrar los resultados cuando se cumplan las 2 condiciones.

Condicin1 AND condicin2


El operador OR mostrar los resultados cuando se cumpla alguna de las 2 condiciones.

Condicion1 OR condicion2
En la tabla personas

nombre ANTONIO ANTONIO LUIS

apellido1 PEREZ GARCIA LOPEZ

apellido2 GOMEZ BENITO PEREZ

La siguiente sentencia (ejemplo AND) dar el siguiente resultado:

SELECT * FROM personas WHERE nombre = 'ANTONIO' AND apellido1 = 'GARCIA'

nombre ANTONIO

apellido1 GARCIA

apellido2 BENITO

La siguiente sentencia (ejemplo OR) dar el siguiente resultado:

SELECT * FROM personas WHERE nombre = 'ANTONIO' OR apellido1 = 'GARCIA'

nombre ANTONIO ANTONIO

apellido1 PEREZ GARCIA

apellido2 GOMEZ BENITO

Tambin se pueden combinar AND y OR, como el siguiente ejemplo:

SELECT * FROM personas WHERE nombre = 'ANTONIO' AND (apellido1 = 'GARCIA' OR apellido1 = 'LOPEZ)

nombre ANTONIO

apellido1 GARCIA

apellido2 BENITO

ORDER BY se utiliza para ordenar los resultados de una consulta, segn el valor de la columna especificada. Por defecto, se ordena de forma ascendente (ASC) segn los valores de la columna. Si se quiere ordenar por orden descendente se utiliza la palabra DES

SELECT nombre_columna(s) FROM nombre_tabla ORDER BY nombre_columna(s) ASC|DESC

Por ejemplo, en la tabla personas :

nombre ANTONIO LUIS ANTONIO

apellido1 PEREZ LOPEZ GARCIA

apellido2 GOMEZ PEREZ BENITO

SELECT nombre, apellido1 FROM personas ORDER BY apellido1 ASC


Esta es la consulta resultante:

nombre LUIS ANTONIO ANTONIO

apellido1 LOPEZ GARCIA PEREZ

Ejemplo de ordenacin descendiente (DES)

SELECT nombre, apellido1 FROM personas ORDER BY apellido1 DESC


Esta es la consulta resultante:

nombre ANTONIO ANTONIO LUIS

apellido1 PEREZ GARCIA LOPEZ

La sentencia INSERT INTO se utiliza para insertar nuevas filas en una tabla. Es posible insertar una nueva fila en una tabla de dos formas distintas:

INSERT INTO nombre_tabla VALUES (valor1, valor2, valor3, .) INSERT INTO nombre_tabla (columna1, columna2, columna3,.) VALUES (valor1, valor2, valor3, .)
Ejemplo:

Dada la siguiente tabla personas:

nombre ANTONIO LUIS ANTONIO

apellido1 PEREZ LOPEZ GARCIA

apellido2 GOMEZ PEREZ BENITO

Si queremos insertar una nueva fila en la tabla personas, lo podemos hacer con cualquiera de las dos sentencias siguientes:

INSERT INTO personas VALUES ('PEDRO', 'RUIZ', 'GONZALEZ') INSERT INTO personas (nombre, apellido1, apellido2) VALUES ('PEDRO', 'RUIZ', 'GONZALEZ')
Cualquiera de estas sentencias anteriores produce que se inserte una nueva fila en la tabla personas, quedando as dicha tabla:

nombre ANTONIO LUIS ANTONIO PEDRO

apellido1 PEREZ LOPEZ GARCIA RUIZ

apellido2 GOMEZ PEREZ BENITO GONZALEZ

La sentencia UPDATE se utiliza para modificar valores en una tabla. La sintaxis de SQL UPDATE es:

UPDATE nombre_tabla SET columna1 = valor1, columna2 = valor2 WHERE columna3 = valor3
La clusula SET establece los nuevos valores para las columnas indicadas. La clusula WHERE sirve para seleccionar las filas que queremos modificar. Ojo: Si omitimos la clusula WHERE, por defecto, modificar los valores en todas las filas de la tabla. Ejemplo del uso de SQL UPDATE

nombre ANTONIO

apellido1 PEREZ

apellido2 GOMEZ

LUIS ANTONIO PEDRO

LOPEZ GARCIA RUIZ

PEREZ BENITO GONZALEZ

Si queremos cambiar el apellido2 'BENITO' por 'RODRIGUEZ' ejecutaremos:

UPDATE personas SET apellido2 = 'RODRIGUEZ' WHERE nombre = 'ANTONIO' AND apellido1 = 'GARCIA' AND apellido2 = 'BENITO'
Ahora la tabla 'personas' quedar as:

nombre ANTONIO LUIS ANTONIO PEDRO

apellido1 PEREZ LOPEZ GARCIA RUIZ

apellido2 GOMEZ PEREZ RODRIGUEZ GONZALEZ

La sentencia DELETE sirve para borrar filas de una tabla. La sintaxis de SQL DELETE es:

DELETE FROM nombre_tabla WHERE nombre_columna = valor


Si queremos borrar todos los registros o filas de una tabla, se utiliza la sentencia:

DELETE * FROM nombre_tabla;


Ejemplo de SQL DELETE para borrar una fila de la tabla personas

nombre ANTONIO LUIS ANTONIO PEDRO

apellido1 PEREZ LOPEZ GARCIA RUIZ

apellido2 GOMEZ PEREZ RODRIGUEZ GONZALEZ

Si queremos borrar a la persona LUIS LOPEZ PEREZ, podemos ejecutar el comando:

DELETE FROM personas WHERE nombre = 'LUIS' AND apellido1 = 'LOPEZ' AND apellido2 = 'PEREZ'
La tabla 'personas' resultante ser:

nombre ANTONIO ANTONIO PEDRO

apellido1 PEREZ GARCIA RUIZ

apellido2 GOMEZ RODRIGUEZ GONZALEZ

a sentencia SQL TOP se utiliza para especificar el nmero de filas a mostrar en el resultado. Esta clusula SQL TOP es til en tablas con muchos registros, para limitar el nmero de filas a mostrar en la consulta, y as sea ms rpida la consulta, consumiendo tambin menos recursos en el sistema. Esta clusula se especifica de forma diferente segn el sistema de bases de datos utilizado. Clusula SQL TOP para SQL SERVER

SELECT TOP nmero PERCENT nombre_columna FROM nombre_tabla


Clusula SQL TOP para MySQL

SELECT columna(s) FROM tabla LIMIT nmerofilas


Clusula SQL TOP para ORACLE

SELECT columna(s) FROM tabla WHERE ROWNUM <= nmerofilas


Ejemplo SQL TOP para MySQL: Dada la siguiente tabla 'personas', quiero obtener los 2 primeros valores.

nombre ANTONIO ANTONIO PEDRO

apellido1 PEREZ GARCIA RUIZ

apellido2 GOMEZ RODRIGUEZ GONZALEZ

SELECT * FROM personas LIMIT 2


Obtendramos el siguiente resultado:

nombre ANTONIO ANTONIO

apellido1 PEREZ GARCIA

apellido2 GOMEZ RODRIGUEZ

El operador LIKE se utiliza en la clusula WHERE para buscar por un patrn. Sintaxis de SQL LIKE

SELECT columna(s) FROM tabla WHERE columna LIKE '%patron%'


Ejemplos del uso de SQL LIKE Dada la siguiente tabla 'personas'

nombre ANTONIO ANTONIO PEDRO

apellido1 PEREZ GARCIA RUIZ

apellido2 GOMEZ RODRIGUEZ GONZALEZ

Si quiero seleccionar los nombres que empiezan por 'AN' en la tabla 'personas', ejecutara el comando siguiente:

SELECT * FROM personas WHERE nombre LIKE 'AN%'


El character '%' es un comodn, que sirve para uno o ms caracteres. Este es el resultado

nombre ANTONIO ANTONIO

apellido1 PEREZ GARCIA

apellido2 GOMEZ RODRIGUEZ

Otro ejemplo de SQL LIKE Para seleccionar las personas que tienen un 'Z' en su apellido1, ejecutaramos: SELECT * FROM personas WHERE apellido1 LIKE '%Z%'

nombre ANTONIO PEDRO

apellido1 PEREZ RUIZ

apellido2 GOMEZ GONZALEZ

You might also like