lenguaje sql

7
LENGUAJE SQL ( lenguaje de consultas estructurado) DEFINICION: lenguaje declarativo(q dices lo q necesitas pero no t dice como lo vas de acceso a BD relacionales. Especica die!rentes operaciones en estas. Es un standar en toda industria de d"ms Dividido en dos partes: DD# lenguaje denicion de data "ase ( crear din ta"las$ alterar una ta"le$ truncar una ta"ala q %iere decir "orarla & c & D'# #enguaje de manipulaciond e data ingresar "orar registros ) entencia C*E+,E: En una "ase de datos podemos crear: ta"las$ relaciones$ indices$ vistas triggers(DE ENC+DEN+N,E ) roles usuarios. olo veremos en C*E+,E ,+B#E ' -# erver //01 // : -# es un standar con caracteristicas entendi"les$ pero se le reali2aro le +3+DIO algo especial. 4ersions: consta de varias ediciones: e5press ( parecida al access q e 6or%group( aplicaciones para areas & departamentos) standard ( para me empresas$ capacidades limitadas ) & enterprise ( con todas las caracter una empresa grande ) Instalacion: lo qnecesitamos 7. 8 elegir el modo de autenticacion: los usuarios son di!erentes con "ene di!erentes. El sql server tiene sus propios sistemas de seguridad 9 o e seguridadd e 6indo6s o la seguridad del sql server o am"as. conguracion de intercalacion: respecto a las !ec as. ; conguracionde arc ives: se tiene q pensar donde guarder los arc ive < congurar el correo de la BD: 5q tiene un sistemade 6 de e=mail$ & re conguraciones. 0 Especicar el esenario de recuperacion: si la "ase de datos !alla$ co in!o> ,iene varios mecanismos de recuperacion ? congurar la seguridad: %ines ingresan & q ta"las se mostraran @ congurando el ci!rado 1 certicados: se puede especicar el ci!rado in!ormacion

Upload: juanacho001

Post on 05-Nov-2015

4 views

Category:

Documents


0 download

DESCRIPTION

LENGUAJE SQL

TRANSCRIPT

LENGUAJE SQL ( lenguaje de consultas estructurado)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 dbmsDividido 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 recuperacion6 configurar la seguridad: kines ingresan y q tablas se mostraran7 configurando el cifrado / certificados: se puede especificar el cifrado de cierta informacion7 configuracion de servidores vinvulados: cuando se configure la bd con otras a las cuales podemos hacer uso, ejemplo eltipo de cambio del dolarUso del SQL server:Database new database yd e ahi en el cuadro q sale y nombramos como PRUEBA, se creara una carpeta .query: ahi es donde pongo todas las sentencias, ejm: de seleccion de informacion.*: nos trae los registros.No todas las bases de datos guardan los mismos tipos de datos, ejemplo Oracle guarda el tipo de dato clock Tipos de datos:Numericos exactos y aproximados: Se diferencian en el numero de decimals y enteros q va a guarder Decimal(10,4) 999999.9999 10 caracteres en total 4 decimalesFecha y hora: son ilimitados los rangosCadenasCadenzas de caracteres con Unicode: Unicode es para mezclar varios idiomas.Cadenas binarias: STRING NO EXISTE EN MS SQL SERVERVar: siempre va a separar una cantidad predefinida de characters, por mas que lo ingresado sea menor q lo ya separadovarChar: dispone lo necesario.Las BD se organizan major con los Var x lo q son datos fijos.Los bit se usan para variables de decision, si o no.NOT NULL: no permite guardar datos que sean nulosIDENTITY: automatico. Lee el anterior rubro de registro y lo repite( no lo dj en digital) y has le aumenta un una unidad!+}Ejercicio tabla clienteCREATE TABLE Cliente ( Codigo_Cliente INT NOT NULL , Apellido_Pat VARCHAR(20) NULL , Apellido_Mat VARCHAR(30) NULL , Codigo_Sexo VARCHAR(1) NULL , Fecha_Nacimiento DATETIME NULL , Fecha_Ingreso DATETIME NULL )

Ejercicio Tabla AlumnosCREATE TABLE Alumnos ( Codigo_Alumno INT NOT NULL , Apellido_Pat VARCHAR(20) NULL , Apellido_Mat VARCHAR(30) NULL , Grado VARCHAR(30) NULL , Direccion VARCHAR(100) , DNI DECIMAL(8,0) NULL , Fecha_Nacimiento DATETIME NULL )Ejercico de los profesoresCREATE TABLE Profes ( Codigo_Profesor INT IDENTITY (5,2) , 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 )DROP TABLE: Para borar tablas ----- Drop table clientsDEFAULT: para que llene por defecto un mensaje en en caso no se coloque nadaCREATE TABLE Profesores ( Codigo_Profesor INT IDENTITY (5,2) , 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' )UNIQUE: para indicar que ese dato es uniko e irrepetible y la base de datos no permitira quue se repitaCREATE 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' )FORREING KEY: SOLO HACE REFERENCIA a la PK de la table a mencionar23/06/2009INNER JOIN: Traeme todas las direcciones de los empleados:select * from HumanResources.Employee AS EINNER JOIN HumanResources.EmployeeAddress AS EAON E.EmployeeID = EA.EmployeeIDSin colocar inner u oter el DEFAULT es innerOUTER JOIN: regresa todos lo valoresselect * from HumanResources.Employee AS ELEFT OUTER JOIN HumanResources.EmployeeAddress AS EAON E.EmployeeID = EA.EmployeeIDEJERCICIO: 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.bonusfrom HumanResources.Employee AS EINNER JOIN Sales.SalesPerson AS SPON E.EmployeeID = sp.salespersonIDORDER BY title ASCTraer la fecha de la orden, status ( estado en el q esta la orden ) costumer id ( client). En detalle deseo conocer eol prdouctid( q product estoy comprando) orderquantity ( cantidad) y el unit price( precio unitario). Lo relaciono con el primarity. select soh.OrderDate , soh.Status , soh.CustomerID , sod.ProductID , sod.OrderQty , sod.UnitPricefrom Sales.SalesOrderHeader AS soh INNER JOIN Sales.SalesOrderDetail AS sod ON soh.SalesOrderID = sod.SalesOrderIDHay 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.productmodelidId , nombre_prod , model_id ----- tabla 1Model_id , nombre --------------- table 2Id , nombre_prod , model_id , nomnre -- tabla finalselect ca.customerid , ca.addresstypeid , ca.modifieddate , a.addressline1 , a.addressline2 , a.cityfrom sales.customeraddress AS ca INNER JOIN person.address AS a ON ca.addressid = a.addressidRecomendacion:El * esta pidiendo todos los campos de la table, x lo tanto recargan y saturan el trabajo de la BD.Pensar en conjuntoSELECT * INTO: genera tablas a paritr de otras

select ca.customerid , ca.addresstypeid , ca.modifieddate , a.addressline1 , a.addressline2 , a.cityinto alfierifrom sales.customeraddress AS ca INNER JOIN person.address AS a ON ca.addressid = a.addressid

select * from alfieriSELEECCION DENTRO DE UNA SELECCION: select * from HumanResources.Employee as ewhere e.employeeid in( select employeeid from humanresources.employeeaddress )Agrupaciones, contar, promedioselect SalesOrderID , SUM(LineTotal) AS SubTota, COUNT(1) NroLineasfrom Sales.SalesOrderDetail sodGROUP BY salesorderidORDER BY salesorderidEjercicios:select * from Person.Contact where title='MS.'

select * from Person.Contact where Lastname like 'A%'

select * from HumanResources.Employee e inner join Person.Contact c on e.contactid = c.contactid where firstname like 'karla'

select * from HumanResources.Employee e right outer join Person.Contact c on e.contactid = c.contactid where firstname like 'karla'

select * from HumanResources.Employee e, Person.Contact c where e.contactid = c.contactid

select MiddleName from HumanResources.Employee e, Person.Contact c, Sales.SalesPerson sp , Sales.SalesTerritory st where e.contactid = c.contactid and e.employeeid = sp.salespersonid and sp.territoryid = st.territoryidand firstname='pamela'

select e.title, BirthDate, Gender, FirstName from HumanResources.Employee e, Person.Contact c, Sales.SalesPerson sp , Sales.SalesTerritory st where e.contactid = c.contactid and e.employeeid = sp.salespersonid and sp.territoryid = st.territoryid

select count (*) from HumanResources.Employee e, Person.Contact c, Sales.SalesPerson sp , Sales.SalesTerritory st where e.contactid = c.contactid and e.employeeid = sp.salespersonid and sp.territoryid = st.territoryid

select sum (SalesQuota) from HumanResources.Employee e, Person.Contact c, Sales.SalesPerson sp , Sales.SalesTerritory st where e.contactid = c.contactid and e.employeeid = sp.salespersonid and sp.territoryid = st.territoryid

select max (SalesQuota) from HumanResources.Employee e, Person.Contact c, Sales.SalesPerson sp , Sales.SalesTerritory st where e.contactid = c.contactid and e.employeeid = sp.salespersonid and sp.territoryid = st.territoryid

select st."Group", sum(SalesQuota) from HumanResources.Employee e, Person.Contact c, Sales.SalesPerson sp , Sales.SalesTerritory st where e.contactid = c.contactid and e.employeeid = sp.salespersonid and sp.territoryid = st.territoryid group by st."Group"

select c.firstname, c.lastname , sum (totaldue) 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 group by c.firstname, c.lastname

select firstname + ' ' + upper(lastname) NombreCompleto, year(getdate()) - year(birthdate) Edad, * 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

select count (*) 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) = 2004otrosinsert into production.locationvalues('cafetera',1000,100,getdate())

select * from production.locationwhere name = 'cafetera'

update production.location set name = 'cafetera'where name = 'cafeteria'

select * from production.productwhere name like '%tire%'

update production.product set name = 'Llanta de turismo' , listprice = listprice*3where productid = 934

select * from production.productwhere name like '%tire%'