lunes, 2 de mayo de 2011

SELECT .... WHERE- CONSULTAS

 SELECT WHERE-CONSULTAS

Debemos dar el uso apropiado de la sentencia SELECT usando bien los distintos tipos de consultas que ahí sobre la tabla y sus sentencias.

La sentencia SELECT  es la que nos permite a nosotros consultar los datos que están almacenado en una o varias tablas de una base de datos.

La sentencia SELECT es: 
SELECT [ALL | DISTINCT ]

<nombre_campo> [{,<nombre_campo>}]
FROM <nombre_tabla>|<nombre_vista
[{,<nombre_tabla>|<nombre_vista>}]
[WHERE <condicion> [{ AND|OR <condicion>}]]
[GROUP BY <nombre_campo> [{,<nombre_campo >}]]
[HAVING <condicion>[{ AND|OR <condicion>}]]
[ORDER BY <nombre_campo>|<indice_campo> [ASC | DESC]

[{,<nombre_campo>|<indice_campo> [ASC | DESC ]}]]

PARTES DE LA SENTENCIA SELECT :

  • SELECT: Esta es la palabra clave que nos indica que la sentencia SQL que queremos ejecutar es de selección.
  • FROM:Es el que nos indica la tabla desde la que queremos recuperar los datos.
  • ALL:Esta indica que queremos seleccionar todos los valores.
  • DISTINCT: Indica que queremos seleccionar valores distintos.
  • WHERE:Esta nos especifica la condición que se debe cumplir para que los datos sean devueltos por la consulta AND/OR.
  • GROUP BY:Esta especifica la agrupación de los datos.
  • HAVING:Esta nos especifica la condicion que se debe cumplir para que los datos sena devueltos a la consulta.
  • ORDER BY: Esta nos presenta el resultado ordenado en la columnas que se indican,este orden se pueden dar en forma  ASC(Ascendente) o DESC(Descendente).
EJEMPLO CLASE 
CREATE TABLE vehiculo(matricula  VARCHAR(30) PRIMARY KEY,
marca  VARCHAR(30),
modelo INT NULL,
color CHAR (30),
num_kilometros  INT NULL

INSERT INTO vehiculo (matricula,marca,modelo,color,num_kilometros)
VALUES  ('MXC525','Renault',1997,azul',89000);

INSERT INTO vehiculo (matricula,marca,modelo,color,num_kilometros)
VALUES  ('GYU789','chevrolet',1998,'rojo',45000);


INSERT INTO vehiculo (matricula,marca,modelo,color,num_kilometros)
VALUES  ('ASR443','mazda',1996,'negro',23000);

INSERT INTO vehiculo (matricula,marca,modelo,color,num_kilometros)
VALUES  ('VGF444','mazda',2003,'amarillo',3400);


INSERT INTO vehiculo (matricula,marca,modelo,color)
VALUES  ('ASR555','skoda',2010,'plata');

INSERT INTO vehiculo (matricula,marca,modelo,color,num_kilometros)
VALUES  ('VFT','renault',2005,'azul',4500);

INSERT INTO vehiculo (matricula,marca,modelo,color)
VALUES  ('MGH256','skoda',2000,'rojo');


  • Si quieres enterarte un poco mas acerca de las consultas en MYSQL solo haz clic aquí: 




viernes, 29 de abril de 2011

DELETE

DELETE 

Esta es una de las operaciones de proceso y manipulación de tablas,el DELETE nos permite eliminar algún registro o renglón de una tabla.

La sintaxis de DELETE es: 

DELETE FROM nombre_tabla WHERE condicion; 

O para eliminar un renglón es:

DELETE FROM nombre_tabla WHERE condicion1=condicion2;


Podemos recordar que también baja o elimina un reglón o registro de la tabla puede ser cualquier campo o columna de la tabla. 

EJEMPLOS 
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
       tbl_name[.*] [, tbl_name[.*] ...]
       FROM table_references
       [WHERE where_definition]
     
       DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
       FROM tbl_name[.*] [, tbl_name[.*] ...]
       USING table_references
       [WHERE where_definition]
     








jueves, 28 de abril de 2011

LLAVES COMPUESTAS

LLAVES PRIMARIAS COMPUESTAS 

La llave primaria compuesta se utiliza para poder identificar en forma única las lineas de las tablas una por una,esta puede ser parte de un registro real o ser un campo artificial.

Esta también puede consistir en uno o mas campos en una tabla,cuando se utilizan múltiples campos como clave primaria se les denomina claves compuestas,estas pueden especificarse cuando se crea la tabla de la siguiente manera: 
  • (Utilizando CREATE TABLE) o cambiando la estructura existente de la tabla (Utilizando ALTER TABLE) 
Antes de utilizar el comando de ALTER TABLE para poder agregar una clave primaria compuesta se necesita de que el campo este definido como "NOT NULL" en si "NULL" no puede aceptarse como un valor para este campo,estas claves compuestas pueden ser simples,formadas por un solo campo o compuestas por mas de un campo.

EJEMPLO CLASE 

CREATE TABLE  TADM_DET_PAGO
(
NUM_PAGO TINYINT
NOT NULL,
ITEM NUMERIC (2)
NOT NULL,
ID_CONCEPTO NUMERIC(2)
NOT NULL,
VALOR_PAGADO NUMERIC (10)
NULL,
ID_FORMA_PAGO  TINYINT
NOT NULL
)


TABLA DE ESTUDIANTES

CREATE TABLE estudiantes (id_estudiante INT NULL PRIMARY KEY,
apellidos_nombres VARCHAR(30)
);

TABLA PAGOS:

CREATE TABLE pagos(id_pago INT NULL PRIMARY KEY,
id_concepto VARCHAR(30),
 FOREIGN KEY (id_concepto) REFERENCES conceptos(id_concepto),
valor_total_pagado INT NULL,
id_estudiante INT NULL 
);

CREATE TABLE det_pago (
id_pago INT NULL,
valor_pagado INT NULL,
item TINYINT,
 FOREIGN KEY (id_pago) REFERENCES pagos(id_pago)
);

  •  LLAVE  DE LA TABLA DET_PAGO


ALTER TABLE det_pago
ADD CONSTRAINT PK_DET_PAGO
PRIMARY KEY
(id_pago, ITEM);






miércoles, 27 de abril de 2011

INDICES

Clase :15/abril/2011
INDICES EN MYSQL

Los indices son un grupo de datos que MYSQL asocia en una o varias columnas de la tabla,en este grupo de datos aparece la relación con el contenido y el numero de la fila donde este ubicado.


Estos indices nos sirven para poder agilizar las consultas en una base de datos o en si en las tablas,para crear el indice lo podemos hacerlo a la misma vez que creamos la tabla,usando la palabra INDEX seguido el nombre del indice que se quiere crear y sus respectivas columnas. 
  
La sintaxis del indice como tal es: 

  •  PRIMARY KEY (nombre_columna_1 [,nombre_columna2...]) UNIQUE INDEX nombre_indice    (columna_indexada1 [,columna_indexada2 ...]) INDEX nombre_index (columna_indexada1 [,columna_indexada2...])
Cuando queremos crear el indice en una tabla ya creada se debe hacer así:
  • ALTER TABLE nombre_tabla ADD INDEX nombre_indice (columna_indexada); 
Si queremos eliminar un indice ya creado es así: 
  • ALTER TABLE nombre_tabla DROP INDEX nombre_indice
Los indices son apuntadores a los campos en una tabla que permiten: 
  1. Agilizar el acceso al contenido en una consulta por el campo referido.
  2. Restringir la inserción de datos en una tabla.
  • No se puede eliminar un indice si es de tipo UNIQUE y existen registros.
  • Cuando existan registros duplicados no se pueden crear indices tipo UNIQUE.
  • Un indice para dos o mas campos es UNIQUE siempre y cuando los campos referenciados no sean duplicados.
  • Dos indices no pueden tener el mismo nombre.
  " Las llaves primarias siempre son indices"
  "Los indices pueden apuntar 2 o mas campos en una misma tabla"


¿Para que sirve un indice?


Los indices nos permiten tener una mayor rapidez a la hora de la ejecución de las consultas de base de datos tipo SELECT....WHERE. Hay dos reglas para poder crear un indice y son :

  1. Para poder crear el indice que deseas tiene que ser en la columna que vayas a usar con la clausura WHERE y no crearlo con aquellas columnas que utilicen SELECT.
  2. Es mejor indexar una columna que presente valores distintos.

La sintaxis de Indice:

CREATE  INDEX [UNIQUE] <nombre_indice> ON <nombre_tabla> (campo1, campo2)

EJEMPLO CLASE: 


CREATE TABLE departamentos 
(clave INT AUTO_INCREMENT PRIMARY KEY COMMENT 'clave principal',
nombre CHAR(50) NOT NULL,
ubicacion CHAR(50) NULL DEFAULT 'principal'
);
INSERT INTO departamentos VALUES 
('DEFAULT','cartera','principal'),
('DEFAULT','contabilidad','principal')

CREATE INDEX index_nombre
ON departamentos (nombre)

ALTER TABLE departamentos
DROP indx_nombre

CREATE UNIQUE INDEX indx_nombre
ON departamentos (nombre)