Manual Transact

November 22, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Manual Transact...

Description

 

LENGUAJE DE PROGRAMACION IV

TRANSACT-SQL CREAR BASE DE DATOS DESDE EL ANALIZADOR DE CONSULTAS  Además de utilizar el Administrador Corporativo y el Asistente para la Creación de Bases de Datos, podemos también hacerlo utilizando código de T-SQL, que es el lenguaje original de SQL. Para crear una base de datos: CREATE DATABASE NombreBaseDatos ON PRIMARY ( NAME = NombreLógico_Archivo_data, NombreLógico_Archivo_data, FILENAME = ‘Ruta\\NombreFísico_d ‘Ruta\\NombreFísico_data.MDF’, ata.MDF’, SIZE = tamaño, MAXSIZE =Tamaño_Máximo =Tamaño_Máximo|UNLIMITED, |UNLIMITED, FILEGROWTH = IncrementoCrecimiento[V IncrementoCrecimiento[Valor|%] alor|%] ) LOG ON ( NAME = NombreLógico_Archivo_log, NombreLógico_Archivo_log, FILENAME = ‘Ruta\\NombreFísico_lo ‘Ruta\\NombreFísico_log.LDF’, g.LDF’, SIZE = tamaño, MAXSIZE =Tamaño_Máximo =Tamaño_Máximo|UNLIMITED, |UNLIMITED, FILEGROWTH = IncrementoCrecimiento[V IncrementoCrecimiento[Valor|%] alor|%] )  Argumentos:

NombreBaseDatos Nombre de la nueva base de datos, deben ser únicos en un servidor y pueden tener  hast 128 caracteres. ON Especifica que el archivo de disco utilizado para almacenar la parte de datos (archivo de datos) se definirá explícitamente. PRIMARY Especi Esp ecific fica a qu que e la lis lista ta de arc archiv hivos os está está asocia asociada da al grupo grupo pri princi ncipa pal.l. Gru Grupo po que contiene todas las tablas del sistema de base de datos. Si se ignora, la base de datos pertenecerá por defecto al grupo PRIMARIO. LOG ON Espe Es peci cififica ca qu que e el ar arch chiv ivo o de tr tran ansa sacc ccio ione nes( s(o o arch archiv ivos os de regi regist stro ro)) se de defifini nirá rá explícitamente. NAME Especifica el nombre lógico del Archivo físico de datos o el nombre lógico del archivo de transacciones.

Prof. Angel Roque

1

 

LENGUAJE DE PROGRAMACION IV

FILENAME Especifica la ruta y el nombre físico para el archivo de datos o la ruta o nombre físico del archivo de transacciones o registro. La ruta debe apuntar a una carpeta creada en el servidor sobre el cual se instaló SQL Server. SIZE Esp Es pec ecifific ica a el ta tam maño par ara a el ar arcchiv ivo. o. El valo lorr mí mín nim imo o es 512 12K KB, el val alo or  predeterminado es 1MB.(aplicable tanto para el archivo de datos como para el archivo de registro). MAXSIZE Especifica el tamaño máximo de crecimiento del archivo. El valor predeterminado es 1 MB. Si no se incluye el archivo aumentará hasta que el disco esté lleno. UNLIMITED El archivo aumentará o crecerá hasta que el disco esté lleno. FILEGROWTH Especifica el incremento de crecimiento del archivo. Este valor no puede exceder el valor de MAXSIZE. El valor de incremento puede darse en un valor en MB o en %. El valor predeterminado es 10%. Ejemplo: Crear la base de datos Prueba1 con un archivo de datos de 10MB, un tamaño máximo de 20MB y un crecimiento de 1MB, el archivo de registro debe asumir los valores por  defecto. USE MASTER GO Estas líneas activa la base de datos master, que es la base de datos principal del sistema. Es opcional, debido a que normalmente cuando se abre el Analizador de Consultas la base de datos por defecto es MASTER. CREATE DATABASE Prueba1 ON PRIMARY ( NAME = Prueba1_data FILENAME = ‘c:\EjerciciosSQL\Prueba ‘c:\EjerciciosSQL\Prueba1_data.mdf’, 1_data.mdf’, SIZE = 10, MAXSIZE =20, FILEGROWTH = 1 ) Para verificar la creación de la base de datos: Sp_HelpDB Prueba1 GO

Prof. Angel Roque

2

 

LENGUAJE DE PROGRAMACION IV

Ejercicio 01: Crear la base de Datos Prueba2 especificando un archivo de datos con un tamaño inicial de 15MB, un tamaño máximo de 30MB y un crecimiento de 5MB, el archivo de registro o transacciones debe tener un tamaño inicial de 5MB y uno máximo de 10MB, el crecimiento debe ser de 1MB. MODIFICAR UNA BASE DE DATOS Teniendo creada ya una base de datos podremos modificarla utilizando la sentencia  ALTER DATABASE.  ALTER DATABASE NombreBD NombreBD (  ADD FILE Especificación_Archivo Especificación_Archivo [TO FILEGRO FILEGROUP UP NombreGrupoArchivo NombreGrupoArchivos] s] | ADD LOG FILE Especificación_Archivo Especificación_Archivo_lógico _lógico | REMOVE FILE NombreArchivoLógico | ADD FILEGROUP NombreGrupoArchivos | REMOVE FILEGROUP NombreGrupoArchivos | MODIFY FILE EspecificaciónArchivo EspecificaciónArchivo | MODIFY FILEGROUP No NombreGrupoArchivos mbreGrupoArchivos PropiedadGrupoArchivos PropiedadGrupoArchivos TO FILEGROUP NombreGrupoArchivos NombreGrupoArchivos )

ELIMINAR UNA BASE DEDATOS Para eliminar una Base de Datos se usa la sentencia DROP DATABASE DROP DATABASE NombreBD

Ejercicio Nº 2: Elimine la base de datos RPEUBA1 Ejercicio N3: Crear una base de datos comprobando su existencia en la base de datos maestro del GSBD: USE master  go IF  EXISTS  EXISTS ( SELECT  SELECT name name  FROM sysdatabases WHERE WHERE  name  name = 'LIBRERIA' 'LIBRERIA'  ) IF DROP  DATABASE LIBRERIA DROP go  

Explique el código. Investigue y si es posible realice un ejercicio práctico para recuperar una base de datos eliminada

CREACION DE TABLAS SQL Server 2000 emplea la tablas como objetos de almacenamiento de d datos atos que los usuarios manipulan manipulan a través de sus sus aplicaciones o vía web. Las tablas información son objetosinterrelacionada(filas) compuestos por unaacerca estructura(conjunto almacenan de algún objetodeencolumnas) general. que Prof. Angel Roque

3

 

LENGUAJE DE PROGRAMACION IV

Consideraciones para crear tablas: Billones de tablas por base de datos. 1024 columnas por tabla. 8060 es el tamaño máximo de registro.  Al momento de definir una columna se puede definir si acepta o no valores NNULL. • • • •

Para crear tablas se debe utilizar la sentencia CREATE TABLE, cuya sintaxis es la siguiente: CREATE TABLE NombreTB ( Nombre_columna1 Nombre_columna 1 TIPODATO[(longitud)] [PROPIEDADES] Nombre_columna2 Nombre_columna 2 TIPODATO[(longitud)] [PROPIEDADES] Nombre_columna3 Nombre_columna 3 AS EXPRE EXPRESIÓN SIÓN | FÓ FÓRMULA RMULA ….. ) En donde:

NombreTB Nombre de la tabla a crear  Nombre_Columna Nombre de la columna o atributo a definir para la tabla TIPO DE DATO Tipo de dato válido para SQL Server 2000. LONGITUD  Aplicable a columnas de tipo char, text, varchar. Permite definir el número de caracteres a contener en la columna. PROPIEDADES Son propiedades que pueden ser asignadas a una columna individualmente, estas propiedades pueden ser: NULL : Permitir el almacenamiento de valores nulos en la columna NOT NULL : No Permitir el almacenamiento de valores nulos en la columna IDENTITY : Campo Autoincrementable. Aplicable a tipos de datos: inyint, smallint, int, bigint, decimal(p,0), numeric(p,0). Es necesario definir el valor para la primera fila y el incremento. Ejm. IDENTITY(1,1) •





 AS formula | Expresión Espe Es peci cific fica a un una a co colu lumn mna a calc calcul ulad ada, a, para para lo qu que e de debe be defi defini nirs rse e la fórm fórmul ula a o expresión de cálculo. Ejm.

Prof. Angel Roque

4

 

LENGUAJE DE PROGRAMACION IV

precioVta As PrecioCmp+igv

Ejercicio Nº 4 Crear la tabla siguiente: CREATE TABLE Oficinas ( Id_oficina int identity(1,1) not null, oficina int not null, ciudad varchar(15) not null, region varchar(15) not null, dir varchar(15) not nu null, ventas money not null )

MODIFICAR UNA TABLA EXISTENTE Una vez creada una tabla, ésta puede ser modificada utilizando la sentencia ALTER TABLE:  ALTER TABLE NombreTB NombreTB  ALTER COLUMN NombreColumna Nomb reColumna NULL | NOT| Expresión] NULL ión] [Propiedades]  ADD NombreColumn [TIP [TIPODATO ODATO | AS Formula Expres DROP COLUMN NombreColumna [,….n] En donde:  ALTER COLUMN Modificar propiedades de la columna especificada especificada  ADD Agregar una columna a la ta tabla bla DROP Eliminar la columna especificada

ELIMINAR UNA TABLA Para eliminar una tabla de la l a base de datos actual utilizar la sentencia DROP TABLE DROP TABLE NombreTB

RESTRICCIONES Uno de los principales objetivos de una base de datos relacional es cuidar y controlar  la integridad de datos, la cual podría perderse ante operaciones que modifican la información, tales como: INSERT, UPDATE, DELETE. Por ejemplo se puede perder la integridad de datos ante alguna de las siguientes situaciones: Se puede registrar un pedido de un producto no existente Podría modificarse los datos existentes con valores incorrectos. Los cambios a la base de datos podrían aplicarse parcialmente, por ejemplo si se registra un pedido sin actualizar el stock del producto requerido. • •



Prof. Angel Roque

5

 

LENGUAJE DE PROGRAMACION IV

SQL provee varios tipos de restricciones para controlar la integridad de datos, así tenemos:

Nivel de Integridad

Tipo de Restricción

Dominio (Columna)

DEFAULT

CHECK PRIMARY KEY Entidad (Fila)

Referencial (relación)

UNIQUE

FOREIGN KEY

Descripción Valo Va lorr Pred Predet eter ermi mina nado do.. Es Espe peci cific fica a el valor que se asignará para una columna, cuando no se le asigna un valor explícitamente en una sentencia INSERT. Regl Re gla a de Va Valid lidac ació ión. n. Es Espe peci cififica ca lo loss valores de los datos que son aceptables en la columna. Llave Primaria. Identifica cada registro o fila como única. Se crea un índice para mejo me jora rarr el rend rendim imie ient nto. o. Lo Loss va valo lore ress nulos no son permitidos. Valores No Duplicados. Previene la duplicación de las llaves alternas, y se asegura que un índice se crea para que mejo me jore re el rend rendim imie ient nto. o. Se pe perm rmite iten n valores nulos. Llave foránea. Define la columna o combinación de columnas de una tabla secundaria, cuyos valores dependen de la llave primaria de una tabla primaria.

Estas Restricciones se asignan al momento de crear una tabla con la sentencia CREATE TABLE o modificando una tabla existente con la sentencia ALTER TABLE CREATE TABLE NombreTB ( Nombre_columna1 Nombre_columna 1 TIPODATO[(longitud)] [PROPIEDADES] Nombre_columna2 Nombre_columna 2 TIPODATO[(longitud)] [PROPIEDADES] Nombre_columna3 Nombre_columna 3 AS EXPRE EXPRESIÓN SIÓN | FÓ FÓRMULA RMULA ….. [CONSTRAIN nombre_restricción] PRIMARY KEY (nombre_columna) UNIQUE (nombre_columna) FOREING KEY (nombre_columna) REFERENCE NombreTB(Nombre_columna) )

Ejercicio Nº 5: CREATE TABLE Procesos ( TipoEvento int, TiempoEvento datetime, LugarEvento char(50), DescripEvento char(1024), CONSTRAINT event_key PRIMARY KEY (TipoEvento, TiempoEvento) ) Prof. Angel Roque

6

 

LENGUAJE DE PROGRAMACION IV

Restricciones PRIMARY KEY El siguiente comando CREATE TABLE crea la tabla Tabla1 y define la columna Col1 como clave primaria: CREATE TABLE Tabla1 ( Col1 int PRIMARY KEY, Col2 varchar(30) ) Se puede definir la misma restricción utilizando la definición a nivel de tabla: CREATE TABLE Tabla1 (Col1 int, Col2 varchar(30), CONSTRAINT tabla_pk PRIMARY KEY (Col1) ) Se puede usar el comando ALTER TABLE para agregar una restricción PRIMARY KEY a una tabla existente:  ALTER TABLE Tabla1 Tabla1  ADD CONSTRAINT tabla_pk tabla_pk PRIMARY KEY (Col1) Cuando una restricción PRIMARY KEY se agrega a una columna (o columnas) existente en un tabla, SQL Server 2000 controla los datos ya existentes en las columnas para asegurar que se cumplen las siguientes reglas: ·

No hay valores nulos

·

No hay valores duplicados

Restricciones FOREIGN KEY  ALTER TABLE prestamo prestamo  ADD CONSTRAINT fk_libros_prestamos fk_libros_prestamos FOREIGN KEY(id_libro) REFERENCES libros(id_libro) GO Estable la relación entre las tablas libros y préstamo. La cláusula PREFERENCES hace referencia a la tabla en donde se encuentra la llave principal.

Restricciones DEFAULT  ALTER TABLE prestamo prestamo  ADD CONSTRAINT df_fecfecha_prestamo) df_fecha_prestamo ha_prestamo DEFAULT getdate() FOR Prof. Angel Roque

7

 

LENGUAJE DE PROGRAMACION IV

Establece que el valor predeterminado de la columna fecha_prestamo de la tabla prestamo es la fecha del sistema.

Restricciones CHECK  ALTER TABLE prestamo prestamo  ADD CONSTRAINT chk_estado chk_estado CHECK (estado LIKE ‘[BM]’ El contenido de la columna estado de la tabla prestamo debe ser necesariamente ‘B’ o ‘M’.

Restricciones UNIQUE  ALTER TABLE prestamo prestamo  ADD CONSTRAINT u_descripción u_descripción UNIQUE (descripcion) Establ Esta blec ece e que que la colu column mna a de desc scri ripc pció ión n de la tabl tabla a prés présta tamo mo no pu pued ede e tene tener  r  descripciones iguales o duplicados. Para obtener información de una tabla referente a todas sus propiedades, restricciones usar la sentencia: SP_HELP.

Sp_help nombreTB Si se quiere obtener información de la Base de Datos, usar la sentencia: SP_HELPDB.

Sp_helpDB NombreBD Para obtener información de una columna IDENTITY: •

Obtener valor para la primera fila: Select ident_seed('nomb ident_seed('nombreTB') reTB') Select ident_seed('presta ident_seed('prestamo') mo')



Obtener incremento Select ident_incr(' nombreTB ') Select ident_incr('prestamo')

ELIMINAR RESTRICCIONES Para Par a elimin eliminar ar una restri restricci cción, ón, será será nec necesa esario rio hac hacer er uso de la sente sentenci ncia a ALT ALTER ER TABLE:  ALTER TABLE prestamo prestamo DROP CONSTRAINT nombre_restricción Prof. Angel Roque

8

 

LENGUAJE DE PROGRAMACION IV

Ejemplo: Eliminar la restricción chk_estado  ALTER TABLE prestamo prestamo DROP CONSTRAINT chk_estado Ejemplo: Eliminar la definición DEFAULT df_fecha_prestamo  ALTER TABLE prestamo prestamo DROP CONSTRAINT df_fecha_prestamo

CASO PRACTICO DE IMPLEMENTACION El presente caso de estudio, servirá para poner en práctica los conceptos relacionados a Base de Datos con su implementación en SQL SERVER 2000 y la posterior  implem imp lement entaci ación ón de una apl aplica icació ción n inf inform ormáti ática ca par para a adm admini inistr strar ar los pro proces cesos os del negocio. MegaService es una empresa que se dedica a la comercialización al detalle de divers div ersos os pro produc ductos tos de con consum sumo o mas masivo ivo.. Cue Cuenta nta co con n un una a cad cadena ena de loc locale aless de autoservicio distintas zonas del área metropolitana de la ciudad y planea expandir  su influencia en a otras zonas del Cusco. Todas las áreas de la empresa y sus diferentes locales se interconectarán mediante una red local. Cada una de las áreas tiene requerimientos específicos, y se pretende resolverlos utilizando aplicaciones informáticas. Para viabilizar el desarrollo de software adecuado para la empresa, se delimitará el área de estudio a todas las operaciones que se lleven a cabo en el Almacén Central, y que tienen relación con él. La Base de Datos que se diseñará registrará todas las operaciones que se ejecuten en el Almacén Central de la Empresa, y estará habilitada para que todas las áreas de la organización puedan utilizarla.  Almacén Central podrá controlar las entradas y salidas de productos, y las demás áreas podrán efectuar consultas a la base de datos.

PROCESOS PRINCIPALES E EN N EL ALMA ALMACEN CEN CENTRAL •

REPOSICION DE MERCADERIA EN UN LOCAL 1. Si en el Local N existen existen produc productos tos que nec necesita esitan n reponer reponerse, se, el resp responsa onsable ble del inventario genera un Pedido en el que consigna los siguientes datos: - Número del pedido ido. - Fecha del Pedido - Código del Producto - Desc scri ripc pció ión nd de el Pr Prod oduc ucto to --

U deS M Cn aindtaida iddad So oleici icditiaddaa

Prof. Angel Roque

9

 

LENGUAJE DE PROGRAMACION IV

- Cant Cantid idad ad de de ÍÍte tems ms S Sol olic icititad ados os.. El número del pedido es un correlativo seguido de un guión separador y dos dígitos adicionales. Estos últimos identifican al Local que hace el pedido. 2. El Pedid Pedido o es e envi nviad ado o al A Alma lmacé cén. n. •

DESPACHO DE MERCADERIA DESDE ALMACEN HASTA UN LOCAL 1. Almacén Almacén recibe recibe la solici solicitud tud de merc mercadería adería del lo local cal N. 2. Almacén Almacén verifica verifica el el stock stock de lo loss producto productoss soli solicitad citados os co consult nsultando ando su co controla ntrola de inventarios. Actualmente Almacén control el inventario utilizando una lista de Excel en la que registra los l os siguientes datos: - Códi Código go de la Ca Cate tego gorí ría ad del el Pr Prod oduc ucto to - Código del Producto - Desc scri ripc pció ión nd de el Pr Prod oduc ucto to - Unidad de Medida - Precio de del P Pro rovveedor  - Prec recio de Ven Venta al Pú Púb blic lico - Stock Actual - Stock Mínimo - Estad Estado od del el Pro Produc ducto to ((si si est está ád disc iscont ontinu inuado ado o n no) o) - Nombre mbre del del Pro rove vee edor or.. 3. la Almacén Almac verifica verifica solo el stock stolos ck de los pr produc oductos, y genera gen Guía ía de Remi Remisión sión en queén consigna productos quetos, tiene el era niveluna de Gu inventario adecuado para cumplir con los requerimientos del Local N. En la Guía de Remisión consigna los siguientes datos: - Núme Número ro de la Gu Guía ía de Remi Remisi sión ón - Número de del P Pe edido - Local de Destino - Fecha de Salida - Nombre mbre del del T Tra rans nspo port rtis ista ta - Código del Producto - Desc Descri ripc pció ión n del del Prod Produc ucto to.. - Unidad de Medida - Cant ntid ida ad Despac spacha had da - Pr Prec ecio io de Vent Venta aa all Púb Públilico co (PVP (PVP)) - Cant Cantid idad ad de Ít Ítem emss Des Despa pach chad ados os 4. Si el lo loca call no re reci cibe be algu alguno no de los prod produc ucto toss so solic licititad ados os debe reit reiter erar ar su solicitud generando una nuevo Pedido con los productos no recibidos.



SOLICITUD DE MERCADERIA A UN PROVEEDOR 1. Cuando Cuando Almacén Almacén detecta detecta un bajo nive nivell de inventario inventario de algu algunos nos pro producto ductoss del Proveedor X, genera una Orden de Compra consignando los siguientes datos: - Nú Núme mero ro del del lla aO Ord rden en de Comp Compra ra - Fecha de la Orden - Nombre del Pr Proveedor  - Código d de el P Prroducto - Des esccrip ripció ión nd de el Pr Pro odu duccto - Unidad de Medida - Precio del Pr Proveedor 

Prof. Angel Roque

10

 

LENGUAJE DE PROGRAMACION IV

-

Cantidad a Solic licitar 

2. Almacén Almacén le envía envía la Or Orden den de Compra Compra al Depar Departamen tamento to de Compras Compras 3. Compras Compras se comunica comunica con con el Prov Proveedo eedorr para verif verificar icar y neg negociar ociar lo loss precio precios. s. 4. Compras Compras le envía envía al Prove Proveedor edor la Or Orden den de Co Compra mpra con consigna signando ndo en ella: ella: - Pr Prec ecio io de Comp Compra ra del del P Pro rodu duct cto o •

REC ECEP EPC CIO ION N EN ALMAC LMACE EN DE LA MERCA RCADERI DERIA A ENVIA NVIADA DA POR POR EL PROVEEDOR 1. EL Proveed Proveedor or despach despacha a todo o parte parte de lo soli solicit citado ado según según lo acord acordado ado con MegaService, dependiendo de su disponibilidad. 2. Alma Almacé cén n re reci cibe be lo desp despac acha hado do po porr el Pr Prov ovee eedo dorr y ac actu tual aliz iza a la Orde Orden n de Compra registrando la siguiente información: - Fe Fech cha ad de e Ing Ingre reso so de lo loss Pro Produ duct ctos os - Cantidad Recibida - Es Esta tado do del del P Pro rodu duct cto o en la la Or Orde den n de Co Comp mpra ra.. 3. Almacén Almacén actualiza actualiza la sigu siguiente iente in informa formación ción en su lis lista ta Exce Excell para el Contr Control ol de Inventarios. - St Sto ock Actu Actual al del del Pro Prod ducto ucto - Precio del Pr Proveedor  4. Almacén Almacén envía envía al Depa Departame rtamento nto de Co Compra mpras, s, la Orde Orden n de Comp Compra, ra, y la Guí Guía ay Factura del Proveedor.

Producto Esperado El producto esperado en esta fase es el diseño lógico y físico de la base de datos incluyendo llaves primarias, llaves foráneas, definiciones default, restricciones check, unique, uso de propiedades identity, no null, en sql-Server 2005, incluido el diagrama de la Base de Datos. Todo esto debe ser documentado en un archivo .doc y enviado al correo: [email protected] con ASUNTO: CASIV-MEGASERVICES.

Prof. Angel Roque

11

 

LENGUAJE DE PROGRAMACION IV

MANTENIMIENTO DE DATOS EN TABLAS SQL posee cuatro declaraciones del tipo DML(Daata Manipulation Language). Estas declaraciones permiten trabajar con los datos de la base de datos, y son: INSE INSER RT :P Per ermi mite te in insser erta tarr nu nuev evas as fila filass a un una a tta abl bla. a. UPDA UP DATE TE : Per Permi mite te ac actu tual aliz izar ar dato datoss e en nu un n atab atabla la DELE DE LETE TE : Par ara a el elim imin ina ar fila filass de un una a ta tab bla SELE SE LECT CT : Par ara a le leer er lo loss dato datoss de una ta tab bla la.. INSERTAR REGISTROS EN UN TABLA La Sentencia INSERT Se utiliza la sentencia INSERT para agregar registros a una tabla. Su sintaxis básica puede ser: INSERT [INTO] nombre_tabla [(Lista_columnas)] VALUES (lista_valores) En el caso caso ante anterio riorr List Lista_ a_co colu lumn mnas as espe especi cific fica a la lass co colu lumn mnas as en la lass cu cual ales es se almacenarán los datos. Y Lista_valores definen los valores a ser almacenadas en las columnas indicadas. En este caso significa que se almacenarán datos para todas las columnas de la tabla. INSERT [INTO] VALUES (lista_valores) Esta forma del comando INSERT permite almacenar datos en las columnas indicadas de la tabla NombreTB1 con los datos de otra tabla llamada NombreTB2. INSERT [INTO] SELECT FROM

Ejemplos: Insertar datos a un registro de la tabla libros: INSERT libros (titulo,autor,fecha_registro,precioCmp,igv) VALUES('programación II','Macro',getdate(),30,5) Inserta 3 registros a la tabla clientes INSERT clientes VALUES(500,’Martha Chavez’,104,1200) Chavez’,104,1200) INSERT clientes VALUES(501,’Jose Galvez’,104,1500) INSERT clientes VALUES(502,’Cesar Altamirano’,104,1000) Uso de DEFAULTS VALUES Si cada una de las columnas de la tabla tiene definido un valor por defecto, o permite valores nulos, o tiene la propiedad IDENTITY, podemos insertar filas, sin tener que especificar los valores a insertar tal como se muestra en el siguiente ejemplo: INSERT prestamo DEFAULT VALUES

Prof. Angel Roque

12

 

LENGUAJE DE PROGRAMACION IV

ACTUALIZAR DATOS DE UNA TABLA La sentencia UPDATE UPDATE nombreTB SET nombre_Columna = expresion1[,…..] [WHERE condición_filas] En donde: Nombre_columna : E Especifica specifica la columna que queremos actualizar  Expresión : Representa el nuevo valor almacenar en las columnas [,…] : IIn ndica qu que pu puede ac actualizar va varias cco olumnas e en n un una mi misma instrucción. Cond Co ndic ició ión_ n_fil filas as : Espe Especi cific fica a La ccon ondi dici ción ón que que d deb eben en cum cumpl plir ir las las ffililas as que que sse e va van na actualizar. Es necesario recordar que si la actualización de una fila no cumple con una restricción o regla, infringe la configuración de valores NULL o si el nuevo valor es de un tipo de datos incompatible, se cancela la instrucción, se devuelve un error y no se actualiza ningún registro. Ejemplos:  Actualizar LA información del del cliente cuyo código es C C-005 -005 UPDATE clientes SET nombre = ‘María’ WHERE Idclie = ‘C-005’ GO  Actualizar los campos SUELDO SUELDO sumándole 500 500 para todos los trabajadores que ganen un sueldo menor a 1000. UPDATE empleados SET sueldo = sueldo + 500 WHERE sueldo < 1000 GO En el siguiente siguiente ejemplo ejemplo,, se seleccionan seleccionan los libro libross cuyo cuyoss preci precios os de venta sea igual a 35 depositándolos en una tabla llamada AUXILIAR, que al momento de ejecutarse se crea, y luego se actualizan los precios de venta con un margen de ganancia de 1.2. Primero: SELECT * INTO auxiliar FROM libros WHERE precioVta=35 Luego: UPDATE auxiliar  SET precioVta=precioVta*1.2

ELIMINAR REGISTROS La Sentencia DELETE DE UNA TABLA

Prof. Angel Roque

13

 

LENGUAJE DE PROGRAMACION IV

DELETE [FROM] [WHERE condición_filas]

Donde: nombreTB Condición_fila ilas

: Nombre de la tabla donde se eliminarán los datos. : Indica ica la condición ión que deben cumplir las fila lass que serán eliminadas.

DELETE FROM Articulo WHERE IdArticulo=’BEB0003’ Si no se incluye la cláusula WHERE se eliminarán todas las filas de la tabla.

Ejemplos: Borrar todos los registros cuyo campo TITULO sea un valor NULL DELETE libros WHERE TITULO IS NULL Borrar los registros de la tabla libros cuyo título contenga los caracteres ‘II’ DELETE libros WHERE titulo like'%II%'

ELIMINAR TODOS LOS REGISTROS DE UNA TABLA Sentencia TRUNCATE TRUNCATE RECUPERAR DATOS DE UNA TABLA – CONSULTAS SQL Uno Un o de lo loss pr prin inci cipa pale less mo motiv tivos os por por el cu cual al se gu guar arda da in info form rmac ació ión, n, es po porq rque ue posteriormente se consultará dicha información. La sentencia a utilizar para realizar  consultas es: SELECT. SELECT Recupera información de la base de datos y permite la selección de una o más filas o columnas de una o muchas tablas. Las cláusulas principales para SELECT son: SELECT lista_cols FROM tabla_origen [WHERE condición] [GROUP BY columna1,…..] [HAVING condición] [ORDER [ORDE R BY columna1 columna1,…[ASC ,…[ASC | DESC DESC]] ]] En donde: Lista_cols Especifica las columnas a ser devueltas por el query. Para esto tener en consideración lo siguiente: • •

La lista de select recupera y muestra las columnas en el orden especificado. Separar los nombres de columnas con comas, excepto la última columna.

Prof. Angel Roque

14

 

LENGUAJE DE PROGRAMACION IV

• •

Usar un asterisco en la lista de select para recuperar todas las columnas de la tabla Usar una función sobre una o varias columnas.

FROM Determinar la tabla o tablas de donde se obtendrá la información. WHERE Establece un criterio de selección de filas GROUP BY Establece la lista de columnas por las cuales se agrupará la información.

HAVING Permite filtrar los grupos generados por GROUP BY ORDER BY Permite ordenar la información de acuerdo a los requerimientos. Operadores de condición para filas en WHERE: LIKE Para comparación de cadenas de caracteres. Admite los comodines % y _. BETWEEN Para selección de un rango de valores. Los valores pueden ser numéricos, de cadena, fechas y horas. IN Para selección en base a un conjunto de valores. Los valores pueden ser numéricos, de cadena, fechas y horas. Ejemplos: Lista los libros cuyo TITULO contenga la palabra programación. SELECT id_prestamo, tituto FROM libros WHERE titulo LIKE ‘%programación%’ Lista los libros en los que el segundo carácter del TITULO es una letra a. SELECT id_prestamo, tituto FROM libros WHERE titulo LIKE ‘_a%’ Lista los libros cuyo campo titulo empieza con las letras C,S ó P, y además el segundo caracter debe ser una A. SELECT id_prestamo, tituto FROM libros WHERE titulo LIKE ‘[csp]a%’ Lista los libros cuyo precio de compra se encuentra en el rango que va desde 15 a 30. SELECT id_libros, titulo, precioCmp FROM libros Prof. Angel Roque

15

 

LENGUAJE DE PROGRAMACION IV

WHERE precioCmp BETWEEN 15 and 30 Lista los libros registrados en el rango del 19 de enero del 2007 al 20 de octubre del 2007. SELECT id_libros, titulo, precioCmp FROM libros WHERE fecha_registro BETWEEN ‘19/01/2007’ AND ‘20/10/2007’ Lista de libros pertenecientes a los autores MC-Graw, RAMA SELECT id_libro, titulo, autor  FROM libros WHERE autor IN(‘MC-Graw’,’Rama’)

Para estas consultas se pueden utilizar las funciones predefinidas en SQL. Cuantos libros registrados existen por autor  SELECT count(*) FROM libros GROUP BY autor  SELECT * FROM libros GROUP BY autor  HAVING SUM(precioCmp+igv)>20 ORDER BY id_libro SELECT * FROM libros ORDER BY id_libros COMPUTE COUNT(titulo), AVG(precioCmp) BY id_libro Mostrar el precio de compra promedio de los libros. SELECT AVG(precioCmp) FROM libros Muestra los libros registrados antes de 1998 SELECT titulo FROM libros WHERE fecha_registro 2

 

Operadores Aritméticos

*  / % &

Operadores nivel de bit

DESCRIPCIÓN

(1 sies el 1) bit de alguno de los SELECT 3 | 2 dos binario operandos | OR

11 | 10 = 11 -> 3

OR exclusivo binario (1 si el bit b it de los SELECT 3 ^ 2 operandos es distinto)

11 ^ 10 = 01 -> 1

NOT binario (cambia el bit)

SELECT ~ 2

~10 = 01 -> 1

Igual

SELECT 1 = 2

FALSO

SELECT 1 < 2

VERDADERO

SELECT 1 > 3

FALSO

SELECT 1 >= 1

VERDADERO

^ ~ Operadores Relacionales =

< Menor > Mayor >= Mayor o igual

Prof. Angel Roque

17

 

LENGUAJE DE PROGRAMACION IV

Menor o igual

SELECT 10 No mayor

SELECT 1 !> 3

VERDADERO

No menor

SELECT 1 !en 10.laEn otrotitles. caso, se ejecutará ELSE, que devuelve el(SELECT número de títulosFROM almacenados tabla

Prof. Angel Roque

22

 

LENGUAJE DE PROGRAMACION IV

Otra forma de ejecutar sentencias de forma condicional, corresponde a la sentencia CASE. La sintaxis es la siguiente: CASE expresion1 WHEN expresion2 THEN resultado1 WHEN expresion3 THEN resultado2 ... [ELSE resultado3] En la sintaxis se compara la expresión 1, con el resto de expresiones especificadas a continuación de la palabra reservada WHEN. Si alguna de estas expresiones se cumple, se devolverá el resultado correspondiente a la palabra reservada THEN. Si no verific ver ifica a o no se cum cumple ple ningu ninguna na de las expres expresion iones, es, se devol devolver verá á el resu resulta ltado do especificado a continuación del ELSE. Por ejemplo, si queremos saber el nombre de los estados de los autores, en lugar de las iniciales, podemos ejecutar el. SELECT state = CASE state WHEN 'CA' THEN 'California' WHEN 'OR' THEN 'Oregon' ELSE 'Otro' END FROM authors En este caso se comprueba el valor del atributo state, y si este es igual a CA, se devolverá California, si es OR se devolverá Oregon, y en otro caso se devolverá la cadena 'Otro'.

SENTENCIAS ITERATIVAS Una sentencia iterativa es aquella que permite ejecutar una o varias sentencias de manera repetida, mientras se cumpla una condición lógica. La sentencia que permite realizarlo es WHILE, y su sintaxis WHILE expresion_logica sentencia [BREAK] [CONTINUE] La sent senten enci cia a es espe peci cific ficad ada a se ej ejec ecut uta a de form forma a ititer erat ativ iva, a, mi mien entr tras as se cu cump mpla la la expresión lógica. La cláusula BREAK, permite romper el bucle, y abandonarlo, aunque se cumpla la expresión lógica, mientras que CONTINUE permite ejecutar de nuevo las sentencias desde el comienzo del bucle, ignorando aquellas que vienen a continuación del CONTINUE.

Prof. Angel Roque

23

 

LENGUAJE DE PROGRAMACION IV

TIPOS DE DATOS EN SQL – 2000 Existe una amplia variedad de tipos de datos que podemos utilizar en Transact SQL. Estos tipo de datos serán utilizados a la hora de definir los atributos de una tabla. La siguiente tabla muestra una descripción de éstos:

Identificador en

Descripción

Rango de valores

Tamaño

SQL Server  Int

Entero largo

Smallint

Entero corto

Tinyint

Entero mínusculo (sin signo)

numeric(p,s) decimal(p,s)

Enteros y decimales desde -1.79E308 hasta de 2 a 17 bytes +1.79E308 en donde p es dependiendo de la decimal exacto sin el número de dígitos de la precisión redondeo parte entera (precisión) y s especificada es el de la parte decimal (escala)

float(n)

real

char(n) varchar(n)

money

Prof. Angel Roque

númerico de coma flotante con redondeo, donde n está comprendido entre 8 y 15. Doble precisión.

Desde -2.147.483.648 hasta +2.147.483.647 Desde -32.768 hasta 32.767 Desde 0 hasta 255

4 bytes 2 bytes 1 byte

Redondeos de números desde -1.79E308 hasta +1.79E308. Precisión positiva: desde 2.23E-308 8 bytes hasta 1.79E308 Precisión negativa: desde -2.23E-308 hasta -1.79E308 Redondeos de números desde -3.40E38 hasta +3.40E38. Precisión

númerico de coma flotante con redondeo, donde n está comprendido positiva: desde 1.18E-38 4 bytes hasta 3.40E38 entre 1 y 7. Simple Precisión negativa: desde precisión. -1.18E-38 hasta -3.40E38 1 byte por carácter   Alfanúmerico de Declarable hasta un declarado. Espacio máximo de 255 caracteres longitud fija consumido fijo. 1 byte por carácter   Alfanúmerico de Declarable hasta un usado. Espacio longitud variable máximo de 255 caracteres consumido variable Moneda. Números con una precisión 8 bytes de cuatro decimales.

24

 

LENGUAJE DE PROGRAMACION IV

smallmoney

datetime

smalldatetime

binary(n) varbinary(n) text image

bit

Prof. Angel Roque

Moneda. Números con una precisión de cuatro decimales. Fecha y hora para fechas históricas

Fecha y hora para uso corriente Campo binario de longitud fija Campo binario de longitud variable Campo para texto largo de tipo Memo. Campo para guardar imágenes de hasta 2 Gigas

Tipo bit

Desde -922.337.203.685.447,550 4 bytes 8 hasta 922.337.203.685.447,5507 Desde 1-enero-1753 hasta 31-diciembre-9999. El dato horario se guarda como número de milisegundos 8 bytes desde la medianoche del día en cuestión Desde 1-enero-1900 hasta 06-junio-2079. El dato horario se guarda como 4 bytes número de milisegundos desde la medianoche del día en cuestión Máximo de 255 bytes de n bytes, sean longitud usados todos o no Máximo de 255 bytes de n bytes como longitud máximo Máximo de 2 Gigabytes de Máximo 2 GB longitud Máximo de 2 Gigabytes de Máximo 2 GB longitud

0ó1

Desde 1 bit mínimo reutilizado a partir  del espacio de otra columna hasta 1 byte máximo si la columna fuera única.

25

 

LENGUAJE DE PROGRAMACION IV

RESUMEN DE FUNCIONES EN SQL Sql-Server 2000 dispone de funciones incorporadas que pueden ser usadas para algunas operaciones o cálculos sobre los datos de una tabla. Estas funciones se agrupan de la siguiente manera: Funciones de Agregado. •

Real Realizan oper aciones es que combinan combinan varios valores valores en uno. Ejemp Ejemplo: lo: COUN COUNT, T, SUM,izan MIN,operacion MAX, etc.

FUNCION  AVG(expresión) COUNT(* | columna) MAX(expresión) MIN(expresión) SUM(expresión)



RESULTADO Promedio de la expresión para toda la tabla o para grupos. Cuenta filas Valor m má áximo d de e lla a ex expresión p pa ara tto oda lla a tta abla o para grupos. Valor m míínimo d de e lla a ex expresión p pa ara tto oda lla a ta tabla o para grupos. Suma de d e lla a ex e xpresión p pa ara tto oda lla a tabla o para grupos.

Funciones de Fecha y Hora Tratan valores de tipo DATETIME y SMALLDATETIME FUNCION RESULTADO GETDATE() Retorna la fecha y hora del sistema, similar a DATE() DATEADD(parteFecha,n,fecha) Retorna una nueva fecha añadiendo n unidades de parteFecha a fecha DATEDIFF(parteFecha,fecha1,fecha2 Retorna la diferencia en parteFecha entre ) fecha1 y fecha2 DATENAME(parteFecha,fecha) Retorna la cadena correspondiente a parteFecha en fecha DATEPART(parteFecha,fecha) Retorna el número correspondiente a parteFecha en fecha DAY(fecha) Retorna el número correspondiente a la parte del día de fecha MONTH(fecha) Retorna el número correspondiente a la parte del mes de fecha YEAR(fecha) Retorna el número correspondiente a la parte del año de fecha GETUTCDATE() Retorna la fecha y hora del meridiano de Greenwich En donde parteFecha puede ser : parteFecha year quarter

Abreviatura yy, yyyy qq, q

parteFecha dayofyear day

Abreviatura parteFecha dy, y weekday dd, d hour

Abreviatura dw hh

month

mm, m

week

wk, ww

mi, n

Prof. Angel Roque

minute

26

 

LENGUAJE DE PROGRAMACION IV







El formato para fechas en SQL es mm-dd-yy. Funciones matemáticas Real Re aliz izan an oper operac acio ione ness tr trig igon onom omét étric ricas as,, ge geom omét étri rica cas, s, y de demá máss op oper erac acio ione ness numéricas. FUNCION  ABS(n)

RESULTADO Retorna el valor absoluto

SIO NS(n(n) ) C TAN(n)  ASIN(n)  ACOS(n)  ATAN(n) CEILING(n) DEGRESS(n) EXP(n) FLOOR(n) LOG(n) PI

Re etto orrn na ae ell cso esneondoedne n R Retorna la tangente de n Retorna el arco seno d de en Retorna el arco cosen coseno o de n Retorna el arco tangente d de en Entero d de e ssiimple p prrecisión ma mayor o iig gual q qu ue e ell valor específico Convierte radianes a grados Retorna el exponencial de un número Entero largo menor o igual al valor especificado Logaritmo natural de un número Constante que retorna 3.1416

R AD IA(N ND n)S(n) ROUND(n) SQRT(n)

Ce onvuve ielvrte ugnravdaolsoreanlerad D toiarinoeesntre 0 y 1 Redondea un número n a m cifras decimales Devuelve la raíz cuadrada de un número

Funciones de Conjunto de Filas Devuelven conjunto de filas que se pueden usar en el lugar de una referencia de tabla de una instrucción de Transact-SQL. Funciones de Cadena Tratan datos o valores char, varchar, nchar, nvarchar, binary y varbinary. FUNCION RESULTADO  ASCII(expC) Devuelve el códig código o ASCCI CO HW AR L E(Rn()expC) UPPER(expC) SUBS SU BSTR TR(e (exp xpC, C,m, m,n) n) LTRIM(expC) RTRIM(expC) REP RE PLI LICA CAT TE(e (exp xpC, C,n n) REVERSE(exp.) SPACE(n) STR(expN[,m[,n]]) ]])

D cainráúcstceurlaAsSCII de n Ce ovnuve ielvrte eal m Convierte a mayúsculas Extr Extrae ae n ca cara ract cter eres es a pa part rtir ir d de e la po posi sici ción ón m de la expC Elimina los espacios en blanco por la izquierda Elimina los espacios en blanco por la derecha Re Rep pitite e n vvec eces es la exp xpC. C. Retorna la cadena invertida Retorna n espacios en blanco Convierte la ex expN a carácter, op opccionalmente a m espacios con n cifras decimales.



Funciones de Text textoeeImage imagen Tratan valores

Prof. Angel Roque

27

 

LENGUAJE DE PROGRAMACION IV

Entre otras funciones propias del sistema.

Prof. Angel Roque

28

 

LENGUAJE DE PROGRAMACION IV

ACTIVIDAD 2  

: 1. Invest Investigue igue sobre funciones funciones para el tratami tratamiento ento de filas o regis registros tros y funciones para el manejo de texto e imagen, incluya los conceptos en un documento llamado FUNCIONES.DOC y almacénelo en la carpeta D:\practicasSQL. Debe incluir su nombre dentro del documento. 2. Consi Consideran derando do lo loss siguiente siguientess datos: datos: Base de datos Tabla

: PERSONAL : TRABAJADOR.DBF cuya estructura es: Codigo, Nomb Nombre ress  Apellido  Area, Cargo, Mtoven SueBas, Dsctos, Bonifs, SueTot Vacacion;

Codigo Nombres T-001 Juan Carlos T-003 Israel T-002 Iskra T-004 Raul T-005  Ana Rosa T-006 Miguel Angel T-007 María T-008  Andrés

C C C C C N N N N N L

Código del trabajador  Nomb Nombre ress del del Tr Trab abaj ajad ador  or  Apellidos del Trabajador  Area al que pertenece Cargo que ostenta el trabajador  Monto vendido Sueldo básico Descuentos Bonificaciones Sueldo Total si es verdadero el trabajador está de vacaciones.

Apellidos area Cargo Mtoven Tafur Guzmán Gerencia Gerente Guzmán Valladares Contabilidad Contador  Núñez de Vela Contabilidad  Auxiliar  Sifuentes Núñez  Administració  Administrador  Mendivil Tafur  2000 n Vendedor  Cárdenas Guzmán Limpieza Venta Olivares Chacón 4000  Administració Vendedor  Viaña Alegre Guardianía n

suebas Dsctos Bonifs SueTot 1500 1250 700 1400 500 500

vacacion .F. .F. .F. .F. .F. .F. .F. .F.

29

Prof. Angel Roque

 

LENGUAJE DE PROGRAMACION IV

Ventas  Administració n Realice las siguientes tareas utilizando TRANSACT-SQL: 1. Crear arr la lla a Base Ba se d de e da datos tosdo clave primaria 2. Cre Crea Crear tabla definien def iniendo primaria y la columna calculada calculada DESCUEN DESCUENTOS TOS que es el 3% del SUELDO SUELDO BÁSICO BÁSICO.. Asigne la propiedad IDENTITY a la columna de la clave principal. 3. Mod Modifi ifique que la ttabl abla a y: Defina restricciones DEFAULT para vacación (todo nuevo registro agregado a la tabla debe tener como vacación falso). Defina restricciones CHECK para la columna AREA, valores posibles de ser aceptados: GERENCIA, CONTABILIDAD,  ADMINISTRACION  ADMINISTRACIO N Y VENTAS. Defina restricciones CHECK para la columna CARGO, valores posibles de ser aceptados: GERENTE, CONTADOR,  AUXILIAR, VENDEDOR, VENDEDOR, LIMPIEZA, GUARDIANIA. GUARDIANIA. •





4. Alter Altere e la tabla y asigne valore valoress no nulos para todas todas las columnas columnas que no tengan restriccione restriccioness check, default default,, primary key, identity, foreign key, unique 5. Inser Inserte te lo loss dat datos os como como se indican. indican. 6. Ca Calc lcul ule e y Ac Actu tual alic ice e lo loss Su Suel eldo doss Bá Bási sico coss pa para ra lo loss ve vend nded edor ores es si siem empr pre e y cu cuan ando do no es esté tén n de va vaca caci cion ones es:: El SueBas=MontoVendido*0.25 si el MontoVendido es =3000 7. Calcule y actua actualice lice las Bonificaciones para todos los trabajadores que no estén de vacaciones: Bonifs= 2.5% del SueBas para todos los del Area de Gerencia y para el Contador  Bonifs= 2% del SueBas si Area es es Contabilidad y cargo es Auxiliar  Bo Boni nifs fs= = 2% de dell Mo Mont ntoV oVen endi dido do si Ar Area ea es Ve Vent ntas as y Mo Mont ntoV oVen endi dido do ALL (select salario from personas where cod_dep = 3)

13. Mostrar los empleados que no tengan asignado salario SELECT * FROM personas WHERE salario IS NULL 

14. Se desea averiguar el total pagado por la compañía, el máximo y el mínimo salario y el promedio pagado

Prof. Angel Roque

89

 

LENGUAJE DE PROGRAMACION IV SELECT  sum(salario), max(salario), min(salario), avg(salario) FROM personas

15. Mostrar el número y el nombre del proyecto en donde trabajen más de dos empleados SELECT nombre, numero_proy FROM proyectos, trabaja_en WHERE numero_proy = nump GROUP BY nombre, numero_proy HAVING count(*) > 1

Prof. Angel Roque

90

 

LENGUAJE DE PROGRAMACION IV

PROGRAMACIÓN EN EL SERVIDOR SQL 1. LAS VISTAS Una vista es una tabla virtual que muestra la información relevante para el usuario además que permite encapsular la complejidad de su implementación. Las vistas permiten realizar una partición horizontal o vertical de una o más tablas de la base de datos. En otras palabras, con una vista puede hacer que el usuario vea solo los campos y filas fi las seleccionadas. La vista es un objeto que almacena una consulta predefinida y que proporciona un modo alternativo de visualización de datos sin tener que redefinir r edefinir la consulta. Normalmente una vista puede incluir: - Un ssubc ubconj onjunt unto o de de filas filas o ccolu olumna mnass d de e un una a ta tabla bla.. - Un Una a uni unión ón de dos dos o má máss tab tabla lass bas base. e. - Una com combin binaci ación ón (join) (join) de dos o más más tabla tablass base base.. - Un resu resume men n est estad adís ístitico co de una una ttab abla la.. - Un ssubcon ubconjunto junto de o otra tra vvista, ista, ó al alguna guna combi combinació nación n de vista vistass y tabla tablas. s.

Como se observa en el ejemplo, los usuarios solo podrán observar las columnas que son importantes para su trabajo, esto da la ventaja de no tener que estar manipulando datos innecesarios. Otra Ot ra de la lass vent ventaj ajas as es qu que e simp simplif lific ica a co cons nsul ulta tass futu futura ras, s, qu que e pu pued eden en torn tornar arse se complejas.  Antes de implementar las vistas debemos tener en cuenta las siguientes consideraciones: Sólo pueden crearse vistas en la base de datos activa, aunque las tablas y/o vistas que son parte de la definición se encuentren en otras bases de datos. Se pueden crear vistas a partir de otras vistas No se pueden asociar propiedades default, reglas y/o desencadenadores (triggers) a una vista. •





Prof. Angel Roque

91

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF