Documente Academic
Documente Profesional
Documente Cultură
Elementos de sintaxis:
Comentarios en SQL:
o En lnea:-o En Bloque: /*comentario*/
Tablas en SQL:
o
o
o
EJEMPLO:@Contador
Para las variables totales se usan dos arrobas + el nombre @@Contador
EJEMPLO:@@Error
#Nombre: indica una tabla o procedimiento temporal (Local)
##Nombre: Igual que el anterior pero global.
Tipos de datos:
Numricos:
o Enteros int, tinyint, smallint, bigint
o Decimales numeric, decimal, money, smallmoney
o Coma Flotante float, real
Fechas:
o Datetime 0,333 s
o Smalldatetime 1 minuto
Caracteres:
o Ancho fijo: char, nchar
o Ancho Variable: varchar, nvarchar
Texto e imagen:
o Text
o Ntext
o Rowversion
Binario:
o Binary, varbinary Valores tipo byte
o Bit Un solo bit (1 o ninguno)
Identificadores nicos: Representa un identificador global nico
(GUID).Si queremos que no se repita el dato de datos, usamos este
identificador.
o Uniqueidentifier
Operadores de SQL:
Lgicos
o AND, OR, NOT
De Comparacin:
o = Igual
o <Menor
o >Mayor
o <>Diferente
o >= Mayor o igual
o <=Menor o igual
Log on
(NAME = Nombre,
Filename = 'Ruta\NombredeArchivo.LDF',
Size = Tamao por defecto
MaxSize = Tamao mximo
FileGrowth = Porcentaje / tamao de crecimiento)
SP_HELPDB
Muestra todas las bases de datos del servidor, con su propietario, tamao
hora de creacin etc.
SP_SPACEUSED
Elije la base de datos Ejemplo con el comando use y en otra linea escribe
exec sp_spaceused. Al ejecutar estas instrucciones se mostrar algo
parecido a la siguiente imagen.
SP_HelpFile
Sintaxis:
Opciones:
7. ShrinkDataBase
Opciones:
Ejemplo:
sp_spaceused
5) Eliminar uno de los archivos del grupo Bajas y modificar el otro para
darle un tamao de 10 MB.
Dbcc shrinkdatabase(Clientes, 2)
use master
go
Se basan en tipos de datos definidos por el SQL. Para crear un tipo de dato
se usa un procedimiento almacenado del sistema.
Administrador Corporativo => Eliges una Tabla => Procedimientos
almacenados que empiecen por sp.
Para crear un nuevo tipo de dato se usa sp_addtype:
sp_addtype nombre,' tipo de dato', [NULL | NOT NULL ], [propietario]
Ejemplo:
EXEC sp_addtype Ciudad, 'nvarchar(15)', NULL
Ejemplo:
Sintaxis:
Ejemplo:
Ejemplo
Default
Sintaxis parcial
[ constraint nombre_restriccin ] default expresin
Ejemplo
alter table Producto
add constraint DF_Descripcion default 'No especifica'
for Descripcion
Check
Sintaxis parcial
[Constraint nombrerestriccion) check ( Expresion )
Ejemplo
alter table Producto
add constraint CHK_Stock Check(Stock > -1)
Primary key
Valores exclusivos
Sintaxis parcial
[Constraint nombrerestriccion]
NonClustered ] columnas
Ejemplo
alter table Producto add constraint Pk_Codigo primary key
nonclustered (codigo)
Unique
Sintaxis parcial
[Constraint nombreRestriccion ]
Clustered ] (Columnas,...)
Ejemplo
alter table Producto add constraint U_Nombre Unique Nonclustered
(Nombre)
Foreign key
Sintaxis parcial
[Constraint nombreRest ] Foreign key (Columna,...) References
tablaRef (Columna,)
Ejemplo
alter table Producto add Constraint Fk_Pro_Cat Foreign Key
(CategoriaID) References Categoria(CategoriaID)
"Realizo una referencia a la tabla Categoria y el campo CategoriaID para
crear una restriccin que solamente me permita insertar Productos que
esten en una Categoria de la tabla Categoria"
Sintaxis parcial
NO Action es la predeterminada
-Products
PK ProductId
-Orders
PK OrderId
FK ProductId
Con cascade si borras, borrara lo que este asociado a ella en la otra tabla,
pero con No Action no te dejara borrarlo ya que esta asociado a otra tabla la
cual tiene la clave principal.
Con cascade puedes borrar ProductId de products , lo cual borrara productId
de orders, con No Action no lo podras borrar.
Ejemplo
alter table Producto
add Constraint Fk_Pro_Cat Foreign Key (CategoriaID) References
Categoria (CategoriaID)
On delete Cascade
On update Cascade
Deshabilitacion de restricciones
Sintaxis parcial
Alter Table [With Check | With NoCheck]
Add Constrain restriccion { Foreign key (Columna,)
References TablaRef (Columna,) { Check (Condicion)}
Sintaxis parcial
Alter Table tabla {Check | NoCheck }
Constraint {All | Restriccin 1, } => Para hacer la restriccion a
todo , o a slo lo que est separado por comas ,
Tener en cuenta:
DEFAULT
Sintaxis
use northwind
GO
CREATE DEFAULT Telefono_default AS '(00)000-0000'
GO
EXEC sp_bindefault Telefono_default,'Customers.Phone'
use northwind
EXEC sp_helpconstraint products
REGLAS
Sintaxis
use Hospital
create rule Funcion_Rule
as
@Funcion in('INTERINO','ENFERMERO','ENFERMERA')
GO
EXEC sp_bindrule Funcion_rule,'Plantilla.Funcion'
use northwind
GO
CREATE RULE regioncode_rule
AS @regioncode >=1000 and @regioncode <=100
GO
EXEC sp_bindrule regioncode_rule,'Customers.Region'
O tambin
use northwind
GO
CREATE RULE regioncode_rule AS @regioncode like '[0-9][0-9 ][ 0-9]'
GO
EXEC sp_bindrule regioncode_rule,'Customers.Region'
size = 5MB ,
maxsize = 10MB ,
filegrowth = 2%
)
GO
use Escuela
GO
exec sp_addtype TNoNulo,'nvarchar(15)','Not null'
exec sp_addtype TNulo,'nvarchar(15)','Null'
select * from systypes where name in('TNoNulo','TNulo')
Cod_colegio
Numrico
Clave Principal e
Identidad
Nombre
Texto
No permite nulos
Localidad
Texto
Provincia
Texto
Ao_Construccin
Fecha
Coste_Construccin Moneda
Cod_Region
Numrico
Unico
Unico
Clave nica
localidad TNulo ,
provincia TNulo ,
ao_construccion smalldatetime null ,
coste_construccion money null ,
cod_region int null ,
Unico uniqueidentifier default Newid()
)
Campos
Tipo de
dato
Restriccin
Cod_Profe
Texto
nulos.
Nombre
Texto
Apellido1
Texto
Apellido2
Texto
Edad
Numrico
Localidad
Texto
Provincia
Texto
Salario
Money
Cod_Colegio Numrico
No permite nulos.
Campos
Cod_Region
Numrico
Regiones
Texto
No permite nulos
Tipo de
dato
Restriccin
DNI
Texto
Nombre
Texto
No permite nulos
Apellido1
Texto
Apellido2
Texto
Fecha_nac
Fecha/hora
Localidad
Texto
Provincia
Texto
Cod_Colegi
o
Numrico
Clave ajena:
COLEGIOS(Cod_colegio)
apellido2 TNulo ,
fecha_nac smalldatetime ,
localidad TNulo ,
provincia TNulo ,
cod_colegio int constraint FK_Alumnos foreign
key(cod_colegio) references colegios(cod_colegio)
)
references regiones(cod_region)
TABLA COLEGIOS
Antes de insertar verifica el cdigo de la regin. Debe
ser el que te genero la tabla regiones.
TABLA ALUMNOS
insert into alumnos (dni,Nombre,Apellido1,Apellido2
,Fecha_nac,Localidad,Provincia,Cod_Colegio) values
('54132456R','Marta','Serrano','Lopez','15/03/93','MADRID','MADRID
',6)