Escolar Documentos
Profissional Documentos
Cultura Documentos
DEFINICION:
lenguaje declarativo(q dices lo q necesitas pero no t dice como lo vas a resolver )
de acceso a BD relacionales. Especifica diefrentes operaciones en estas.
Es un standar en toda industria de dbms
Dividido en dos partes: DDL lenguaje definicion de data base ( crear dindice vistas
tablas, alterar una table, truncar una tabala q kiere decir borarla y crearla de nuevo)
y DML Lenguaje de manipulaciond e data 8 ingresar borar registros )
Sentencia CREATE:
En una base de datos podemos crear: tablas, relaciones, indices, vistas
triggers(DESENCADENANTES) roles usuarios. Solo veremos en CREATE TABLE.
MS SQL Server 2005/2008:
SQL es un standar con caracteristicas entendibles, pero se le realizaron mejoras, se
le AADIO algo especial.
Versions: consta de varias ediciones: express ( parecida al access q es gratuita )
workgroup( aplicaciones para areas y departamentos) standard ( para medianas
empresas, capacidades limitadas ) y enterprise ( con todas las caracteristicas, para
una empresa grande )
Instalacion: lo qnecesitamos .
1 elegir el modo de autenticacion: los usuarios son diferentes con beneficios
diferentes. El sql server tiene sus propios sistemas de seguridad = o elegimos la
seguridadd e windows o la seguridad del sql server o ambas.
2 configuracion de intercalacion: respecto a las fechas.
3 configuracionde archives: se tiene q pensar donde guarder los archives.
4 configurar el correo de la BD: xq tiene un sistemade w de e-mail, y realizar
configuraciones.
5 Especificar el esenario de recuperacion: si la base de datos falla, como recupero la
info? Tiene varios mecanismos de recuperacion
6 configurar la seguridad: kines ingresan y q tablas se mostraran
7 configurando el cifrado / certificados: se puede especificar el cifrado de cierta
informacion
UNIQUE: para indicar que ese dato es uniko e irrepetible y la base de datos no
permitira quue se repita
CREATE TABLE Profesores_unicos ( Codigo_Profesor INT NOT NULL UNIQUE
NONCLUSTERED , Apellido_Pat VARCHAR(20) NULL , Apellido_Mat VARCHAR(30) NULL ,
Grado VARCHAR(30) NULL , Domicilio VARCHAR(100) , DNI DECIMAL(8,0) NULL ,
Fecha_Nacimiento DATETIME NULL , Nivel_Academico VARCHAR(20) DEFAULT 'MAESTRO'
)
PRIMARY KEY: decimos que ese campo es llave primaria, en automatico sabe que
ese dato YA no se puede repeetir.
CREATE TABLE Maestros_unicos ( Codigo_Maestro INT IDENTITY (1,1) primary key ,
Apellido_Pat VARCHAR(20) NULL , Apellido_Mat VARCHAR(30) NULL , Grado
VARCHAR(30) NULL , Domicilio VARCHAR(100) , DNI DECIMAL(8,0) NULL ,
Fecha_Nacimiento DATETIME NULL , Nivel_Academico VARCHAR(20) DEFAULT 'MAESTRO'
)
EJERCICIO: kiero saber cual es el cargo fecha nac sexo, meta para ese mes y el
bono que recibiria !
select e.title , e.birthdate , e.gender , sp.salesquota , sp.bonus
from HumanResources.Employee AS E
INNER JOIN Sales.SalesPerson AS SP
ON E.EmployeeID = sp.salespersonID
ORDER BY title ASC
Hay q verificar las relaciones que hay entre las entidades. Y hay q usarlas segun lo
q necesitemos!
select p.productid , p.name , p.productmodelid , pm.productmodelid , pm.name
from production.product AS p
INNER JOIN production.productmodel AS pm
ON p.productid = pm.productmodelid
Recomendacion:
El * esta pidiendo todos los campos de la table, x lo tanto recargan y saturan el
trabajo de la BD.
Pensar en conjunto
SELECT * INTO: genera tablas a paritr de otras
select ca.customerid , ca.addresstypeid , ca.modifieddate , a.addressline1 ,
a.addressline2 , a.city
into alfieri
from sales.customeraddress AS ca
INNER JOIN person.address AS a
ON ca.addressid = a.addressid
select * from alfieri
from HumanResources.Employee e,
Person.Contact c,
Sales.SalesPerson sp ,
Sales.SalesTerritory st ,
sales.salesorderheader soh
where e.contactid = c.contactid
and e.employeeid = sp.salespersonid
and sp.territoryid = st.territoryid
and soh.salespersonid = sp.salespersonid
and year (orderdate) = 2004
otros
insert into production.location
values('cafetera',1000,100,getdate())
select * from production.location
where name = 'cafetera'
update production.location set name = 'cafetera'
where name = 'cafeteria'
select * from production.product
where name like '%tire%'
update production.product set name = 'Llanta de turismo' , listprice =
listprice*3
where productid = 934
select * from production.product
where name like '%tire%'