0% encontró este documento útil (0 votos)
27 vistas10 páginas

Bases de Datos SQL

El documento describe diferentes tipos de datos y conceptos relacionados a bases de datos como primary key, foreign key, identidad y normalización. También explica comandos como DBCC, GO, variables y estructuras de control como IF, WHILE y CASE.

Cargado por

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

Bases de Datos SQL

El documento describe diferentes tipos de datos y conceptos relacionados a bases de datos como primary key, foreign key, identidad y normalización. También explica comandos como DBCC, GO, variables y estructuras de control como IF, WHILE y CASE.

Cargado por

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

TIPOS DE DATOS:

-Numericos:

Enteros: BIT, TINYINT(ENTERO PEQUEÑO), SMALLINT, INT, BIGINT


Decimales: MONEY, DECIMAL

-Texto y binarios

CHAR, VARCHAR, NCHAR, NVARCHAR


BINARY, VARBINARY

-Fecha y hora

DATE, TIME, DATETIME, SMALLDATETIME

-PRIMARY KEY

LA FUNCION DE LA PRIMARY KEY ES PARA QUE LOS VALORES


NO SE REPITAN, POR EJEMPLO SI SE REPITEN UN NOMBRE
QUE ES IGUAL, ENTONECS LO QUE VA A HACER LA PRIMARY KEY ES
IDENTIFICAR UN REGISTRO COMO NOMBRE PROPIO POR DECIRLO DE ALGUNA MANERA

-TAMBIEN EL VALOR QUE HAY EN EL REGRISTO NO SE PUEDE REPETIR


-EL VALOR DEBE SER NOT NULL (NO PERMITIRA VALORES NULOS)
-LA PRIMARY KEY SE PUEDE LLAMAR COMO CLAVE COMPEUSTA
-SEA SIMPLE O COMPUESTA CADA TABLE TENDRA UNA PRIMAY KEY

-FOREIGN KEY

LA CLAVE FORENA O FOREIGN KEY, DEBE SER EL MISMO TIPO DE


DATO QUE SU CAMPO RELACIONADO
-EL VALOR DEL CAMPO DEFINIDO COMO FK PUEDE SER NULL
UNA TABLA PUEDE TENER MAS DE UN CAMPO FK

ES TAMBIEN UNA RELACION ENTRE DOS TABLAS, ESTO LO HACEMOS CUANDO VAYAMOS A HACER
UNA RELACION ENTRE DOS CAMPOS

-IDENTY

HAY PDF (file:///C:/Users/Yaine/Downloads/S04.Identity.pdf)

-Definición de un campo IDENTITY

-Propiedad Identity de un campo

La propiedad Identity se puede establecer a uno o más campos de una tabla


determinada.

Un campo con propiedad Identity activada, hará que su valor se incremente


automáticamente a medida que se inserten registros en la tabla.

Es por ello que, para que un campo pueda ser Identity, su tipo de dato debe ser
numérico.
Por lo general establecemos Identity a un campo que es Primary Key.

Con esto logramos que su


valor no se duplique, generando registros unívocos (únicos).

Argumentos de la propiedad Identity

Existe un argumento requerido llamado Seed.

El argumento Seed define desde que valor comienza a incrementar su valor.

-Si el valor de Seed es 1, comenzará a incrementarse desde 1


-Si el valor de Seed es 5, comenzará a incrementarse desde 5

También existe un argumento de la propiedad Identity, llamado Increment.

Si el valor de Increment es 1, el valor del campo se guardará con valores


correlativos ej: 1,2,3,4

Si el valor de Increment es 2, el valor del campo se guardará con valores


correlativos ej: 1,3,5,7

Para definir un campo con propiedad Identity (Seed=1, Increment=2) desde T-SQL
colocamos:

Ej: [nombreCampo] [int] IDENTITY(1,2)


Ejemplo de tabla con propiedad IDENTITY(1,2)

-NORMALIZACION DE LA BASE DE DATOS

-CONSTRAINT :

Sirve para poder definir la primary key

--IMPORTANTE DEFINITIR TIPOS DE DATOS

Ejempl: create type medico from int not null

Otra opcion es ir a la carpetade programmability, leugo a la carpeta de Types,


Luego a lac arpeta User-Defined Data Types, damos en clic derecho le damos nuevo
tipo de dato y despeus poinemos el nombre de al tabla y de ahi le ponemos el tipo
de dato.

Despues de esto lo que se hace es ir a las tablas, le damos design y en la priamry


key le colocamos el tipo de dato igual al de la tabla, y ya estara establecido

--RELACIONES ENTRE TABLAS


Las relaciones entre tablas no son obligatorias. Una base de datos puede no tener
tablas
relacionadas.
No obstante, una BD sin relaciones, corre el riesgo de perder la integridad de los
datos en las tablas, ya
que no tiene definidas las Reglas de Integridad Referencial.
¿Qué son éstas Reglas?
 Son propiamente las relaciones entre tablas, en las que un campo Primary Key (PK)
se relaciona
un campo de otra tabla (del mismo tipo de dato), al cuál llamamos Foreign Key (FK)
¿De que me sirve crear esta relación?
 Esta relación NO permitirá colocar un valor en el campo definido como FK, que no
esté definido
en la tabla definida con el campo PK.
Veamos este ejemplo:
Tabla Paciente (campo idpais FK)
Tabla Pais (campo idpais PK)
 Si tratamos de insertar un Paciente nuevo con un código de país que no existe en
la tabla país,
devolverá error y no permitirá su grabación.
¿Porqué no me permite insertar el registro?
 Porque se ha definido la relación entre ambas tablas. Es una Regla de Integridad
Referencial, y
previene que guardemos registros con valores indefinidos.
 Esto hace que del lado de la interfaz de usuario, siempre se pueda visualizar
información
consistente.
¿Qué sucede si quiero eliminar un registro de la tabla Pais, cuyo país está
asignado a un
Paciente?
 Al igual que antes, la Regla de Integridad no nos permitirá eliminar el país,
hasta que
cambiemos el país del Paciente por otro.
 Esta es la característica principal de las Bases de Datos Relacionales.

--DBCC

CON ESTE COMANDO PODREMOS REINICIAR UNOS VALORES O SECUENCIA QUE YA FUE UTILIZADA
PARA QUE EMPIECEN DESDE CERO

EJEMPLO:

insert into tabla1 values(1)

select * from tabla1

delete from tabla1

DBCC CHECKIDENT ('tabla1',RESSED,0)

(CABE RESALTAR QUE LOS DATOS HAY QUE PONERLOS EN IDENTITY)

--GO

El "GO" lo que hace es ejecutar la siguiente parte del codigo por decirlo de alguna
manera

--SET ANSI_NULLS ON

lo que ahce es que ñpor ejemplo si uno tuveiras registros en null por ejemplo en
una tabla idpaciente, entocnes si en losd atos hay valores con "NULL" en losc ampos
correspondietnes no me va a devolver nada, todo lo contrario si coloco "OFF" en vez
de "ON", ahi si me va a msotrar los datos que tienen "NULL",Ejemplo:
SET ANSI_NULLS OFF

---SET ANSI_NULLS OFF

Este sirve para mostrar los datos con "NULL"

--SET QUOTED_IDENTIFIER ON
GO

Este nos permite crear tablas con palabras de SQL RESERVADAS, sin embargo dichas
palarbas tienen que ir en comillas

-EXEC (Y el comando como lo hayas guardado)

Este sirve para llamar losd atos que estan especficiamente en las tabalas, por
ejemplo con el id 7, y ya vos alla en el STACURED PROCED asignas losc ampos que
requieres llamar, y asi vas a poder llamar especificamente los campos que deseas
para poder verlos por medio del EXEC ID

--VARIABLE (ISNULL)

EJEMPLO:

DECLARE @ordenamiento CHAR(1)


DECLARE @valorOrdenamiento CHAR (1)

SET @valorOrdenamiento = ISNULL ( @ordenamiento, 'A')

PRINT @valorordenamiento

SELECT apellido,nombre,idPais,observacion FROM Paciente1 WHERE idpaciente =


@idpaciente

--VARIABLES CON DISTINTOS TIPOS DE DATOS

Ejemplos para declarar Variables de distintos Tipos de Dato


Estos son algunos ejemplos sobre cómo declarar Variables de distintos Tipos de
Datos y evaluar valores Nulos:

DECLARE @entero INT

SET @entero = NULL

SELECT ISNULL(@entero, 0) AS Valor

DECLARE @decimal DECIMAL(10,2)

SET @decimal = NULL

SELECT ISNULL(@decimal, 0.00) AS Valor

DECLARE @cadena VARCHAR(50)


SET @cadena = NULL

SELECT ISNULL(@cadena, 'Texto predeterminado') AS Valor

DECLARE @fecha DATETIME

SET @fecha = NULL

SELECT ISNULL(@fecha, GETDATE()) AS Valor

DECLARE @booleano BIT

SET @booleano = NULL

SELECT ISNULL(@booleano, 0) AS Valor

DECLARE @moneda MONEY

SET @moneda = NULL

SELECT ISNULL(@moneda, 0.00) AS Valor

**PREGUNTARLE A JUAN POR SECCION 10 STORED PROCEDURES**

-- BEGIN Y END

Este se utiliza para poder ejecutar lo que se encuntre dentro de esos comanos
siempre y cuando se cumplan las condiciones que se le dieron al IF con
anterioridad, Ejemplo:

Declare @idpaciente int


Declare @idTurno int

set @idpaciente = 7

IF @idpaciente = 7
BEGIN
set @idTurno = 20
SELECT *FROM Paciente1 WHERE idpaciente = @idpaciente
print @idTurno
END

-ELSE

Este se tuiliza cuando utilizamos un IF, pues despues del IF, por Ejemplo:
Declare @idpaciente int
Declare @idTurno int

set @idpaciente = 2

IF @idpaciente = 7
BEGIN
set @idTurno = 20
SELECT *FROM Paciente1 WHERE idpaciente = @idpaciente
print @idTurno
END

ELSE
BEGIN
print 'no se cumplio la condicion'

END

--EXISTS

Aqui lo que hacemos es tener un IF anidado dentro de otro IF, y lo que hace es
darnos un dato mas exacto en cuanto el EXISTS, partiendo de ahi ya determina si
existe o no, Ejemplo:

Declare @idpaciente int


Declare @idTurno int

set @idpaciente = 7

IF @idpaciente = 7
BEGIN
set @idTurno = 20
SELECT *FROM Paciente1 WHERE idpaciente = @idpaciente
print @idTurno

IF EXISTS(SELECT * FROM Paciente1 WHERE idpaciente = 4)


print 'Existe'

END

--WHILE

Aqui este ciclo es muy comun, solo que tenemos que estar muy atentos en donde
cerrar el ciclo porque o sino hariamos un ciclo infinito, Siempre hay que utilizar
el BEGIN Y END, pARA QUE SE EJECUTEN CON PERFECCION LAS LINEAS QUE SE ENCUENTRAN
DENTRO DE ESAS CONDICIONALES, ADEMAS DE QUE TENEMOS QUE PONER EL SET, PARA DARLE
UNA CONDICION DE DONDE VA A PARAR EL WHILE, Ejemplo:

declare @contador int =0


WHILE @contador <= 10

BEGIN
print @contador
SET @contador = @contador + 2

END

--CASE

En este caso lo unico que vamos a hacer es concatenarlo con un WHEN Y LUEGO THEN,
PODREMOS CREAR COMO UN COLUMNA DE OBSERVACION PARA DETERMINAR LAS CONDICIONALES DE
ALGUNA TABLA, Y SI SE CUMPLEN VAN A APARACER LAS VARIABLES O CONDICION QUE
ASIGNAMOS.

Ejemplo 1:
declare @valor int
declare @resultado char (10)=''
set @valor = 30

set @resultado = (CASE WHEN @valor =10 THEN 'Rojo'


WHEN @valor = 20 THEN 'Verde'
WHEN @valor = 30 THEN 'Azul'
END)

print @resultado

Ejemplo 2:

SELECT *,(CASE WHEN estado = 0 THEN 'VERDE'


WHEN estado = 0 THEN 'ROJO'
WHEN estado = 0 THEN 'AZUL '

ELSE 'GRIS'
END)
AS colorTurno

FROM Turno

--RETURN

Aqui lo que vamos a implementar sera un cierre forzado de un ciclo, en este caso
con un while o un IF, Ejemplo:

declare @contador int =0


WHILE @contador <= 10

BEGIN

print @contador
SET @contador = @contador + 1

IF @contador = 4
RETURN
PRINT 'Hola'

END
--BREAK

Este no entendi muy bien la funcion, solo que se utiliza como para interrumpir un
while loop

--TRY CATCH

Hay qque estudiarlo mas, sin embargo basicamente se utiliza en varias fases, la
primera es que si en la priemra parte la condicional funciona pues se ejecuta con
normalidad, pero si en la primera parte no funciona, tocaria mandarlo a la aprte de
CATCH, y ya se encarga de hacer la otra condicional, es decir como que si en el
primer filtro no pasa la conidcion, pasa al segundo filtro que es como que lor
ecibe y ya ahi el lo que hace es como amortiguar el golpe del error con la
condicion que este en esa parte del codigo o con un mensaje como tal, Ejemplo:

BEGIN TRY
SET @contador = 'Texto'
END TRY

BEGIN CATCH
print 'NO es posible asignar un texto a la variable contador'
END CATCH

--Operadores

Aqui podemos ver como operar facilmente con operadores numericos en cauqluier fase
de cada operacion, Ejemplo:

declare @num1 decimal (9,2)=20


declare @num2 decimal (9,2)=30
declare @result decimal (9,2)

set @result = @num1 * @num2

print @result

otro ejemplo:

declare @num1 varchar(10) = 'Hola me llamo'


declare @num2 varchar(10) = 'Mariano'

declare @result varchar (30)

set @result = @num1 + @num2

print @result

--Mayor o menor

Facil de usar, Ejemplo:

declare @num1 decimal (9,2)=20


declare @num2 decimal (9,2)=30
--declare @num1 varchar(20) = 'Hola me llamo'
--declare @num2 varchar(20) = 'Mariano'
if @num2 <> @num1
print 'Si'

Else
print 'No'

tambien se puede hacer de otra manera con comparacion de caracteres, Ejemplo:

declare @texto1 varchar(20) = 'Hola me llamo'


declare @texto2 varchar(20) = 'Hola me llamo Mariano'

if @texto2 < @texto1


print 'Si es mayor'

Else
print 'No'

--STORE PROCEDURE

Paraa crear un Store procedure serigta algo asi, Ejemplo:

CREATE PROC ALTA_Paciente (


@dni varchar(20),
@nombre varchar(50),
@apellido varchar(50),
@fnacimiento varchar(8),
@domicilio varchar (50),
@idpais char (3),
@tel varchar(20)='',
@email varchar (30),
@observacion varchar (1000)=''

)
as

PARA EDITAR UN SOTRE PROCEDURE SERIA LO MISMO, PERO EN VEZ DE CREATE PRO, IRIA
ALTER PROC, EJEMPLO:

ALTER PROC ALTA_Paciente (


@dni varchar(20),
@nombre varchar(50),
@apellido varchar(50),
@fnacimiento varchar(8),
@domicilio varchar (50),
@idpais char (3),
@tel varchar(20)='',
@email varchar (30),
@observacion varchar (1000)=''

)
as

--SP_HELP
NOS INDICA LAS CARACTERISTICAS DEL CAMPO DE LAS TABLAS, NOS SIRVE PARA VER LA
ESTRUCTURA BASICAMENTE

--SEP_HELPTEXT

ESTE NOS AYUDA A ENCONTRAR EL CONTENIDO DEL CAMPO

--

También podría gustarte