Está en la página 1de 12

Introducción al SQL

¿Qué es SQL?
SQL SQL (​Structured Query Language​, Lenguaje de Consulta Estructurado) es un lenguaje
estándar para almacenar, manipular y recuperar datos almacenados en una bases de datos.

SQL puede...

● ejecutar consultas en una base de datos


● recuperar datos de una base de datos
● insertar registros en una base de datos
● actualizar registros en una base de datos
● eliminar registros de una base de datos
● crear nuevas bases de datos
● crear nuevas tablas en una base de datos
● crear procedimientos almacenados en una base de datos
● crear vistas en una base de datos
● establecer permisos en tablas, procedimientos y vistas

RDBMS
RDBMS significa Sistema Relacional de Gestión de Base de Datos y es la base de datos
donde se usa SQL y es la estructura de bases de datos que utilizan todos los sistemas de
bases de datos modernos, como MS SQL Server, IBM DB2, Oracle, MySQL, Postgres y
Microsoft Access.

Los datos en RDBMS se almacenan en las tablas de la base de datos. Una tabla es una
colección de registros de datos relacionados y consta de campos y filas.

Crear una tabla


Para crear una nueva tabla en una base de datos se usa la instrucción CREATE TABLE:

CREATE​ ​TABLE​ ​nombre_de_la_tabla ​(


campo1 tipo_de_dato​,
campo2 tipo_de_dato​,
campo3 tipo_de_dato​,
....
);

Donde:
● nombre_de_la_tabla es el nombre que va a tener la tabla creada. Este
nombre debe ser único en una base de datos, esto es, no puede haber dos
tablas con el mismo nombre;
● campo1, campo2 … especifican los nombres de los campos que va a tener
la tabla y
● tipo_de_dato especifica el tipo de datos que la campo puede contener.

Los tipos de datos más usados son:

● integer: número enteros;


● float: número reales;
● char(n): caracteres, exactamente n, por ejemplo char(1) guarda ‘S’ pero no
‘SI’;
● varchar(n): caracteres, máximo n, por ejemplo varchar(3) guarda ‘AB’ o ‘ABC’
pero no ‘ABCD’ y
● date: fechas en formato ‘AAAA-MM-DD’ por ejemplo ‘2011-12-30’.

Por ejemplo, si queremos crear la tabla "Alumnos" que contenga los campos DNI, Apellido,
Nombre, Dirección y Ciudad la sentencia SQL sería:

CREATE​ ​TABLE​ Alumnos (


DNI integer,
Apellido varchar(255),
Nombre varchar(255),
Edad integer,
Ciudad varchar(255)
);

Resultado:

You have made changes to the database.

Nota: No puede haber dos tablas con el mismo nombre en la misma base de datos, por eso
da un error cuando se lo intenta.

Insertar datos en una tabla


Para insertar nuevos registros en una tabla se utiliza la instrucción INSERT INTO:

​ NTO​ ​nombre_de_la_tabla​ (​campo1​,​ campo2​,​ campo3,


INSERT​ I ​ ...)
VALUES​ (​valor1​,​ valor2,
​ ​ valor3​, ...);

Donde:

● nombre_de_la_tabla es la tabla donde vamos a insertar los datos;


● campo1, campo2 … son los campos de la tabla y

1
● valor1, valor2, … son los valores que vamos a insertar.

El siguiente ejemplo inserta registros en la tabla “Alumnos”:

​ NTO​ Alumnos (DNI, Apellido, Nombre, Edad, Ciudad)


INSERT​ I
VALUES​ (​33222334​, ​'García'​, ​'Paula'​, ​23​, ​'CABA'​);

Resultado:

You have made changes to the database. Rows affected: 1

​ NTO​ Alumnos (DNI, Apellido, Nombre, Edad, Ciudad)


INSERT​ I
VALUES​ (​21734231​, ​'López'​, ​'Carlos'​, ​45​, ​'CABA'​);

Resultado:

You have made changes to the database. Rows affected: 1

​ NTO​ Alumnos (DNI, Apellido, Nombre, Edad, Ciudad)


INSERT​ I
VALUES​ (​21298734​, ​'Pérez'​, ​'Carlos'​, ​43​, ​'Rosario'​);

Resultado:

You have made changes to the database. Rows affected: 1

Si se insertan valores para todas los campos de la tabla, no es necesario especificar los
nombres de campo en la consulta SQL. Sin embargo, debe asegurarse de que el orden de
los valores esté en el mismo orden que los campos de la tabla. En este caso la sintaxis de
la primera sentencia INSERT INTO del ejemplo anterior sería:

​ NTO​ Alumnos
INSERT​ I
VALUES​ (​33222334​, ​'García'​, ​'Paula'​, ​23​, ​'CABA'​);

Resultado:

You have made changes to the database. Rows affected: 1

También es posible insertar sólo algunos valores en campos específicas, dejando vacías
(NULL) el resto. Por ejemplo, la siguiente instrucción SQL inserta un nuevo registro, pero
sólo los campos "DNI", “Apellido" y "Nombre" tendrán valores, el resto será vacío:

2
También se pueden insertar varios valores de una sola vez:

INSERT​ ​INTO​ Alumnos


VALUES
(​35225354​, ​'Perotti'​, ​'Maitén'​, ​22​, ​'Rosario'​),
(​12298345​, ​'Graziano'​, ​'Gerardo'​, ​64​, ​'Córdoba'​),
(​23398734​, ​'Sánchez'​, ​'Luis'​, ​38​, ​'Córdoba'​);

Resultado:

You have made changes to the database. Rows affected: 3

Seleccionar datos de una tabla


Se utiliza la instrucción SELECT para seleccionar datos de una o más tablas:

SELECT​ ​campo1​,​ campo2, …


FROM​ ​nombre_de_la_tabla​;

Donde:

● nombre_de_la_tabla es el nombre de la tabla de la que vamos a seleccionar


y
● campo1, campo2 … especifican los nombres de los campos de la tabla que
queremos seleccionar.

Por ejemplo, para seleccionar el Nombre y la Ciudad de los registros de la tabla “Alumnos”:

SELECT​ Nombre, Ciudad


FROM​ Alumnos;

Resultado:

Number of Records: 6

Nombre Ciudad

Paula CABA

Carlos CABA

Carlos Rosario

Maitén Rosario

Gerardo Córdoba

3
Luis Córdoba

Para seleccionar algunos de los datos de una tabla se usa WHERE. Por ejemplo, para
seleccionar todas las Alumnos de Rosario:

SELECT​ *
FROM​ Alumnos
WHERE​ Ciudad = ​'Rosario'​;

Resultado:

Number of Records: 2

DNI Apellido Nombre Edad Ciudad

21298734 Pérez Carlos 43 Rosario

35225354 Perotti Maitén 22 Rosario

Nota: en vez de usar la lista de campos usamos “*”, que quiere decir que seleccione todos
los campos de la tabla.

Las condiciones de WHERE se pueden combinar usando OR (o) o AND (y):

SELECT​ *
FROM​ Alumnos
WHERE​ Ciudad = ​'Rosario' ​AND​ Nombre = ​'Carlos'​;

Resultado:

Number of Records: 1

DNI Apellido Nombre Edad Ciudad

21298734 Pérez Carlos 43 Rosario

SELECT​ *
FROM​ Alumnos
WHERE​ Ciudad = ​'Rosario' ​OR​ Ciudad = ​'CABA'​;

Resultado:

Number of Records: 4

4
DNI Apellido Nombre Edad Ciudad

33222334 García Paula 23 CABA

21734231 López Carlos 45 CABA

21298734 Pérez Carlos 43 Rosario

35225354 Perotti Maitén 22 Rosario

Funciones
Para contar la cantidad de registros que cumplen una condición WHERE en una table, se
usa la función COUNT(*):

SELECT​ count(*)
FROM​ Alumnos
WHERE​ Ciudad = ​'Córdoba'​;

Resultado:

Number of Records:1

count(*)

A los campos se les puede aplicar las funciones MAX() para calcular el valor máximo, MIN()
para el mínimo, AVG() para el promedio y SUM() para sumarlos.

SELECT​ MIN(Edad), MAX(Edad), AVG(Edad), SUM(Edad)


FROM​ Alumnos;

Resultado:

Number of Records:1

MIN(Edad) Max(Edad) AVG(Edad) SUM(Edad)

22 64 39.166666666666664 235

5
Ordenar datos
Para ordenar datos seleccionados puede usarse la expresión ORDER BY:

​ ​ campo2, …
SELECT​ ​campo1,
FROM​ ​nombre_de_la_tabla
ORDER BY​ ​campo3, ...
;

Donde:

● nombre_de_la_tabla es el nombre de la tabla de la que vamos a seleccionar;


● campo1, campo2 … especifican los nombres de los campos de la tabla que
queremos seleccionar y
● campo3 es el campo por el cual voy a ordenar

Por ejemplo, para seleccionar el Nombre y la Ciudad de los registros de la tabla “Alumnos” y
ordenarlos por nombre:

SELECT​ Nombre, Ciudad


FROM​ Alumnos
ORDER BY​ Nombre;

Resultado:

Number of Records: 6

Nombre Ciudad

Carlos CABA

Carlos Rosario

Gerardo Córdoba

Luis Córdoba

Maitén Rosario

Paula CABA

Juntar dos tablas


En SQL es posible “juntar” dos tablas en forma horizontal para que formen una única tabla.
La sintaxis que se usa es:

6
SELECT​ campo1, campo2...
FROM​ tabla1 ​JOIN ​tabla2 ​ON ​tabla1.campo3 = tabla2.campo3
;

Donde:

● tabla1 y tabla2 son las tablas que voy a juntar;


● campo1, campo2 … especifican los campos deber ser seleccionados y
● campo3 es el campo que va a ser usado para juntar ambas tablas y por
supuesto debe existir en ambas tablas.

Como ejemplo, juntaremos la tabla Alumnos que creamos antes con la siguiente tabla
Carreras que tiene las carreras que cursan los alumnos:

CREATE​ ​TABLE​ Carreras (


DNI integer,
Carrera varchar(255)
);

Resultado:

You have made changes to the database.

Y después insertamos los valores:

INSERT​ ​INTO​ Carreras


VALUES
(​33222334​, ​'Contador'​),
(​33222334​, ​'Administrador'​),
(​21734231​, ​'Actuario'​),
(​21298734​, ​'Sistemas'​),
(​21298734​, ​'Administrador'​),
(​35225354​, ​'Contador'​),
(​12298345​, ​'Contador'​),
(​23398734​, ​'Contador'​);

Resultado:

You have made changes to the database. Rows affected: 8

Si queremos saber las carreras que cursa cada alumno hacemos:

SELECT​ *
FROM​ Alumnos ​JOIN ​Carreras ​ON ​Alumnos.DNI = Carreras.DNI
;

7
Resultado:

DNI Apellido Nombre Edad Ciudad Carrera

33222334 García Paula 23 CABA Administrador

33222334 García Paula 23 CABA Contador

21734231 López Carlos 45 CABA Actuario

21298734 Pérez Carlos 43 Rosario Administrador

21298734 Pérez Carlos 43 Rosario Sistemas

35225354 Perotti Maitén 22 Rosario Contador

12298345 Graziano Gerardo 64 Córdoba Contador

23398734 Sánchez Luis 38 Córdoba Contador

A la sentencia SELECT se le puede agregar los filtros WHERE y las FUNCIONES vistas
anteriormente.

Agrupar datos
En SQL es posible agrupar los datos de una o más tablas, seleccionando los campos por lo
que voy a agrupar y aplicando una función a cada grupo.

La sintaxis que se usa es:

SELECT ​campo1, campo2, …, funcion(campo3), ...


FROM ​nombre_de_la_tabla
WHERE ​condicion
GROUP BY ​campo1, campo2;

Donde

● nombre_de_la_tabla es el nombre de la tabla de la que vamos a seleccionar


los datos;
● campo1, campo2 … son los campos de la tabla que vamos a usar para
agrupar los datos de la tabla;
● condicion es el filtro que vamos a usar para seleccionar datos;
● campo3 es el campo que va a ser usado por la función y
● funcion es la función a aplicarles a campo3, por ejempli MIN(), MAX(), AVG()
o COUNT()

Por ejemplo, para agrupar a los alumnos por ciudad y saber el mínimo, máximo y promedio
de edad y la cantidad de alumnos para cada ciudad podemos hacer:

8
SELECT ​Ciudad, MIN(Edad), Max(Edad), AVG(Edad), count(*)
FROM ​Alumnos
GROUP BY ​Ciudad;

Resultado:

Ciudad MIN(Edad) Max(Edad) AVG(Edad) count(*)

CABA 23 45 30.333333333333332 3

Córdoba 38 64 51 2

Rosario 22 43 32.5 2

Ahora, si quiero hacer la misma agrupación anterior pero detallada por Ciudad y Carrera,
debemos hacer la junta que vimos antes:

SELECT ​Ciudad, Carrera, MIN(Edad), Max(Edad), AVG(Edad), count(*)


FROM​ Alumnos ​JOIN ​Carreras ​ON ​Alumnos.DNI = Carreras.DNI
GROUP BY ​Ciudad, Carrera;

Resultado:

Ciudad Carrera MIN(Edad) Max(Edad) AVG(Edad) count(*)

CABA Actuario 45 45 45 1

CABA Administrador 23 23 23 2

CABA Contador 23 23 23 2

Córdoba Contador 38 64 51 2

Rosario Administrador 43 43 43 1

Rosario Contador 22 22 22 1

Rosario Sistemas 43 43 43 1

Eliminar datos de una tabla


Para eliminar registros de una tabla se usa la sentencia DELETE:

DELETE FROM​ tabla


WHERE ​condición;

9
Donde:

● tabla es el nombre de la tabla de la que se quiere borrar y


● condición son los filtros que se le van a aplicar a los valores de la tabla para
seleccionar los que quieren ser borrados.

Por ejemplo, si queremos borrar todos registros de la tabla “Alumnos” cuya ciudad sea
Córdoba:

DELETE FROM​ Alumnos


WHERE ​Ciudad = ​'Córdoba'​;

Eliminar una tabla


La instrucción DROP TABLE se utiliza para eliminar una tabla existente en una base de
datos.


DROP​ ​TABLE​ ​nombre_de_la_tabla;

Donde “nombre_de_la_tabla” es la tabla que va a ser eliminada.

El siguiente ejemplo elimina la tabla “Alumnos”:

DROP TABLE​ Alumnos;

Nota: Cuidado porque al eliminar una tabla también se pierde la información almacenada en
ella.

Herramienta SQL Try it


Existe una herramienta en línea que nos permite ejecutar sentencias SQL sin tener que
instalar una base de datos llamada SQL Try It y se encuentra en
https://www.w3schools.com/sql/trysql.asp?filename=trysql_op_in

SQL Try It requiere que usen un navegador moderno como Chrome, Firefox o similar.

La herramienta cuenta con dos paneles. En el panel superior “SQL Statement” es donde se
escriben las consultas SQL y luego se presiona el botón “Run SQL”. En el panel inferior
“Result” podrán ver los resultados de la ejecución de la consulta.

10
La herramienta ya trae una serie de tablas creadas que pueden ser usadas para practicar
consultas.

Las tablas creadas van a ser mostradas en la parte derecha de la pantalla, junto con la
cantidad de registros que tiene cada una.

Si se presiona el botón “Restore Database” se borran todas las tablas creadas y se vuelven
a crear las tablas originales, perdiendo así los datos cargados en la base de datos. Pasa lo
mismo si se recarga la página o se sale del navegador y se vuelve a entrar.

11

También podría gustarte