SQL Paso A Paso

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 15

SQL PASO A PASO

BASICO

SQL es un estándar para accesar y manejar bases de datos.


Siglas: Lenguaje de Consulta Estructurada (Structured Query Language)

Que puede hacer SQL?

SQL puede ejecutar consultas a una base de datos


SQL puede obtener datos de una base de datos
SQL puede insertar registros en una base de datos
SQL puede actualizar registros de una base de datos
SQL puede borrar registros de una base de datos
SQL puede crear nuevas bases de datos
SQL puede crear nuevas tablas en una base de datos
SQL puede crear procedimientos almacenados(codigo almacenado) en una base de datos
SQL puede crear vistas en una base de datos
SQL puede configurar permisos a tablas, procedimientos, y vistas

SQL es un estándar pero A pesar de que es un estándar ANSI (American National Standards Institute)
(Instituto Americano de Estándares Nacionales) hay diferentes versiones del lenguaje SQL y de
cualquier modo, siguen cumpliendo el estándar ANSI pues estas versiones soportan la mayoría de los
comandos tales como SELECT, UPDATE, DELETE, INSERT, WHERE

Que es una RDBMS?

RDBMS (del inglés Relational database management system) SGBD (Sistema de gestión de base de datos
relacional) es la base para el SQL y para todas las bases de datos modernas
como MS SQL Server, IBM DB2, Oracle, MySQL, and Microsoft Access.
Los datos en un RDBMS se almacenan en objetos llamados tablas Una tabla es una coleccion relacionada de
entradas que consiste en columnas y filas

Sintaxis de SQL

Tablas: Una base de datos contienen uno o más tablas. Cada tabla esta identificada por un nombre (ejemplo
Clientes o Ordenes). Las tablas contienen registros (filas) con datos

Sentencias SQL

Creamos la base de datos

CREATE DATABASE empresa

Creamos la tabla Personas

CREATE TABLE Personas


(
P_id int PRIMARY KEY IDENTITY,
Nombre nchar(20) NOT NULL,
Apellidos nchar(30) NOT NULL,
Direccion nchar(40) NOT NULL,
Ciudad nchar(10) NOT NULL
)
GO

Insertamos algunos registros:

INSERT INTO Personas


VALUES ('Marco Antonio','Trejo Lemus','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Martha Beatriz','Trejo Lemus','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Juana Elvira','Trejo Lemus','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Nora Zulma','Trejo Lemus','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Laura Lucero','Sobrevilla Trejo','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Maria de la luz','Trejo Campos','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Trinidad','Trejo Bautista','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Marcel Abisag','Sobrevilla Trejo','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Jose Abraham','Sobrevilla Trejo','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Samuel Salomon','Olmeda Trejo','Calle E 822','Tampico')

Muchas de las acciones que necesitas realizar en una base de datos se hacen con sentencias SQL
Seleccionamos todos los registros de la tabla las siguiente sentencia seleccionara todos los registros de la
tabla "Personas" :

SELECT * FROM Personas

Abajo esta un ejemplo del resultado de la sentencia a la tabla llamada "Personas":


Mantén en mente lo siguiente: las sentencias SQL no son sensibles a las mayúsculas o minúsculas Punto y
coma después de las sentencias SQL algunos sistemas de bases de datos requieren un punto y coma al final
de cada sentencia SQL el punto y coma es un estándar que se para cada sentencia SQL en sistemas de bases
de datos que habilitan más de una sentencia SQL ejecutada en la misma llamada al servidor.

SQL DML Y DLL

SQL puede ser dividido en dos partes: El Lenguaje de Manipulación de Datos (DML) y el Lenguaje de
Definición de Datos (DDL)
La parte DML del SQL de los comandos de consulta y actualización son:

SELECT - extrae datos de una base de datos


UPDATE - actualiza datos en una base de datos
DELETE - borra datos de una base de datos
INSERT INTO - inserta datos dentro de una base de datos

DLL del SQL que permite a bases de datos y tablas ser creadas o borradas.
También define indices(llaves). especifica enlaces entre tablas, y impone relaciones entre tablas.

La parte DLL del SQL, las sentencias más importante DDL en SQL son:

CREATE DATABASE - crea una nueva base de datos


ALTER DATABASE - modifica una base de datos
CREATE TABLE - crea una nueva tabla
ALTER TABLE - modifica una tabla
DROP TABLE - borra una tabla
CREATE INDEX - crea un índice (llave de búsqueda)
DROP INDEX - borra un índice

La sentencia SELECT: La sentencia SELECT es usada para seleccionar datos de una base de datos.
El resultado es almacenado en una tabla temporal, llamada tabla-resultado
La sintaxis SQL de la sentencia SELECT es:

1) SELECT nombre_columna(s)
FROM nombre_tabla
y

2) SELECT * FROM nombre_tabla


Ejemplo 1

SELECT nombre_columna(s)
FROM nombre_tabla

SELECT Nombre,Apellidos,Ciudad
FROM Personas

Ejemplo 2
SELECT * FROM nombre_tabla

Navegación en una tabla de resultados

Muchos sistemas de bases de datos permiten la navegación en la tabla de resultados programando funciones
como: Moverse-Al-Primero, Obtener-Contenido-Registro, Moverse-Al-Siguiente-Registro, etc.
Funciones de programación como estas no son parte de este tutorial. Para aprender a accesar a datos con la
llamada a funciones espera mi siguiente tutorial ADO y PHP.

La sentencia SELECT DISTINCT

Dentro de una tabla, algunas columnas pueden contener valores duplicados. Esto no es un problema, algunas
veces tu querrás listar solo los valores diferentes (distintos) en la tabla

La palabra DISTINCT puede ser usada como llave para regresar solo los valores distintos(diferentes).

Sintaxis SQL SELECT DISTINCT


SELECT DISTINCT nombre_columna(s)
FROM nombre_table

Ejemplo:

SELECT DISTINCT Apellidos


FROM Personas

Abajo está el resultado de la sentencia DISTINCT a la tabla "Personas":

SELECT DISTINCT Ciudad FROM Personas

Abajo está el resultado de la sentencia DISTINCT a la tabla "Personas":

SQL WHERE
La sentencia where es usada para extraer solo los registros que cumplen con el criterio especificad

La Sintaxis SQL WHERE

SELECT nombre_columna(s)
FROM nombre_tabla
WHERE nombre_columna operador valor

Ejemplo de la sentencia WHERE


SELECT *
FROM Personas
WHERE Apellidos ='Trejo Lemus'

Comillas en los campos de texto

SQL usa comillas simples en los valores de texto (muchos sistemas manejadores de bases de datos aceptan
comillas dobles).Para SQL los valores de texto deben ser puestos entre comillas simples los valores
numéricos no deben ser puestos entre comillas
Para valores de texto:

Esta es la forma correcta:

SELECT *
FROM Personas
WHERE Nombre='Lucero'

Esta es la forma equivocada:

SELECT *
FROM Personas
WHERE Nombre=Lucero

Para valores numéricos:

Esta es la forma correcta:

SELECT *
FROM Personas
WHERE P_id = 9

Esta es la forma incorrecta:

SELECT *
FROM Personas
WHERE P_id = '9'

Operadores permitidos en la sentencia WHERE


Con la sentencia WHERE, los siguientes operadores pueden ser usados:

Operadores SQL AND y OR: Los operadores AND y OR son usados para filtrar registros basados en más
de una condición

Operador AND: El operador AND muestra el registro si la primera condición y la segunda condición son
verdaderas el operador OR muestra el registro si la primera o la segunda condición es verdadera.

Ahora teniendo en cuenta la siguiente tabla:


Para seleccionar solo las personas con el Nombre igual a Marcel Abisag y el apellido igual a Sobrevilla
Trejo, Usaremos la siguiente sentencia SELECT:

SELECT * FROM Personas


WHERE Nombre='Marcel Abisag'
AND Apellidos='Sobrevilla Trejo'

El resultado sería:

Operador OR

Ahora seleccionaremos las personas con el campo Nombre igual a "Martha" o el campo Nombre igual a
"Elvira"

Usaremos la siguiente sentencia SELECT

SELECT * FROM Personas


WHERE Nombre='Martha Beatriz'
OR Nombre='Juana Elvira'

El resultado será el siguiente:

Combinando AND & OR: Puedes combinar el AND y el OR (usando parentesis para formar expresiones
complejas) ahora seleccionaremos solo las personas con el campo Apellidos igual a "Sobrevilla Trejo" AND
Nombre igual a "Marcel Abisag" OR igual a "Jose Abraham"

Usaremos la siguiente sentencia SELECT:

SELECT * FROM Personas WHERE


Apellidos='Sobrevilla Trejo'
AND (Nombre='Marcel Abisag' OR Nombre='Jose Abraham')
El resultado sera el siguiente:

SQL ORDER BY

The ORDER BY keyword is used to sort the result-set.


La sentencia ORDER BY es usada para ordenar un resultado ordenado por una columna especifica la
sentencia ORDER BY es usada para ordenar los registros en orden ascendente por default Si quieres ordenar
los registros en orden descendente utiliza la palabra DESC

Sintaxis SQL ORDER BY

SELECT nombre_columna(s)
FROM nombre_tabla
ORDER BY nombre_column(s) ASCDESC

Ahora vamos a seleccionar todas las personas de la tabla, pero mostrando en orden por el campo Nombre

Usaremos la siguiente sentencia SELECT:

SELECT * FROM Personas


ORDER BY Nombre

El resultado será el siguiente:

ORDER BY DESC

Ahora vamos a seleccionar a todas las personas de la tabla pero mostrándolas en un orden descendente por el
campo Nombre con la palabra DESC

We use the following SELECT statement:

SELECT * FROM Personas


ORDER BY Nombre DESC
El resultado será el siguiente:

Sentencia SQL INSERT INTO

La sentencia INSERT INTO se usa para insertar un registro o fila en una tabla

Sintaxis SQL INSERT INTO


Es posible escribir la sentencia INSET INTO en dos formas

La primera forma no especifica los nombres de las columnas donde los datos seran insertados solo los
valores:

INSERT INTO nombre_tabla


VALUES (valor1, valor2, valor3,...)

La segunda forma específica los nombres de las columnas y los valores insertados

INSERT INTO nombre_tabla (columna1, columna2, columna3,...)


VALUES (valor1, valor2, valor3,...)

Ejemplo INSERT INTO

Dado que tenemos la siguiente tabla Personas:

Insertaremos un nuevo registro de la siguiente forma:


INSERT INTO Personas
VALUES ('Martha', 'Lemus Hurtado', 'Canoga Park', 'L.A.')

El resultado lo mostraríamos con la sentencia SELECT * FROM Personas y seria el siguiente:

Insertar Datos solo en columnas especificadas es posible agregar datos en columnas especificas las siguientes
sentencias SQL agregaran una nueva fila, pero solo agregaran datos en las columnas Nombre y Apellidos

INSERT INTO Personas (Nombre, Apellidos)


VALUES ('Antonio', 'Trejo Campos')

Para mostrar el resultado con la sentencia: SELECT * FROM Personas


Mostrara lo siguiente:

Sentencia SQL UPDATE Statement

La sentencia UPDATE es usada para actualizar registros en una tabla

Sintaxis SQL UPDATE

UPDATE nombre_tabla
SET columna1=valor, column2=valor,...
WHERE alguna_columna=algun_valor

Nota: La sentencia WEHRE en la sintaxis UPDATE, especifica cual de los registros va a ser actualizado. Si
omites la sentencia WHERE todos los registros seran actualizados.

Ahora vamos a actualizar la persona "Antonio Trejo Campos" en la tabla Personas


Usaremos la siguientes sentencias SQL:

UPDATE Personas
SET Direccion='Canoga Park', Ciudad='L.A.'
WHERE Nombre='Antonio' AND Apellido='Trejo Campos'

El resultado será el siguiente:

CUIDADO!!! al utilizar la sentencia UPDATE

Si omites la sentencia WHERE se actualizarán todos los registros de esta forma:

UPDATE Personas
SET Dirección='Canoga Park', Ciudad='L.A.'

El resultado sería:

Sentencia SQL DELETE

La sentencia DELETE se usa para borrar registros o filas en una tabla

Sintaxis SQL DELETE


DELETE FROM nombre_tabla
WHERE alguna_columna=algun_valor

Nota: La sentencia WHERE en la sintaxis DELETE especifica el registro o los registros que serán borrados,
si omites la sentencia WHERE, todos los registros serán borrados de la tabla

Ahora vamos a borrar la persona "Marco Antonio Trejo Lemus" en la tabla Personas con la siguiente
sentencia:

DELETE FROM Personas


WHERE Nombre='Marco Antonio' AND Apellidos='Trejo Lemus'
SELECT * FROM Personas

El resultado será el siguiente:

Borrar todas las filas

Es posible borrar todas las filas en una tabla sin borrar la tabla en sí. Esto significa que la estructura de la
tabla, atributos e índices quedaran intactos:

DELETE FROM nombre_tabla

or

DELETE * FROM nombre_tabla

Nota: Debes tener cuidado cuando borres registros. Ya que no podrás deshacer lo que hagas con esta
sentencia.
raiserror('La base de datos existe; eliminándola....',0,1)
DROP database empresa
end

Clausula SQL TOP

La cláusula TOP se usa para especificar el número de registros que existen


puede verificar la longitud de las tablas con miles de registros, regresando el número de registros

Nota: No todas las bases de datos soportan la cláusula TOP


Sintaxis SQL

SELECT TOP numeroporciento nombre_columna(s)


FROM nombre_tabla

Ahora seleccionaremos solo los dos primeros registros de la tabla que se muestra abajo:

Utilizaremos las siguientes sentencias SELECT:

SELECT TOP 2 * FROM Personas

El resultado será el siguiente:

Sentencia SQL TOP PERCENT

Ahora seleccionaremos solo el 50% de los registros en la tabla


Usaremos las siguientes sentencias SELECT:

SELECT TOP 50 PERCENT * FROM Personas

El resultado se muestra abajo en la tabla:

Operador SQL LIKE: El operador LIKE se usa en una sentencia WHERE para buscar un patrón en una
columna.
Sintaxis LIKE
SELECT nombre_columna(s)
FROM nombre_tabla
WHERE nombre_columna LIKE patrón

Ejemplo de operador LIKE


En la tabla "Personas" :

Vamos a buscar las personas que viven en la ciudad de Tampico que empiecen con "Ta" de la tabla en
cuestión

Usaremos la siguiente sentencia SELECT:

SELECT * FROM Personas


WHERE Ciudad LIKE 'Ta%'

El signo "%" puede ser usado para definir comodines (letras que faltan en el patrón de búsqueda) ambas
antes o después del patrón de búsqueda

Ahora vamos a seleccionar las personas que viven en la ciudad que comienza con una "T" de la tabla
personas

Usaremos la siguiente sentencia SELECT:

SELECT * FROM Personas


WHERE Ciudad LIKE '%T'

Ahora vamos a seleccionar las personas que viven en la ciudad que contiene el patrón "tam" de la tabla
personas

Usaremos la siguiente sentencia SELECT:

SELECT * FROM Personas


WHERE Ciudad LIKE '%tam%'

También es posible seleccionar las personas que viven en la ciudad que no contienen el patron "tamp" de la
tabla personas, usando la palabra clave NOT

Usaremos la siguiente sentencia SELECT:

SELECT * FROM Personas


WHERE Ciudad NOT LIKE '%tamp%'

Comodines SQL: Los comodines SQL pueden ser usados en la búsqueda de datos en una base de datos
pueden sustituir a uno o más caracteres cuando se busquen los datos

Los comodines deben usarse con el operador LIKE

Se pueden usar con SQL los siguientes comodines:


Usando el comodín %
Ahora seleccionaremos las personas que viven en la ciudad de Tampico que empiecen con "Ta" de la tabla
Personas

Usaremos la siguiente sentencia SELECT:

SELECT * FROM Personas


WHERE Ciudad LIKE 'Ta%'

Ahora buscaremos las personas que viven en la ciudad que contenga el patron "ico" de la tabla Personas

Usaremos la siguiente sentencia SELECT:

SELECT * FROM Personas


WHERE Ciudad LIKE '%ico%'

Usando el _ Comodín

Ahora selectionaremos las personas que el primer nombre comience con algun caracter
seguido de "Ma" de la tabla Personas

Usaremos la siguiente sentencia SELECT:


SELECT * FROM Personas
WHERE Nombre LIKE '_ar'

También podría gustarte