Ejercicios de la Unidad Didáctica 4
Apuntes de BD para DAW, DAM y ASIR
Curso 2023/2024
1 Ejercicios de la Unidad Didáctica 4
1.1 Teoría
Defina brevemente el significado de las siglas SQL.
El lenguaje SQL se divide en tres partes DDL, DML y DCL. Defina brevemente en qué consiste cada una de las partes.
Defina brevemente qué es MySQL Server.
Defina brevemente qué es MySQL WorkBench.
Defina brevemente qué es phpMyAdmin.
Defina brevemente el significado de LAMP Stack.
Define para qué sirven las siguientes palabras reservadas de la creación de tablas en MySQL:
AUTO_INCREMENT
CHARACTER SET
COLLATE
ENGINE
¿Qué diferencias existen entre los motores de almacenamiento InnoDB y MyISAM de MySQL? ¿Cuál de los dos es el que se usa por defecto?
¿Qué diferencia existe entre los set de caracteres
utf8
yutf8mb4
en MySQL?¿Qué diferencia hay entre los tipos de datos
VARCHAR
yCHAR
?¿Qué diferencia hay entre los tipos de datos
TEXT
yBLOB
?¿Qué diferencia hay entre los tipos de datos
DATETIME
yTIMESTAMP
?¿Qué diferencia hay entre
ENUM
ySET
?¿Qué tipo de dato usarías si necesitas almacenar un número real exacto sin redondeo?
Explica brevemente para qué sirven las cláusulas
ON DELETE
yON UPDATE
.Explica brevemente para qué sirven las siguientes opciones que podemos usar junto a las cláusulas
ON DELETE
yON UPDATE
:RESTRICT
CASCADE
SET NULL
NO ACTION
¿Qué diferencia existe entre
TRUNCATE
yDELETE
?¿Para qué se utiliza el atributo
UNIQUE
?¿Qué diferencia hay entre
INDEX
yKEY
? ¿Para qué se utilizan?¿Para qué se utiliza el atributo
ZEROFILL
?¿Qué diferencia existe entre declarar una columna como
INT(11)
yINT(11) ZEROFILL
?¿Qué significan las llaves y los corchetes en la siguiente descripción de notación?
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] nombre_base_datos;
¿Qué comando tendría que escribir desde un terminal para conectarnos con el usuario
root
con contraseña1234
, a un MySQL Server remoto que se está ejecutando en una máquina con la IP 10.10.1.5?¿Qué puerto es el que utiliza por defecto el servicio de MySQL Server?
Cuando instalamos MySQL Server está configurado por defecto para que sólo acepte conexiones locales y que no permita conexiones remotas. ¿Qué valor tendríamos que poner en la directiva de configuración
bind-address
para permitir conexiones remotas?
[mysqld]
bind-address = 127.0.0.1
- Los usuarios de MySQL Server se almacenan en la
tabla
mysql.user
. La clave primaria de esta tabla está formada por los valoresuser
yhost
, de modo que cada fila vendrá identificada por un nombre de usuario y el host desde el que puede conectarse. Según la siguiente tabla, ¿desde qué máquinas se podrá conectar el usuarioroot@'%'
?
+------------------+--------------+
| user | host |
+------------------+--------------+
| root | % |
| root | localhost |
| debian-sys-maint | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+--------------+
1.2 Práctica con MySQL
Ejecute el siguiente script para crear una base de datos llamada
ventas
.
DROP DATABASE IF EXISTS ventas;
CREATE DATABASE ventas CHARACTER SET latin1;
USE ventas;
CREATE TABLE cliente (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
VARCHAR(25),
nombre VARCHAR(15) NOT NULL,
primer_apellido VARCHAR(100),
ciudad INT UNSIGNED
categoria
);
CREATE TABLE comercial (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
VARCHAR(100) NOT NULL,
nombre VARCHAR(100) NOT NULL,
apellido1 VARCHAR(100),
apellido2 VARCHAR(100),
ciudad FLOAT
comision );
Una vez que ha ejecutado el script y ha creado la base de datos en MySQL Server, ¿qué sentencia SQL debería ejecutar para modificar el encoding de la base de datos y utilizar
utf8mb4
en lugar delatin1
?Modifique la columna
nombre
de la tablacliente
para que pueda almacenar cadenas de hasta100
caracteres y para que no pueda serNULL
.¿Qué comando puede ejecutar para comprobar que el cambio que se ha realizado en el paso anterior se ha ejecutado correctamente?
Modifique el nombre de la columna
primer_apellido
y asígneleapellido1
. También tendrá que permitir que pueda almacenar hasta100
caracteres y que no pueda ser un valorNULL
.Añada una nueva columna a la tabla
cliente
para poder almacenar el segundo apellido. La columna se debe llamarapellido2
debe estar entre la columnaapellido1
yciudad
, puede almacenar hasta100
caracteres y puede serNULL
.Elimine la columna
categoria
de la tablacliente
.Modifique la columna
comision
de la tablacomercial
para que almacene por defecto el valor10
.
2 Créditos
- Estos ejercicios están basados en el material didáctico de Alfredo Moreno Vozmediano.
¡Gracias compañero! :)
3 Licencia
Esta
página forma parte del curso
Bases de Datos de
José Juan Sánchez Hernández y
su contenido se distribuye bajo una
licencia
Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0
Internacional.