El SQL es el lenguaje “estándar” para las bases de datos. El termino esta entre comillas porque...

Post on 24-Jan-2016

219 views 0 download

Transcript of El SQL es el lenguaje “estándar” para las bases de datos. El termino esta entre comillas porque...

Diseño de base de datos

Tema 4 : LDD

1. IntroducciónT

4: L

DD

2

El SQL es el lenguaje “estándar” para las bases de datos. El termino esta entre comillas porque entre cada sistema gestor de base de datos (SGBD) pueden haber diferencias con respecto a algunas sentencias o algunas sintaxis.

Este lenguaje se divide en dos partes. Lenguaje de manipulación de datos (LDD) y lenguaje de manipulación de datos (LMD).

1. IntroducciónT

4: L

DD

3

Este lenguaje se divide en dos partes. Lenguaje de manipulación de datos (LDD) y lenguaje de manipulación de datos (LMD).

1. IntroducciónT

4: L

DD

4

SERVIDOR

SERVIDOR

BASE DE DATOS

Esquema de tablas

2. LDDT

4: L

DD

5

El LDD, es el Lenguaje de Definición de Datos. Este lenguaje nos servirá para crear, alterar y eliminar objetos dentro de SQL.

Cuando hablamos de objetos nos referimos a la estructura donde se almacenaran los datos (conocido como esquema), no a los datos en si.

Base de datos agenda

2. LDDT

4: L

DD

6

CREATE: sentencia crea un objeto dentro del servidor MySQL. Puede ser una base de datos, tabla, vista, índice, disparador, funciones, procedimientos y evento.

CREATE objeto Definición

CREATE [OBJETO] DEFINICIÓN;

2. LDDT

4: L

DD

7

CREATE DATABASE: sentencia crea una base de datos dentro del servidor MySQL.

CREATE DATABASE

CREATE DATABASE miprimerabd;

nombre

El nombre no puede contener carácter de espacio en blanco o caracteres especiales (%, $, &, @, entre otros).Una vez creada una base de datos, se procede a crear las tablas, antes de esto se debe de seleccionar la base de datos. Esto se realiza con la orden USE nombre;.

USE miprimerabd;

2. LDDT

4: L

DD

8

CREATE TABLE: sentencia crea una tabla dentro de una base de datos seleccionada (USE).

CREATE TABLE

CREATE TABLE miprimeratb (id char(2) primary key);

nombre

El nombre no puede contener carácter de espacio en blanco o caracteres especiales (%, $, &, @, entre otros). Luego del nombre se ubica la definición entre paréntesis.

Definición

2. LDDT

4: L

DD

9

CREATE TABLE:

DefiniciónNombrecolumna

Tipo y tamaño

Propiedad de columnas

,

(

)Propiedades de tabla

,

CREATE TABLE mitb2 (id char(2) NOT NULL, dato varchar(30), primary key(id));

2. LDDT

4: L

DD

1 0

CREATE TABLE:Nombrecolumna

Deberá de ser un nombre completo, sin caracteres especiales, ni espacios en blanco.

Tipo y tamaño

Pueden ser VARCHAR(tamaño), CHAR(tamaño), INT, NUMERIC, FLOAT, BOOLEAN…entre otros.

Propiedad de columnas

NOT NULL, AUTO_INCREMENT, UNIQUE, PRIMARY KEY…entre otros. También conocido como constraint

Propiedades de tabla

PRIMARY KEY, UNIQUE, FOREIGN KEY. También conocido como constraint

2. LDDT

4: L

DD

11

CREATE TABLE:Propiedades de las tablas: PRIMARY KEYSe usa obligatoriamente cuando la tabla tiene mas de una llave primaria, y opcionalmente cuando solo tiene una.

Esta propiedad entra en conflicto con la propiedad PRIMARY KEY de las columnas, por lo que solo puede aparecer una de ellas según el caso.

2. LDDT

4: L

DD

1 2

CREATE TABLE:Propiedades de las tablas: FOREIGN KEY

foreign key (

Nom. Columnas

,

) references

Tabla referenciar ( )

Nom. Columnas

,

on delete

update

set null

cascada

restrict

no action

2. LDDT

4: L

DD

1 3

CREATE TABLE:

create table departamento (depto char(5),nombre varchar(25) NOT NULL, primary key(depto));

2. LDDT

4: L

DD

1 4

CREATE TABLE:

create table persona (cedula char(17) PRIMARY KEY,nombre varchar(25) NOT NULL, depto char(5), constraint pk_p_d foreign key(depto) references departamento(depto) on delete cascade on update cascade);

2. LDDT

4: L

DD

1 5

ALTER: sentencia modifica la estructura de los objetos de la base de datos. Puede ser agregar/quitar columnas de tabla, modificar tipo de campo, agregar/quitar constraint.

ALTER modificaciónobjeto

ALTER [OBJETO] MODIFICACIÓN;

2. LDDT

4: L

DD

1 6

ALTER TABLE: sentencia modifica la estructura de las tablas. Existen 3 acciones de modificación agregar (ADD), borrar (DROP) y cambiar (CHANGE).

ALTER

acción

TABLE

ALTER TABLE mitb2 [acción] modificación;

modificación

nombre

2. LDDT

4: L

DD

1 7

ALTER TABLE:

acción

add

drop

COLUMNAS

CONSTRAINT

change

2. LDDT

4: L

DD

1 8

ALTER TABLE:

ALTER TABLE nombre

addDefinición de

la columna

change Nombre actual de la columna

drop Nombre de la columna

column

column

2. LDDT

4: L

DD

1 9

ALTER TABLE:

alter table persona change nombre nomb2 varchar(100) not null;

alter table departamento add column apellido varchar(10) not null;

alter table departamento drop column apellido;

2. LDDT

4: L

DD

2 0

DROP: sentencia elimina los elementos de la base de datos. Puede eliminar tabla, vista, indice, funciones, procedimientos, entre otros.

DROP objeto

DROP TABLE persona;

3. Tipos de datosT

4: L

DD

2 1

Los tipos de datos corresponde a la restricción que se otorgue a una columna, esta restricción esta dada por un tipo de valor que soporta y un tamaño. Entre los tipos permitidos por MySQL (algunos coinciden con otros SGBD) están los siguientes:

TIPO DESCRIPCIÓN

BINARY Cadenas de binarios entre 0 a 255

BLOB Archivos binarios de 0 a 65,535 bytes

LONGBLOB BLOB hasta 4,294,967,295

MEDIUMBLOB BLOB hasta 16,777,215

TINYBLOB BLOB HASTA 255

VARBINARY BINARY variante entre 0 a 255

DATE YYYY MM DD de 0000 00 00 a 9999 12 31

DATETIME YYYY MM DD hh mm ss de 1001 01 01 00h 00m 00s a 9999 12 31 23h 59m 59s

TIME hh:mm:ss

3. Tipos de datosT

4: L

DD

2 2

TIPO DESCRIPCIÓN

TIMESTAMP 1001 01 01 0h 0m 0s a 9999 12 31 23h 59m 59s

YEAR YYYY 1901 a 2155

BIGINT -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807. Unsigned, desde 0 a 18,446,744,073,709,551,615

DECIMAL Número en coma flotante desempaquetado yes almacenado como una cadena.

DOUBLE -1.7976931348623157E+308 a -2.2250738585072014E-308. Unsigned 0 y desde 2.2250738585072014E-308 a1.7976931348623157E+308

FLOAT -3.402823466E+38 a -1.175494351E-38. Usigned 0 y desde1.175494351E-38 a 3.402823466E+38

INT -2,147,463,846 a 2,147,483,647. Si configuramos este dato como unsigned, el rango es 0 a 42,94,967,295

3. Tipos de datosT

4: L

DD

2 3

TIPO DESCRIPCIÓN

MEDIUMINT -8,388,608 a 8,388,607. Si se configura como unsigned, 0 a 16,777,215

SMALLINT -32,768 a 32,767. Si se configura como unsigned, 0 a 65535.

TINYINT -128 a 127 y si tiene la propiedad unsigned su rango seria 0 a 255

CHAR Caracteres de texto de 0 a 255

VARCHAR Caracteres de texto variante 0 a 255

LONGTEXT Caracteres de texto hasta 4,294,967,295

MEDIUMTEXT Caracteres de texto hasta 16,777,215

TEXT Caracteres de texto de 0 a 65,535

TINYTEXT Caracteres de texto de 0 a 255

BIT Binario de 0 a 1

ENUM Selección individual con 0 a 65,535 posible selección

3. Tipos de datosT

4: L

DD

2 4

TIPO DESCRIPCIÓN

SET Selección múltiple con 0 a 64 posibilidades

BOOL 0 a 1

4. Prop iedades ColumnasT

4: L

DD

2 5

Siglas Propiedad DescripciónPK PRIMARY KEY Con esta propiedad se

asigna como llave primaria a una columna (atributo) de la tabla.

NN NOT NULL La columna no podrá contener valores nulos.

UQ UNIQUE La columna es un valor único (pero no es la llave primaria).

BIN BINARY UN UNSIGNED Valor sin signo (solo para

tipos numéricos).

ZF ZEROFILL Fuerza a 0 los valores por defecto.

AI AUTO_INCREMENT La columna ira incrementando automáticamente por cada fila.