Está en la página 1de 27

UNIVERSIDAD TÉCNICA DE MANABÍ

DEPARTAMENTO DE INFORMÁTICA

Administración de Base
de Datos

Tercer Semestre
Ing. Lorena Bowen Mendoza
ADMINISTRACIÓN DE BASES DE DATOS

PROCESAMIENTO DE
TRANSACCIONES
UNIDAD II
ADMINISTRACIÓN DE BASES DE DATOS
CONTENIDO A TRATAR HOY:
Gestión de Tablas.
Sentencias de modificación de SQL.

Objetivo de la Clase:
 Proporcionar los fundamentos para crear y usar
una base de datos relacional.
Escribir sentencias INSERT, UPDATE, DELETE para
modificar las filas de una tabla.

Cognitive Cities Management Research Group (CMMA) 3


Gestión de Tablas
GESTIÓN DE TABLAS
CREACIÓN DE TABLAS
• Una tabla es un elemento de la base de datos que es utilizada para registrar, organizar y
presentar la información en cualquier formato. Las tablas se componen de filas (registros
o tuplas) y columnas (Campos o atributos) las tablas se componen de dos estructuras:
• Registro: Es una fila que contiene datos con la misma relación de información. Ejemplo:
en una tabla que tiene columnas como nombres y direcciones, cada fila contendrá un
nombre y una dirección de personas diferentes.
• Campo: Son las columnas que forman la tabla. Contienen datos e información de tipo
diferente a los de otros campos; cada campo contendrá un tipo de datos único. Es
importante destacar que no puede haber dos campos que almacenen la misma
información.

Cognitive Cities Management Research Group (CMMA)


Creación de Tablas
Tipos de Datos de MySQL

Números

Enteros Decimales

TinyInt Bit SmallInt MediumInt Integer BigInt Float xReal Decimal

Cognitive Cities Management Research Group (CMMA)


Creación de Tablas
Tipos de Datos de MySQL

Fechas
Date Datetime TimeStamp Time Year

1 de enero del 1001 a las 0


1 de enero del 1001 horas, 0 minutos y 0 1 de enero de -838 horas, 59
segundos al 31 de 1901 al año
al 31 de diciembre diciembre del 9999 a las 23 1970 al año minutos y 59
de 9999 2155
horas, 59 minutos y 59
segundos. 2037 segundos

Cognitive Cities Management Research Group (CMMA)


Creación de Tablas

Cognitive Cities Management Research Group (CMMA)


Creación de Tablas
Tipos de Datos de MySQL

Cadena de
texto

Char(n) Varchar(n) TinyText Text MediumBlob LongText Enum Set

Longitud Longitud Columna


Texto 65535 16777215 4294967295 Lista de Lista hasta
fija. 0 – variable. 0 255 caracteres caracteres caracteres valores 64 valores
255 – 255 caracteres
caracteres

Cognitive Cities Management Research Group (CMMA)


Creación de Tablas

Cognitive Cities Management Research Group (CMMA)


Creación de Tablas
Sintaxis General para Crear una Tabla
• La sintaxis general para crear una tabla es:
CREATE TABLE nombre_tabla (
nombre_campo1 TIPO_COLUMNA(),
nombre_campo1 TIPO_COLUMNA(),
nombre_campo1 TIPO_COLUMNA(), ….. );

• A continuación de las definiciones de las columnas podemos añadir otras


definiciones.
Claves primarias
Índices
Claves únicas
Claves foráneas
Cognitive Cities Management Research Group (CMMA)
Creación de Tablas
Claves Primarias
• Clave primaria simple
Create table Provincia
(Codigo INT NOT NULL,
Nombre Char (20),
Poblacion INT,
CONSTRAINT PK_PROVINCIA PRIMARY KEY (código));
• Claves primarias compuesta
Create table Mitabla
(Id1 Char (2) NOT NULL,
Id2 Char (2) NOT NULL,
Observacion Char (30),
PRIMARY KEY (Id1, Id2));
Cognitive Cities Management Research Group (CMMA)
Creación de Tablas
Índices
• Definir índices sobre una columna, sobre varias, o sobre partes de columnas.
Create table Mitabla2 Create table Mitabla2
(Id Int NOT NULL, (Id Int NOT NULL,
Nombre Char (20), Nombre Char (20),
INDEX (nombre)); KEY (nombre));
Son equivalentes.
• También podemos crear un índice sobre parte de una columna:
Create table Mitabla3
(Id Int NOT NULL,
Nombre Char (20),
INDEX (nombre(4)));
Este ejemplo usará sólo los cuatro primeros caracteres de la columna 'nombre'
para crear el índice.
Cognitive Cities Management Research Group (CMMA)
Creación de Tablas
Claves Únicas
• Definir índices con claves únicas, también sobre una columna, sobre
varias o sobre partes de columnas.
• Una clave primaria equivale a un índice de clave única, en la que el
valor de la clave no puede tomar valores NULL. Tanto los índices
normales como los de claves únicas sí pueden tomar valores NULL
Create table Mitabla4
(Id Int NOT NULL,
Nombre Char (20),
UNIQUE (nombre));
• Los índices sirven para optimizar las consultas y las búsquedas de
datos. Mediante su uso es mucho más rápido localizar filas con
determinados valores de columnas, o seguir un determinado orden. La
alternativa es hacer búsquedas secuenciales, que en tablas grandes
requieren mucho tiempo.
Cognitive Cities Management Research Group (CMMA)
Creación de Tablas
Claves Foráneas
• En MySQL sólo existe soporte para claves foráneas en tablas de tipo InnoDB. Sin embargo,
esto no impide usarlas en otros tipos de tablas.

CREATE TABLE TIPO_USUARIO


(idTipoUsuario int,
descTipoUsuario varchar(20) NOT NULL,
CONSTRAINT PK_TIPO_USUARIO PRIMARY KEY(idTipoUsuario));

CREATE TABLE USUARIO


(idUsuario char(8)NOT NULL,
idTipoUsuario int NOT NULL,
nomUsuario varchar(35) NOT NULL,
direccion varchar(50)NULL,
habilitado bit NOT NULL,
fechaExpCarnet smalldatetime NOT NULL,
CONSTRAINT PK_USUARIO_idUsuario PRIMARY KEY(idUsuario),
CONSTRAINT FK_USUARIO_idTipoUsuario FOREIGN KEY (idTipoUsuario)
REFERENCES TIPO_USUARIO(idTipoUsuario));
Cognitive Cities Management Research Group (CMMA)
Creación de Tablas
Valores Autoincrementable
• El atributo 'AUTO_INCREMENT' se puede usar en las columnas numéricas enteras para generar un índice único para
nuevos registros. En una tabla solo un campo podrá incluirla.
• CREATE TABLE usuario (
id_usuario INT PRIMARY KEY AUTO_INCREMENT,
nombre VARCHAR(50) NOT NULL,
direccion VARCHAR(50) NOT NULL,
ciudad VARCHAR(20) NOT NULL,
edad TINYINT NOT NULL);

Los auto_increment tienen algunas características:


1. Son siempre incrementales sobre la base del valor de una variable de servidor que no se puede modificar
dinámicamente.
2. Sólo producen números positivos.
3. No se pueden invocar para tomarlos como valores asignables a otras cosas.
4. Sólo tienen efecto sobre su propia tabla.
5. Su rango máximo no es definible programáticamente, sino que depende del rango máximo del tipo de columna
definido. Por ello hay que tener cuidado al elegir el tipo de columna para no quedarse corto.
6. Como sólo produce positivos, si eliges un tipo de columna con signo, desperdicias la mitad del rango, porque no
se producirán.

Cognitive Cities Management Research Group (CMMA)


GESTIÓN DE TABLAS
MODIFICACIÓN DE TABLAS
• Durante el desarrollo de creación y puesta en marcha de una base de datos, tendrá
que realizar algunos ajustes para optimizar el recurso de almacenamiento, se utiliza
Alter Table.
• Para aumentar un campo en la tabla:
• ALTER TABLE usuario ADD Fecha_Registro DATE;
• Para aumentar un campo como índice de tipo único:
• ALTER TABLE usuario ADD email varchar(50);
• ALTER TABLE usuario ADD UNIQUE(email);
• Para añadir la columna 'materno' después de la columna 'paterno‘:
• ALTER TABLE ejemplo ADD materno VARCHAR(20) AFTER paterno;

Cognitive Cities Management Research Group (CMMA)


GESTIÓN DE TABLAS
MODIFICACIÓN DE TABLAS
Para añadir la columna 'id' en primer lugar con respecto a las existentes:
• ALTER TABLE ejemplo ADD id INT FIRST

Para modificar (cambiar) el tamaño de una columna:


ALTER TABLE usuario MODIFY email varchar(150);

Para cambiar el nombre de una columna y tipo de datos:


ALTER TABLE usuario CHANGE ciudad accesos_permitidos int(4);

• Para cambiar el tipo de datos de una columna y especificar una restricción:


• ALTER TABLE usuario MODIFY edad FLOAT(6,2) NOT NULL;

Cognitive Cities Management Research Group (CMMA)


GESTIÓN DE TABLAS
MODIFICACIÓN DE TABLAS
• Para cambiar el nombre de una columna y tipo de datos:
ALTER TABLE usuario CHANGE ciudad accesos_permitidos int(4);
• Para renombrar y/o cambiar el nombre la tabla:
ALTER TABLE t2 RENAME Tabla2;
• Para añadir un índice a la columna 'categoria' y además crear la llave primaria
en la columna 'clave‘:
• ALTER TABLE ejemplo ADD INDEX(categoria), ADD PRIMARY KEY(clave);
• Para añadir un 'Foreign key' en la columna 'id' de la tabla 'usuarios' que
apunta a la columna 'id_user' de la tabla 'entradas‘:
• ALTER TABLE usuarios ADD FOREIGN KEY(id) REFERENCES
entradas(id_user);

Cognitive Cities Management Research Group (CMMA)


GESTIÓN DE TABLAS
MODIFICACIÓN DE TABLAS
• Para eliminar una columna:
• ALTER TABLE usuario DROP COLUMN edad;
Para eliminar varias columnas:
ALTER TABLE Nombre_Tabla DROP COLUMN campo1, DROP COLUMN campo2;
• Eliminar una clave primaria y clave externa (FOREING KEY y PRIMARY KEY):
ALTER TABLE nombre_tabla DROP PRIMARY KEY;
ALTER TABLE nombre_tabla DROP FOREIGN KEY nombre_columna;
Para cambiar el auto incrementable en una tabla:
• ALTER TABLE usuario AUTO_INCREMENT=1000;

Cognitive Cities Management Research Group (CMMA)


GESTIÓN DE TABLAS
ELIMINACIÓN DE TABLAS
• Con la sentencia DROP TABLE de MySQL se puede borrar de manera rápida y
sencilla una tabla de una base de datos.
DROP TABLE nombre_tabla

• Se puede afinar la sentencia añadiendo ‘IF EXISTS‘, es decir si existe.


DROP TABLE IF EXISTS nombre_table

• De esta manera solo se borraría la tabla si esta existe. Es recomendable usar ‘IF
EXISTS‘ ya que si la tabla no existe cortaría la ejecución del código MySQL restante.

• Se pueden borrar varias tablas separando el nombre de cada una con una ‘,’.
DROP TABLE IF EXISTS nombre_tabla, nombre_tabla2, nombre_tabla3;

Cognitive Cities Management Research Group (CMMA)


Sentencias de modificación
de SQL
SENTENCIAS DE MODIFICACIÓN DE SQL
INSERCIÓN DE DATOS
• INSERT INTO personas (ApellidoPaterno, ApellidoMaterno, Nombres, Direccion, telefono,
sexo, FechaNacimiento, EstadoCivil)
VALUES ('Demera', 'Ureta', 'Gabriel', 'Cdla. Parque Forestal', '052123456','M','1974-03-
18','C');

• INSERT INTO personas VALUES ('Demera', 'Ureta', 'Gabriel', 'Cdla. Parque Forestal',
'052123456','M','1974-03-18','C');

• INSERT INTO personas (ApellidoPaterno, ApellidoMaterno, Nombres, telefono, sexo,


EstadoCivil)
VALUES ('Hidalgo', 'Villamar','Luis Ernesto','Limón', '052580113','M','1977/08/25','C');

Cognitive Cities Management Research Group (CMMA)


SENTENCIAS DE MODIFICACIÓN DE SQL
INSERCIÓN DE FILAS MÚLTIPLES
INSERT INTO Estudiantes
SELECT * FROM Personas WHERE EstadoCivil = 'S‘;

INSERT INTO personas (ApellidoPaterno, ApellidoMaterno, Nombres, Direccion, telefono, sexo,


FechaNacimiento, EstadoCivil)
VALUES ('Hidalgo', 'Villamar','Luis Ernesto','Limón', '052580113','M','1977/08/25','C'),
('Aveiga', 'Zambrano','Enma', 'Montecristi', '052636222','F','1974/06/18','C'),
('Zambrano','Franco', 'Luis Felipe','García Moreno y Sucre', '052632333', 'M', '1976/04/10', 'C'),
('López', 'Intriago','Blanca', 'Primero de Mayo', '052636444','F','1972/02/16','C');

Cognitive Cities Management Research Group (CMMA)


SENTENCIAS DE MODIFICACIÓN DE SQL
Auto_Increment
• Insertar valores en columnas con AUTO_INCREMENT, sin especificar valor:
INSERT INTO animals (name) VALUES ('dog'),('cat'),('penguin'), ('lax'),('whale'),('ostrich');
• También puede asignar 0 a la columna para generar números de secuencia, a menos que el
modo NO_AUTO_VALUE_ON_ZERO esté habilitado:
INSERT INTO animals (id,name) VALUES(0,'groundhog');
• También es posible asignar NULL a la columna para generar números de secuencia:
INSERT INTO animals (id,name) VALUES(NULL,'squirrel');
• Para insertar cualquier otro valor en una columna AUTO_INCREMENT, la secuencia se restablece para
que el siguiente valor generado automáticamente siga secuencialmente del valor de la columna más
grande:
INSERT INTO animals (id,name) VALUES(100,'rabbit');
INSERT INTO animals (id,name) VALUES(NULL,'mouse');

Cognitive Cities Management Research Group (CMMA)


SENTENCIAS DE MODIFICACIÓN DE SQL
MODIFICACIÓN DE DATOS
• Se tiene que identificar un nombre de la tabla donde se actualizan los
registros, establecer los nuevos valores de los campos a actualizar y
establecer el filtro sobre las columnas a actualizar con la cláusula
WHERE.
UPDATE alumnos
SET curso= ‘secundaria’
WHERE curso = ‘primaria’;
Se actualiza la tabla alumnos de un colegio, se actualiza el campo curso para todos aquellos
alumnos que están en primaria.

UPDATE alumnos
SET curso= ‘secundaria’;
Se actualizan el campo curso para todos los registros.

Cognitive Cities Management Research Group (CMMA)


SENTENCIAS DE MODIFICACIÓN DE SQL
ELIMINACIÓN DE DATOS
• Sirve para eliminar filas o registros de tablas de una base de datos.
DELETE FROM nombre_table
[WHERE condicion]
[ORDER BY ...]
[LIMIT row_count]
• Hay que tener cuidado con esta sentencia ya que si omitimos las
claúsulas WHERE o LIMIT podemos llegar a eliminar todos los registros de la
tabla.
DELETE FROM nombre_tabla;

DELETE FROM usuarios


WHERE edad >35
ORDER BY edad
LIMIT 15;
Cognitive Cities Management Research Group (CMMA)

También podría gustarte