0% encontró este documento útil (0 votos)
45 vistas

SQL

Este documento explica conceptos básicos de bases de datos relacionales como SQL, tablas, filas, columnas, claves primarias y foráneas. También describe operaciones básicas como crear, leer, actualizar y eliminar datos y cómo se relacionan las tablas entre sí.

Cargado por

Luis Acosta
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
45 vistas

SQL

Este documento explica conceptos básicos de bases de datos relacionales como SQL, tablas, filas, columnas, claves primarias y foráneas. También describe operaciones básicas como crear, leer, actualizar y eliminar datos y cómo se relacionan las tablas entre sí.

Cargado por

Luis Acosta
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 31

SQL

Agrupa informacion y le da sentido a la misma.

Estas se almacenan en una memoria gestionada por el programador.

RDBMS (Relational database management system)

Software para gestionar base de datos como:

MySQL

Postgres

MariaDB

Oracle

Intormix

Da un acceso facil a la base de datos y se encarga de la integridad y seguridad de los datos.

Tambien ayuda para importar, exportar datos, realizar concurrencias y hacer respaldos.

Funciona primero en los siguientes modos:

1.- Leer

2.- Delete

Esto para que la concurrencia funcione. De otra manera habría conflicto con la información.

Otro funcionalidad es conectarse con los diferentes lenguajes de programación.

Las operaciones mas frecuentes que utilizaremos seran las de:


C - Create
R - Read
U - Update
D – Delete
Para que se pueda realizar el CRUD, debe realizarse un Query (petición).

Query = consulta

Ejemplos:
Buscando Google

Ver fotos

Ver perfil

Facebook por ejemplo a travez de la página web, a través de un software de gestión de base de datos
realizan consultas a la base de datos, para devolverla a la pagina web y finalmente se regresa hacia
facebook.

Amazon – Al ver un producto se toman los datos de un RDBMS, los datos son devueltos a la pagina y
finalmente es recibido por el usuario.

SQL (Bases de datos relacionales)

Almacenan la información en forma de tablas con filas y columnas. Como las de excel.

No SQL (No relacionales)

En este tipo de base de datos se pueden almacenar en diferentes formas como:

Json
Bson

Blob
Key-Value

Columnas:
Hacen referencia al dato mismo que se está guardando.

Ejemplo:
En columna de Nombre se coloca “Felipe”

La columna de edad podría tener “20”

La columna de id es un registro único relacionados con todos los datos de felipe. Este valor será
autoincremental, de tal manera que si el primer dato es la información de felipe, el recibiría el 1`.
Si se agregara otra persona, se le asignaría el 2 y así sucesivamente.

Los valores de manera horizontal se les llama registro.

Los valores individuales por columna se conoce como dato.

Cuando a toda la tabla se le asigna el nombre de User o tabla usuario, entonces los datos guardados en
la tabla hacen referencia a un usuario y de esta manera se obtiene la información.

La tabla de usuarios es la tabla mas importante de una base de datos, ya que a partir de ella podemos
crear nuevos registros que se asignen a alguien.
En otro ejemplo, tenemos la tabla de productos. Usuarios podemos tener diferentes:

- Administradores

-Usuarios que vayan a comprar

Etc.

Ahora veremos el tipo de Administrador, que es quien puede crear productos dentro de un software.

El producto ipad, que tiene un id de 1, fue creado por el usuario #1

El usuario 1 puede crear muchos mas productos, pero puede haber mas de un administrador.
El otro administrador, podría tener el número 2 asignado, por ejemplo:

La razón por la cual se pasa un id en lugar del nombre del usuario es debido a que los datos de el podrían
cambiar y para evitar duplicar la información.
Esto significa que en el disco solo se grabará el numero 2 y no toda su información completa, por
consecuencia se ahorra memoria.

Esto se reconoce como una relación de 1-n. En estas, un usuario puede haber creado muchos productos,
pero un producto solo pudo haber sido creado por un usuario.

Si tenemos una relación por ejemplo alumnos que pertenecen a un deporte. Para pode relacionar las
tablas se crea una tabla intermedia donde se juntan estas dos tablas:
Dentro de esta nueva tabla se tienen que agregar dos columnas mas:

- 1.- Alumno_id
- 2.- Deporte_id

Esto podría servir para indicar que un alumno con id: 1 pertenece al deporte con id: 1 y a otro con id: 2

Otro alumno además (alumno con id: 2) podría también estar inscrito al deporte con id 1.

A esta relación se le conoce de n a n (n -> n):

Ya que un alumno puede estar inscrito a varios deportes y 1 deporte puede tener muchos alumnos.

Primary key

Las columnas que tienen el nombre de id son conocidas como primary key.

Al incluir un primary id en otra tabla, se le conoce como foreign key.

Foreign Key

Si por ejemplo el primary key del usuario se encuentra en la de productos para identificar quien hizo
algo, entonces se conocería como Foreign Key.
Ejemplo:

El id de la relación que tiene alumnos con deporte sería el Primary Key de esta tabla, mientras que
alumno_id y deporte_id serían llaves foráneas (debido a que ya existían fuera de la tabla)

MY SQL

Root user:

Al ingresar te pide que pongas una contraseña. Basicamente sería el usuario de superadmnistrador.

Ejemplo:

La contraseña será del 1-9.

My sql Workbench

Es la interfaz gráfica que permite visualizar lo que se tiene en la base de datos y automaticamente
analiza los servicios que se encuentran corriendo dentro de la máquina.

Local host:

Sería nuestra computadora.

Al seleccionar el local host nos pedirá la contraseña. Posteriormente podremos comenzar.


Paso 1
Crear una base de datos. Esta se encargará de contener las tablas.

El comando utilizado es:


Create database (nombre de la base de datos);

Nota: Cada comando debe contener un punto y coma al final.

Después, hacemos click en el rayo que sería el botón de “Ejecutar”

En la parte inferior, podremos ver un registro que indica la acción realizada:

Si queremos ver las bases de datos que tenemos se utiliza el comando:


Show databases;
Esto nos mostrará una pantalla como la siguiente:
Paso 2
Crear tablas. Para realizar esto se utiliza el comando:

CREATE TABLE (nombre de tabla) ();


Dentro del paréntesis irá el nombre de las columnas que contendrá la tabla.
CREATE TABLE animales ();
Lo primero que necesitaremos un identificador o id.

Después el tipo de datos que contendrá. En el ejemplo utilizaremos “int” de número entero.
id int,
Las columnas deben ir separadas por una coma.
Los datos pueden ser int (enteros), float (flotantes o decimales), varchar (cadena de caracteres,
palabras u oraciones. Si fuera una oración tendría que estar dentro de comillas).

Agregando como ejemplo la columna tipo, debido a que son palabras debe ser dato varchar, y
estas deben ser escritas de la siguiente manera
(nombre de columna) varchar (# de caracteres que contendrá de límite)
tipo varchar (255)
estado varchar (255)

Paso 3
Dentro de las columnas creadas, necesitamos determinar cual es nuestra primary key con el
comando:
PRIMARY KEY (nombre de columna)

Ejemplo:

Antse de poder ejecutar la consulta de CREATE TABLE, necesitamos indicar que base de
datos tenemos que utilizar. Aunque hola mundo ha sido creada, no sabe que base de datos
utilizar, por lo tanto debemos indicar que base utilizaremos.
Esto será de la siguiente manera.

Paso 4
Para utilizar una base de datos especifica, necesitamos especificarlo con el comando:
use (nombre de base de datos);

Ejemplo:

Paso 5
El campo de id siempre tiene que tener un valor por defecto, aunque está definido como una
llave primaria y el tipo de valor por defecto. Necesitamos indicarle que se autoincremente en su
valor por dato.
Para modificar una tabla ya creada se utiliza:
ALTER TABLE (nombre de tabla) MODIFY COLUMN (nombre de columna) (tipo de valor)
auto_increment;
Ejemplo:

Paso 6
Ya que la tabla ha sido insertada con éxito:

Necesitamos ingresar datos en la tabla.

Esto se realiza con el siguiente comando:


INSERT INTO (nombre de la tabla) (Dentro de paréntesis: a que columnas se agregará
separado por una coma) VALUES (En parentesis: Valores que se agregarán);

Ejemplo:

Para ignorar una linea utilizamos dos guiones medios


Ejemplo:

De esta manera se agregan comentarios


Nota:
En el ejemplo nosotros modificamos una tabla por error, pero para poder agregar el valor de
auto incrementar desde el comienzo se debe realizar de la siguiente manera:
Utilizaremos el comando:
SHOW CREATE TABLE (nombre de la tabla)
Con esto obtendremos el comando que se utiliza para crear la tabla.
Nota: la tabla tuvo que haber sido creada antes.

Una vez ejecutado el comando, seelccionaremos la opción de la tabla:

Daremos click derecho y seleccionaremos “Copy field”


Y lo pegaremos abajo, lo que nos dará un resultado como el siguiente:

Esto aparece completamente en rojo porque está definido el valor como si hubiera un string,
por lo tanto solo borramos la comilla del principio y el final.
Posteriormente borraremos todo lo que se encuentra en el parentesis (borrando lo de engine)

En el segundo renglón apareze “not null”lo que indica que el auto incremento está activo.
Ahora podemos proceder a agregar elementos:

Debajo del comando agregaremos el “insert into” pero agregaremos dos valores mas.
En el screenshot de arriba, aparece en rojo debido a que el comando de create table no
terminó en punto y coma, por lo cual al agregarlo no debe arrojar error.
Después ya podemos ejecutarlo.
Para ejecutar linea por linea, solo hay que subrayar el comando que se desea ejecutar.

Como listar los registros que hemos ingresado?

Se utiliza el comando
SELECT (nombres de columnas que queremos mostrar)
También se puede utilizar SELECT * FROM (nombre de la tabla);
Ejemplo:

Si solamente queremos ver un registro se utiliza el siguiente comando


SELECT * FROM (nombre de la tabla) WHERE id = (numero de registro)

De esta manera nos muestra todos los registros que pertenecen al id 1.

Otra forma de buscar es por ejemplo:


SELECT * FROM animales WHERE (columna) = “VALOR”;

Ahora nos muestra todas las columnas que tienen un estado que sea “Feliz”

Ahora, podemos poner mas de una condición con el comando:


AND

Ejemplo:
Solo aparece una porque solo un registro cumple con estado feliz y tipo chanchito.
Si en el ejemplo reemplazamos chanchito por felipe:

No devuelve nada porque aunque si tenemos un felipe, su estado es triste.

Como modificar datos en una tabla:


Utilizando el comando UPDATE
Ejemplo:

.
De tal manera que en la tabla de animales, el estado se está cambiando a “feliz” para el dato
con id = 3.
Resultado:

Como borrar registros:

Se utiliza el comando DELETE


Si nosotros intentamos lo siguiente:

Nos arroja un error:

Si no podemos ver el error completo podemos copiarlo con click derecho y haciendo click en
copy response. Lo ponemos como comentario y vemos lo siguiente:

-- Error Code: 1175. You are using safe update mode and you tried to update a table without a
WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences ->
SQL Editor and reconnect.

Esto es debido a que SQL tiene un modo en el que no se agregó un WHERE como modo
seguro no nos permite borrar todo. El mismo error nos indica como borrarlo. No es conviniente
cambiarla, debido a que no agregar un where o especificar, puede hacer que borremos todo en
una base de datos.

Ejemplo de como usarlo correctamente:

Asi que ahora solo existen 2 registros:

Si queremos hacer un update pasa lo mismo:

Arroja error porque forzosamente necesitamos agregar un id.


Formas adicionales seleccionar elementos de una tabla

En el siguiente ejemplo crearemos la siguiente tabla:

Como recordatorio, con el siguiente comando podemos ver una tabla:


SELECT * FROM (nombre de la tabla)

Ejemplo:

En el primer caso nos da todos los datos de la tabla.


En el segundo caso nos limita los datos retornados a el primer registro que encuentra.

Otro ejemplo sería:

Que retorna todos los datos de la tabla donde la edad es mayor a 15:

Otro ejemplo sería:


Para buscar un dato que contenga cierto numero de letras se tiene que poner entre porcentajes
Por ejemplo:
“%gmail.com%”
Nos arrojaría todos los valores que contengan @gmail.com

Si quitamos por ejemplo el porcentaje del final, nos arrojaría resultado con esta tabla, porque
estaría indicando todo lo que termina en gmail (sin tener el .com)

Ejemplo:

Arroja Oscar porque está buscando algo que en la columna name empieze con “os”, si
cambiamos el porcentaje al principio, no arrojará nada, porque no hay nombres que termine en
Os en nuestra tabla.

De tal manera que dos % o “% (letras) %” - Arroja todo lo que contenga esos caracteres
% al final o “%(letras)” – Arroja todo lo que termine con esas letras
% al principio o “(letras)%” – Arroja todo lo que empieze con esas letras
Comando order by

Order by reordena los datos mostrados en el orden que selecciones, de tal manera que tiene
que ser
“order by (columna a ordenar) (asc/desc)” – Dependiendo si es ascendente o descendente.

De manera descendente.

Seleccionar registros con mayor o menor valor:

Se utilizan los comandos:


SELECT Max (columna) as (nombre que quieres que se llame/Alias) from (tabla)
SELECT Min (columna) as (nombre que quieres que se llame/Alias) from (tabla)
Uso alternativo de comando select:

Si por ejemplo solo requieres ver 2 columnas, puedes utilizar el siguiente comando:

SELECT (nombre de columna 1 ) , (nombre de columna 2) from (nombre de la tabla)


Ejemplo:

Como cambiar el nombre de una columna que se muestra:

Select (columna) as (nombre que se desea reemplazar) from (tabla)


Como cruzar una tabla nueva con una existente:

En el ejemplo utilizaremos la siguiente tabla:

Ahora estamos agregando una llave foránea a la que estamos nombrando (created_by) (dentro
de la tabla) y se refiere a la tabla que ya existía llamada user, especificamente la columna (id)

De tal manera que la sintaxis es:


Foreign key (nombre de columna nueva) references (tabla de procedencia) “(columna
transferida)”

Como renombrar el nombre de una tabla:

Se utiliza el comando rename.


Ejemplo:
Rename table (nombre de la tabla) to (nuevo nombre);

Podemos verificar refrescando al lado izquierdo

Que la tabla products ahora se llama “product”

Como insertar datos:


INSERT into (nombre de la tabla) “(nombre de columnas)”
Values
(“productos separados por coma”)
( “productos separados por coma”)
Sucesivamente por columnas.

Ejemplo:
Uniendo tablas:

Las tablas deben unirse como si fueran círculos:

El left join nos mostrara el punto de intersección en lo que se está trabajando.


En el ejemplo, la intersección sería el foreign key. Ya que el user id ya existía en la primera
tabla, y se pasó a la segunda como “created_by”. De tal manera que se utiliza en las dos
tablas.

La sintaxis sería la siguiente:

SELECT (alias asignado).(columna deseada) (tabla) from (Alias que se desea poner a la tabla)
De tal manera que siempre escribiremos select from (alias) primero y luego asignamos la parte
media que sería (alias asignado).(columna deseada)

Ejemplo:

De tal manera que user se está usando con el alias “u” y dentro de esta tabla de “u” se está
buscando mostrar la columna “id”
Así nos muestra este resultado:

Si requerimos ver mas datos de esta tabla, podemos agregarlos con la misma forma de
sintaxis.

Si quisieramos agregar mas columnas a esta tabla, podemos utilizar el comando left join
agregandolo a lo anterior, y para esto se utiliza la siguiente sintaxis:
Select (columnas separadas por coma) (columna(s) de la tabla que se está trayendo) from
(tabla) (alias de tabla) left join product (alias nuevo) on (columna 1 que se juntará) = (columna 2
que se juntará);

Ejemplo:
La columna de created by es la que tiene el id de usuario (su relación), por lo tanto hay que
indicar que la columna que se encuentra en created_by, se una con la de id.

Por ejemplo, que el usuario 1 de created_by se una con id, ya que es el mismo dato.
Right join:
Es lo mismo que left join pero por la derecha. Por lo tanto los datos se traen de la tabla de la
derecha a la izquierda.

Si no existe un dato que se relacione con el producto de la derecha a la izquierda, el dato no se


retorna.
Utilizaremos el mismo ejemplo:

Pero cambiaremos la palabra “left”, por right.

Nos arroja el siguiente resultado:

El usuario de chanchito no está mostrandose porque no hay ningun producto que se relacione
con ese usuario. Esto debido a que chanchito no ha creado ningun producto.

Puesto de otra forma:


Con el left join se mostraron los registros de usuario y si encuentra asociado algun producto se
trae ese producto
En el right join, se traen los productos y en caso de que exista una relación con un usuario
también se lo trae.

Inner join:
Se trae la intersección de las dos tablas.

Finalmente tenemos el Cross Join que nos dá un producto cartesiano:


Group By:
Sirve para agrupar elementos. Toma todos los registros en base a un pivote y los agrupa en
registros individuales.

Ejemplo:

Función Having:
Sirve para limitar los datos mostrados por medio de una condición. Por ejemplo:

Función Drop table:


Sirve para elimintar una tabla

Ejemplo:
drop table product;

También podría gustarte