Creación de BD, tablas, atributos, indices e interrelaciones

Cuadrado A   -  Fuentes M  -  Cordoba F.

Contenido

  • Presentación (done)
  • Introduccion
  • Crear bases de datos, tablas, atributos, indices e interrelaciones en MySQL
  • Ejemplo:​
    • Modelo
    • Prueba
  • Referencias

Introducción

  • Existen dos lenguajes para el manejo de base de datos:
  • DDL (Data Definition Language): Lenguaje que se usa para crear bd, tablas, estructuras, permisos y privilegios. (Trabaja sobre Diccionarios de datos)
  • DML (Data Manipulation Language): Se usa para modificar y obtener datos desde las bases de datos
  • SQL = DDL+DML

MySQL

  • Crear base de datos
  •  
  • Averiguar cuantas bases de datos existen
  •  
  • Seleccionar base de datos

 

 

 

CREATE DATABASE <nombre>;
SHOW DATABASES;
USE <base_de_datos>;

Base de datos

  • Crear tabla, en su forma mas simple

Tablas

CREATE TABLE <nombre_tabla> (<atributo1> VARCHAR(40), <atributo2> DATE);
  • Mostrar tablas
SHOW TABLES;
 nombre_col tipo [NOT NULL | NULL] [DEFAULT valor_por_defecto] 
        [AUTO_INCREMENT] [[PRIMARY] KEY] [COMMENT 'string'] 
        [definición_referencia]
  • Sintaxis completa para definir columnas

MySQL

Tablas

DESCRIBE alumno;
  • Ver estructura de una tabla
CREATE TABLE ciudad1 (nombre CHAR(20) NOT NULL, poblacion INT NULL);
CREATE TABLE ciudad2 (nombre CHAR(20) NOT NULL,
    -> poblacion INT NULL DEFAULT 5000);
CREATE TABLE ciudad3 (nombre CHAR(20) NOT NULL PRIMARY KEY,
    -> poblacion INT NULL DEFAULT 5000);
  • Columnas autoincrementadas
CREATE TABLE ciudad5 (clave INT AUTO_INCREMENT PRIMARY KEY,
    -> nombre CHAR(20) NOT NULL,
    -> poblacion INT NULL DEFAULT 5000);
  • Valores nulos
  • Con Valores por defecto
  • Con llave primaria

MySQL

Tipos de datos -comunes-

  • Numericos:
    • ​Bit o Bool (0 o 1)
    • Integer
    • Float
    • Double
    • Decimal
  • Fecha
    • ​Date
    • DateTime
    • Time
    • Year
  • Cadena
    • ​Char (longitud fija);
    • varChar
    • Enum
    • Text

 MySQL

-INSERT INTO <nombre_tabla> VALUES ('Fulano','1974-04-12');
-INSERT INTO <nombre_tabla> (<columnax>,<columnay>) VALUES ('valorcolumnax','valorcolumnay');
-INSERT INTO <nombre_tabla>
    -> SET <columnax>='Roma', <columnay>=8000000;

Inserción

  • Insertar fila

Modificaciones

ALTER TABLE <tabla> add column <nombre_columna> <tipo_dato>(<rango>);
ALTER TABLE <NOMBRE DE TABLA> MODIFY <NOMBRE DE COLUMNA> <TIPO DE DATO>;
  • Modificar tipo de dato columna
  • Modificar una tabla y agregar columna nueva
ALTER TABLE <tabla> add foreign key(<Llave_primaria>) 
 ->references <Tabla_Referencia>(<Atributo_Foraneo>);
  • Modificar indice de atributo para que sea llave foranea

MySQL

Indices

  • Claves primarias:
definición_columnas;
   PRIMARY KEY (index_nombre_col,...);
  • Claves Unicas: son irrepetibles, a excepción de null (Ventaja al momento de hacer busquedas secuenciales)
CREATE TABLE nombre
       definición_de_columnas
       [CONSTRAINT [símbolo]] FOREIGN KEY [nombre_index] (nombre_col_index,...) 
       [REFERENCES nombre_tabla [(nombre_col,...)]
        [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]
        [ON DELETE RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT]
        [ON UPDATE RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT]]
  • Claves Foraneas: son irrepetibles, a excepción de null (Ventaja al momento de hacer busquedas secuenciales)
CREATE TABLE <nombretabla>(
    -> id INT,
    -> nombre CHAR(19),
    -> UNIQUE (nombre));

MySQL

PROBANDO INTERRELACION

SELECT alumno.A, alumno.Nombre, practica.P, practica.nombre, entrega.Nota
->FROM (alumno INNER JOIN entrega) INNER JOIN practica
->ON alumno.A=entrega.Afk AND practica.P=entrega.Pfk
->;

Ejemplo

Dada la base de datos compuesta por las siguientes tablas:

  • ALUMNOS ( A#, NOMBRE, GRUPO)
  • PRACTICAS (P#, CURSO, FECHA)
  • ENTREGA(A#, P#, NOTA)

 

Crear la base de datos, tablas, atributos, indices e interrelaciones usando el interprete de comandos de MySQL.

Modelo

Referencias

  • http://www.desarrolloweb.com/articulos/1054.php
  • http://mysql.conclase.net/curso/index.php?cap=007a#007_indices
  • http://programacion.net/articulo/integridad_referencial_en_mysql_263/4
  • http://www.webtutoriales.com/articulos/claves-foraneas-en-mysql
  • https://www.youtube.com/watch?v=ioZHSLiWJBM

 

¡Obrigado!

Expo base de datos

By Albert Machado

Expo base de datos

Creaciones de base de datos, tablas, atributos, indices e interelaciones

  • 822