Está en la página 1de 50

2

La creación de una base de


datos se realiza a través de la
CREATE DATABASE bdLibreria;
sentencia:

CREATE DATABASE bdNombre

3
Visualizar

Se pueden listar las bases de


datos existentes en nuestro
SHOW DATABASES
sistema utilizando la siguiente
sintaxis.
Seleccionar

Para seleccionar una base de


datos se usa el comando

USE bdNombre
USE bdLibreria;
De esta manera se le indica al
SGBD sobre cual base de datos
se ejecutarán las instrucciones.
Identificar BD en uso

La sintaxis que se utiliza para


conocer en que base de datos SELECT DATABASE();
se esta trabajando es:
Eliminar

La sentencia para eliminar una


base de datos es:

DROP DATABASE dbNombre DROP DATABASE bdLibreria;

Nota: Usar esta instrucción con


cautela
8
Crear

La siguiente sentencia nos permite


crear una tabla, dentro de está es
necesario indicar los campos y tipos CREATE TABLE tbAutor(
nombre VARCHAR(50),
de datos que la formarán.
genero CHAR(1), -- M o F
CREATE TABLE tbNombre( fechaNacimiento DATE,
campo tipo_de_dato, paisOrigen VARCHAR(40)
);
campo tipo_de_dato
);
Normalización

La normalización nos asegura que: CREATE TABLE


CREATE TABLE tbAutor(
TABLE tbAutor(
tbAutor(
CREATE
• No habrá columnas compuestas. nombre VARCHAR(25),
idAutor INT,
nombre VARCHAR(50),
nombre VARCHAR(25),
apellido VARCHAR(25),
• No habrá datos duplicados genero
apellidoCHAR(1), -- M o F
VARCHAR(25),
genero CHAR(1), -- M o F
genero CHAR(1), --DATE,
fechaNacimiento MoF
• Existe un campo que identifica fechaNacimiento DATE,
fechaNacimiento DATE,
paisOrigen VARCHAR(40)
como único el registro paisOrigen VARCHAR(40)
);
Así queda definida nuestra tabla
);
);
Visualizar

Se pueden listar las tablas


existentes en la base de datos SHOW TABLES
consultada a través la sentencia:
Visualizar estructura

Para visualizar la estructura o definición


de nuestra tabla; es decir los campos y
tipos de datos que la conforman, se
SHOW COLUMNS FROM tbAutor;
utiliza cualquiera de las siguientes
sentencias: o
SHOW COLUMNS FROM TABLE
DESC tbAutor;
TBNOMBRE
o
DESC TBNOMBRE
Crear tablas a partir de otras

En ocasiones será necesario


crear tablas muy parecidas a
alguna ya existente, para esto se CREATE TABLE tbUsuario like
utiliza: tbAutor

CREATE TABLE TBNUEVATABLA LIKE


TBVIEJATABLA
Eliminar

La sentencia para eliminar una


tabla es:

DROP TABLE tbNombre DROP TABLE tbUsuario;

Nota: Usar esta instrucción con


cautela
15
Insertar

Para insertar registros se utiliza la INSERT INTO tbAutor (idAutor,


sintaxis: nombre, genero,
fechaNacimiento, paisOrigen)
INSERT INTO tbnombre( VALUES (1,’Test autor’, ‘M’, ‘2018-
01-30’, ‘Mexico’);
columnas) VALUES (valores);
Consulta contenido

Para confirmar que se haya


insertado correctamente el
SELECT * FROM tbAutor
registro se utiliza;

SELECT * FROM tbNombre


Insertar múltiples registros

INSERT INTO tbAutor(idAutor, nombre, genero, fechaNacimiento,


paisOrigen)
VALUES (1, 'Test Autor', 'M', '2018-01-01', 'México'),
(2, 'Test Autor', 'M', '2018-01-01', 'México'),
(3, 'Test Autor', 'M', '2018-01-01', 'México'),
(4, 'Test Autor', 'M', '2018-01-01', 'México'),
(5, 'Test Autor', 'M', '2018-01-01', 'México');
Ejecutar archivos .sql

Se pueden crear archivos en los


que almacenar las diferentes
sentencias utilizadas durante la Importar archivo
creación de la base de datos. 1sentencias.sql

Estos tienen extensión:

sql
Error archivo sql

De no existir bdLibrería, la primera


línea del archivo 1sentencias.sql,
marcará error y no se ejecutará.
DROP DATABASE dbLibreria;
Esto se debe a que no se puede
eliminar una base de datos que
no existe.
Condicionar sentencias

Para evitar el error se condiciona


la sentencia de eliminación o DROP DATABASE IF EXISTS
dbLibreria;
creación a través de la sintaxis:
CREATE DATABASE IF NOT EXISTS
IF EXISTS dbLibreria;

IF NOT EXISTS

Importar archivo
2sentencias.sql
Reglas que limitan los valores
que pueden estar en una base
de datos.

22
Constrains

Utilizarlos garantizará una base de datos consistente a través de:

• Prevenir valores nulos

• Validar columnas únicas

• Establecer llaves primarias y llaves foráneas

• Proveer validaciones
Valores no nulos

Para evitar columnas con valores


nulos, o crear campos
obligatorios, se utiliza la sintaxis
apellido VARCHAR(25) NOT NULL,
nombreColumna tipoDato NOT
NULL

al momento de definir la tabla.

Importar archivo
3sentencias.sql
4sentencias.sql
Valores únicos y nulos

En ocasiones es necesario que existan CREATE TABLE IF NOT EXISTS tbAutor(


campos que no sean obligatorios, pero idAutor INT NOT NULL,
si únicos, es decir que no se repitan, nombre VARCHAR(25) NOT NULL,
para esto se utiliza la instrucción apellido VARCHAR(25) NOT NULL,
seudonimo VARCHAR(50) UNIQUE,
Campo tipoDato UNIQUE
genero CHAR(1) NOT NULL, -- M o F
o
fechaNacimiento DATE NOT NULL,
Campo tipoDato, paisOrigen VARCHAR(40)
CONSTRAINT UNIQUE (campo) );

Importar archivo
5sentencias.sql
Valores únicos y nulos

INSERT INTO tbAutor(idAutor,


nombre, apellido, seudónimo,
Al intentar agregar un registro en genero, fechaNacimiento,
tbAutor, con un seudónimo ya paisOrigen)
VALUES (6, 'Stepehn
existente marcará error. Edwin','King','Richard Bachman',
'M', '1947-09-7', ‘-USA');
Valores múltiples columnas únicos

CREATE TABLE tbUsuario(


En ocasiones es necesario validar idUsuario INT NOT NULL,
nombre VARCHAR(50),
que la combinación de ciertas
apellido VARCHAR(50),
columnas sea único. matricula VARCHAR(10),
CONSTRAINT uniqueCombinacion
CONSTRAINT nombreConstraint UNIQUE (nombre, apellido,
UNIQUE (campo1, campo2) matricula)
);

Importar archivo
6sentencias.sql
Obtener fechas del sistema

SELECT CURRENT_TIMESTAMP;
Para obtener la fecha y hora del
o
sistema se utiliza
SELECT NOW();
Valores predeterminados

CREATE TABLE IF NOT EXISTS tbAutor(


idAutor INT NOT NULL,
Se pueden establecer valores a nombre VARCHAR(25) NOT NULL,
los campos cuando estos no apellido VARCHAR(25) NOT NULL,
seudonimo VARCHAR(50) UNIQUE,
sean especificados durante la genero CHAR(1) NOT NULL, -- M o F
fechaNacimiento DATE NOT NULL,
inserción del registro, a través de paisOrigen VARCHAR(40),
fechaCreacion DATETIME DEFAULT
Campo tipoDato DEFAULT valor
current_timestamp
);

Importar archivo
7sentencias.sql
Números negativos

La siguiente instrucción nos INSERT INTO tbAutor(idAutor,


nombre, apellido, genero,
permite insertar un registro con fechaNacimiento, paisOrigen)
un numero negativo como VALUES (-10, 'Stepehn
Edwin','King',‘M', '1947-09-7', USA');
identificador. );

Importar archivo
8sentencias.sql
Números positivos

CREATE TABLE IF NOT EXISTS tbAutor(


idAutor INT UNSIGNED NOT NULL,
nombre VARCHAR(25) NOT NULL,
La siguiente instrucción nos apellido VARCHAR(25) NOT NULL,
permite insertar solo números seudonimo VARCHAR(50) UNIQUE,
genero CHAR(1) NOT NULL, -- M o F
positivos fechaNacimiento DATE NOT NULL,
paisOrigen VARCHAR(40),
Campo tipoDato UNSIGNED fechaCreacion DATETIME DEFAULT
current_timestamp
);

Importar archivo
9sentencias.sql
Tipo de dato ENUM

Este tipo de datos ofrece una CREATE TABLE IF NOT EXISTS tbAutor(
idAutor INT UNSIGNED NOT NULL,
lista de opciones de los valores nombre VARCHAR(25) NOT NULL,
apellido VARCHAR(25) NOT NULL,
que pueden ser utilizados en un
seudonimo VARCHAR(50) UNIQUE,
campo en especifico. genero ENUM('M','F’),
fechaNacimiento DATE NOT NULL,
Se utiliza cuando las opciones no paisOrigen VARCHAR(40),
superan el 5, y sus posibles fechaCreacion DATETIME DEFAULT
current_timestamp
modificaciones son casi nulas. );

Importar archivo
9sentencias.sql
Tipo de dato ENUM

CREATE TABLE IF NOT EXISTS tbAutor(


• Los valores presentados deben de ser
idAutor INT UNSIGNED NOT NULL,
cadena de caracteres.
nombre VARCHAR(25) NOT NULL,
• Si se ingresa un valor en minúscula, se ingresa apellido VARCHAR(25) NOT NULL,
en mayúscula. (en este caso debido a que seudonimo VARCHAR(50) UNIQUE,
el valor de la lista es mayúsculas) genero ENUM('M','F’),
• Si se ingresa un valor numérico, se interpreta fechaNacimiento DATE NOT NULL,
como índice de la lista paisOrigen VARCHAR(40),
• Si se ingresa un valor invalido,se ingresa el fechaCreacion DATETIME DEFAULT
valor por defecto que es null current_timestamp
);

Importar archivo
10sentencias.sql
34
Llave primaria

Además de hacer único el registro, la CREATE TABLE IF NOT EXISTS tbAutor(


idAutor INT UNSIGNED PRIMARY KEY
llave primaria permite hacer búsquedas
AUTO_INCREMENT,
mas rápidas a partir de este campo nombre VARCHAR(25) NOT NULL,
apellido VARCHAR(25) NOT NULL,
campo INT UNSIGNED PRIMARY KEY seudonimo VARCHAR(50) UNIQUE,
AUTO_INCREMENT genero ENUM('M','F')
fechaNacimiento DATE NOT NULL,
O paisOrigen VARCHAR(40),
campo INT UNSIGNED AUTO_INCREMENT fechaCreacion DATETIME DEFAULT
current_timestamp
PRIMARY KEY (campo) );

Importar archivo
11sentencias.sql
Restricción de Integridad de la entidad

El atributo que es clave de una fila no puede ser nulo además de


que debe ser único.
Llave foránea

CREATE TABLE tbLibro(


Están sirven para hacer idLibro INTEGER UNSIGNED PRIMARY KEY
AUTO_INCREMENT,
referencia a la llave primaria de idAutor INT UNSIGNED NOT NULL,
titulo varchar(50) NOT NULL,
otra tabla, y la instrucción que se descripcion varchar(250) NOT NULL DEFAULT '',
paginas INTEGER UNSIGNED NOT NULL
utiliza es DEFAULT 0,
fechaPublicacion Date NOT NUll,
FOREIGN KEY (campotbActual) fechaCreacion DATETIME DEFAULT
CURRENT_TIMESTAMP,
REFERENCES FOREIGN KEY (idAutor) REFERENCES
tbAutor(idAutor)
tbReferencia(PKtbReferencia) );

Importar archivo
12sentencias.sql
Llave foránea
Restricción de Integridad referencial

El valor no nulo de una clave


externa debe ser un valor real de la
clave de otra relación.
INSERT INTO tbLibro (idAutor,
Es necesario primero capturar los titulo, fechaPublicacion)
autores y después los libros, pues no VALUES (100, 'Carrie','1974-01-01')
se puede hacer referencia a un
autor que aun no ha sido dado de
alta.
Restricción de Integridad de la entidad

Las siguientes restricciones permitirán conservar la integridad referencial:


Restringir operaciones: borrar o modificar tuplas cuya clave primaria es clave foránea
en otras tuplas, sólo estará permitido si no existe ninguna tupla con ese valor de
clave en ninguna otra relación.
Transmisión en cascada: borrar o modificar tuplas cuya clave primaria es clave
foránea en otras implica borrar o modificar las tuplas con los mismos valores de clave
foránea.

Poner a nulo: cuando se elimine una tupla cuyo valor de clave primaria aparece en
otras relaciones como clave foránea, se asigna el valor NULL a dichas claves foráneas.
Restricciones de Ted Codd

Estas restricciones se usan para verificar la validación de los datos.


• Los valores en las celdas de la tabla, deben ser de valor único; no se
permite repetir grupos, ni tener arreglos como valores.
• Todos los ingresos en cualquier columna (atributo) deben ser del mismo
tipo.
• Cada columna posee un nombre único y no es importante el orden de
las columnas en la tabla.
• En la tabla no pueden ser idénticas dos tuplas y no es importante el orden
de los renglones.
42
CREATE TABLE tbUsuario(
nombre varchar(25) NOT NULL,
apellido varchar(25),
userName varchar(25) NOT
Crear la siguiente tabla NULL,
fechaCreacion DATETIME
DEFAULT CURRENT_TIMESTAMP
);

Importar archivo
13sentencias.sql
Agregar columna

Para agregar columnas a una


tabla se utiliza la instrucción
• ALTER TABLE tbLibro ADD ventas
ALTER TABLE tbNombre ADD INT UNSIGNED NOT NULL
campo tipoDato DEFAULT valor DEFAULT 0;
• ALTER TABLE tbLibro ADD stock
Se recomienda agregar un valor INT UNSIGNED DEFAULT 10;
predeterminado, debido a que
ya existen registros.
Agregar columna con constraints

Para agregar una columna con • ALTER TABLE tbUsuario ADD


email VARCHAR(50) NOT NULL
restricciones: DEFAULT ‘ ’;

ALTER TABLE tbUsuario ADD


• ALTER TABLE tbUsuario ADD
campo tipoDato CONSTRAINT telefono VARCHAR(50) UNIQUE;
Agregar llave primaria

Para agregar una llave primaria


a la tabla tbUsuario
ALTER TABLE tbUsuario ADD
ALTER TABLE tbNombre ADD idUsuario INT UNSIGNED PRIMARY
KEY AUTO_INCREMENT;
campo INT UNSIGNED PRIMARY
KEY AUTO_INCREMENT;
Modificar el tipo de dato

Para modificar el tipo de dato de


una columna. ALTER TABLE tbUsuario MODIFY
telefono VARCHAR(10);
ALTER TABLE tbUsuario MODIFY
campo tipoDato
Eliminar columna

Para eliminar columnas de una


tabla se utiliza la instrucción ALTER TABLE tbLibro DROP
COLUMN stock;
ALTER TABLE tbNombre DROP
COLUMN campo
Renombrar tabla

Esta instrucción permite cambiar


el nombre de una tabla ALTER TABLE tbUsuario RENAME
tbUser;
ALTER TABLE tbNombre RENAME
tbNuevoNombre

Importar archivo
14sentencias.sql
50

También podría gustarte