Web.SQL.Diseñando Tablas.
Creando Tablas.
CREATE TABLE personas (
id int,
nombre varchar(255),
apellidos varchar(255),
direccion varchar(255),
ciudad varchar(255)
);
- Para crear una tabla se utiliza CREATE TABLE. Los campos se deben separar cada uno de ellos mediante comas a excepción del último.
Se puede también hacer una tabla mediante una consulta de la siguiente forma:
CREATE TABLE personas2 AS
SELECT id, nombre, apellidos, direccion, ciudad
FROM persona;
- Hace una copia exactamente igual que la tabla de origen, incluyendo las propiedades de los campos.
Borrando Tablas.
DROP TABLE personas; Borra una tabla y toda su información.
TRUNCATE TABLE personas; Vacía la tabla perdiendo toda la información, pero no borra la tabla.
Añadir/Modificar/Borrar Campos.
#
ALTER TABLE personas
ADD cp int; Añade un campo nuevo en una tabla existente con su tipo de datos correspondiente.ALTER TABLE personas
DROP cp ; Elimina una columna existente de una tabla.ALTER TABLE personas
MODIFY cp int(5); Modifica una columna existente.
Restricciones en los Campos.
NOT NULL. Sirve para especificar que un campo no puede ser en blanco, es decir, siempre se debe meter algún valor.
CREATE TABLE Personas (
id int NOT NULL,
nombre varchar(255) NOT NULL,
apellidos varchar(255) NOT NULL,
edad int
);
UNIQUE. Sirve para decir un campo que no tiene valores repetidos, es decir, que va a tener un valor único no se repetirá en ningún otro registro.
CREATE TABLE Personas (
id int NOT NULL,
nombre varchar(255) NOT NULL,
apellidos varchar(255),
edad int,
CONSTRAINT uc_persona UNIQUE (id,nombre) Se puede especificar una o varias columnas, según nos convenga. Se le debe poner un nombre coherente a la restricción para luego manejarla.
);
Si la tabla ya está creada se añadiría de la siguiente forma:
ALTER TABLE Personas
ADD CONSTRAINT uc_persona UNIQUE (id,nombre); Se puede utilizar uno o varios campos, si es el segundo caso se debe separar por comas.
Para borrar la restricción se hace de la siguiente forma:
ALTER TABLE Personas
DROP INDEX uc_persona;
CHECK. Se utliza para limitar el rango de valores que puede almacenar un campo o columna de un tabla.
CREATE TABLE Personas (
id int NOT NULL,
nombre varchar(255) NOT NULL,
apellidos varchar(255),
edad int,
ciudad varchar(255),
CONSTRAINT chk_persona CHECK (edad>=18 AND City=’badajoz’) Se pueden usar varios campos, según nos convenga. El nombre de la restricción debe ser coherente para poder manipularlo posteriormente.
);
Si la tabla está creada se haría de la siguiente forma:
ALTER TABLE personas
ADD CONSTRAINT chk_edad CHECK (edad>=18 AND ciudad=’badajoz’);
Para borrar la restricción se haría de la siguiente forma:
ALTER TABLE personas
DROP CHECK chk_edad;
DEFAULT. Se utiliza para darle un valor por defecto a un campo cuando no se le almacena ningún valor.
CREATE TABLE personas (
id int NOT NULL,
nombre varchar(255) NOT NULL,
apellidos varchar(255),
edad int,
ciudad varchar(255) DEFAULT ‘badajoz’
);
Si la tabla existe se haría de la siguiente forma:
ALTER TABLE personas
ALTER ciudad SET DEFAULT ‘badajoz’;
Si queremos borrarla se haría de la siguiente forma:
ALTER TABLE personas
ALTER ciudad DROP DEFAULT;
INDEX. Sirve para indexar datos para acelerar las consultas, es decir, se crean índices con los campos que más se consultan frecuentemente para ser muchos más rápidas a la hora de obtener datos.
CREATE INDEX idx_persona
ON personas (nombre, apellidos);
Para borrarlo ser haría de la siguiente forma:
ALTER TABLE personas
DROP INDEX idx_persona;
AUTOINCREMENT. Sirve para no tener la necesidad de introducir datos de forma manual, cuando se guarda un registro, este atributo asigna automáticamente un número para identificar de forma única al registro.
CREATE TABLE personas (
id int NOT NULL AUTO_INCREMENT,
nombre varchar(255) NOT NULL,
apellidos varchar(255),
edad int
);
Claves Primarias y Principales.
Las claves principales son campos que no pueden ser nulos, deben tener siempre un valor y además no se puede repetir, es decir, sirven para identificar un registro de la tabla de forma única.
CREATE TABLE personas (
id int NOT NULL,
nombre varchar(255) NOT NULL,
apellidos varchar(255),
edad int,
CONSTRAINT pk_persona PRIMARY KEY (id,nombre) Se pueden crear claves principales con uno o varios campos, indicándole un nombre para poder manipularlo posteriormente.
);
Si la tabla está creada se haría de la siguiente forma:
ALTER TABLE personas
ADD CONSTRAINT pk_persona PRIMARY KEY (id,nombre);
Si queremos borrar una clave primaria se haría de la siguiente forma:
ALTER TABLE personas
DROP PRIMARY KEY;
Clavas Foráneas.
Este tipo de claves se usan para crear la integridad referencial de una o varias tablas, es decir, para realizar a lo que se le llama relaciones en bases de datos. Vamos a ver un ejemplo:
Tenemos una tabla personas:
CREATE TABLE personas (
id int NOT NULL,
nombre varchar(255) NOT NULL,
apellidos varchar(255),
edad int,
CONSTRAINT pk_persona PRIMARY KEY (id));
Tenemos un tabla pedidos, con la que vamos a relacionar con personas, para así saber los pedidos que realiza.
CREATE TABLE pedidos(
orden int NOT NULL,
pedido int NOT NULL,
personaid int,
CONSTRAINT pk_pedido PRIMARY KEY (orden),
CONSTRAINT fk_pedido FOREIGN KEY (personaid)
REFERENCES personas(id) Se puede utilizar uno o varios campos, si es el segundo caso se debe separar por comas, como pasa con las claves principales.
);
Si la tabla ya existe se haría de la siguiente forma:
ALTER TABLE pedidos
ADD CONSTRAINT fk_pedido
FOREIGN KEY (personaid) REFERENCES personas(id);
Si queremos borrarla se haría de la siguiente forma:
ALTER TABLE Orders
DROP FOREIGN KEY fk_pedido;