SlideShare una empresa de Scribd logo
1 de 20
BASE DE DATOS
10/01/2023
System clear → para limpiar la pantalla
show databases;
muestra las bases de datos que hay
Muestra las tablas de la base de datos
*Hay más bases de datos porque el profesor eliminó todas las bases de datos en clases. YO
no.
describe base de datos
Creamos una base de datos
DDL
1.-Creacion de la base datados
 CREATE DATABASE nombre-db;
 Drop database nombre_db;
2.-Usuarios:
 CREATE USER nombre_usuario[@nombre.host o ip] IDENTIFIED BY
‘contraseña’;
*si no se pone lo resaltado el usuario se puede conectar de cualquier IP
Se puede poner diversas opciones a la contraseña:
 CREATE USER nombre_usuario[@nombre.host o ip] IDENTIFIED BY
‘contraseña’[OPCIONES];
opciones:
 CREATE USER nombre_usuario[@nombre.host o ip] IDENTIFIED BY
‘contraseña’PASSWORD EXPIRE;
 CREATE USER nombre_usuario[@nombre.host o ip] IDENTIFIED BY
‘contraseña’PASSWORD EXPIRE INTERVAL 60 DAY;
MYSQL es sensible a mayusculas:
*las palabras de las palabras no son key sensitive pero lo demas si.
*no se puede usar tilde ni ñ
 CREATE USER us1 IDENTIFIED BY ‘Us#1’
Tablas o relaciones
CREATE TABLE npmbre_tabla;
(nombre_columna1 tipo.dato [RESTRICCIONES],
nombre_columna2 tipo.dato [RESTRICCIONES],
nombre_columna3 tipo.dato [RESTRICCIONES],
nombre_columna4 tipo.dato [RESTRICCIONES],
nombre_columna5 tipo.dato [RESTRICCIONES],
);
Tipos de datos:
carecteres
char
varchar
enum(lista valores)
números enteros
integer
Smallint
boolean
0=falso
1=veradero
decimal(p,s)
float
TIME
date
time
timestamp
estudiante
pk matrícula Integer AI(auto Incremental)
UNI,NOT NULL dni varchart(9)
not null nombre varchart(9)
not null nombre varchart(20)
not null nombre varchart(30)
not null fecna date
cuando introducimos enl codigo en
podemos introducir el codigo automáticamente lo cual
ver donde esta el directorio
pwd
para importar un script .sql :
source nombre_script.sql
SI el script está en una ruta especifica:
source rutaUbicacionScript
añadir un atributo a una tabla ya existente:
ALTER TABLE nombre.tabla ADD nombre.columna tipo.dato [restricción];
ejemplo:
ALTER TABLE estudiante ADD direccion varchar(30) NOT NULL;
Modificar un atributo existente:
ALTER TABLE nombre.tabla MODIFY nombre.columna tipo.dato [restricción];
Ejemplo:
ALTER TABLE estudiante MODIFY direccion varchar(40) NOT NULL;
alter table estudiante add edad integer not null;
añadimos el atributo edad en la tabla estudiante
Eliminar un atributo de la tabla:
ALTER TABLE nombre.tabla DROP nombre.columna;
ejemplo:
ALTER TABLE estudiante DROP edad;
*En la imagen se puede ver que se eliminó la columna edad.
CONSTRAINTS
Tienen la misma estructura. No puede haber dos constraint que se llamen de la misma
forma.
Es una restricción se usa en determinadas restricciones en debidas situaciones no se
puede declarar las restricciones en la misma línea que definición del atributo.
Situaciones en las que se puede usar:
 chequeo
 clave primaria formada por más de un atributo
 indicar clave foránea
Estructura
CONSTRAINT nombre.constraint
campo.constraint
CASO 1: clave primaria formada por más de un atributo
CONSTRAINT pk_nombreTablaActual
PRIMARY KEY ( at1, at2, [...]) //no se cierra con ‘ ; ’ si hay atributos despues se pone ‘,’
CASO 2: Chequeo
CONSTRAINT ck_nombreAtributo
CHECK(condición o predicado que se debe cumplir para ese atributo)
CASO 3: Indicar Clave foranea
CONSTRAINT fk_tablaActual.TablaReferenciada //Referenciada = a la que apunta
FOREIGN KEY (at1,[at2,...atN])
REFERENCES tabla.referenciado (at1,[at2,...atN]) // a donde apunta
[ ON UPDATE NO ACTION | ON CASCADE | SET NULL | SET DEFAULT]
[ ON DELETE NO ACTION | ON CASCADE | SET NULL | SET DEFAULT]
Creamos la tabla examen:
*Próxima clase
MySQL 12/01/2023
Creacion de usuarios
CREATE USER usuario@host IDENTIFIED BY ‘contraseña’[EXPIRE PASSWORD
EXPIRE NEVER
EXPIRE DEFAULT//(60 day)
EXPIRE INTERVAL n INTERVALO(day/month/year)
];
Cambiar la contraseña:
ALTER USER usuario IDENTIFIED BY ‘nuevaContraseña’[opciones];
Cambiar el nombre:
RENAME USER nombre.viejo nombre.nuevo;
Podemos usar una cláusula ,cada vez que se crea un objeto, para que se obvie
las tablas que ya están bien hechas.
CREATE objeto IF NOT EXIST nombre.objeto;
CREATE DATABASE IF NOT EXIST db;
CREATE USER IF NOT EXIST usuario IDENTIFIED BY ‘ contraseña’[opciones];
PRÁCTICA
estudiante
examen
pk,fk matricula int
pk modulo varchar(10)
pk fecha date
NN,(0-10) nota decimal(4.2)
n
estudiante
pk matricula int(AI)
INI,NN dni varchar(9)
NN nombre date
NN apellidos varchar(35)
NN fecna date
1
Nota: los constraints pueden incluirse en la definición de la tabla como si fuera una tabla
más o bien una vez creada la tabla pueden añadirse mediante el comando alter table.
EJEMPLO:
ALTER TABLE nombre.tabla
ADD CONSTRAINT nombre.constrain
cuerpo.constrain;
MySQL tiene :
[NOT]BETWEEN lim.inferior AND lim.superior
Ejemplo:
x BETWEEN 0 AND 10
x NOT BETWEEN 0 AND 10
PAra crear la tabla se debe tener en cuenta un orden de creacion
toda tabla tiene que primero la tabla que tenga su pk si tiene un fk.
Practica 2
Tarea → Banco Relacional
16/01/2023
Control de datos:
DCL: Lenguaje de Control de Datos
Encargado de controlar la seguridad de los datos. Determinar las acciones que un determinado
usuario puede hacer un determinado usuario sobre la totalidad o parte de los datos. Cuando
hablamos de las operaciones que un determinado usuario puede realizar tenemos que
distinguir el concepto de privilegio y el concepto de rol.
 privilegio → permiso concreto .
 rol → perfil que se compone de varios privilegios.
Cuando creamos un usuario este el único privilegio que tiene es el de conexión (se conoce como
USAGE). Por tanto una práctica habitual a la hora de crear base de datos, es crear un usuario
asociado a esa base de datos y asignarle todos los privilegios.
Algunos de los privilegios que disponen en MySQL Son:
INSET →
DELETE →
UPDATE →
SELECT →
CREATE →
DROP → Eliminación objetos
ALTER → Modificación de objetos
INDEX → Permite gestión de índices
FILE →
PROCESS → Permite programar en SQL
ALL o ALL PRIVILEGES → Da todos los privilegios
ROLES
Engloba varios privilegios. Existen una serie de roles predefinidos.
ROL:
DBA : tiene todos los privilegios del sistema.
USERADMIN: Gestion de usuarios
PROCESSADMIN: Contiene los privilegios para procesar procesos dentro del servidor.
Podemos definir nuestros propios roles.
a)Asignar privilegios
GRANT
Sintaxis:
GRANT privilegio o privilegios ON object TO usuario [with grant option];//se separan por
comas los privilegios
Para determinar los objetos
 *.* = todos los objetos de todas las bases de datos
 nombre.db.* = sobre toda una base datos
 nombre.bd.nombre.tabla = sobre toda una tabla de datos de una base
de datos
Usuario es el usuario que recibe esos privilegios
La cláusula with grant option si se aplica permite que a su vez pueda aplicarlos a otros usuarios.
Ejemplo
1. Asignar privilegios:
Otorgar todos los privilegios a toda la base y pueda dar los privilegios
GRANT ALL[PRIVILEGES] ON db.* TO us1 WITH GRANT OPTION;
GRANT SELECT ON db.* TO us1;
GRANT ALL ON db.estudiante TO us1;
GRANT SELECT ON db.examen TO us1;
GRANT SELECT,UPDATE ON db.estudiante TO us1;//permitir más de un privilegio a una
tabla de base de datos
FLUSH PRIVILEGES
Si no se usa este comando no se aplican los privilegios hasta que se reinicie la base de datos.
b)denegar privilegios
REVOKE privilegios ON objects FROM usuario;
Ejemplo:
REVOKE GRANT OPTION ON db.* FROM us1;
REVOKE ALL ON db.* FROM us1;
REVOKE SELECT ON db.* FROM us1;
REMOVE ALL ON db.estudiante FROM us1;
ROLES
1.- Crear el rol
2.- Asignarle los permisos al rol
3.- Otorgar el rol al usuario o a los usuarios
4.- Activar el rol
 Crear el rol
CREATE ROLE [IF NOT EXISTS] nombre_rol;
*asignamos todos permisos asociados al mismo.
 Asignar

ejemplo:
En labase de datos mysql
rol administrador → todos los privilegios sobre toda la BD ’db’
rol operador → Solo podra consultar datos de la ‘db’
privilegios + de 1 usuario está permitido y es así ↓ :
DML→ Lenguaje de Manipulación de datos
las fechass admas de ir entre comillas y van en formato americano:
- Los numeros se introducen tal cual sin comillas.
- Los decimales se separan con punto prefereiblemente del teclado
numerico.
- signo mantisa E signo exponencial
Ejemplo:
-0'2E^-4
INSERT →
Sintaxis:
INSERT INTO nombre.tabla VALUES(lista.valores);
PRACTICA:
creamos una tabla:
create table
INSERT INTO nombre.tabla (atr1,atri2,[...])VALUES
(lista valores),(lista valores 2)
(lista valores3);
tarea en la tabla estudiante nos metemos
y en exámenes las notas que tenemos
Creación BD Proceso:
1. Crear la Base de Datos.
CREATE DATABASE IF NOT EXISTS empleados;
2. Crear un usuario para la base de datos.
CREATE USER IF NOT EXISTS emple IDENTIFIED BY ‘emple’;
3. Hacer al usuario administrador de la BD
GRANT ALL ON empleados.* TO emple;
FLUSH PRIVILEGES;
4. Ejecutar el script de la creación e inserción.
DELETE.
Para el borrado es :
DELETE FROM nombre_tabla [WHERE condicion]; si se indican se borran las tablas cuales
ponemos la condición entre corchetes, si no ponemos los corchetes se borra.
DELETE FROM TEMPLE
UPDATE.
Verbo para la modificación de filas existentes.
UPDATE nombre_tabla SET atr1=val1 [WHERE condición];
SELECT.
1. SELECT [DISTINCT] -> * Para eliminar filas repetidas (podemos renombrar los nombres d
ellos atributos de las columnas mientras select [distinct] at1 as alias, at2 as alias
-> at1[at2,…,atn] (proyección)
2. FROM nombre_tabla
3. [WHERE condición] <- seleccion
4. [ORDER BY at [DESC] desc es para cuando lo queremos descendiente, si no no se pone nada.
Primero se ordena por el primer criterio. Da preferencia al primero
La operación proyección indica las columnas que queremos obtener de las tablas en cuestión
de manera que con el * indicamos todas las columnas y si quisiéramos unas, pondremos su
nombre.
Obtener la comisión, el numero de departamento y el nombre de los empleados cuyo salario
es inferior a 1800 euros clasificándolos por departamentos en orden creciente y por comisión
en orden decreciente en cada departamento
Obtener por orden alfabético los nombres de los departamentos cuyo presupuesto es superior
a los 20000 euros
Obtener por orden alfabético los nombres de los departamentos cuyo director lo es en
funciones. F(Funciones) P(Propiedad)
Para cambiar los nombres utilizaremos el cambio de alias:
Una expresión es una combinación de atributos, operadores matemáticos, constantes o
valores cuyo resultado es un valor de cualquier tipo de dato que no sea lógico ya que sería una
condición.
Puedo usar expresiones tanto en la proyección como en la selección.
En el primer caso, vamos a usar siempre un alias (SELECT):
*Obtener los datos de los empleados cuya comisión es superior a su 50% de su salario
La empresa ha decidido dar una ayuda a los empreados que tienen hijos. Consiste en un 2,5 de
su salario por hijos. Obtener el nombre del empledo, num hijos, el salario que tiene y la ayuda
familiar que corresponde a los empleados que tienen ordenado por numero de hijos.
OPERACIONES RELACIONALES.
> MAYOR QUE
< MENOR QUE
>= MAYOR O IGUAL
<= MENOR O IGUAL
= IGUAL
<> DISTINTO
PREDICADOS SIMPLES:
PREDICADO NULL:
expresión is [NOT] NULL. Me permite evaluar el valor especial null. Null no es 0 se utiliza para
que ese valor es inaplicable, inexistente…
Obtener los empleados que tienen comisión
TAREA: HACER TALLER EN SQL.
PREDICADO BETWEEN:
Expresión1 [NOT] BETWEEN expresión2 AND empresión3
Evalúa la pertenencia o no
Obtener todos los datos de los empleados que ganan entre 2.500 y 3.000 euros
Obtener orenado por numero de hijos todos los datos de los empleados que tenen menos de 2
hijos o más de 4.
PREDICADO IN:
Expresión [NOT] IN (lista valores)
Coincide o no con algunos valores que hay en la lista.
PREDICADO LIKE:
Expresión_alfanumérica [NOT] LIKE cte_alfanumérica
% Equivale a 0 o n caracteres
_ Equivale a 1 caracter
Se utiliza para comparar datos alfanuméricos. Permite el uso de meta caracteres: Tanto por
ciento que equivale a 0 o n caracteres y el subrayado bajo _ que equivale a un carácter.
Obtener todos los datos de los empleados cuyo dato de pila empieza por A
Apellido termine en EZ y su nombre termine en O y tenga al menos tres o más letras
PREDICADOS COMPUESTOS:
Compuestos por predicados simples:
AND: Dos verdadera
OR: Con cumplir una es verdadero
NOT: es verdadero cuando es falso el
Obtener empleados que obtienen más de 1500 euros y tienen hijos. (AND)
Que no tienen comisión o que no tienen hijos. (OR)
Nacieron antes del año 1960 y no tienen hijos o bien nacidos bien nacidos después 1960.
LOS PREDICADOS Y LAS SUBCONSULTAS
Obtener por orden alfabético los nombres de los empleados que trabajan en el mismo depto
que Gálvez, Pilar o Fol, Dorotea.
Obtener por orden alfabético los nombres y salarios de los empleados que o bien no tienen
hijos y ganan más de 1200 euros o bien tienen hijos y ganan menos de 1800 euros.
Select nomem, salar from temple where ( numhi = 0 and salar >1200) or (numhi < 0 and salar
<1800) order by 1;
Obtener por orden de número de empleados el nombre, el salario total (salario más comision)
supera al salario mínimo de todos los empleados en 1800 euros.
Escribir en distintas líneas
Workbench nos proporciona una herrmaienta de diseño asistido que nos permite :
- Obtener el modelo logico a partir del modelo fisico (ingenería inversa y me permite a partir
de un fichero o script de creacion DDL obtener el modelo lógico relacional correspondiente)
- Obtener el modelo fisico a partir del modelo logico.
EJ. Obtener el modelo lógico a partir del modelo físico
FUNCIONES
FUNCIONES
Es una expresión predefinida que realiza algún tipo de cálculo, debemos tener en cuenta que
existen funciones en el estándar de sql y por lo tanto en todos los sistemas gestores, y otras
que son de mysql específicamente.
PROTOTIPO DE UNA FUNCIÓN:
Es el resumen de la forma de operar que tiene una determinada función y cómo podemos
usarla. Incluye normalmente un pequeño resumen de lo que hace.
nombre_funcion (lista parametros y argumentos)
Tiene que coincidir con orden numero y tipo de dato con la lista de parámetros de la función.
Cada una de estas expresiones puede ser:
- Un valor constante del mismo tipo de dato del parámetro
-Expresión del mismo tipo de dato del parámetro
- Atributo del mismo tipo de dato del parámetro
- Función del mismo tipo de dato del parámetro
Aunque existen distintos criterios para clasificar a las funciones (funciones de tiempo,
Funciones escalares: en las que sus parámetros se sustituyen por un único valos.
a) Son funciones que operan con cadenas de caracteres
LENGTH (cadena)
SUBSTR (cadena, inicio, longitud)
- cadena obligatoria
- inicio num entero posición carácter dentro de la cadena desde donde
partimos
- longitud opcional número indica long subcadena
LOCATE (subdadena, cadena)
- subcadena
- cadena
Dado que el nomem de todos mis empleados, utilizando vamos a separar el apellido del
nombre
b) Numéricas
POW(base,exponente)
SQRT(n)
MOD(x,y) resto de x entre y
c) Datos de tipo tiempo
DATE_FORMAT(fecha,formato)
%d/%m/%Y
Mostrar las fechas de nacimiento y la fecha de ingreso de todos los
trabajadores
Funciones de agregacion o columna. Agrupamientos.
Conjunto de filas de una tabla sobre el que se aplica la función. A partir de un select con todas
las filas que devuelva el select devuelve un solo grupo.
Consideraciones:
• Antes de aplicar cualquiera de las funciones a los valores,
• Las funciones MIN, MAX y SUM devuelven el mismo tipo de dato que sus valores
• Las funciones AVG
Cuanto se gasta la empresa al mes en salarios y comisiones. Hay que hacerlo separado porque
tiene null comis.
Cuantos empleados han nacido el mismo año:
Nombre y edad ordenado por edad.
Se va a jubilar a los empleados que tienen 65 o más a los cuales le corresponde un finiquito de
33 días por año trabajado. Para ello, se supone que su salario sin comisión corresponde a 30
dias. Calcular finiquito.
SALAR / 30 lo que gana en un día
(SALAR/30) * 33 lo que le corresponde de finiquito
(SALAR/30) * 33 * antigüedad
1. Crea yna BD llamada videoclub y dos usuarios, video, con la contraseña video y
operador MySQL BD
Los chekeos hay que meterlos manualmente

Más contenido relacionado

Similar a MySQL BD .doc

Similar a MySQL BD .doc (20)

Comandos ddl y dml
Comandos ddl y dmlComandos ddl y dml
Comandos ddl y dml
 
Ejemplo bbdd sqlite (android)
Ejemplo bbdd sqlite (android)Ejemplo bbdd sqlite (android)
Ejemplo bbdd sqlite (android)
 
COMANDOS DDL
COMANDOS DDLCOMANDOS DDL
COMANDOS DDL
 
ManualPracticoSQL.pdf
ManualPracticoSQL.pdfManualPracticoSQL.pdf
ManualPracticoSQL.pdf
 
SENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVERSENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVER
 
Manual practico SQL
Manual practico SQLManual practico SQL
Manual practico SQL
 
Manual practico-sql
Manual practico-sqlManual practico-sql
Manual practico-sql
 
Manual practico para sql ingieneria de sistemas
Manual practico para sql ingieneria de sistemas  Manual practico para sql ingieneria de sistemas
Manual practico para sql ingieneria de sistemas
 
Manual practico SQL
Manual practico SQLManual practico SQL
Manual practico SQL
 
Manual practicosql
Manual practicosqlManual practicosql
Manual practicosql
 
Introduccion a SQL
Introduccion a SQL Introduccion a SQL
Introduccion a SQL
 
Taller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DMLTaller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DML
 
Sq lite
Sq lite Sq lite
Sq lite
 
Presentación1
Presentación1Presentación1
Presentación1
 
Vistas
VistasVistas
Vistas
 
Lenguaje de consulta de datos
Lenguaje de consulta de datosLenguaje de consulta de datos
Lenguaje de consulta de datos
 
Implementacion de bases de datos en mysql
Implementacion de bases de datos en mysqlImplementacion de bases de datos en mysql
Implementacion de bases de datos en mysql
 
Visualizacion de datos de varias tablas en sql
Visualizacion de datos de varias tablas en sqlVisualizacion de datos de varias tablas en sql
Visualizacion de datos de varias tablas en sql
 
Bdii 09 ddl_new
Bdii 09 ddl_newBdii 09 ddl_new
Bdii 09 ddl_new
 
Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10
 

Último

AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptxdulcemonterroza
 
microsoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamtemicrosoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamte2024020140
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfJosAndrRosarioVzquez
 
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxTarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxVICTORMANUELBEASAGUI
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosYOMIRAVILLARREAL1
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaRicardoEstrada90
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónUniversidad de Sonora
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónAntonia Yamilet Perez Palomares
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxJOELGARCIA849853
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024NicolleAndrade7
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...axelv9257
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxgustavovasquezv56
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfYanitza28
 
Introduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxIntroduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxcj12paz
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxdoloresolmosantiago
 
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...dramosbrise1403
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaJadeVilcscordova
 
Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.241534381
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8antoniopalmieriluna
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionEmanuelMuoz11
 

Último (20)

AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
 
microsoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamtemicrosoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamte
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
 
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxTarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de Datos
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - Estrada
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la información
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdf
 
Introduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxIntroduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptx
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptx
 
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el tema
 
Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacion
 

MySQL BD .doc

  • 1. BASE DE DATOS 10/01/2023 System clear → para limpiar la pantalla show databases; muestra las bases de datos que hay Muestra las tablas de la base de datos *Hay más bases de datos porque el profesor eliminó todas las bases de datos en clases. YO no. describe base de datos Creamos una base de datos
  • 2. DDL 1.-Creacion de la base datados  CREATE DATABASE nombre-db;  Drop database nombre_db; 2.-Usuarios:  CREATE USER nombre_usuario[@nombre.host o ip] IDENTIFIED BY ‘contraseña’; *si no se pone lo resaltado el usuario se puede conectar de cualquier IP Se puede poner diversas opciones a la contraseña:  CREATE USER nombre_usuario[@nombre.host o ip] IDENTIFIED BY ‘contraseña’[OPCIONES]; opciones:  CREATE USER nombre_usuario[@nombre.host o ip] IDENTIFIED BY ‘contraseña’PASSWORD EXPIRE;  CREATE USER nombre_usuario[@nombre.host o ip] IDENTIFIED BY ‘contraseña’PASSWORD EXPIRE INTERVAL 60 DAY; MYSQL es sensible a mayusculas: *las palabras de las palabras no son key sensitive pero lo demas si. *no se puede usar tilde ni ñ  CREATE USER us1 IDENTIFIED BY ‘Us#1’ Tablas o relaciones CREATE TABLE npmbre_tabla; (nombre_columna1 tipo.dato [RESTRICCIONES], nombre_columna2 tipo.dato [RESTRICCIONES], nombre_columna3 tipo.dato [RESTRICCIONES], nombre_columna4 tipo.dato [RESTRICCIONES], nombre_columna5 tipo.dato [RESTRICCIONES], ); Tipos de datos: carecteres char varchar enum(lista valores) números enteros integer Smallint boolean 0=falso 1=veradero decimal(p,s) float TIME date time timestamp estudiante pk matrícula Integer AI(auto Incremental) UNI,NOT NULL dni varchart(9) not null nombre varchart(9) not null nombre varchart(20) not null nombre varchart(30) not null fecna date cuando introducimos enl codigo en
  • 3. podemos introducir el codigo automáticamente lo cual ver donde esta el directorio pwd para importar un script .sql : source nombre_script.sql SI el script está en una ruta especifica: source rutaUbicacionScript añadir un atributo a una tabla ya existente: ALTER TABLE nombre.tabla ADD nombre.columna tipo.dato [restricción]; ejemplo: ALTER TABLE estudiante ADD direccion varchar(30) NOT NULL; Modificar un atributo existente: ALTER TABLE nombre.tabla MODIFY nombre.columna tipo.dato [restricción]; Ejemplo: ALTER TABLE estudiante MODIFY direccion varchar(40) NOT NULL; alter table estudiante add edad integer not null; añadimos el atributo edad en la tabla estudiante
  • 4. Eliminar un atributo de la tabla: ALTER TABLE nombre.tabla DROP nombre.columna; ejemplo: ALTER TABLE estudiante DROP edad; *En la imagen se puede ver que se eliminó la columna edad. CONSTRAINTS Tienen la misma estructura. No puede haber dos constraint que se llamen de la misma forma. Es una restricción se usa en determinadas restricciones en debidas situaciones no se puede declarar las restricciones en la misma línea que definición del atributo. Situaciones en las que se puede usar:  chequeo  clave primaria formada por más de un atributo  indicar clave foránea Estructura CONSTRAINT nombre.constraint
  • 5. campo.constraint CASO 1: clave primaria formada por más de un atributo CONSTRAINT pk_nombreTablaActual PRIMARY KEY ( at1, at2, [...]) //no se cierra con ‘ ; ’ si hay atributos despues se pone ‘,’ CASO 2: Chequeo CONSTRAINT ck_nombreAtributo CHECK(condición o predicado que se debe cumplir para ese atributo) CASO 3: Indicar Clave foranea CONSTRAINT fk_tablaActual.TablaReferenciada //Referenciada = a la que apunta FOREIGN KEY (at1,[at2,...atN]) REFERENCES tabla.referenciado (at1,[at2,...atN]) // a donde apunta [ ON UPDATE NO ACTION | ON CASCADE | SET NULL | SET DEFAULT] [ ON DELETE NO ACTION | ON CASCADE | SET NULL | SET DEFAULT] Creamos la tabla examen: *Próxima clase MySQL 12/01/2023 Creacion de usuarios CREATE USER usuario@host IDENTIFIED BY ‘contraseña’[EXPIRE PASSWORD EXPIRE NEVER EXPIRE DEFAULT//(60 day) EXPIRE INTERVAL n INTERVALO(day/month/year) ]; Cambiar la contraseña: ALTER USER usuario IDENTIFIED BY ‘nuevaContraseña’[opciones]; Cambiar el nombre: RENAME USER nombre.viejo nombre.nuevo; Podemos usar una cláusula ,cada vez que se crea un objeto, para que se obvie las tablas que ya están bien hechas. CREATE objeto IF NOT EXIST nombre.objeto; CREATE DATABASE IF NOT EXIST db; CREATE USER IF NOT EXIST usuario IDENTIFIED BY ‘ contraseña’[opciones]; PRÁCTICA estudiante examen pk,fk matricula int pk modulo varchar(10) pk fecha date NN,(0-10) nota decimal(4.2) n estudiante pk matricula int(AI) INI,NN dni varchar(9) NN nombre date
  • 6. NN apellidos varchar(35) NN fecna date 1 Nota: los constraints pueden incluirse en la definición de la tabla como si fuera una tabla más o bien una vez creada la tabla pueden añadirse mediante el comando alter table. EJEMPLO: ALTER TABLE nombre.tabla ADD CONSTRAINT nombre.constrain cuerpo.constrain; MySQL tiene : [NOT]BETWEEN lim.inferior AND lim.superior Ejemplo: x BETWEEN 0 AND 10 x NOT BETWEEN 0 AND 10
  • 7. PAra crear la tabla se debe tener en cuenta un orden de creacion toda tabla tiene que primero la tabla que tenga su pk si tiene un fk. Practica 2
  • 8. Tarea → Banco Relacional 16/01/2023 Control de datos: DCL: Lenguaje de Control de Datos Encargado de controlar la seguridad de los datos. Determinar las acciones que un determinado usuario puede hacer un determinado usuario sobre la totalidad o parte de los datos. Cuando hablamos de las operaciones que un determinado usuario puede realizar tenemos que distinguir el concepto de privilegio y el concepto de rol.  privilegio → permiso concreto .  rol → perfil que se compone de varios privilegios. Cuando creamos un usuario este el único privilegio que tiene es el de conexión (se conoce como USAGE). Por tanto una práctica habitual a la hora de crear base de datos, es crear un usuario asociado a esa base de datos y asignarle todos los privilegios. Algunos de los privilegios que disponen en MySQL Son: INSET → DELETE → UPDATE → SELECT →
  • 9. CREATE → DROP → Eliminación objetos ALTER → Modificación de objetos INDEX → Permite gestión de índices FILE → PROCESS → Permite programar en SQL ALL o ALL PRIVILEGES → Da todos los privilegios ROLES Engloba varios privilegios. Existen una serie de roles predefinidos. ROL: DBA : tiene todos los privilegios del sistema. USERADMIN: Gestion de usuarios PROCESSADMIN: Contiene los privilegios para procesar procesos dentro del servidor. Podemos definir nuestros propios roles. a)Asignar privilegios GRANT Sintaxis: GRANT privilegio o privilegios ON object TO usuario [with grant option];//se separan por comas los privilegios Para determinar los objetos  *.* = todos los objetos de todas las bases de datos  nombre.db.* = sobre toda una base datos  nombre.bd.nombre.tabla = sobre toda una tabla de datos de una base de datos Usuario es el usuario que recibe esos privilegios La cláusula with grant option si se aplica permite que a su vez pueda aplicarlos a otros usuarios. Ejemplo 1. Asignar privilegios: Otorgar todos los privilegios a toda la base y pueda dar los privilegios GRANT ALL[PRIVILEGES] ON db.* TO us1 WITH GRANT OPTION; GRANT SELECT ON db.* TO us1; GRANT ALL ON db.estudiante TO us1; GRANT SELECT ON db.examen TO us1; GRANT SELECT,UPDATE ON db.estudiante TO us1;//permitir más de un privilegio a una tabla de base de datos FLUSH PRIVILEGES Si no se usa este comando no se aplican los privilegios hasta que se reinicie la base de datos. b)denegar privilegios REVOKE privilegios ON objects FROM usuario; Ejemplo: REVOKE GRANT OPTION ON db.* FROM us1; REVOKE ALL ON db.* FROM us1; REVOKE SELECT ON db.* FROM us1; REMOVE ALL ON db.estudiante FROM us1; ROLES 1.- Crear el rol 2.- Asignarle los permisos al rol 3.- Otorgar el rol al usuario o a los usuarios 4.- Activar el rol  Crear el rol CREATE ROLE [IF NOT EXISTS] nombre_rol; *asignamos todos permisos asociados al mismo.
  • 10.  Asignar  ejemplo: En labase de datos mysql rol administrador → todos los privilegios sobre toda la BD ’db’ rol operador → Solo podra consultar datos de la ‘db’ privilegios + de 1 usuario está permitido y es así ↓ : DML→ Lenguaje de Manipulación de datos las fechass admas de ir entre comillas y van en formato americano: - Los numeros se introducen tal cual sin comillas. - Los decimales se separan con punto prefereiblemente del teclado numerico. - signo mantisa E signo exponencial Ejemplo: -0'2E^-4 INSERT → Sintaxis: INSERT INTO nombre.tabla VALUES(lista.valores); PRACTICA: creamos una tabla:
  • 11. create table INSERT INTO nombre.tabla (atr1,atri2,[...])VALUES (lista valores),(lista valores 2) (lista valores3); tarea en la tabla estudiante nos metemos y en exámenes las notas que tenemos Creación BD Proceso: 1. Crear la Base de Datos. CREATE DATABASE IF NOT EXISTS empleados; 2. Crear un usuario para la base de datos. CREATE USER IF NOT EXISTS emple IDENTIFIED BY ‘emple’; 3. Hacer al usuario administrador de la BD GRANT ALL ON empleados.* TO emple; FLUSH PRIVILEGES; 4. Ejecutar el script de la creación e inserción. DELETE. Para el borrado es : DELETE FROM nombre_tabla [WHERE condicion]; si se indican se borran las tablas cuales ponemos la condición entre corchetes, si no ponemos los corchetes se borra. DELETE FROM TEMPLE UPDATE. Verbo para la modificación de filas existentes. UPDATE nombre_tabla SET atr1=val1 [WHERE condición]; SELECT. 1. SELECT [DISTINCT] -> * Para eliminar filas repetidas (podemos renombrar los nombres d ellos atributos de las columnas mientras select [distinct] at1 as alias, at2 as alias -> at1[at2,…,atn] (proyección) 2. FROM nombre_tabla 3. [WHERE condición] <- seleccion 4. [ORDER BY at [DESC] desc es para cuando lo queremos descendiente, si no no se pone nada. Primero se ordena por el primer criterio. Da preferencia al primero La operación proyección indica las columnas que queremos obtener de las tablas en cuestión de manera que con el * indicamos todas las columnas y si quisiéramos unas, pondremos su nombre.
  • 12. Obtener la comisión, el numero de departamento y el nombre de los empleados cuyo salario es inferior a 1800 euros clasificándolos por departamentos en orden creciente y por comisión en orden decreciente en cada departamento Obtener por orden alfabético los nombres de los departamentos cuyo presupuesto es superior a los 20000 euros Obtener por orden alfabético los nombres de los departamentos cuyo director lo es en funciones. F(Funciones) P(Propiedad) Para cambiar los nombres utilizaremos el cambio de alias:
  • 13. Una expresión es una combinación de atributos, operadores matemáticos, constantes o valores cuyo resultado es un valor de cualquier tipo de dato que no sea lógico ya que sería una condición. Puedo usar expresiones tanto en la proyección como en la selección. En el primer caso, vamos a usar siempre un alias (SELECT): *Obtener los datos de los empleados cuya comisión es superior a su 50% de su salario La empresa ha decidido dar una ayuda a los empreados que tienen hijos. Consiste en un 2,5 de su salario por hijos. Obtener el nombre del empledo, num hijos, el salario que tiene y la ayuda familiar que corresponde a los empleados que tienen ordenado por numero de hijos. OPERACIONES RELACIONALES. > MAYOR QUE < MENOR QUE >= MAYOR O IGUAL <= MENOR O IGUAL = IGUAL <> DISTINTO PREDICADOS SIMPLES: PREDICADO NULL: expresión is [NOT] NULL. Me permite evaluar el valor especial null. Null no es 0 se utiliza para que ese valor es inaplicable, inexistente… Obtener los empleados que tienen comisión TAREA: HACER TALLER EN SQL. PREDICADO BETWEEN: Expresión1 [NOT] BETWEEN expresión2 AND empresión3 Evalúa la pertenencia o no
  • 14. Obtener todos los datos de los empleados que ganan entre 2.500 y 3.000 euros Obtener orenado por numero de hijos todos los datos de los empleados que tenen menos de 2 hijos o más de 4. PREDICADO IN: Expresión [NOT] IN (lista valores) Coincide o no con algunos valores que hay en la lista. PREDICADO LIKE: Expresión_alfanumérica [NOT] LIKE cte_alfanumérica % Equivale a 0 o n caracteres _ Equivale a 1 caracter Se utiliza para comparar datos alfanuméricos. Permite el uso de meta caracteres: Tanto por ciento que equivale a 0 o n caracteres y el subrayado bajo _ que equivale a un carácter. Obtener todos los datos de los empleados cuyo dato de pila empieza por A
  • 15. Apellido termine en EZ y su nombre termine en O y tenga al menos tres o más letras PREDICADOS COMPUESTOS: Compuestos por predicados simples: AND: Dos verdadera OR: Con cumplir una es verdadero NOT: es verdadero cuando es falso el Obtener empleados que obtienen más de 1500 euros y tienen hijos. (AND) Que no tienen comisión o que no tienen hijos. (OR) Nacieron antes del año 1960 y no tienen hijos o bien nacidos bien nacidos después 1960.
  • 16. LOS PREDICADOS Y LAS SUBCONSULTAS Obtener por orden alfabético los nombres de los empleados que trabajan en el mismo depto que Gálvez, Pilar o Fol, Dorotea. Obtener por orden alfabético los nombres y salarios de los empleados que o bien no tienen hijos y ganan más de 1200 euros o bien tienen hijos y ganan menos de 1800 euros. Select nomem, salar from temple where ( numhi = 0 and salar >1200) or (numhi < 0 and salar <1800) order by 1; Obtener por orden de número de empleados el nombre, el salario total (salario más comision) supera al salario mínimo de todos los empleados en 1800 euros. Escribir en distintas líneas Workbench nos proporciona una herrmaienta de diseño asistido que nos permite : - Obtener el modelo logico a partir del modelo fisico (ingenería inversa y me permite a partir de un fichero o script de creacion DDL obtener el modelo lógico relacional correspondiente) - Obtener el modelo fisico a partir del modelo logico. EJ. Obtener el modelo lógico a partir del modelo físico
  • 17. FUNCIONES FUNCIONES Es una expresión predefinida que realiza algún tipo de cálculo, debemos tener en cuenta que existen funciones en el estándar de sql y por lo tanto en todos los sistemas gestores, y otras que son de mysql específicamente. PROTOTIPO DE UNA FUNCIÓN: Es el resumen de la forma de operar que tiene una determinada función y cómo podemos usarla. Incluye normalmente un pequeño resumen de lo que hace. nombre_funcion (lista parametros y argumentos) Tiene que coincidir con orden numero y tipo de dato con la lista de parámetros de la función. Cada una de estas expresiones puede ser: - Un valor constante del mismo tipo de dato del parámetro -Expresión del mismo tipo de dato del parámetro - Atributo del mismo tipo de dato del parámetro - Función del mismo tipo de dato del parámetro Aunque existen distintos criterios para clasificar a las funciones (funciones de tiempo, Funciones escalares: en las que sus parámetros se sustituyen por un único valos. a) Son funciones que operan con cadenas de caracteres LENGTH (cadena) SUBSTR (cadena, inicio, longitud) - cadena obligatoria - inicio num entero posición carácter dentro de la cadena desde donde partimos - longitud opcional número indica long subcadena
  • 18. LOCATE (subdadena, cadena) - subcadena - cadena Dado que el nomem de todos mis empleados, utilizando vamos a separar el apellido del nombre b) Numéricas POW(base,exponente) SQRT(n) MOD(x,y) resto de x entre y c) Datos de tipo tiempo DATE_FORMAT(fecha,formato) %d/%m/%Y
  • 19. Mostrar las fechas de nacimiento y la fecha de ingreso de todos los trabajadores Funciones de agregacion o columna. Agrupamientos. Conjunto de filas de una tabla sobre el que se aplica la función. A partir de un select con todas las filas que devuelva el select devuelve un solo grupo. Consideraciones: • Antes de aplicar cualquiera de las funciones a los valores, • Las funciones MIN, MAX y SUM devuelven el mismo tipo de dato que sus valores • Las funciones AVG Cuanto se gasta la empresa al mes en salarios y comisiones. Hay que hacerlo separado porque tiene null comis. Cuantos empleados han nacido el mismo año: Nombre y edad ordenado por edad.
  • 20. Se va a jubilar a los empleados que tienen 65 o más a los cuales le corresponde un finiquito de 33 días por año trabajado. Para ello, se supone que su salario sin comisión corresponde a 30 dias. Calcular finiquito. SALAR / 30 lo que gana en un día (SALAR/30) * 33 lo que le corresponde de finiquito (SALAR/30) * 33 * antigüedad 1. Crea yna BD llamada videoclub y dos usuarios, video, con la contraseña video y operador MySQL BD Los chekeos hay que meterlos manualmente