domingo, 26 de junio de 2016

Exportar e Importar TABLAS

EXPORTAR TABLA
Desde la ventana de Ejecutar de Windows abrimos una terminal mediante el comando CMD

Nos posicionamos sobre la carpeta del dispositivo de destino
(por ejemplo e:\BaseDeDatos>)

Una vez ubicados en el dispositivo y carpeta de destino ejecutamos:
exp scott/tiger file=respaldo tables=facturas,detfacturas,clientes,articulos


IMPORTAR TABLA
Desde la ventana de Ejecutar de Windows abrimos una terminal mediante el comando CMD

Nos posicionamos sobre la carpeta del dispositivo de origen, donde se encuentra el respaldo de las tablas (por ejemplo e:\BaseDeDatos>)

Una vez ubicados en en dispositivo y carpeta de origen ejecutamos:
imp scott/tiger fromuser=scott touser=scott file=respaldo.DMP 

sábado, 25 de junio de 2016

Crear, Modificar, Eliminar y Respaldar una Tabla & Ingresar, Modificar y Eliminar datos de la Tabla

ALERTA!
No olvidar ejecutar COMMIT; luego de una modificación
o en caso contrario hacer ROLLBACK.

CUIDADO!
Realizar siempre eliminación LOGICA, más NO FISICA, cambiando estatus a 'E'.

CREAR UNA TABLA
CREATE TABLE CLIENTES(
CODIGO VARCHAR2(4),
NOMBRE VARCHAR2(20),
LIMCRE NUMBER(10,2),
ESTATUS VARCHAR2(1));

VER ESTRUCTURA DE UNA TABLA
DESCRIBE CLIENTES 

DESC CLIENTES 

COPIAR UNA TABLA (BACKUP)
CREATE TABLE BACKUP_CLIENTES
AS SELECT * FROM CLIENTES;

MODIFICAR ESTRUCTURA DE UNA TABLA
AGREGAR COLUMNA A LA TABLA
ALTER TABLE CLIENTES
ADD TELEFONO VARCHAR2(10);

MODIFICAR COLUMNA DE LA TABLA
ALTER TABLE CLIENTES

MODIFY TELEFONO VARCHAR2(13);

ELIMINAR COLUMNA DE LA TABLA
ALTER TABLE CLIENTES
DROP COLUMN TELEFONO;

INCLUIR DATOS EN UNA TABLA
En Algunas Columnas
Si se desean incluir valores en ciertas columnas de una tabla, se procede a especificar en que columnas se incluirán y los valores que se desean incluir en estas, siempre debe haber una concordancia unívoca entre la cantidad de columnas y los valores a incluir.

INSERT INTO CLIENTES (...,...)
VALUES (...,...);

Ejemplo:
INSERT INTO CLIENTES (codigo,nombre,estatus)
VALUES ('0001','MAKRO','A');


En Todas las Columnas
Si se desean incluir datos en todas las columnas de la tabla, en el orden de aparición de estas, puede obviarse la discriminación de los campos y colocar directamente los valores, teniendo en cuenta que deben introducirse todos y cada uno de los valores en el mismo orden en el que están en la tabla.

INSERT INTO CLIENTES
VALUES (...,...)

Ejemplo:
INSERT INTO CLIENTES (codigo,nombre,estatus)
VALUES ('0007','SIDETUR',7500,'A');

Utilizando Parámetros
INSERT INTO CLIENTES
VALUES ('&CODIGO','&NOMBRE',&LIMCRE,'A');

ELIMINAR DATOS DE UNA TABLA
DELETE FROM CLIENTES
WHERE ESTATUS='E';

MODIFICAR UNA FILA (Registro) DE UNA TABLA
UPDATE CLIENTES
SET  LIMCRE = 5000
WHERE CODIGO=2;


MODIFICAR VARIAS FILAS (Registros) DE UNA TABLA
UPDATE CLIENTES
SET  LIMCRE = 0,
ESTATUS = 'E'
WHERE LIMCRE<3000;

MODIFICAR VARIOS CAMPOS DE UN REGISTRO DE UNA TABLA TRAYENDO DATOS DE OTRA TABLA
UPDATE CLIENTES
SET  (LIMCRE,ESTATUS) = (SELECT LIMCRE,ESTATUS 
FROM PROVEEDORES WHERE CODIGO='0002')
WHERE CODIGO='0002';

IMPORTANTE!
ACCESAR AL EDITOR PARA CORREGIR CODIGO
ED + ENTER 
Luego se guarda el archivo con el mismo nombre, salimos del editor de código, colocamos el ";" y presionamos ENTER nuevamente.

martes, 3 de mayo de 2016

Select (Part II)

Omitiendo filas duplicadas en un QUERY (DISTINCT)
SELECT DISTINCT CODCLI
FROM FACTURAS
WHERE ESTATUS='A';

Utilizar Alias para una columna/table en un QUERY
SELECT NOMBRE AS "NOMBRE DEL CLIENTE"
FROM CLIENTES CL
WHERE ESTATUS='A';

Concatenar Valores en Columnas
SELECT 'LA FACTURA ' ||NUMERO|| ' SE EMITIO EL: ' ||FECHA|| ' Y SE VENCE EL: ',
FECHA+DIASVIGENCIA
FROM FACTURAS
WHERE ESTATUS='A';

Uso de Operadores Matematicos
SELECT CODIGO,DESCRIPCION,COSTO,((COSTO*0.40)+COSTO) AS "PRECIO"
FROM ARTICULOS
WHERE ESTATUS='A';

NOTA: El orden de evaluacion de los operadores es el siguiente:  * / +  -
  Si una expresion/funcion hace referencia a una columna que contiene un valor NULO,
  el resultado tambien sera NULO. 
  NO DEBEMOS OLVIDAR QUE UN VALOR NULO PUEDE AFECTAR CUALQUIER
   VALOR, PUES AL INTENTAR OPERAR CON EL, EL RESULTADO SERA NULO.

SELECT CODIGO,NOMBRE,LIMCRE AS "LIMITE DE CREDITO",
LIMCRE+500 AS "LIMITE PROPUESTO"
FROM CLIENTES
WHERE ESTATUS='A';

Uso de FUNCIONES en Columnas
TRUNC y ROUND
SELECT CODIGO,LIMCRE,LIMCRE*0.125,TRUNC(LIMCRE*0.125),
ROUND(LIMCRE*0.125)
FROM CLIENTES
WHERE ESTATUS='A';

UPPER y SUBSTR
SELECT DESCRIPCION,UPPER(DESCRIPCION),SUBSTR(DESCRIPCION,1,5)
FROM ARTICULOS
WHERE ESTATUS='A';

AVG (Promedio) , MAX (Mayor) y SUM (Sumatoria de Columna)
SELECT AVG(COSTO),MAX(COSTO),SUM(COSTO)
FROM ARTICULOS
WHERE ESTATUS='A';

Fechas
Descomponer fechas en Dia, Mes y Año. TO_CHAR 

Parametros de la funcion TO_CHAR

Elemento 
Descripción 
DD 
Día del mes. 
D    
Día de la semana. 
DAY 
Nombre del día en mayúscula. 
MM 
Mes (01 – 12). 
MONTH 
Nombre del mes en mayúscula. 
MON 
Las tres primeras letras del mes en mayúscula. 
HH: MI: SS     
Horas minutos y segundo. 
Fm 
Suprime los blancos. 

SELECT NUMERO,FECHA,TO_CHAR(FECHA,'DD') AS "DIA",
TO_CHAR(FECHA,'MONTH') AS "MES", TO_CHAR(FECHA,'YYYY') AS "AÑO"
FROM FACTURAS
WHERE ESTATUS='A';

domingo, 1 de mayo de 2016

SEQUENCE

CREAR UNA SECUENCIA
CREATE SEQUENCE SEQ_PROVEEDOR
START WITH 1 INCREMENT BY 1;

BORRAR UNA SECUENCIA
DROP SEQUENCE SEQ_PROVEEDOR;

INCLUIR MULTIPLES FILAS EN UNA TABLA MEDIANTE SECUENCE PARA UN VALOR EN UN QUERY
INSERT INTO PROVEEDORES
(CODIGO,NOMBRE,LIMCRE,ESTATUS)
SELECT SEQ_PROVEEDOR.NEXTVAL,NOMBRE,LIMCRE,ESTATUS
FROM CLIENTES;

SELECT (Part I)

Mostar ciertos registros por columnas de una table: SELECT CODIGO,NOMBRE
FROM CLIENTES;

Mostar todos los registros por columnas de una table:SELECT * FROM CLIENTES;

Mostar registros por columnas de una table con alguna condición particular:
La clausula WHERE en el SELECT
SELECT CODIGO,NOMBRE,LIMCRE
FROM CLIENTES;
WHERE CODIGO='0007';

Constraint y usos (PRIMARY KET, FOREIGN KEY, CHECK, NOT NULL, UNIQUE)

CONSTRAINT     USO

PRIMARY KEY 

Para identificar a una o varias columnas como clave primaria de la tabla. 
CHECK  
Para especificar que el contenido de una columna debe cumplir con una condición dada. 

FOREIGN KEY 


Para identificar a una o varias columnas como clave foránea de una tabla. La (s) columna (s) debe (n) estar definidas como clave primaria en la tabla referenciada. 

NOT NULL 

Especifica que la columna tiene que tener un valor no nulo. 

UNIQUE                                          
Para especificar a una o varias columnas como clave única o clave alterna.  

sábado, 30 de abril de 2016

Creando Relaciones entre Tables

ALTER TABLE MARCA_CARRO ADD CONSTRAINT MARCA_CARRO_PK PRIMARY KEY (CODIGO_MARCA) ;

ALTER TABLE MODELO_CARRO ADD CONSTRAINT MODELO_CARRO_PK PRIMARY KEY (CODIGO_MODELO);

ALTER TABLE TIPO_CARRO ADD CONSTRAINT TIPO_CARRO_PK PRIMARY KEY (CODIGO_TIPO);

ALTER TABLE TIPO_CARRO_MODELO ADD CONTRAINT TIPO_C_MOD_PK PRIMARY KEY (CODIGO_UNIDAD);

ALTER TABLE INVENTARIO_CARROS ADD CONSTRAINT INVENTARIO_PK PRIMARY KEY (CODIGO_UNIDAD);

ALTER TABLE MODELO_CARRO ADD CONSTRAINT MODELO_CARRO_FK1 FOREIGN KEY (CODIGO_MODELO) REFERENCES MARCA_CARRO (CODIGO_MARCA);

ALTER TABLE TIPO_CARRO_MODELO ADD CONSTRAINT TIPO_C_MOD_FK1 FOREIGN KEY (CODIGO_MODELO) REFERENCES MODELO_CARRO(CODIGO_MODELO);


viernes, 29 de abril de 2016

Sentencias a tomar en cuenta en cada caso...

Comandos de DDL (Data Definition Language)

- Crear una tabla:
   CREATE TABLE NOM_TABLA
   (COLUMN1 VARCHAR2(10) NOT NULL,COLUMN2 NUMBER(10,2));

- Borrar Tabla:
   DROP TABLE NOM_TABLE

- Mostrar columnas de una tabla:
   DESC NOM_TABLE

- Adicionar una nueva columna a una tabla o "Corregir" error en nombre de columna de una tabla:
   Crear una columna nueva con el nombre corregido:
   ALTER TABLE NOM_TABLE ADD COLUMN_NEW VARCHAR2(20); 
   NOTA: En el caso de estar corrigiendo el nombre de una columna, sera necesario, copiar los datos existentes de la columna a sustituir, posterior a la creación de la nueva.

- Borrar Columna de una Tabla:
   ALTER TABLE NOM_TABLE
   DROP COLUMN NOM_COLUMN;

- Modificar columna de una tabla:
   ALTER TABLE NOM_TABLE MODIFY COLUMN1 VARCHAR2(20); 

Comandos de DML (Data Manipulation Language)

- Insertar valor en columna de una tabla:
   INSERT COLUMN1 INTO NOM_TABLE VALUES(VALOR);
  

- Mostrar contenido de ciertas columnas de una tabla:
   SELECT COLUMN1,COLUMN2, COLUMN5 FROM NOM_TABLE;

- Copiar los datos existentes de la columna a sustituir:
   UPDATE NOM_TABLE SET COLUMN_NEW=COLUMN_OLD

- Insertar dato en registro existente:
   UPDATE NOM_TABLE SET 
   COLUMN1='DATO1',COLUM2=DATONUM1 WHERE COLUM3='DATOaBUSCAR';


- Modificar el valor de un campo en un registro existente en una table:
   UPDATE NOM_TABLE SET LIMCRE=5600 WHERE CODIGO=2;


- Modificar el valor de varios campo en UN registro existentes en una table:
   UPDATE NOM_TABLE SET LIMCRE=0, ESTATUS='E' WHERE LIMCRE<3000;


- Modificar valores de una Table utilizando los valores de otra table:
   UPDATE NOM_TABLE SET 
(LIMCRE,ESTATUS)=(SELECT LIMCRE,ESTATUS
FROM PROVEEDORES WHERE CODIGO=3) WHERE CODIGO='0002';


- Eliminando data de una table:

   UPDATE NOM_TABLE SET LIMCRE=0, ESTATUS='E' WHERE LIMCRE<3000;

- Grabando las modificaciones ejecutadas en la Base de Datos:
COMMIT;

- Deshacer modificaciones realizadas posteriores al ultimo commit; o al inicio de sesion SQL:

ROLLBACK;