INTRODUCCIN A MYSQL
Ejemplos:
Importante.
Los nombres de las base de datos y as como tambin los nombre de las tablas de la
base de datos no deben contener espacios en blanco.
Tabla
CREATE TABLE crea una tabla con el nombre dado. Se debe
poseer el privilegio CREATE para la tabla.
Crear Tablas
Sentencia CREATE TABLE. Construye una tabla
Sintaxis
CREATE TABLE nombreDeTabla (
Campo1 tipo de dato ,
Campo2 Tipo de dato,
Campo2 Tipo de dato,
)
Ejemplo:
CREATE TABLE TABLA1 (
Campo1 int,
Campo2 int,
Campo3 char(3)
)
CREATE TABLE Proveedores (
ClaveProveedor int,
Nombre char(40)
)
Alumnos
Matricula: int
Nombre: char(20)
Apellidos: varchar(50)
Fecha_Nac: datetime
Telefono: char(18)
Direccion: text
ALTER TABLE
Permite modificar la estructura de una tabla existente.
Por ejemplo, se pueden aadir o eliminar columnas,
crear y destruir ndices, cambiar el tipo de una columna
existente o renombrar columnas o la propia tabla.
Tambin es posible modificar el comentario y el tipo de
la tabla.
ALTER
[IGNORE]
TABLE
tbl_name
alter_specification [, alter_specification ...]
ANALYZE TABLE
Analiza y almacena la distribucin de claves de una
tabla. Durante el anlisis, la tabla se bloquea para
lectura. Funciona con tablas MyISAM y BDB.
ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE
tbl_name[,tbl_name...]
BACKUP TABLE
Copia al directorio de copia de seguridad el nmero
mnimo de ficheros de tablas necesarios para restaurar
la tabla, despus de escribir cualquier cambio al disco.
BACKUP TABLE tbl_name [,
'/path/to/backup/directory'
tbl_name]
...
TO
DELETE
Elimina columnas desde "table_name" que satisfagan la
condicin dada por la "where_definition", y devuelve el
nmero de registros borrados.
DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
FROM table_name[.*] [, table_name[.*] ...]
USING table-references
[WHERE where_definition]
DROP DATABASE
Elimina todas las tablas de la base de datos y borra la
base de datos.
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
UPDATE
Actualiza columnas de filas existentes de una tabla con
nuevos valores.
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name [,
tbl_name ...]
SET col_name1=expr1 [, col_name2=expr2 ...]
[WHERE where_definition]
Integridad de Datos
La exigencia de integridad de los datos garantiza la calidad de los
datos de la base de datos. Dos pasos importantes en el diseo de
las tablas son la identificacin de valores vlidos para una columna
y la determinacin de cmo forzar la integridad de los datos en la
columna. La integridad de datos pertenece a una de las siguientes
categoras:
Integridad de entidad
Integridad de dominio
Integridad referencial
Integridad definida por el usuario
Integridad de Datos
TIPOS DE INTEGRIDAD DE DATOS
Integridad de entidad:
La integridad de entidad define una fila como entidad nica para una tabla
determinada. La integridad de entidad exige la integridad de las columnas
de los identificadores o la clave principal de una tabla, mediante ndices y
restricciones UNIQUE, o restricciones PRIMARY KEY.
Integridad de dominio:
La integridad de dominio viene dada por la validez de las entradas para
una columna determinada. Puede exigir la integridad de dominio para
restringir el tipo mediante tipos de datos, el formato mediante reglas y
restricciones CHECK, o el intervalo de valores posibles mediante
restricciones FOREIGN KEY, restricciones CHECK, definiciones
DEFAULT, definiciones NOT NULL y reglas.
Integridad de Datos
TIPOS DE INTEGRIDAD DE DATOS
Integridad referencial :
La integridad referencial protege las relaciones definidas entre las tablas
cuando se crean o se eliminan filas. En SQL Server 2005 la integridad
referencial se basa en las relaciones entre claves externas y claves
principales o entre claves externas y claves exclusivas, mediante
restricciones FOREIGN KEY y CHECK. La integridad referencial garantiza
que los valores de clave sean coherentes en las distintas tablas. Para
conseguir esa coherencia, es preciso que no haya referencias a valores
inexistentes y que, si cambia el valor de una clave, todas las referencias a
ella se cambien en consecuencia en toda la base de datos.
Integridad de Datos
TIPOS DE INTEGRIDAD DE DATOS
Integridad referencial :
Cuando se exige la integridad referencial, SQL Server impide a los
usuarios:
Agregar o cambiar filas en una tabla relacionada si no hay ninguna fila
asociada en la tabla principal.
Cambiar valores en una tabla principal que crea filas hurfanas en una
tabla relacionada.
Eliminar filas de una tabla principal cuando hay filas relacionadas
coincidentes.
Por ejemplo, en las tablas Sales.SalesOrderDetail
y Production.Product de la base de datos
AdventureWorks, la integridad referencial se basa
en la relacin entre la clave externa (ProductID)
de la tabla Sales.SalesOrderDetail y la clave
principal
(ProductID)
de
la
tabla
Production.Product. Esta relacin garantiza que
un pedido de ventas no pueda nunca hacer
referencia a un producto que no existe en la tabla
Production.Product.
Integridad de Datos
TIPOS DE INTEGRIDAD DE DATOS
Integridad definida por el usuario
La integridad definida por el usuario permite definir reglas de
empresa especficas que no pertenecen a ninguna otra categora
de integridad. Todas las categoras de integridad admiten la
integridad definida por el usuario. Esto incluye todas las
restricciones de nivel de columna y nivel de tabla en CREATE
TABLE, procedimientos almacenados y desencadenadores.
Integridad de Datos
EXIGIR LA INTEGRIDAD DE LOS DATOS
Planear y crear tablas requiere identificar los valores vlidos para las
columnas y decidir cmo exigir la integridad de los datos en las columnas.
SQL 2005 proporciona los siguientes mecanismos para exigir la integridad
de los datos en una columna:
Restricciones PRIMARY KEY
Restricciones FOREIGN KEY
Restricciones UNIQUE
Restricciones CHECK
Definiciones DEFAULT
Permitir valores NULL
Integridad de Datos
RESTRICCIONES
Restricciones PRIMARY KEY :
Si se define una restriccin PRIMARY KEY para ms de una columna, puede
haber valores duplicados dentro de la misma columna, pero cada combinacin de
valores de todas las columnas de la definicin de la restriccin PRIMARY KEY
debe ser nica. Como se muestra en la siguiente ilustracin, las columnas
ProductID y VendorID de la tabla Purchasing.ProductVendor forman una
restriccin PRIMARY KEY compuesta para esta tabla. As se garantiza que la
combinacin de ProductID y VendorID es nica.
Integridad de Datos
RESTRICCIONES
Restricciones FOREIGN KEY:
La tabla Sales.SalesOrderHeader
de la base de datos
AdventureWorks tiene un vnculo a
la tabla Sales.SalesPerson porque
existe una relacin lgica entre
pedidos de ventas y personal de
ventas. La columna SalesPersonID
de la tabla SalesOrderHeader
coincide con la columna de clave
principal de la tabla SalesPerson.
La columna SalesPersonID de la
tabla SalesOrderHeader es la clave
externa para la tabla SalesPerson.
Creacin de Vistas
Seguridad: visualizamos solo una parte de la informacin que
existe
Comodidad: el modelo relacional no es cmodo para visualizar,
tener una vista nos simplifica esta tarea
Creacin de Vistas
Para crear una vista debemos utilizar la sentencia CREATE VIEW,
debiendo proporcionar un nombre a la vista y una sentencia SQL SELECT vlida.
CREATE VIEW <nombre_vista>
AS (<sentencia_select>);
Ejemplo: Crear una vista sobre nuestra tabla alquileres, en la que se nos muestre el
nombre y apellidos del cliente en lugar de su cdigo.
CREATE VIEW vAlquileres
AS
(
SELECT nombre,
apellidos,
matricula
FROM tAlquileres,
tClientes
WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )
Modificacin de Vistas
Si queremos, modificar la definicin de nuestra vista podemos utilizar la sentencia
ALTER VIEW, de forma muy parecida a como lo hacamos con las tablas. En este
caso queremos aadir los campos fx_alquiler y fx_devolucion a la vista.
ALTER VIEW vAlquileres
AS
(
SELECT nombre,
apellidos,
matricula,
fx_alquiler,
fx_devolucion
FROM tAlquileres,
tClientes
WHERE ( tAlquileres.codigo_cliente =
tClientes.codigo )
)
Eliminacin de Vistas
Por ltimo podemos eliminar la vista a travs de la sentencia DROP
VIEW. Para eliminar la vista que hemos creado anteriormente se
utilizara:
VISTAS EN MYSQL
vistas.
Como
mecanismo
de
seguridad:
creacin
de
vistas
con,
ALTER
[(columnas)]
AS sentencia_select [WITH
VIEW nombre_vista
DROP VIEW
[IF EXISTS]