Sql básico - compendio

Jose Diaz Silva
Jose Diaz SilvaVicerrector Académico - UDI / Consultor en UDI
SQL BÁSICO
Msc.Ing. JOSE FABIAN DIAZ SILVA
@josefabiandiaz
SQL - INTRO
 SQL : Structure Query Language
 Es un lenguaje muy popular para el trabajo con los motores de bases de datos,
alcanzo su punto mas alto con los sistemas de almacenamiento relacionales
(basado en relación entre tablas).
 Existe un estándar definido para trabajar con SQL pero cada motor de base
datos implementa algunas sentencias propietarias pensadas en el
aprovechamiento de su sistema.
SENTENCIAS
Sentencias

Clasificación

SELECT

Recuperación de datos

INSERT
UPDATE
DELETE
MERGE

Lenguaje de manipulación de datos (DML)

CREATE
ALTER
DROP
RENAME
TRUNCATE

Lenguaje de definición de datos (DDL)

COMMIT
ROLLBACK
SAVEPOINT

Control de transacciones

GRANT
REVOKE

Lenguaje de control de datos (DCL)
RECUPERACIÓN DE DATOS
Data Retrieval
SELECT
 SELECT *| { [DISTINCT]columna | expresión[alias], … }

FROM table;
 El “*” se emplea junto a la palabra reservada SELECT para retornar todas las columnas
de la tabla, si no es empleado se tiene que referir explícitamente al campo=columna.
 DISTINCT es un comando para asegurar que no se repitan los datos retornados.
 Se pueden emplear los denominados Alias para referirse a un campo. Todos los campos
se separa

en el FROM se especifica el nombre de la tabla a consultar.
SELECT nombre, apellido FROM persona;
DEFINIENDO “ALIAS”
 SELECT apellido “empleado”,
salario * 12 “sueldoTotal” FROM empleados;
 Los alias ayudan a darle mas sentido a los datos resultantes de una consulta.

En el ejemplo presentado se aprecia como una expresión “salario * 12”
puede ser empleada como retorno de una consulta SELECT.

“Los alias se caracterizan por emplear las comillas dobles en su
nombramiento”.
CONCATENACIÓN & DUPLICACIÓN
 SELECT nombre || apellido as “nombres”
FROM empleados;
 Se aprecia que el símbolo “||” se emplea para unir dos campos , así como la palabra
“as” se establece para indicar el alias que llevara estos campos unidos.

SELECT Distinct departamento
FROM empleados;
La palabra “distinct” evita la repetición de campos cuando se recuperan
los datos de una tabla.
DESCRIBIR ESTRUCTURA
 DESCRIBE “NOMBRE TABLA”
 Por medio de la palabra reservada DESCRIBE o su versión resumida DESC es posible
conocer los campos con su tipo y tamaño que corresponden a un arreglo tipo tabla.

Nombre

Restricción

Tipo

Id_empleado

NOT NULL

NUMBER(5)

Nombre

NOT NULL

VARCHAR2(20)

Apellido

NOT NULL

VARCHAR2(20)
WHERE
 SELECT *| { [DISTINCT]columna | expresión[alias], … }

FROM table
[WHERE condicion)(es)];
 La palabra “WHERE” se emplea para restringir las filas que se retornan

el empleo de la misma brinda versatilidad al poder incluir diversas
condiciones.

SELECT nombre, apellido FROM persona WHERE id_empleado=23;
BETWEEN
 SELECT apellido, salario
 FROM empleados
WHERE salario BETWEEN 100 AND 300;
 Con la sentencia BETWEEN se restringe un intervalo dentro de los cuales se espera
conseguir un resultado.

el empleo de la misma brinda versatilidad al poder incluir diversas
condiciones de validación.
IN
 SELECT apellido, salario
 FROM empleados
WHERE salario IN (100,200,600);
 Con la sentencia IN se restringe los valores retornados únicamente a los que coincidan
con los descritos en el conjunto dado por IN.

La posibilidad de realizar una consulta al interior de los paréntesis de
IN abre nuevas posibilidades..
LIKE
 SELECT apellido, salario
 FROM empleados
WHERE apellido LIKE ‘D%’;
 Retorna aquellos empleados cuyo apellido inicie con “D”.

Con LIKE se efectúa una consulta en campos de cadenas de
caracteres. El símbolo % se emplea como comodín para representar
cualquier cantidad de cadena de caracteres en la posición que se localice. Es
decir si se emplea “%D%” se retornaría cualquier apellido que contenga la
letra D.
ORDER BY
 SELECT apellido, salario
FROM empleados
ORDER BY fecha_contrato asc/desc;
La sentencia ORDER BY permite efectuar un ordenamiento de los
datos recuperados de la consulta(las columnas), puede ser del tipo
ascendente ASC o descendente DESC, lo cual se indica al finalizar la
sentencia.
GROUP BY
 SELECT id_ jefe,avg(salario)
FROM empleados
GROUP BY id_jefe;
 La sentencia anterior retorna el promedio(avg) del salario de aquellas
personas que tienen el mismo jefe.
Algunos datos se desean trabajar como si se tratara de un grupo de
los mismos. Con la sentencia GROUP BY se agrupan los datos y permite
efectuar operaciones sobre ellos.
HAVING
 SELECT id_ jefe,max(salario)
FROM empleados
GROUP BY id_jefe
HAVING MAX(salario)>300;
 La sentencia HAVING permite efectuar consultas tipo WHERE sobre las
agrupaciones de datos.
En el ejemplo presentado si agrupo por el jefe, pero solo se
presentaran los datos de aquellos grupos que el máximo del salario sea
superior a 300.
SUBQUERY
 SELECT nombre, apellido
FROM empleados
WHERE sueldo> (SELECT sueldo FROM empleados WHERE
apellido=‘diaz’);

 La anterior se denomina “subconsulta” cuando se emplea una consulta
SQL como condición a evaluar por una consulta superior.
No todas las implementaciones de SQL admiten subconsultas, así
como tampoco todos los gestores de bases de datos las compilan.
DML: MANIPULACIÓN DE
DATOS
DML: Data manipulation laguage
INSERT
 INSERT INTO nombre_tabla (campos separados por
coma) VALUES (valores para los campos, separado por
comas);
 La sentencia INSERT se emplea para añadir campos a una tabla.
Cuando los campos son no numéricos se debe encerrar dentro de
comillas simples es valor escrito para que el compilador de SQL no lo
confunda con el valor de una constante.

INSERT INTO empleado (nombre, apellido, sueldo)
values(‘fabian’,’diaz’,300);
INSERT – VALORES NULOS
 INSERT INTO empleado(nombre, apellido) VALUES
(‘fabian’,’diaz’);
 Se puede insertar valores nulos por el método implícito de no nombrar el
campo.

INSERT INTO empleado VALUES
(‘fabian’,’diaz’,NULL);
Pero también se puede referenciar de forma explicita,
indicando que el campo esta vacío o nulo.
UPDATE
 UPDATE empleado
SET salario=100
WHERE apellido=‘diaz’;


Se emplea para modificar el contenido de los campos retornados por una
consulta WHERE.
Importante: Si la clausula WHERE no se coloca, toda la tabla
sufrirá el cambio especificado.
DELETE
 DELETE FROM empleado
WHERE apellido=‘diaz’;


Se emplea para eliminar los registros filtrados por la consulta WHERE.
Importante: Si la clausula WHERE no se coloca, toda la tabla
será borrada..
DDL: DEFINICIÓN DE DATOS
DDL: Data Definition Language
CREATE
 CREATE TABLE nombre_tabla
(columna tipo);
 Se debe especificar el nombre de la tabla junto con sus campos y
el tipo de los mismos.

Si es preciso eliminar la tabla solo es
necesario escribir:

DROP TABLE nombre_tabla

CREATE TABLE empleado
(id_empleado number(2),
nombre varchar2(20),
apellido varchar2(20),
salario number(5));
ALTER TABLE
 Sobre una tabla se pueden realizar 3 tipos de alteraciones,
 Adicionar ADD:



ALTER TABLE nombre_tabla
ADD (nombre_columna tipo_de_dato);

Modificar MODIFY:

ALTER TABLE nombre_tabla
MODIFY (nombre_columna tipo_de_dato);

 Eliminar DROP:
ALTER TABLE nombre_tabla
DROP (nombre_columna);
RESTRICCIONES : LLAVE PRIMARIA
 Las restricciones se emplean para adicionarle a las tablas un
control y coherencia.
 La llave primaria permite garantizar la identificación única de
un registro al interior de la tabla.
CREATE TABLE empleado
Notese que “id_pk_empleado” es el nombre de la
(id_empleado number(2),
llave primaria y puede ser reemplazado por
nombre varchar2(20),
cualquier valor.
apellido varchar2(20),
salario number(5),
CONSTRAINT id_pk_empleado PRIMARY KEY(id_empleado));
RESTRICCIONES : NOT NULL
 Algunos campos serán obligatorios y no podrán ser creados
vacíos o nulos, para lo cual se deben declarar de la siguiente
forma al interior de la tabla.

CREATE TABLE empleado
(id_empleado number(2),
nombre varchar2(20) NOT NULL,
apellido varchar2(20),
salario number(5));

Mas de un campo puede ser declarado con NOT
NULL, incluso todos.
RESTRICCIONES : UNIQUE
 La llave primaria permite identificar un campo de manera única
al interior de una tabla y se emplea para referenciarlo, pero
existen otros campos que se desea no tener duplicados, aunque
no se empleen como referencia. Estos campos se crean como
únicos.
CREATE TABLE empleado
(id_empleado number(2),
nombre varchar2(20) NOT NULL,
apellido varchar2(20),
salario number(5),

“No se emplean para identificación como la llave
primaria.”

email varchar2(20),CONSTRAINT emp_email_unico UNIQUE(email));
RESTRICCIONES : LLAVE FORANEA
 La llave foránea hace referencia a un campo que coincide con la
llave primaria de otra tabla. Se emplea para crear relaciones de
dependencia entre tablas.
CREATE TABLE empleado
(id_empleado number(2),
nombre varchar2(20),
“El campo id_departamento hace referencia a la
apellido varchar2(20),
tabla departamento que tiene un campo con el
salario number(5),
mismo nombre.”
id_departamento number(2),
email varchar2(20),CONSTRAINT emp_dep_fk (id_departamento) REFERENCES
departamento (id_departamento));
RESTRICCIONES : ADICIONAR/ELIMINAR
 ALTER TABLE empleado
ADD CONSTRAINT emp_direc FOREIGN KEY(jefe_id)
REFERENCES empleado (id_empleado)
ALTER TABLE empleado
DROP CONSTRAINT emp_direc
“Todas las restricciones se pueden agregar o
eliminar empleando el mismo método”.
ÍNDICES
 Los índices se emplean para agilizar las consultas sobre los
campos , ahorrando tiempo de procesamiento al gestor de base
de datos.
CREATE INDEX nombre_índice
ON nombre_tabla(nombre_campo);

CREATE INDEX nombre_emp
ON empleado(nombre);

“Se pueden tener tantos índices como campos
tenga la tabla, todo depende de las necesidades
propias del desarrollador”.
CONSULTAS
@josefabiandiaz
https://www.youtube.com/user/fabiandiazs

josefabiandiazs@Gmail.com
1 de 31

Recomendados

Sentencias Sql por
Sentencias SqlSentencias Sql
Sentencias Sqlfer951
655 vistas8 diapositivas
Aprenda SQL Server por
Aprenda SQL ServerAprenda SQL Server
Aprenda SQL ServerSilva Alvarado Fabian
25.3K vistas91 diapositivas
SQL-DDL por
SQL-DDLSQL-DDL
SQL-DDLbdatos
6.9K vistas25 diapositivas
SENTENCIAS DE SQL SERVER por
SENTENCIAS DE SQL SERVERSENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVERDeysiDelgadoSeclen
4.3K vistas8 diapositivas
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado) por
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Sergio Sanchez
7.4K vistas24 diapositivas
Ejemplo ddl dml por
Ejemplo ddl dmlEjemplo ddl dml
Ejemplo ddl dmlTitiushko Jazz
19.6K vistas6 diapositivas

Más contenido relacionado

La actualidad más candente

Introducción a sql server por
Introducción a sql serverIntroducción a sql server
Introducción a sql serverElizabeth Troconis
5.5K vistas37 diapositivas
Consultas básicas en sql server por
Consultas básicas en sql serverConsultas básicas en sql server
Consultas básicas en sql serverRodrigo Alfaro Pinto
89.3K vistas7 diapositivas
Introducción a sql consultas y criterios de selección por
Introducción a sql consultas y criterios de selecciónIntroducción a sql consultas y criterios de selección
Introducción a sql consultas y criterios de selecciónM.c. Omar Jasso
9.5K vistas22 diapositivas
Comandos utilizados en sql por
Comandos utilizados en sqlComandos utilizados en sql
Comandos utilizados en sqlByron Eras
48.8K vistas15 diapositivas
Consultas sql 2014 por
Consultas sql 2014Consultas sql 2014
Consultas sql 2014Henry Cambal
2.5K vistas12 diapositivas
SQL: DDL, DML y SQL por
SQL: DDL, DML y SQLSQL: DDL, DML y SQL
SQL: DDL, DML y SQLCarmen Soler
23K vistas90 diapositivas

La actualidad más candente(20)

Introducción a sql consultas y criterios de selección por M.c. Omar Jasso
Introducción a sql consultas y criterios de selecciónIntroducción a sql consultas y criterios de selección
Introducción a sql consultas y criterios de selección
M.c. Omar Jasso9.5K vistas
Comandos utilizados en sql por Byron Eras
Comandos utilizados en sqlComandos utilizados en sql
Comandos utilizados en sql
Byron Eras48.8K vistas
Consultas sql 2014 por Henry Cambal
Consultas sql 2014Consultas sql 2014
Consultas sql 2014
Henry Cambal2.5K vistas
SQL: DDL, DML y SQL por Carmen Soler
SQL: DDL, DML y SQLSQL: DDL, DML y SQL
SQL: DDL, DML y SQL
Carmen Soler23K vistas
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado) por Sergio Sanchez
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Sergio Sanchez15.4K vistas
SENTENCIAS SQL por Jair Cruz
SENTENCIAS SQL SENTENCIAS SQL
SENTENCIAS SQL
Jair Cruz660 vistas
Sql Consultas MáS Complejas por alexmerono
Sql Consultas MáS ComplejasSql Consultas MáS Complejas
Sql Consultas MáS Complejas
alexmerono79.2K vistas
Combinacion de consultas y consultas multitablas por claudia contreras
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablas
claudia contreras18.5K vistas
Tm13 introduccion al_sql por Julio Pari
Tm13 introduccion al_sqlTm13 introduccion al_sql
Tm13 introduccion al_sql
Julio Pari668 vistas
USO DE SENTECIAS SQL por Jorge Porras
USO DE SENTECIAS SQLUSO DE SENTECIAS SQL
USO DE SENTECIAS SQL
Jorge Porras643 vistas

Destacado

Añadir host a gns3 por
Añadir host a gns3Añadir host a gns3
Añadir host a gns3Guiro Lin
8K vistas6 diapositivas
CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL) por
CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)
CREANDO Y MANIPULANDO UNA BASE DE DATOS (MySQL)Ing-D-SW-TorresKhano--ME
1.1K vistas13 diapositivas
Modelo Relacional por
Modelo RelacionalModelo Relacional
Modelo RelacionalJesús Rojas
9.6K vistas10 diapositivas
P2C5 Introducción a JEE5 - II por
P2C5 Introducción a JEE5 - IIP2C5 Introducción a JEE5 - II
P2C5 Introducción a JEE5 - IIAurelio Martín Obando Távara
523 vistas64 diapositivas
Diapositivas base de datos por
Diapositivas base de datosDiapositivas base de datos
Diapositivas base de datosYiber
1.4K vistas8 diapositivas
Mapa Conceptual por
Mapa ConceptualMapa Conceptual
Mapa Conceptuallukapegue
3.8K vistas1 diapositiva

Destacado(20)

Añadir host a gns3 por Guiro Lin
Añadir host a gns3Añadir host a gns3
Añadir host a gns3
Guiro Lin8K vistas
Modelo Relacional por Jesús Rojas
Modelo RelacionalModelo Relacional
Modelo Relacional
Jesús Rojas9.6K vistas
Diapositivas base de datos por Yiber
Diapositivas base de datosDiapositivas base de datos
Diapositivas base de datos
Yiber1.4K vistas
Mapa Conceptual por lukapegue
Mapa ConceptualMapa Conceptual
Mapa Conceptual
lukapegue3.8K vistas
Consultas por Henry
ConsultasConsultas
Consultas
Henry339 vistas
Elastix SIP Firewall: Una capa extra de seguridad para su PBX por PaloSanto Solutions
Elastix SIP Firewall: Una capa extra de seguridad para su PBXElastix SIP Firewall: Una capa extra de seguridad para su PBX
Elastix SIP Firewall: Una capa extra de seguridad para su PBX
PaloSanto Solutions1.8K vistas
Consultas! por Stephanie
Consultas!Consultas!
Consultas!
Stephanie326 vistas
Configuracion de proxy squid en centos por murilloyair
Configuracion de proxy squid en centosConfiguracion de proxy squid en centos
Configuracion de proxy squid en centos
murilloyair8.6K vistas
Administracion servidores por Isaac Gonzalez
Administracion  servidoresAdministracion  servidores
Administracion servidores
Isaac Gonzalez1.1K vistas
Seguridad en cisco firewall by ro ckberto por Roberto Flores
Seguridad en cisco   firewall by ro ckbertoSeguridad en cisco   firewall by ro ckberto
Seguridad en cisco firewall by ro ckberto
Roberto Flores5K vistas

Similar a Sql básico - compendio

Lenguaje sql por
Lenguaje sqlLenguaje sql
Lenguaje sqlCarolina Valdivieso
214 vistas20 diapositivas
Operaciones basicas de sql por
Operaciones basicas de sqlOperaciones basicas de sql
Operaciones basicas de sqljuanfrancisco501920
144 vistas4 diapositivas
Consultas basicas en sql server por
Consultas basicas en sql serverConsultas basicas en sql server
Consultas basicas en sql serverAxel Casco González
362 vistas7 diapositivas
Consultas sql 2014 por
Consultas sql 2014Consultas sql 2014
Consultas sql 2014Henry Cambal
250 vistas12 diapositivas
Cuadro de sentencias con descripcion y ejemplo por
Cuadro de sentencias con descripcion y ejemploCuadro de sentencias con descripcion y ejemplo
Cuadro de sentencias con descripcion y ejemploWilliam Sánchez
1.3K vistas4 diapositivas
Sql basico parte_i_ por
Sql basico parte_i_Sql basico parte_i_
Sql basico parte_i_Luis Jherry
471 vistas75 diapositivas

Similar a Sql básico - compendio(20)

Cuadro de sentencias con descripcion y ejemplo por William Sánchez
Cuadro de sentencias con descripcion y ejemploCuadro de sentencias con descripcion y ejemplo
Cuadro de sentencias con descripcion y ejemplo
William Sánchez1.3K vistas
Sql basico parte_i_ por Luis Jherry
Sql basico parte_i_Sql basico parte_i_
Sql basico parte_i_
Luis Jherry471 vistas
Sql basico parte_i_ por Luis Jherry
Sql basico parte_i_Sql basico parte_i_
Sql basico parte_i_
Luis Jherry2K vistas
BD_L8_EXP_ROZIC_CAP9_SQL por demoiselle
BD_L8_EXP_ROZIC_CAP9_SQLBD_L8_EXP_ROZIC_CAP9_SQL
BD_L8_EXP_ROZIC_CAP9_SQL
demoiselle372 vistas
05 Sql Profundizacion por Kudos S.A.S
05 Sql Profundizacion05 Sql Profundizacion
05 Sql Profundizacion
Kudos S.A.S2.2K vistas
CreacióN De Objetos En MySQL por alexmerono
CreacióN De Objetos En MySQLCreacióN De Objetos En MySQL
CreacióN De Objetos En MySQL
alexmerono7.3K vistas
Práctica sql server [fbdr] por TelexFREE
Práctica sql server [fbdr]Práctica sql server [fbdr]
Práctica sql server [fbdr]
TelexFREE1.1K vistas
Command oracle por dnrdeleon
Command oracleCommand oracle
Command oracle
dnrdeleon1.1K vistas

Más de Jose Diaz Silva

Mantenimiento de sistemas de información - Conceptos Avanzados por
Mantenimiento de sistemas de información   - Conceptos AvanzadosMantenimiento de sistemas de información   - Conceptos Avanzados
Mantenimiento de sistemas de información - Conceptos AvanzadosJose Diaz Silva
4.2K vistas20 diapositivas
Caracteristicas del modelo orientado a objetos por
Caracteristicas del modelo orientado a objetosCaracteristicas del modelo orientado a objetos
Caracteristicas del modelo orientado a objetosJose Diaz Silva
7.9K vistas22 diapositivas
Modding PC por
Modding PCModding PC
Modding PCJose Diaz Silva
6.5K vistas13 diapositivas
Actividad ssh final - Ubuntu por
Actividad ssh final - UbuntuActividad ssh final - Ubuntu
Actividad ssh final - UbuntuJose Diaz Silva
710 vistas10 diapositivas
Problemas en pruebas de implantacion por
Problemas en pruebas de implantacionProblemas en pruebas de implantacion
Problemas en pruebas de implantacionJose Diaz Silva
693 vistas13 diapositivas
Mother board tarjeta madre - elementos varios por
Mother board   tarjeta madre - elementos variosMother board   tarjeta madre - elementos varios
Mother board tarjeta madre - elementos variosJose Diaz Silva
4.7K vistas28 diapositivas

Más de Jose Diaz Silva(20)

Mantenimiento de sistemas de información - Conceptos Avanzados por Jose Diaz Silva
Mantenimiento de sistemas de información   - Conceptos AvanzadosMantenimiento de sistemas de información   - Conceptos Avanzados
Mantenimiento de sistemas de información - Conceptos Avanzados
Jose Diaz Silva4.2K vistas
Caracteristicas del modelo orientado a objetos por Jose Diaz Silva
Caracteristicas del modelo orientado a objetosCaracteristicas del modelo orientado a objetos
Caracteristicas del modelo orientado a objetos
Jose Diaz Silva7.9K vistas
Problemas en pruebas de implantacion por Jose Diaz Silva
Problemas en pruebas de implantacionProblemas en pruebas de implantacion
Problemas en pruebas de implantacion
Jose Diaz Silva693 vistas
Mother board tarjeta madre - elementos varios por Jose Diaz Silva
Mother board   tarjeta madre - elementos variosMother board   tarjeta madre - elementos varios
Mother board tarjeta madre - elementos varios
Jose Diaz Silva4.7K vistas
Ciclos de vida orientados a objetos por Jose Diaz Silva
Ciclos de vida orientados a objetosCiclos de vida orientados a objetos
Ciclos de vida orientados a objetos
Jose Diaz Silva6.2K vistas
Pruebas de implantación del Software por Jose Diaz Silva
Pruebas de implantación del SoftwarePruebas de implantación del Software
Pruebas de implantación del Software
Jose Diaz Silva6.6K vistas
SSH en Ubuntu - Transferencia Segura por Jose Diaz Silva
SSH en Ubuntu - Transferencia SeguraSSH en Ubuntu - Transferencia Segura
SSH en Ubuntu - Transferencia Segura
Jose Diaz Silva843 vistas
Metodologías ágiles para el desarrollo de software - XP por Jose Diaz Silva
Metodologías ágiles para el desarrollo de software - XPMetodologías ágiles para el desarrollo de software - XP
Metodologías ágiles para el desarrollo de software - XP
Jose Diaz Silva1.8K vistas
Capacitacion implantacion de Software por Jose Diaz Silva
Capacitacion implantacion de SoftwareCapacitacion implantacion de Software
Capacitacion implantacion de Software
Jose Diaz Silva1.7K vistas
Programar tareas crontab en Ubuntu por Jose Diaz Silva
Programar tareas  crontab en UbuntuProgramar tareas  crontab en Ubuntu
Programar tareas crontab en Ubuntu
Jose Diaz Silva27.8K vistas
Errores y fracasos en la implantación de Software por Jose Diaz Silva
Errores y fracasos en la implantación de SoftwareErrores y fracasos en la implantación de Software
Errores y fracasos en la implantación de Software
Jose Diaz Silva1.6K vistas
Tipos de memoria del computador - Compendio por Jose Diaz Silva
Tipos de memoria del computador - CompendioTipos de memoria del computador - Compendio
Tipos de memoria del computador - Compendio
Jose Diaz Silva27K vistas
Llenado de combobox vs2010 y oracle xe por Jose Diaz Silva
Llenado de combobox vs2010 y oracle xeLlenado de combobox vs2010 y oracle xe
Llenado de combobox vs2010 y oracle xe
Jose Diaz Silva2.1K vistas
Sistema de archivos y directorios - Ubuntu - Compendio por Jose Diaz Silva
Sistema de archivos y directorios - Ubuntu - CompendioSistema de archivos y directorios - Ubuntu - Compendio
Sistema de archivos y directorios - Ubuntu - Compendio
Jose Diaz Silva22K vistas
Puertos de un computador - Compendio por Jose Diaz Silva
Puertos de un computador - CompendioPuertos de un computador - Compendio
Puertos de un computador - Compendio
Jose Diaz Silva5.7K vistas
Metricas del proyecto de Software - introduccion por Jose Diaz Silva
Metricas del proyecto de Software - introduccionMetricas del proyecto de Software - introduccion
Metricas del proyecto de Software - introduccion
Jose Diaz Silva3.6K vistas
Modelo de diseño - conceptos finales por Jose Diaz Silva
Modelo de diseño  - conceptos finalesModelo de diseño  - conceptos finales
Modelo de diseño - conceptos finales
Jose Diaz Silva3.1K vistas

Último

Tecnologías para la enseñanza virtual por
Tecnologías para la enseñanza virtual Tecnologías para la enseñanza virtual
Tecnologías para la enseñanza virtual mpachecocodem
7 vistas8 diapositivas
Tarea Curso Tecnologias para la enseñanza virtual.pptx por
Tarea Curso Tecnologias para la enseñanza virtual.pptxTarea Curso Tecnologias para la enseñanza virtual.pptx
Tarea Curso Tecnologias para la enseñanza virtual.pptxlesliealejandraContr
5 vistas11 diapositivas
PRESENTACIÓN.pptx por
PRESENTACIÓN.pptxPRESENTACIÓN.pptx
PRESENTACIÓN.pptxsusanaasotoleiva
6 vistas1 diapositiva
fundamentos de electricidad electronica por
fundamentos de electricidad electronicafundamentos de electricidad electronica
fundamentos de electricidad electronicaKevin619029
5 vistas16 diapositivas
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf por
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdfFUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdfortizjuanjose591
7 vistas16 diapositivas
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ... por
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Francisco Javier Toscano Lopez
46 vistas29 diapositivas

Último(20)

Tecnologías para la enseñanza virtual por mpachecocodem
Tecnologías para la enseñanza virtual Tecnologías para la enseñanza virtual
Tecnologías para la enseñanza virtual
mpachecocodem7 vistas
fundamentos de electricidad electronica por Kevin619029
fundamentos de electricidad electronicafundamentos de electricidad electronica
fundamentos de electricidad electronica
Kevin6190295 vistas
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf por ortizjuanjose591
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdfFUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf
FUNDAMENTOS DE ELECTRICIDAD Y ELECTRONICA.pdf
ortizjuanjose5917 vistas
El Ciberespacio y sus Características.pptx por AnthlingPereira
El Ciberespacio y  sus Características.pptxEl Ciberespacio y  sus Características.pptx
El Ciberespacio y sus Características.pptx
AnthlingPereira14 vistas
Probando aplicaciones basadas en LLMs.pdf por Federico Toledo
Probando aplicaciones basadas en LLMs.pdfProbando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdf
Federico Toledo49 vistas
Tarea15.pptx por illanlir
Tarea15.pptxTarea15.pptx
Tarea15.pptx
illanlir10 vistas
Fundamentos De Electricidad y Electrónica equipo 5.pdf por coloradxmaria
Fundamentos De Electricidad y Electrónica equipo 5.pdfFundamentos De Electricidad y Electrónica equipo 5.pdf
Fundamentos De Electricidad y Electrónica equipo 5.pdf
coloradxmaria14 vistas
MVelazco_Internet, Origenes y Evolucion.pptx por al223915
MVelazco_Internet, Origenes  y Evolucion.pptxMVelazco_Internet, Origenes  y Evolucion.pptx
MVelazco_Internet, Origenes y Evolucion.pptx
al2239155 vistas
Presentación: El impacto y peligro de la piratería de software por EmanuelMuoz11
Presentación: El impacto y peligro de la piratería de softwarePresentación: El impacto y peligro de la piratería de software
Presentación: El impacto y peligro de la piratería de software
EmanuelMuoz1117 vistas
Tecnologías para la enseñanza virtual_cdc.pptx por CarmenerdelHuasco
Tecnologías para la enseñanza virtual_cdc.pptxTecnologías para la enseñanza virtual_cdc.pptx
Tecnologías para la enseñanza virtual_cdc.pptx

Sql básico - compendio

  • 1. SQL BÁSICO Msc.Ing. JOSE FABIAN DIAZ SILVA @josefabiandiaz
  • 2. SQL - INTRO  SQL : Structure Query Language  Es un lenguaje muy popular para el trabajo con los motores de bases de datos, alcanzo su punto mas alto con los sistemas de almacenamiento relacionales (basado en relación entre tablas).  Existe un estándar definido para trabajar con SQL pero cada motor de base datos implementa algunas sentencias propietarias pensadas en el aprovechamiento de su sistema.
  • 3. SENTENCIAS Sentencias Clasificación SELECT Recuperación de datos INSERT UPDATE DELETE MERGE Lenguaje de manipulación de datos (DML) CREATE ALTER DROP RENAME TRUNCATE Lenguaje de definición de datos (DDL) COMMIT ROLLBACK SAVEPOINT Control de transacciones GRANT REVOKE Lenguaje de control de datos (DCL)
  • 5. SELECT  SELECT *| { [DISTINCT]columna | expresión[alias], … } FROM table;  El “*” se emplea junto a la palabra reservada SELECT para retornar todas las columnas de la tabla, si no es empleado se tiene que referir explícitamente al campo=columna.  DISTINCT es un comando para asegurar que no se repitan los datos retornados.  Se pueden emplear los denominados Alias para referirse a un campo. Todos los campos se separa en el FROM se especifica el nombre de la tabla a consultar. SELECT nombre, apellido FROM persona;
  • 6. DEFINIENDO “ALIAS”  SELECT apellido “empleado”, salario * 12 “sueldoTotal” FROM empleados;  Los alias ayudan a darle mas sentido a los datos resultantes de una consulta. En el ejemplo presentado se aprecia como una expresión “salario * 12” puede ser empleada como retorno de una consulta SELECT. “Los alias se caracterizan por emplear las comillas dobles en su nombramiento”.
  • 7. CONCATENACIÓN & DUPLICACIÓN  SELECT nombre || apellido as “nombres” FROM empleados;  Se aprecia que el símbolo “||” se emplea para unir dos campos , así como la palabra “as” se establece para indicar el alias que llevara estos campos unidos. SELECT Distinct departamento FROM empleados; La palabra “distinct” evita la repetición de campos cuando se recuperan los datos de una tabla.
  • 8. DESCRIBIR ESTRUCTURA  DESCRIBE “NOMBRE TABLA”  Por medio de la palabra reservada DESCRIBE o su versión resumida DESC es posible conocer los campos con su tipo y tamaño que corresponden a un arreglo tipo tabla. Nombre Restricción Tipo Id_empleado NOT NULL NUMBER(5) Nombre NOT NULL VARCHAR2(20) Apellido NOT NULL VARCHAR2(20)
  • 9. WHERE  SELECT *| { [DISTINCT]columna | expresión[alias], … } FROM table [WHERE condicion)(es)];  La palabra “WHERE” se emplea para restringir las filas que se retornan el empleo de la misma brinda versatilidad al poder incluir diversas condiciones. SELECT nombre, apellido FROM persona WHERE id_empleado=23;
  • 10. BETWEEN  SELECT apellido, salario  FROM empleados WHERE salario BETWEEN 100 AND 300;  Con la sentencia BETWEEN se restringe un intervalo dentro de los cuales se espera conseguir un resultado. el empleo de la misma brinda versatilidad al poder incluir diversas condiciones de validación.
  • 11. IN  SELECT apellido, salario  FROM empleados WHERE salario IN (100,200,600);  Con la sentencia IN se restringe los valores retornados únicamente a los que coincidan con los descritos en el conjunto dado por IN. La posibilidad de realizar una consulta al interior de los paréntesis de IN abre nuevas posibilidades..
  • 12. LIKE  SELECT apellido, salario  FROM empleados WHERE apellido LIKE ‘D%’;  Retorna aquellos empleados cuyo apellido inicie con “D”. Con LIKE se efectúa una consulta en campos de cadenas de caracteres. El símbolo % se emplea como comodín para representar cualquier cantidad de cadena de caracteres en la posición que se localice. Es decir si se emplea “%D%” se retornaría cualquier apellido que contenga la letra D.
  • 13. ORDER BY  SELECT apellido, salario FROM empleados ORDER BY fecha_contrato asc/desc; La sentencia ORDER BY permite efectuar un ordenamiento de los datos recuperados de la consulta(las columnas), puede ser del tipo ascendente ASC o descendente DESC, lo cual se indica al finalizar la sentencia.
  • 14. GROUP BY  SELECT id_ jefe,avg(salario) FROM empleados GROUP BY id_jefe;  La sentencia anterior retorna el promedio(avg) del salario de aquellas personas que tienen el mismo jefe. Algunos datos se desean trabajar como si se tratara de un grupo de los mismos. Con la sentencia GROUP BY se agrupan los datos y permite efectuar operaciones sobre ellos.
  • 15. HAVING  SELECT id_ jefe,max(salario) FROM empleados GROUP BY id_jefe HAVING MAX(salario)>300;  La sentencia HAVING permite efectuar consultas tipo WHERE sobre las agrupaciones de datos. En el ejemplo presentado si agrupo por el jefe, pero solo se presentaran los datos de aquellos grupos que el máximo del salario sea superior a 300.
  • 16. SUBQUERY  SELECT nombre, apellido FROM empleados WHERE sueldo> (SELECT sueldo FROM empleados WHERE apellido=‘diaz’);  La anterior se denomina “subconsulta” cuando se emplea una consulta SQL como condición a evaluar por una consulta superior. No todas las implementaciones de SQL admiten subconsultas, así como tampoco todos los gestores de bases de datos las compilan.
  • 17. DML: MANIPULACIÓN DE DATOS DML: Data manipulation laguage
  • 18. INSERT  INSERT INTO nombre_tabla (campos separados por coma) VALUES (valores para los campos, separado por comas);  La sentencia INSERT se emplea para añadir campos a una tabla. Cuando los campos son no numéricos se debe encerrar dentro de comillas simples es valor escrito para que el compilador de SQL no lo confunda con el valor de una constante. INSERT INTO empleado (nombre, apellido, sueldo) values(‘fabian’,’diaz’,300);
  • 19. INSERT – VALORES NULOS  INSERT INTO empleado(nombre, apellido) VALUES (‘fabian’,’diaz’);  Se puede insertar valores nulos por el método implícito de no nombrar el campo. INSERT INTO empleado VALUES (‘fabian’,’diaz’,NULL); Pero también se puede referenciar de forma explicita, indicando que el campo esta vacío o nulo.
  • 20. UPDATE  UPDATE empleado SET salario=100 WHERE apellido=‘diaz’;  Se emplea para modificar el contenido de los campos retornados por una consulta WHERE. Importante: Si la clausula WHERE no se coloca, toda la tabla sufrirá el cambio especificado.
  • 21. DELETE  DELETE FROM empleado WHERE apellido=‘diaz’;  Se emplea para eliminar los registros filtrados por la consulta WHERE. Importante: Si la clausula WHERE no se coloca, toda la tabla será borrada..
  • 22. DDL: DEFINICIÓN DE DATOS DDL: Data Definition Language
  • 23. CREATE  CREATE TABLE nombre_tabla (columna tipo);  Se debe especificar el nombre de la tabla junto con sus campos y el tipo de los mismos. Si es preciso eliminar la tabla solo es necesario escribir: DROP TABLE nombre_tabla CREATE TABLE empleado (id_empleado number(2), nombre varchar2(20), apellido varchar2(20), salario number(5));
  • 24. ALTER TABLE  Sobre una tabla se pueden realizar 3 tipos de alteraciones,  Adicionar ADD:  ALTER TABLE nombre_tabla ADD (nombre_columna tipo_de_dato); Modificar MODIFY: ALTER TABLE nombre_tabla MODIFY (nombre_columna tipo_de_dato);  Eliminar DROP: ALTER TABLE nombre_tabla DROP (nombre_columna);
  • 25. RESTRICCIONES : LLAVE PRIMARIA  Las restricciones se emplean para adicionarle a las tablas un control y coherencia.  La llave primaria permite garantizar la identificación única de un registro al interior de la tabla. CREATE TABLE empleado Notese que “id_pk_empleado” es el nombre de la (id_empleado number(2), llave primaria y puede ser reemplazado por nombre varchar2(20), cualquier valor. apellido varchar2(20), salario number(5), CONSTRAINT id_pk_empleado PRIMARY KEY(id_empleado));
  • 26. RESTRICCIONES : NOT NULL  Algunos campos serán obligatorios y no podrán ser creados vacíos o nulos, para lo cual se deben declarar de la siguiente forma al interior de la tabla. CREATE TABLE empleado (id_empleado number(2), nombre varchar2(20) NOT NULL, apellido varchar2(20), salario number(5)); Mas de un campo puede ser declarado con NOT NULL, incluso todos.
  • 27. RESTRICCIONES : UNIQUE  La llave primaria permite identificar un campo de manera única al interior de una tabla y se emplea para referenciarlo, pero existen otros campos que se desea no tener duplicados, aunque no se empleen como referencia. Estos campos se crean como únicos. CREATE TABLE empleado (id_empleado number(2), nombre varchar2(20) NOT NULL, apellido varchar2(20), salario number(5), “No se emplean para identificación como la llave primaria.” email varchar2(20),CONSTRAINT emp_email_unico UNIQUE(email));
  • 28. RESTRICCIONES : LLAVE FORANEA  La llave foránea hace referencia a un campo que coincide con la llave primaria de otra tabla. Se emplea para crear relaciones de dependencia entre tablas. CREATE TABLE empleado (id_empleado number(2), nombre varchar2(20), “El campo id_departamento hace referencia a la apellido varchar2(20), tabla departamento que tiene un campo con el salario number(5), mismo nombre.” id_departamento number(2), email varchar2(20),CONSTRAINT emp_dep_fk (id_departamento) REFERENCES departamento (id_departamento));
  • 29. RESTRICCIONES : ADICIONAR/ELIMINAR  ALTER TABLE empleado ADD CONSTRAINT emp_direc FOREIGN KEY(jefe_id) REFERENCES empleado (id_empleado) ALTER TABLE empleado DROP CONSTRAINT emp_direc “Todas las restricciones se pueden agregar o eliminar empleando el mismo método”.
  • 30. ÍNDICES  Los índices se emplean para agilizar las consultas sobre los campos , ahorrando tiempo de procesamiento al gestor de base de datos. CREATE INDEX nombre_índice ON nombre_tabla(nombre_campo); CREATE INDEX nombre_emp ON empleado(nombre); “Se pueden tener tantos índices como campos tenga la tabla, todo depende de las necesidades propias del desarrollador”.