Sei sulla pagina 1di 38

SQL AVANZADO

Parte I
BDEJEMPLO
CREATE DATABASE BDEJEMPLO;
USE BDEJEMPLO;
ASIGNACION DE NOMBRES A LOS
OBJETOS DE LA B.D.
ASIGNACION DE NOMBRES A LOS
OBJETOS DE LA B.D.
CREACION DE ESQUEMAS
 Todos los objetos dentro de una base de datos, se crean dentro de
un esquema. Los esquemas permiten agrupar objetos y ofrecer
seguridad.

USE BDEJEMPLO;
-- CREAR LOS ESQUEMAS DE LA BASE DE DATOS
CREATE SCHEMA TUTORIA AUTHORIZATION DBO;
GO
CREATE SCHEMA REGISTRO AUTHORIZATION DBO;
GO
CREACION DE ESQUEMAS
OPERADORES
 Operadores aritméticos
OPERADORES
 Operadores de asignacion
OPERADORES
 Operadores de comparación
OPERADORES
 Operadores lógicos
OPERADORES
USE BDEJEMPLO
GO
SELECT E.NOMBRE ‘ESTUDIANTE',
A.NOMBRE ‘APODERADO'
FROM TUTORIA.ESTUDIANTE E
INNER JOIN TUTORIA.APODERADO A ON E.ID =
A.ID_ALUMNO
WHERE E.ID ANY (SELECT A.ID_ALUMNO FROM
TUTORIA.APODERADO)
ORDER BY E.NOMBRE
GO
OPERADORES
 Operador like
OPERADORES
USE BDEJEMPLO
GO

-- RETORNA LOS REGISTROS DE LOS APODERADOS DONDE SU NOMBRE TENGA


COMO SEGUNDA LETRA A

SELECT * FROM TUTORIA.APODERADO A


WHERE A.NOMBRE LIKE ‘_A%'
GO

-- RETORNA LOS REGISTROS DE LOS ESTUDIANTES DONDE SU NOMBRE INICIE CON


LETRAS DE LA JA LA P

SELECT * FROM TUTORIA.ESTUDIANTE E


WHERE E.NOMBRE LIKE ‘[J-P]%'
GO
FUNCIONES PREDEFINIDAS
 Funciones para el manejo de fechas
FUNCIONES PREDEFINIDAS
 Funciones para el manejo de fechas

DECLARE @FECHA DATE = ‘20-08-2018'


SELECT 'YEAR‘ as ‘PERIODO’ , DATEADD(YEAR,1,@FECHA)as ‘NUEVA
FECHA’
UNION ALL
SELECT 'QUARTER',DATEADD(QUARTER,1,@FECHA)
UNION ALL
SELECT 'MONTH',DATEADD(MONTH,1,@FECHA)
UNION ALL
SELECT 'DAY',DATEADD(DAY,1,@FECHA)
UNION ALL
SELECT 'WEEK',DATEADD(WEEK,1,@FECHA)
GO
FUNCIONES PREDEFINIDAS
 Funciones para el manejo de fechas
FUNCIONES PREDEFINIDAS
 Funciones para el manejo de fechas

SET DATEFORMAT DMY

DECLARE @FECHAINICIAL DATE = '01-08-2018';


DECLARE @FECHAFINAL DATE = '01-09-2018';

SELECT DATEDIFF(DAY, @FECHAINICIAL,@FECHAFINAL)


AS 'DURACION'
FUNCIONES PREDEFINIDAS
 Funciones para el manejo de fechas
FUNCIONES PREDEFINIDAS
 Funciones para el manejo de fechas
FUNCIONES PREDEFINIDAS
 Funciones para el manejo de cadenas
FUNCIONES PREDEFINIDAS
 Funciones para el manejo de cadenas
FUNCIONES PREDEFINIDAS
 Funciones para el manejo de cadenas
FUNCIONES PREDEFINIDAS
 Funciones para el manejo de cadenas

-- MANEJO DE CADENAS: RETORNA LA EXPRESION BASE CONVERTIDA EN


--MAYÚSCULAS

DECLARE @CADENA VARCHAR(30)


SELECT @CADENA = ‘ SQL AVANZADO ';
SELECT LEFT(UPPER(LTRIM(@CADENA)),3) AS 'CADENA RESULTANTE'
GO
FUNCIONES PREDEFINIDAS
 Funciones de conversión
FUNCIONES PREDEFINIDAS
 Funciones de conversión

USE BDEJEMPLO
GO
SELECT CAST(M.NOMBRE AS CHAR(10)) AS NOMBRE,
CONVERT(DECIMAL(10,2),VALOR) AS 'PRECIO'
FROM REGISTRO.MATERIA M
WHERE NOMBRE LIKE ‘_[I-S]%';
GO
COMANDOS LMD (Lenguaje de
manipulación de datos)
 Insertar datos
COMANDOS LMD (Lenguaje de
manipulación de datos)
 Insertar datos con todos los campos especificados

USE BDOTRO
GO
INSERT INTO CLIENTES(IDCLIENTE,NOMCLIENTE,
DIRCLIENTE,
IDPAIS, FONOCLIENTE)
VALUES ('DRATR', 'DARIO TORREZ', 'CALLE MURILLO 123',
'003', '3245566');
GO
SELECT * FROM CLIENTES
GO
COMANDOS LMD (Lenguaje de
manipulación de datos)
 Insertar datos especificando solo los valores

USE BDOTRO
GO
INSERT INTO VENTA.CLIENTES
VALUES ('DRAPR', 'DARIO PRADO', 'CALLE 32', '001',
'3245566');
GO
SELECT * FROM VENTA.CLIENTES
GO
COMANDOS LMD (Lenguaje de
manipulación de datos)
 Insertar varias filas en una tabla

USE BDEJEMPLO
GO
INSERT INTO REGISTRO.INSCRITO
VALUES (‘6', ‘11‘, ‘05478‘), (‘7', ‘21‘, ‘02145‘), (‘8', ‘41‘,
‘03547‘);
GO
SELECT * FROM REGISTRO.INSCRITO I
WHERE I.ID IN (‘6',’7',’8')
GO
COMANDOS LMD (Lenguaje de
manipulación de datos)
 Insertar varios registros utilizando SELECT

USE BDEJEMPLO
GO
CREATE TABLE REGISTRO.CURSO4(
COD VARCHAR(3)NOTNULL,
NOMBRE VARCHAR(15),
FECHA_INICIO DATE,
VALOR DOUBLE);
GO
COMANDOS LMD (Lenguaje de
manipulación de datos)
 Insertar varios registros utilizando SELECT

INSERT INTO REGISTRO.CURSO4


SELECT C.COD, C.NOMBRE, C.FECHA_INICIO, C.VALOR
FROM REGISTRO.CURSO C
WHERE MONTH(C.FECHA_INICIO) = 4
GO
SELECT * FROM REGISTRO.CURSO4
GO
COMANDOS LMD (Lenguaje de
manipulación de datos)
 Insertar datos en una variable tabla
USE BDEJEMPLO;
GO
-- CREA UNA VARIABLE TIPO TABLA
DECLARE @MATERIA TABLE(
COD MAT VARCHAR(3)NOTNULL,
NOMMAT VARCHAR(15),
VALMAT DOUBLE,
);
GO
COMANDOS LMD (Lenguaje de
manipulación de datos)
 Insertar datos en una variable tabla
-- INSERTA VALORES DENTRO DE LA VARIABLE TIPO TABLA

INSERT INTO @MATERIA (CODMAT,NOMMAT,VALMAT)


SELECT COD,NOMBRE,VALOR
FROM REGISTRO.CURSO
WHERE VALOR > =3000;
--VER EL CONJUNTO DE VALORES DE LA VARIABLE TIPO
TABLA
SELECT * FROM @ MATERIA;
GO
COMANDOS LMD (Lenguaje de
manipulación de datos)
 Insertar datos en una variable tabla con columnas con valores
predeterminados

USE BDEJEMPLO;
GO
CREATE TABLE DBO.PRUEBA
(
COLUMNA_1 AS 'COLUMNA CALCULADA ' + COLUMNA_2,
COLUMNA_2 VARCHAR(30) DEFAULT ('COLUMNA POR
DEFECTO'),
COLUMNA_3 ROWVERSION,
COLUMNA_4 VARCHAR(40) NULL
)
GO
COMANDOS LMD (Lenguaje de
manipulación de datos)
 Insertar datos en una variable tabla con columnas con valores
predeterminados

INSERT INTO DBO.PRUEBA (COLUMN_4) VALUES ('VALOR');


INSERT INTO DBO.PRUEBA (COLUMN_2, COLUMN_4) VALUES
('VALOR‘,'VAL');
INSERT INTO DBO.PRUEBA (COLUMN_2) VALUES ('VALOR');
INSERT INTO PRUEBA DEFAULT VALUES;
GO
SELECT COLUMNA_1, COLUMAN_2, COLUMNA_3,
COLUMNA_4
FROM DBO.PRUEBA;
GO
COMANDOS LMD (Lenguaje de
manipulación de datos)
 Actualizar columnas

USE BDEJEMPLO;
GO
UPDATE REGISTRO.CURSO
SET DURACION+=2,VALOR *= 1.2
WHERE NOMBRE LIKE ‘[BPF]%’
GO
COMANDOS LMD (Lenguaje de
manipulación de datos)
 Actualizar columnas con SELECT

USE BDEJEMPLO;
GO
UPDATE REGISTRO.CURSO
SET DURACION =DURACION +(SELECT MIN(DURACION)
FROM REGISTRO.CURSO)
GO
COMANDOS LMD (Lenguaje de
manipulación de datos)
 Eliminar registros

USE BDEJEMPLO;
GO
DELETE REGISTRO.INSCRITO
FROM REGISTRO.INSCRITO I INNER JOIN
REGISTRO.CURSO C
ON I.COD=C.COD
WHERE DATEDIFF(MM, GETDATE(), FECHA_INICIO) > 4;
GO

Potrebbero piacerti anche