0% encontró este documento útil (0 votos)
67 vistas27 páginas

Guía SQL Básico - Giménez

Cargado por

nokia2nokia
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
67 vistas27 páginas

Guía SQL Básico - Giménez

Cargado por

nokia2nokia
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 PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 27

GUIA SQL

BASICO
Por : JESICA GIMENEz

BASE DE DATOS
EN ESTA GUIA APRENDERAS TODO LO
BASICO PARA PODER COMENZAR A
REALIZAR CONSULTAS CON SQL.

TE EXPLICO DESDE COMO CREAR UNA


BASE DE DATOS, CREAR TABLAS,
REALIZAR CONSULTAS,
ACTUALIZACIONES, INSERTAR DATOS
Y BORRARLOS, HASTA COMO
REALIZAR MODIFICACIONES DE
ESQUEMA.

CUENTA ADEMAS CON VARIOS


EJERCICIOS Y SU
EXPLICACIÓN PARA QUE PUEDAS
REAIZARLOS DE FORMA SENCILLA.

¡ASI QUE COMENCEMOS!

Por : JESICA GIMENEz


¿QUE ES SQL?

SQL (STRUCTURED QUERY LANGUAGE) ES UN


LENGUAJE DE CONSULTAS UTILIZADO PARA
ADMINISTRAR Y MANIPULAR BASES DE DATOS
RELACIONALES. FUE DESARROLLADO
ORIGINALMENTE POR IBM EN LA DÉCADA DE 1970
Y SE HA CONVERTIDO EN UN ESTÁNDAR PARA
INTERACTUAR CON SISTEMAS DE GESTIÓN DE
BASES DE DATOS (DBMS) RELACIONALES.

SQL SE UTILIZA PARA REALIZAR DIVERSAS TAREAS


EN UNA BASE DE DATOS, COMO LA CREACIÓN,
MODIFICACIÓN Y ELIMINACIÓN DE TABLAS, LA
INSERCIÓN, ACTUALIZACIÓN Y ELIMINACIÓN DE
REGISTROS, Y LA CONSULTA Y RECUPERACIÓN DE
DATOS. PERMITE A LOS USUARIOS DEFINIR LA
ESTRUCTURA DE UNA BASE DE DATOS,
ESPECIFICAR LAS RELACIONES ENTRE LAS TABLAS
Y REALIZAR OPERACIONES COMPLEJAS DE
FILTRADO, ORDENAMIENTO Y AGRUPAMIENTO DE
DATOS.

Por : JESICA GIMENEz


EL LENGUAJE SQL CONSTA DE DIFERENTES
TIPOS DE INSTRUCCIONES, QUE SE DIVIDEN EN
LAS SIGUIENTES CATEGORÍAS PRINCIPALES:

DDL (DATA DEFINITION LANGUAGE): ESTAS


INSTRUCCIONES SE UTILIZAN PARA DEFINIR Y
MODIFICAR LA ESTRUCTURA DE LA BASE DE
DATOS. ALGUNAS DE LAS INSTRUCCIONES
DDL MÁS COMUNES SON CREATE (PARA
CREAR TABLAS Y OTROS OBJETOS), ALTER
(PARA MODIFICAR LA ESTRUCTURA DE LA
BASE DE DATOS) Y DROP (PARA ELIMINAR
OBJETOS DE LA BASE DE DATOS).

DML (DATA MANIPULATION LANGUAGE):


ESTAS INSTRUCCIONES SE UTILIZAN PARA
MANIPULAR LOS DATOS EN LA BASE DE
DATOS. LAS INSTRUCCIONES MÁS COMUNES
SON INSERT (PARA INSERTAR NUEVOS
REGISTROS), UPDATE (PARA ACTUALIZAR
REGISTROS EXISTENTES) Y DELETE (PARA
ELIMINAR REGISTROS).

Por : JESICA GIMENEz


DQL (DATA QUERY LANGUAGE): ESTAS
INSTRUCCIONES SE UTILIZAN PARA
CONSULTAR Y RECUPERAR DATOS DE LA
BASE DE DATOS. LA INSTRUCCIÓN SELECT ES
LA MÁS UTILIZADA EN ESTA CATEGORÍA Y
PERMITE ESPECIFICAR QUÉ COLUMNAS Y
REGISTROS DESEAS RECUPERAR, ASÍ COMO
APLICAR CONDICIONES Y FILTROS.

DCL (DATA CONTROL LANGUAGE): ESTAS


INSTRUCCIONES SE UTILIZAN PARA
ADMINISTRAR LOS PERMISOS Y LA
SEGURIDAD DE LA BASE DE DATOS.
INCLUYEN INSTRUCCIONES COMO GRANT
(PARA OTORGAR PRIVILEGIOS A LOS
USUARIOS) Y REVOKE (PARA REVOCAR
PRIVILEGIOS).

Por : JESICA GIMENEz


¿COMO CREAR UNA BASE DE DATOS EN SQL?

VAMOS A CREAR UNA BASE DE DATOS


ACADEMICA LO PRIMERO QUE DEBEMOS HACER
ES IR A LA BARRA DE HERRAMIENTAS DE SQL
SERVER Y PRESIONAR EN NEW QUERY.

LUEGO EN LA NUEVA HOJA QUE SE NOS ABRE


VAMOS A ESCRIBIR LA SIGUIENTE SENTENCIA
SQL:

CREATE DATABASE ACADEMICA;

CON ESTA SENTENCIA SE CREA LA BASE DE


DATOS ACADEMICA.

Por : JESICA GIMENEz


¿COMO CREAMOS UNA TABLA EN SQL?

AHORA VAMOS AGREGAR A ESTA BASE DE


DATOS ACADEMICA UNA TABLA ALUMNOS.

VAMOS A ESCRIBIR LA SIGUIENTE SENTENCIA:

USE ACADEMICA

CON ESTA SENTENCIA LLAMAMOS A LA BASE DE


DATOS QUE CREAMOS

LUEGO CREAMOS LA NUEVA TABLA CON EL


SIGUIENTE CODIGO SQL:

CREATE TABLE ALUMNOS


(ID INT IDENTITY PRIMARY KEY, NOMBRE
VARCHAR(50),APELLIDO
VARCHAR(50),FECHA_NAC DATE,CANTIDAD INT)

EN ESTA TABLA TENEMOS UN ID QUE CON LA


SENTENCIA IDENTITY VA SER AUTO
INCREMENTAL INT QUE ES UN NUMERO ENTERO
Y PRIMARY KEY VA SER EL IDENTIFICADOR
UNICO DE CADA REGISTRO DE LA TABLA,
NOMBRE Y APELLIDO CON TIPO DE DATO TEXTO
QUE ES VARCHAR Y FECHA_NAC DE TIPO FECHA
DATE.

Por : JESICA GIMENEz


INSERTAMOS, ACTUALIZAMOS Y ELIMINAMOS

AHORA VEAMOS COMO PODEMOS INSERTAR


DATOS EN NUESTRA TABLA:

INSERT INTO ALUMNOS


(NOMBRE,APELLIDO,FECHA_NAC,CANTIDAD)
VALUES ('JOSE','PEREZ','01/02/1985',5)

USAMOS LA SENTECIA INSERT INTO PARA DECIR


QUE VAMOS INSERTAR UN VALOR LUEGO VA EL
NOMBRE DE LA TABLA ALUMNOS Y ENTRE
PARENTESIS LOS NOMBRES DE LOS CAMPOS
(NOMBRE,APELLIDO,FECHA_NAC) COMO VERAN
NO COLOCAMOS EL CAMPO ID PORQUE ES
AUTOINCREMENTAL Y SE VA CARGAR SOLO.
LUEGO PONEMOS LA PALABRA CLAVE VALUES Y
ENTRE PARENTESIS LOS VAORES QUE
QUEREMOS CARGAR EN LA TABLA.

PARA ACTUALIZAR O CAMBIAR ALGUNA DE LA


INFORMACION QUE AGREGAMOS UTILIZAMOS:

UPDATE ALUMNOS
SET FECHA_NAC='03/04/1980'
WHERE ID=1;

Por : JESICA GIMENEz


EN ESTE EJEMPLO ACTAULIZAMOSUSANDO LA
PALABRA CLAVE UPDATE PONEMOS EL
NOMBRE DE LA TABLA, SET ES EL VALOR QUE
QUEREMOS ACTUALIZAR EN ESTE CASO LA
FECHA DE NACIMIENTO Y USAMOS WHERE
PARA FILTRAR QUE LA MODIFICACION SE
REALICE EN EL ID NRO 1 QUE ES EL REGISTRO
QUE CARGAMOS CON EL INSERT ANTERIOR.

EN CASO DE QUERER ELIMINAR UN REGISTRO


UTILIZAMOS LA CLAUSULA:

DELETE FROM ALUMNOS


WHERE ID=1;

CON ESTA SENTENCIA BORRAMOS DE LA TABLA


ALUMNOS EL REGISTRO CON ID 1.

EN CASO DE QUERER BORRAR TODOS LOS


REGISTROS DE LA TABLA UTILIZAMOS:

DELETE FROM ALUMNOS


COMO NO QUEREMOS FILTRAR POR NINGUN
REGISTRO EN PARTICULAR NO UTILIZAMOS EL
WHERE.

DBCC CHECKIDENT(ALUMNOS,RESEED,0)

ESTA SENTENCIA RESETEA EL ID


AUTOINCREMENTAL DE LA TABLA.

Por : JESICA GIMENEz


CONSULTA SELECT SQL

LA CLÁUSULA SELECT EN SQL SE UTILIZA PARA


RECUPERAR DATOS DE UNA O MÁS TABLAS EN
UNA BASE DE DATOS. ES UNA DE LAS
DECLARACIONES MÁS COMUNES EN SQL Y SE
UTILIZA PRINCIPALMENTE PARA CONSULTAR
DATOS.

SELECT: ESPECIFICA LAS COLUMNAS QUE


DESEAS SELECCIONAR EN LA CONSULTA.
PUEDES SELECCIONAR COLUMNAS
ESPECÍFICAS SEPARÁNDOLAS POR COMAS O
USAR EL ASTERISCO (*) PARA SELECCIONAR
TODAS LAS COLUMNAS DE LA TABLA.

FROM: INDICA LA TABLA O TABLAS DE LAS


CUALES DESEAS SELECCIONAR LOS DATOS.
PUEDES SELECCIONAR UNA O VARIAS
TABLAS SEPARÁNDOLAS POR COMAS.

WHERE: OPCIONALMENTE, PUEDES AGREGAR


UNA CONDICIÓN PARA FILTRAR LOS DATOS
BASÁNDOTE EN CIERTOS CRITERIOS. SOLO
SE SELECCIONARÁN LAS FILAS QUE
CUMPLAN CON LA CONDICIÓN
ESPECIFICADA.

Por : JESICA GIMENEz


REALICEMOS UNA CONSULTA BASICA QUE
TRAIGA LOS DATOS DE NUESTRA BASE
ALUMNOS:

SELECT * FROM ALUMNOS;

AHORA VAMOS A REALIZAR UNA CONSULTA


QUE ME TRAIGA TODOS LOS DATOS DE
ALUMNOS CUYO NOMBRE SEA 'JOSE':

SELECT * FROM ALUMNOS WHERE


NOMBRE='JOSE';

SI QUEREMOS TRAER REGISTROS ÚNICOS DE


UNA COLUMNA UTILIZAMOS LA CLAUSULA
DISTINCT:

SELECT DISTINCT(NOMBRE) FROM ALUMNOS;

PARA ORDENAR LOS REGISTROS EN ORDEN


ASCENDENTE POR NOMBRE USAMOS:

SELECT * FROM ALUMNOS ORDER BY NOMBRE


ASC;

PARA ORDENAR LOS REGISTROS EN ORDEN


DESCENDENTE POR NOMBRE USAMOS:

SELECT * FROM ALUMNOS ORDER BY NOMBRE


DESC;

Por : JESICA GIMENEz


PARA LIMITAR LA CANTIDAD DE REGISTROS
QUE QUEREMOS QUE NOS DEVUELVA LA
CONSULTA UTILIZAMOS TOP():

SELECT TOP(10) * FROM ALUMNOS ;

CONTAMOS EL NÚMERO TOTAL DE REGISTROS


DE LA TABLA:

SELECT COUNT(*) FROM ALUMNOS;

SUMAMOS LOS VALORES DE UNA COLUMNA.

SELECT SUM(CANTIDAD) FROM ALUMNOS;

CALCULA EL PROMEDIO DE LOS VALORES DE


UNA COLUMNA:

SELECT AVG(CANTIDAD) FROM ALUMNOS;

ENCUENTRA EL VALOR MÍNIMO DE UNA


COLUMNA.

SELECT MIN(CANTIDAD) FROM ALUMNOS;

ENCUENTRA EL VALOR MÁXIMO DE UNA


COLUMNA.

SELECT MAX(CANTIDAD) FROM ALUMNOS;

Por : JESICA GIMENEz


AHORA VAMOS A CREAR UNA NUEVA TABLA EN
LA BASE DE DATOS:

CREATE TABLE CLASES


(ID_CLASES INT IDENTITY PRIMARY KEY,
NOMBRE_CLASE VARCHAR(50),HORARIO
TIME,ID_ALUMNOS INT, FOREIGN KEY
(ID_ALUMNOS) REFERENCES ALUMNOS(ID))

ESTA NUEVA TABLA CLASES TIENE UN ID UNICO


DE CLASE, NOMBRE DE CLASE TIPO
TEXTO,HORARIO DE LAS CLASES DE TIPO TIME
Y UN ID_ALUMNOS TIPO CLAVE FORANEA QUE
NOS VA SERVIR PARA RELACIONAR LOS
ALUMNOS CON LA TABLA DE CLASES.

INSERTAMOS VARIOS DATOS EN LA TABLA:

INSERT INTO CLASES


(NOMBRE_CLASE,HORARIO,ID_ALUMNOS)
VALUES ('MATEMATICA 1','09:00',1),
('LITERATURA','11:00',1)

UNA VEZ QUE YA TENEMOS ESTOS DATOS


INSERTADOS PASEMOS A LA SIGUIENTE ETAPA
QUE ES REALIZAR CONSULTAS CON MAS DE
UNA TABLA.

Por : JESICA GIMENEz


COMBINAMOS REGISTROS DE DOS TABLAS
BASADO EN UNA COLUMNA EN COMÚN:

SELECT
A.NOMBRE,A.APELLIDO,C.NOMBRE_CLASE,C.HOR
ARIO FROM ALUMNOS AS A INNER JOIN CLASES
AS C ON A.ID = C.ID_ALUMNOS;

LA CLAUSULA INNER JOIN NOS VA DEVOLVER


SOLO LOS VALORES DONDE LOS ID REALICEN
MATCH OSEA COINCIDAN.

UTILICEMOS LA SENTENCIA RIGHT JOIN:

SELECT
A.NOMBRE,A.APELLIDO,C.NOMBRE_CLASE,C.HOR
ARIO FROM ALUMNOS AS A RIGHT JOIN CLASES
AS C ON A.ID = C.ID_ALUMNOS;

LA CLAUSULA RIGHT JOIN NOS VA DEVOLVER


IGUAL QUE EL INNER JOIN LOS VALORES QUE
COINCIDAN, PERO TAMBIEN LOS QUE SE
ENCUENTRAN EN LA TABLA QUE ESTA MAS A
LA DERECHA AUNQUE NO COINCIDAN.
EN ESTE CASO LA TABLA QUE ESTA MAS A LA
DERECHA ES LA QUE SE ENCUENTRA DESPUES
DE LA PALABRA JOIN.

Por : JESICA GIMENEz


UTILICEMOS LA SENTENCIA LEFT JOIN:

SELECT
A.NOMBRE,A.APELLIDO,C.NOMBRE_CLASE,C.HOR
ARIO FROM ALUMNOS AS A LEFT JOIN CLASES
AS C ON A.ID = C.ID_ALUMNOS;

LA CLAUSULA LEFT JOIN NOS VA DEVOLVER


IGUAL QUE EL INNER JOIN LOS VALORES QUE
COINCIDAN, PERO TAMBIEN LOS QUE SE
ENCUENTRAN EN LA TABLA QUE ESTA MAS A
LA IZQUIERDA AUNQUE NO COINCIDAN.
EN ESTE CASO LA TABLA QUE ESTA MAS A LA
IZQUIERDA ES LA QUE SE ENCUENTRA DESPUES
DE LA PALABRA FROM.

UTILICEMOS LA SENTENCIA FULL OUTER JOIN:

SELECT
A.NOMBRE,A.APELLIDO,C.NOMBRE_CLASE,C.HOR
ARIO FROM ALUMNOS AS A FULL OUTER JOIN
CLASES AS C ON A.ID = C.ID_ALUMNOS;

LA SENTENCIA FULL OUTER JOIN NOS VA


TRAER TODO DE AMBAS TABLAS TANTO SI
COINCIDEN LOS DATOS DE LAS COLUMNAS
QUE USAMOS PRA CRUZAR LA INFORMACION
COMO SI NO COINCIDEN.

Por : JESICA GIMENEz


CLAUSULAS GROUP BY Y HAVING

LA CLÁUSULA GROUP BY SE UTILIZA EN SQL


PARA AGRUPAR FILAS EN BASE A UN
DETERMINADO CRITERIO. POR OTRO LADO, LA
CLÁUSULA HAVING SE UTILIZA PARA FILTRAR
LOS RESULTADOS DE UNA CONSULTA
DESPUÉS DE HABER APLICADO LA CLÁUSULA
GROUP BY.

SELECT NOMBRE_CLASE, COUNT(*) AS


TOTAL_CLASES FROM CLASES GROUP BY
NOMBRE_CLASE

ESTO DEVOLVERÁ UNA FILA POR CADA CLASE


CON EL NOMBRE DE LA CLASE Y EL NÚMERO
TOTAL DE CLASES.

CLAUSULA LIKE

SIRVE PARA SELECCIONAR REGISTROS QUE


CONTENGAN UN VALOR ESPECÍFICO EN UNA
COLUMNA:

Por : JESICA GIMENEz


%: EL CARÁCTER % SE UTILIZA COMO COMODÍN
PARA REPRESENTAR CUALQUIER SECUENCIA DE
CARACTERES (CERO, UNO O MÁS CARACTERES).
POR EJEMPLO, SI QUIERES ENCONTRAR TODOS
LOS NOMBRES QUE COMIENZAN CON "J",
PUEDES USAR EL SIGUIENTE PATRÓN:

SELECT * FROM ALUMNOS WHERE NOMBRE


LIKE 'J%'

_: EL CARÁCTER _ SE UTILIZA COMO COMODÍN


PARA REPRESENTAR UN SOLO CARÁCTER. POR
EJEMPLO, SI QUIERES ENCONTRAR TODOS LOS
NOMBRES QUE TIENEN TRES LETRAS Y LA
SEGUNDA LETRA ES UNA "O", PUEDES USAR EL
SIGUIENTE PATRÓN:

SELECT * FROM ALUMNOS WHERE NOMBRE


LIKE '_O_'

[]: LOS CORCHETES SE UTILIZAN PARA


ESPECIFICAR UN RANGO DE CARACTERES. POR
EJEMPLO, SI QUIERES ENCONTRAR TODOS LOS
NOMBRES QUE COMIENZAN CON UNA VOCAL,
PUEDES USAR EL SIGUIENTE PATRÓN:

SELECT * FROM ALUMNOS WHERE NOMBRE


LIKE '[AEIOU]%'

Por : JESICA GIMENEz


[^]: EL SÍMBOLO ^ DENTRO DE LOS CORCHETES
SE UTILIZA PARA NEGAR UN RANGO DE
CARACTERES. POR EJEMPLO, SI QUIERES
ENCONTRAR TODOS LOS NOMBRES QUE NO
COMIENCEN CON UNA VOCAL, PUEDES USAR
EL SIGUIENTE PATRÓN:

SELECT * FROM ALUMNOS WHERE NOMBRE


LIKE '[^AEIOU]%'

MODIFICAMOS EL ESQUEMA DE UNA TABLA

MODIFICA UNA TABLA EXISTENTE, AGREGANDO


UNA COLUMNA.

ALTER TABLE ALUMNOS ADD EDAD INT;

ELIMINAMOS UNA COLUMNA DE UNA TABLA


EXISTENTE:

ALTER TABLE ALUMNOS DROP COLUMN EDAD;

PARA BORRAR UNA TABLA COMPLETA


UTILIZAMOS:

DROP TABLE ALUMNOS;

Por : JESICA GIMENEz


CONCATENA DOS COLUMNAS EN UNA
CONSULTA:

SELECT CONCAT(NOMBRE, APELLIDO) FROM


ALUMNOS;

RENOMBRA UNA TABLA EXISTENTE:

ALTER TABLE ALUMNOS RENAME TO


NUEVO_NOMBRE;

SELECCIONA REGISTROS QUE TENGAN UN


VALOR NULO EN UNA COLUMNA:

SELECT * FROM ALUMNOS WHERE APELLIDO IS


NULL;

SELECCIONA REGISTROS QUE NO TENGAN UN


VALOR NULO EN UNA COLUMNA.

SELECT * FROM ALUMNOS WHERE APELLIDO IS


NOT NULL;

CALCULA LA DIFERENCIA ENTRE UNA FECHA DE


NACIMIENTO Y EL DIA DE HOY:

SELECT DATEDIFF(YEAR,'14/03/1990',GETDATE())

Por : JESICA GIMENEz


CALCULAR LA LONGITUD DE UNA CADENA:

SELECT LENGTH(NOMBRE) FROM ALUMNOS;

CONVERTIR UNA CADENA EN MINÚSCULAS:

SELECT LOWER(NOMBRE) FROM ALUMNOS;

CONVERTIR UNA CADENA EN MAYÚSCULAS:

SELECT UPPER(NOMBRE) FROM ALUMNOS;

CALCULAR EL VALOR ABSOLUTO DE UNA


COLUMNA NUMÉRICA:

SELECT ABS(CANTIDAD) FROM ALUMNOS;

CALCULAR LA RAÍZ CUADRADA DE UNA


COLUMNA NUMÉRICA:

SELECT SQRT(CANTIDAD) FROM ALUMNOS;

CALCULAR EL VALOR REDONDEADO DE UNA


COLUMNA NUMÉRICA:

SELECT ROUND(CANTIDAD, 2) FROM ALUMNOS;

Por : JESICA GIMENEz


CALCULAR EL VALOR MÁS CERCANO ENTERO
INFERIOR DE UNA COLUMNA NUMÉRICA:

SELECT FLOOR(CANTIDAD) FROM ALUMNOS;

CALCULAR EL VALOR MÁS CERCANO ENTERO


SUPERIOR DE UNA COLUMNA NUMÉRICA:

SELECT CEILING(CANTIDAD) FROM ALUMNOS;

CALCULAR LA MEDIANA DE UNA COLUMNA


NUMÉRICA:

SELECT PERCENTILE_CONT(0.5) WITHIN GROUP


(ORDER BY CANTIDAD) FROM ALUMNOS;

CALCULAR EL RANGO DE UNA COLUMNA


NUMÉRICA:

SELECT MAX(CANTIDAD) - MIN(CANTIDAD)


FROM ALUMNOS;

CALCULAR LA DESVIACIÓN ESTÁNDAR DE UNA


COLUMNA NUMÉRICA.

SELECT STDDEV(CANTIDAD) FROM ALUMNOS;

Por : JESICA GIMENEz


MAS EJEMPLOS PARA PRACTICAR:

SELECCIONAR REGISTROS QUE ESTÉN


PRESENTES EN UNA LISTA DE VALORES:

SELECT COLUMNA FROM TABLA WHERE


COLUMNA IN (VALOR1, VALOR2, VALOR3);

SELECCIONAR REGISTROS QUE NO ESTÉN


PRESENTES EN UNA LISTA DE VALORES:

SELECT COLUMNA FROM TABLA WHERE


COLUMNA NOT IN (VALOR1, VALOR2, VALOR3);

REALIZAR UNA UNIÓN DE RESULTADOS DE


MÚLTIPLES CONSULTAS:

SELECT COLUMNA FROM TABLA1


UNION
SELECT COLUMNA FROM TABLA2;

CONTAR EL NÚMERO DE REGISTROS EN CADA


GRUPO Y ORDENARLOS:

SELECT COLUMNA, COUNT(*) AS CANTIDAD


FROM TABLA GROUP BY COLUMNA ORDER BY
CANTIDAD DESC;

Por : JESICA GIMENEz


CALCULAR EL PROMEDIO AGRUPADO POR UNA
COLUMNA Y FILTRAR LOS RESULTADOS:

SELECT COLUMNA1, AVG(COLUMNA2) FROM


TABLA GROUP BY COLUMNA1 HAVING
AVG(COLUMNA2) > VALOR;

SELECCIONAR REGISTROS QUE COINCIDAN


CON UNA FECHA ESPECÍFICA:

SELECT COLUMNA FROM TABLA WHERE


DATE(COLUMNA) = 'FECHA';

SELECCIONAR REGISTROS QUE COINCIDAN


CON UN MES O AÑO ESPECÍFICO:

SELECT COLUMNA FROM TABLA WHERE


MONTH(COLUMNA) = MES AND
YEAR(COLUMNA) = AÑO;

CALCULAR EL TOTAL AGRUPADO POR UNA


COLUMNA Y ORDENAR LOS RESULTADOS:

SELECT COLUMNA, SUM(COLUMNA2) AS TOTAL


FROM TABLA GROUP BY COLUMNA ORDER BY
TOTAL DESC;

Por : JESICA GIMENEz


CREACION DE UN PROCEDIMIENTO
ALMACENADO:

CREATE PROCEDURE INSERTARALUMNOS


@NOMBRE VARCHAR(50),
@APELLIDO VARCHAR(50)
AS
BEGIN
INSERT INTO ALUMNOS (NOMBRE,
APELLIDO)
VALUES (@NOMBRE, @APELLIDO)
END

-- LLAMADA AL PROCEDIMIENTO ALMACENADO


EXEC INSERTARALUMNOS 'JUAN', 'GOMEZ';

CREAMOS UN PROCEDIMIENTO ALMACENADO


AL QUE LE PASAMOS DOS PARAMETROS DE
ENTRADA NOMBRE Y APELLIDO PARA QUE LOS
CARGUE EN LA TABLA DE ALUMNOS, AHORA
CADA VEZ QUE QUERAMOS CARGAR UN NUEVO
ALUMNO YA NO TENEMOS QUE UTILIZAR LA
SENTENCIA INSERT, LLAMAMOS AL
PROCEDIMIENTO Y LE PASAMOS LOS VALORES
QUE QUEREMOS INGRESAR

Por : JESICA GIMENEz


EJEMPLO DE CREACIÓN DE UNA FUNCION
ESCALAR:

CREATE FUNCTION
OBTENERDESCUENTO(@PRECIO DECIMAL(10,2))
RETURNS DECIMAL(10,2)
AS
BEGIN
DECLARE @DESCUENTO DECIMAL(10,2)
IF @PRECIO >= 100
SET @DESCUENTO = @PRECIO * 0.1
ELSE
SET @DESCUENTO = 0
RETURN @DESCUENTO
END

-- USO DE LA FUNCIÓN ESCALAR


SELECT DBO.OBTENERDESCUENTO(120) AS
DESCUENTO;

CREAMOS UNA FUNCION ESCALAR DESCUENTO


A LA QUE LEPASAMOS COMO PARAMETRO 120 Y
TENEMOS UNA CONDICION IF QUE SI EL VALOR
QUE PASAMOS ES MAYOR A 100 NOS DEVUELVE
EL VALOR DE DESCUENTO QUE SE REALIZA, SI
ES MENOR A 100 NO SE REALIZA DESCUENTO.

Por : JESICA GIMENEz


CREAMOS UN TRIGGER:

SUPONGAMOS QUE TENEMOS DOS TABLAS: "VENTAS" Y


"REGISTROVENTAS". QUEREMOS QUE CADA VEZ QUE SE INSERTE UNA
NUEVA FILA EN LA TABLA "VENTAS", SE REGISTRE LA INFORMACIÓN
EN LA TABLA "REGISTROVENTAS". PARA LOGRAR ESTO, PODEMOS
UTILIZAR UN TRIGGER:

-- CREAMOS LA TABLA
CREATE TABLE VENTAS (
ID INT IDENTITY(1,1) PRIMARY KEY,
FECHA DATE,
MONTO DECIMAL(10,2),
DESCRIPCION VARCHAR(100)
)

CREATE TABLE REGISTROVENTAS (


ID INT IDENTITY(1,1) PRIMARY KEY,
FECHAREGISTRO DATETIME,
MONTO DECIMAL(10,2),
DESCRIPCION VARCHAR(100)
)

-- CREAMOS EL TRIGGER
CREATE TRIGGER INSERTARREGISTROVENTAS
ON VENTAS
AFTER INSERT
AS
BEGIN

-- INSERTAMOS LOS NUEVOS REGISTROS EN LA TABLA


REGISTROVENTAS

INSERT INTO REGISTROVENTAS (FECHAREGISTRO, MONTO,


DESCRIPCION)
SELECT GETDATE(), I.MONTO, I.DESCRIPCION
FROM INSERTED AS I
END

Por : JESICA GIMENEz


¡MUCHAS GRACIAS
POR TU
COLABORACIÓN!

POR DUDAS O CONSULTAS


COMUNICARSE POR MAIL A
[email protected]

También podría gustarte