Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Ejercicios creación de tablas mysql - Juan José Martínez Solano - 29/11/2019
- -- Creación de esquema
- CREATE SCHEMA IF NOT EXISTS noviembre DEFAULT CHARACTER SET utf8 ;
- GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, REFERENCES, CREATE TEMPORARY TABLES ON noviembre.* TO 'LazyReflexes'@'172.18.0.1';
- USE noviembre;
- -- Valores únicos 1
- CREATE TABLE IF NOT EXISTS tabla (
- id INT NOT NULL AUTO_INCREMENT,
- nombre VARCHAR(55) NULL,
- PRIMARY KEY (`id`),
- UNIQUE INDEX nombre_UNIQUE (`nombre` ASC))
- ENGINE = InnoDB;
- INSERT INTO tabla(nombre) values ('test');
- INSERT INTO tabla(nombre) values ('test'); -- Error, no se permite introducir el mismo valor dos veces en la tabla
- INSERT INTO tabla(nombre) values (NULL);
- INSERT INTO tabla(nombre) values (NULL); -- Se permite introducir el valor NULL indefinidamente
- select * from tabla;
- -- Valores únicos 2
- CREATE TABLE IF NOT EXISTS tabla2 (
- id INT NOT NULL AUTO_INCREMENT,
- nombre VARCHAR(55) NOT NULL,
- PRIMARY KEY (`id`),
- UNIQUE INDEX nombre_UNIQUE (`nombre` ASC))
- ENGINE = InnoDB;
- INSERT INTO tabla2(nombre) values ('test2');
- INSERT INTO tabla2(nombre) values ('test2'); -- Error, no permite duplicados
- INSERT INTO tabla2(nombre) values (NULL); -- Error, no se permite NULL
- select * from tabla2;
- -- Valores únicos 3
- /*
- CREATE TABLE IF NOT EXISTS puestos (
- `id` INT NOT NULL AUTO_INCREMENT,
- `puesto` VARCHAR(45) NULL,
- `nombre` VARCHAR(45) NULL,
- `trabajador` varchar(128) AS (IF(puesto<nombre,CONCAT(puesto,nombre),CONCAT(nombre,puesto))),
- PRIMARY KEY (`id`),
- UNIQUE KEY trabajador(trabajador))
- ENGINE = InnoDB;
- */
- CREATE TABLE IF NOT EXISTS puestos (
- `id` INT NOT NULL AUTO_INCREMENT,
- `puesto` VARCHAR(45) NULL,
- `nombre` VARCHAR(45) NULL,
- UNIQUE (puesto, nombre),
- PRIMARY KEY (`id`))
- ENGINE = InnoDB;
- insert into puestos (puesto, nombre) values ('oficinista', 'Pepe');
- insert into puestos (puesto, nombre) values ('oficinista', 'Pepe'); -- No admite una entrada duplicada.
- insert into puestos (puesto) values (NULL);
- insert into puestos (puesto) values (NULL); -- Admite el valor NULL indefinidamente
- insert into puestos (nombre) values (NULL);
- insert into puestos (nombre) values (NULL); -- Admite el valor NULL indefinidamente
- insert into puestos (puesto, nombre) values (NULL, NULL);
- insert into puestos (puesto, nombre) values (NULL, NULL); -- Admite el valor NULL en ambas columnas indefinidamente
- select * from puestos;
- -- Valor por defecto
- CREATE TABLE IF NOT EXISTS persona (
- `f_nacimiento` DATE NULL DEFAULT '2199-12-31',
- `id` INT NOT NULL AUTO_INCREMENT,
- `nombre` VARCHAR(45) NOT NULL,
- PRIMARY KEY (`id`))
- ENGINE = InnoDB;
- insert into persona(nombre) values ('Persona Test 1');
- insert into persona(nombre, f_nacimiento) values ('Persona Test 2', NULL); -- Ajusta el valor de f_nacimiento a NULL
- select * from persona;
- -- checks 1
- CREATE TABLE IF NOT EXISTS `nota` (
- `id` INT NOT NULL AUTO_INCREMENT,
- `nombre` VARCHAR(45) NOT NULL,
- `nota` INT NOT NULL CHECK (nota >= 0 and nota <= 10),
- PRIMARY KEY (`id`))
- ENGINE = InnoDB;
- insert into nota (nombre, nota) values ('Pepe', 7);
- insert into nota (nombre, nota) values ('Pepe', 11); -- Error, el valor de nota supera el límite establecido por CHECK
- desc nota;
Advertisement
Add Comment
Please, Sign In to add comment