Apuntes de BD para DAW, DAM y ASIR
José Juan Sánchez Hernández
Curso 2023/2024
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
y utf8mb4
en
MySQL?
¿Qué diferencia hay entre los tipos de datos VARCHAR
y CHAR
?
¿Qué diferencia hay entre los tipos de datos TEXT
y
BLOB
?
¿Qué diferencia hay entre los tipos de datos
DATETIME
y TIMESTAMP
?
¿Qué diferencia hay entre ENUM
y
SET
?
¿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
y ON UPDATE
.
Explica brevemente para qué sirven las siguientes opciones que
podemos usar junto a las cláusulas ON DELETE
y
ON UPDATE
:
RESTRICT
CASCADE
SET NULL
NO ACTION
¿Qué diferencia existe entre TRUNCATE
y
DELETE
?
¿Para qué se utiliza el atributo UNIQUE
?
¿Qué diferencia hay entre INDEX
y KEY
?
¿Para qué se utilizan?
¿Para qué se utiliza el atributo ZEROFILL
?
¿Qué diferencia existe entre declarar una columna como
INT(11)
y INT(11) ZEROFILL
?
¿Qué significan las llaves y los corchetes en la siguiente descripción de notación?
¿Qué comando tendría que escribir desde un terminal para
conectarnos con el usuario root
con contraseña
1234
, 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
mysql.user
. La clave primaria de esta tabla está
formada por los valores user
y host
, 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 usuario root@'%'
?+------------------+--------------+
| user | host |
+------------------+--------------+
| root | % |
| root | localhost |
| debian-sys-maint | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+--------------+
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,
nombre VARCHAR(25),
primer_apellido VARCHAR(15) NOT NULL,
ciudad VARCHAR(100),
categoria INT UNSIGNED
);
CREATE TABLE comercial (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
apellido1 VARCHAR(100) NOT NULL,
apellido2 VARCHAR(100),
ciudad VARCHAR(100),
comision FLOAT
);
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 de
latin1
?
Modifique la columna nombre
de la tabla
cliente
para que pueda almacenar cadenas de hasta
100
caracteres y para que no pueda ser
NULL
.
¿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ígnele apellido1
. También tendrá que permitir que pueda
almacenar hasta 100
caracteres y que no pueda ser un valor
NULL
.
Añada una nueva columna a la tabla cliente
para
poder almacenar el segundo apellido. La columna se debe llamar
apellido2
debe estar entre la columna
apellido1
y ciudad
, puede almacenar hasta
100
caracteres y puede ser NULL
.
Elimine la columna categoria
de la tabla
cliente
.
Modifique la columna comision
de la tabla
comercial
para que almacene por defecto el valor
10
.
¡Gracias compañero! :)
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.