JuanMtz

Ejercicios creación de tablas mysql

Nov 29th, 2019
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 3.35 KB | None | 0 0
  1. -- Ejercicios creación de tablas mysql - Juan José Martínez Solano - 29/11/2019
  2.  
  3. -- Creación de esquema
  4. CREATE SCHEMA IF NOT EXISTS noviembre DEFAULT CHARACTER SET utf8 ;
  5. CREATE USER [email protected] IDENTIFIED BY 'PepeGrillo';
  6.  
  7. GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, REFERENCES, CREATE TEMPORARY TABLES ON noviembre.* TO 'LazyReflexes'@'172.18.0.1';
  8. USE noviembre;
  9.  
  10. -- Valores únicos 1
  11. CREATE TABLE IF NOT EXISTS tabla (
  12.   id INT NOT NULL AUTO_INCREMENT,
  13.   nombre VARCHAR(55) NULL,
  14.   PRIMARY KEY (`id`),
  15.   UNIQUE INDEX nombre_UNIQUE (`nombre` ASC))
  16.   ENGINE = InnoDB;
  17.  
  18. INSERT INTO tabla(nombre) values ('test');
  19. INSERT INTO tabla(nombre) values ('test'); -- Error, no se permite introducir el mismo valor dos veces en la tabla
  20. INSERT INTO tabla(nombre) values (NULL);
  21. INSERT INTO tabla(nombre) values (NULL); -- Se permite introducir el valor NULL indefinidamente
  22.  
  23. select * from tabla;
  24.  
  25. -- Valores únicos 2
  26. CREATE TABLE IF NOT EXISTS tabla2 (
  27.   id INT NOT NULL AUTO_INCREMENT,
  28.   nombre VARCHAR(55) NOT NULL,
  29.   PRIMARY KEY (`id`),
  30.   UNIQUE INDEX nombre_UNIQUE (`nombre` ASC))
  31.   ENGINE = InnoDB;
  32.  
  33. INSERT INTO tabla2(nombre) values ('test2');
  34. INSERT INTO tabla2(nombre) values ('test2'); -- Error, no permite duplicados
  35. INSERT INTO tabla2(nombre) values (NULL); -- Error, no se permite NULL
  36.  
  37. select * from tabla2;
  38.  
  39. -- Valores únicos 3
  40.  
  41. /*
  42. CREATE TABLE IF NOT EXISTS puestos (
  43.   `id` INT NOT NULL AUTO_INCREMENT,
  44.   `puesto` VARCHAR(45) NULL,
  45.   `nombre` VARCHAR(45) NULL,
  46.   `trabajador` varchar(128) AS (IF(puesto<nombre,CONCAT(puesto,nombre),CONCAT(nombre,puesto))),
  47.   PRIMARY KEY (`id`),
  48.   UNIQUE KEY trabajador(trabajador))
  49. ENGINE = InnoDB;
  50. */
  51.  
  52. CREATE TABLE IF NOT EXISTS puestos (
  53.   `id` INT NOT NULL AUTO_INCREMENT,
  54.   `puesto` VARCHAR(45) NULL,
  55.   `nombre` VARCHAR(45) NULL,
  56.   UNIQUE (puesto, nombre),
  57.   PRIMARY KEY (`id`))
  58.   ENGINE = InnoDB;
  59.  
  60. insert into puestos (puesto, nombre) values ('oficinista', 'Pepe');
  61. insert into puestos (puesto, nombre) values ('oficinista', 'Pepe'); -- No admite una entrada duplicada.
  62.  
  63. insert into puestos (puesto) values (NULL);
  64. insert into puestos (puesto) values (NULL); -- Admite el valor NULL indefinidamente
  65. insert into puestos (nombre) values (NULL);
  66. insert into puestos (nombre) values (NULL); -- Admite el valor NULL indefinidamente
  67.  
  68. insert into puestos (puesto, nombre) values (NULL, NULL);
  69. insert into puestos (puesto, nombre) values (NULL, NULL); -- Admite el valor NULL en ambas columnas indefinidamente
  70.  
  71. select * from puestos;
  72.  
  73. -- Valor por defecto
  74. CREATE TABLE IF NOT EXISTS persona (
  75.   `f_nacimiento` DATE NULL DEFAULT '2199-12-31',
  76.   `id` INT NOT NULL AUTO_INCREMENT,
  77.   `nombre` VARCHAR(45) NOT NULL,
  78.   PRIMARY KEY (`id`))
  79. ENGINE = InnoDB;
  80.  
  81. insert into persona(nombre) values ('Persona Test 1');
  82. insert into persona(nombre, f_nacimiento) values ('Persona Test 2', NULL); -- Ajusta el valor de f_nacimiento a NULL
  83.  
  84. select * from persona;
  85.  
  86. -- checks 1
  87.  
  88. CREATE TABLE IF NOT EXISTS `nota` (
  89.   `id` INT NOT NULL AUTO_INCREMENT,
  90.   `nombre` VARCHAR(45) NOT NULL,
  91.   `nota` INT NOT NULL CHECK (nota >= 0 and nota <= 10),
  92.   PRIMARY KEY (`id`))
  93.   ENGINE = InnoDB;
  94.  
  95. insert into nota (nombre, nota) values ('Pepe', 7);
  96. insert into nota (nombre, nota) values ('Pepe', 11); -- Error, el valor de nota supera el límite establecido por CHECK
  97.  
  98. desc nota;
Advertisement
Add Comment
Please, Sign In to add comment