Notes
INTRODUCCION SQL
Content of the notes (1)
Page 1
Introducción a SQL
Implementación del lenguaje que provee los gestores de base de datos.
Conexión al servidor local
Conexión al servidor local
Conexión al servidor local utilizando al usuario root:
Shell s.o mysql; -u root –p
Enter password: *********
Conexión al servidor con ip 10.23.3.40 utilizando el usuario root:
Shell s.o mysql; -u root –p -h 10.23.3.40
Enter password: *********
Todo lo que está en azul es para digitar.
Forma para salir del servidor remoto o local
MariaDB [(none)] > exit
Mostrar base de datos que el usuario tiene acceso
MariaDB [(none)] > SHOW DATABASE
Crear una base de datos prueba
MariaDB [mysql] > CREATE DATABASE prueba
CREAR LA BASE DE DAYOS PRUENA CON LA OPCION DE QUE NO DE ERROR SI YA EXISTE;
MariaDB [mysql] > CREATE DATABASE IF NOT EXISTS prueba;
Grupos basicos en Maria DB
Numero: (L) para especificar el tamaño que va ocupar
Cadena:
Fecha: vienen con tamaño fijo no se puede aumentar. Solamente el year.
Todo esto para crear taba con CREATETABLE (NOMBRE DE LA TABLA) sus campos .restricciones y verificaciones.
-si es una llave primaria se pone PK
-Si es una llave foránea se pone FK, puede ver más de 1 llave foránea
Ejemplo de creación de base de dato
CREATE DATABASE VETERINARIA;
USE VETERINARIA;
MariaDB [VETERINARIA] > CREATE TABLE MASCOTA
{
Cod_mascota MEDIUMINT (5) UNSIGNED NOT NULL AUTO_INCREMENT
Nombre VARCHAR(20) NOT NULL,
Propietario VARCHAR(40),
Sexo ENUM ( ‘hembra’ ,’macho’ )NOT NULL,
Fec_nac DATE NOT NULL ,
Fec_muerte DATE ,
Especie VARCHAR(30)
CONSTRAINT PRIMARY KEY (cod_masc),
CONTRAINT masc_chkl CHECK { fec_muerte IS NULL OR
(fec_muerte IS NOT NULL AND fec_muerte > fec_nac) }
}ENCINE =InnoDB
“VER ESTRUCTURA DE TABLA”
MariaDB [(MASCOTA)] >DESC MASCOTA
“PARA VER QUE MOTORES DE BASE TENEMOS”
MariaDB [(none)] > SHOW ENGINE
LA BASE DE DATOS YA TIENE QUE EXISTIR
mysql -u root -p veterinaria
Password ***********
MariaDB [VETERINARIA] > Create table veterinario
(
Nro_ci CHAR (12) NOT NULL
LUG_CI enum (`sc’,’be’,’pa’,’lp’,’cb’,’or’,’pt’,’ch’,’ta’)
NOT NULL,
Nombre VARCHAR(40) NOT NULL,
Primer_ap VARCHAR(30) NOT NULL
Segundo_ap VARCHAR(30),
Fec_nac DATE NOT NULL,
Sal_basico DECIMAL(3,2) UNSIGNED NOT NULL,
Estado CHAR (1) NOT NULL,
CONSTRAINT PRYMARY KEY (nro_ci , lug_ci)
CONSTRAINT vet_sal_chk CHECK (sal_basico >2200),
CONSTRAINT vet_est_chk check (estado in (‘A’,’R’))
ENGINE =InnoDB
- RENOMBRAR TABLA
MariaDB [VETERINARIA] > RENAME VETERINARIA TO VETERINARIO;
-ELIMINAR TABLA
MariaDB [VETERINARIA] > DROP TABLE VETERINARIO;
-ADICIONAR
MariaDB [VETERINARIA] > ALTER TABLE VETERINARIO ADD
MariaDB [VETERINARIA] > CREATE TABLE cita
(
Nro_cita BIGINT NOT NULL AUTO_INCREMENT,
A_realizar DATETIME NOT NULL,
Nro_ci_vet CHAR(12) NOT NULL,
Lug_ci ENUM (`sc’,’be’,’pa’,’lp’,’cb’,’or’,’pt’,’ch’,’ta’)
NOT NULL,
Cod_masc MEDIUNMINT (6) UNSIGNED NOT NULL,
Obs VARCHAR (2000),
Costo DEC(8,2)UNSIGNED,
Estado ENUM(‘PENDIENTE’,’REALIZADA’,’EMERGENCIA’,’CANCELADA’)NOT NULL
DEFAULT ‘PENDIENTE’,
CONSTRAINT PRIMARY KEY (nro_cita),
CONSTRAINT cita_fk2 FOREIGN KEY (nro_ci_vet,lug_ci)REFERENCES
veterinario(nro_ci,lug_ci),
CONSTRAINT cita_fk2 FOREIGN KEY (cod_masc) REFERENCES mascota (cod_masc)
)InnoDB;
-PARA CANCELAR, LO DA POR TERMINADO LO QUE ESTE HACIENDO
\c
MariaDB [(none)] >CREATE DATABASE bd_empresa;
MariaDB [(none)] >use bd_empresa;
MariaDB [(bd_empresa)] >CREATE TABLE empleado
(
dni CHAR(12) NOT NULLL,
fecha_nac DATE NOT NULL,
nombre_p VARCHAR(30) NOT NULL,
apellido_p VARCHAR(30),
apeliido_m VARCHAR (30),
dirección VARCHAR (20) NOT NULL,
sueldo DECIMAL(9,2) UNSIGNED NOT NULL,
sexo ENUM (‘masculino’,’femenino’),
numero_dpto SMALLINT UNSIGNED NOT NULL,
nombre_dpto VARCHAR (25)NOT NULLM
dni_sup CHAR (12)NOT NULL ,
CONSTRAINT PRIMARY KEY(dni),
CONSTRAINT emp_chk1 CHECK(sueldo>=2122),
CONSTRAINT emp_fk2 FOREING KEY(dni_sup) REFERENCES empleado (dni)
) ENGINE=InnoDB;
-PARA VER LA ESTRUCTURA DE LA TABLA
MariaDB [(bd_empresa)] > desc empleado;
CREATE TABLE subordinado
(
dni char(12) not null,
Nombre VARCHAR(60) NOT NULL,
Sexo ENUM(‘MASCULINO’,’FEMENINO’) NOT NULL,
Fecha_nac DATE,
Relacion ENUM(‘hijo’,’padre’,’esposo’,’suegro’,’otro’) NOT NULL,
CONSTRAINT PRIMARY KEY (dni,nombre),
CONSTRAINT sub_fk_emp FOREING KEY (dni)REFERENVES empleado(dni)
)ENGINE=InnoDB;
--cargar un archivO que tiene sentencias SQL
>La ruta donde está el archivo\nombre del archivo. SQL
-para recargar en un archivo de texto
Tee c\La ruta donde está el archivo\nombre del archivo. SQL
MariaDB [(bd_empresa)] >CREATE TABLE departamento
(
numero SMALLINT ENSIGNED NOT NULL,
nombre VARCHAR(25) NOT NULL,
Dni_adm CHAR (12) NOT NULL,
Fecha_inicio DATE NOT NULL,
CONSTRAINT PRIMARY KEY (numero,nombre),
CONSTRAINT dpto_fk FOREIGN KEY (dni_Adm) REFERENCES empleado (dni)
) ENGINE =InnoDB
MariaDB [(bd_empresa)] > CREATE TABLE ubicación_dpto
(
numero SMALLINT UNSIGNED NOT NULL,
nombre VARCHAR(25) NOT NULL,
ubicacion VARCHAR(50) NOT NULL,
CONSTRAINT PRIMARY KEY (umero,ubicacion),
CONSTRAINT ub_dpto_fk FOREIGN KEY (numero,nombre)
REFERENCES departameno (numero,nombre)
) ENGINE =InnoDB;
MariaDB [(bd_empresa)] > CREATE TABLE proyecto
(
numero MEDIUMINT (6) UNSIGNED NOT NULL,
nombre VARCHAR(50) NOT NULL,
ubicacion VARHAR(70) NOT NULL,
numero_dpto SMALLINT UNSIGNED NOT NULL,
nombre_dpto VARCHAR(25)NOT NULL,
CONSTRAINT PRIMARY KEY (numero,nombre),
CONSTRAINT proy_fk FOREIG nKEY (numero_dpto,nombre_dpto)
REFERENCES departamento (numero,nombre)
)ENGINE =InnoDB;
MariaDB [(bd_empresa)] > CREATE TABLE proy_empleado
(
Dni CHAR (12) NOT NULL,
Numero MEDIUMINT(6) NOT NULL,
Nombre VARCHAR (50) NOT NULL,
Horas DECIMAL (5,2) NOT NULL,
CONSTRAINT PRIMARY KEY (dni_numero,nombre)
CONSTRAINT proy_emp_fk2 FOREING KEY (dni) REFERENCES empleado (dni)
) ENGINE > InnoDB;
-PARA VER LAS TABLAS
MariaDB [(bd_empresa)] > >SHOW TABLES
-MODIFICAR TABLA PARA CREAR LLAVE FORANEA QUE NOS FALTABA
MariaDB [(bd_empresa)] > ALTER TABLE empleado
ADD CONSTRAINT emp_fk_dpto FOREING KEY (numeto,nombre_dpto)
REFERENCES departamento (nombre,numero);
-PARA AGREGAR UNA COLUMNA
MariaDB [(bd_empresa)] > ALTER TABLE proyecto
ADD COLUM
MariaDB [(bd_empresa)] > ALTER TABLE proyecto DROP CONSTRAINT PRIMARY KEY ;
INDICE ES .HACER LA BUSQUEDA MAS RAPIDA
INDICES PRIMARIOS: idéntica los registro de una tabla ,no tiene repeticiones
LOS secundarios si tienen repeticiones
EJEMPLO ;
BASE DE DATOS
VETERINARIA
EMPRESA
FARMACIA
Use veterimaria
Use farmacia
*---
PARA CAMBIARME DE BASE DE DATOS ,SIN USAR USE …
CREATE TABLE veterinaria,mascota
(
……..
)ENGINE=InnoDB;
-Para ver que base de datos tengo
Show data base;
Use …………;
- Para ver que tablas tengo tengo
Show tables;
Para ver que datos tiene una tabla;
SELECT * FROM veterinario
-VER SENTENCIAS QUE ESCRIBI EN UNA TABLA;
Show CREATE TABLE VETERINARIO \G
Insertar datos en una tabla;
INSERT INTO veterinario VALUES
(
‘7669126’ ,’SC’,’MOISES DAMIAN’,’SARAVIA’,’VARGAS’,
‘1995-03-30’,2500,’A’
);
-BORRAR EL REGISTRO DE UNA TABLA
DELETE FROM mascota;
-Como modificar el valor del autoin cremento de una tabla
ALTER TABLE mascota AUTO_INCREMENT=1;
‘USAR SOLO SI LA TABLA ESTA VACIA’
PARA BORRAR CODIGO
1RA OPCION = DELECTE FROM mascota WHERE cod_masc BETWEEN 10 AND 22;
2DA OPCION = DELETE FROM mascota WHERE cod_masc >= 10 AND cod_=< 22;
-INDICAR EN QUE ORDEN VAN IR MIS VALORES
INSERT INTO mascota (fec_nac,especie,nombre,fec_muerte) VALUES
(
‘1997-03-20’,’canino’,’kaiser’,’204-07-21’
);
- CAMBIAR EL NOMBRE
UPDATE mascot SET propietario =’roberto ‘ where cod_masc =1;
No se pude hacer esta comparación (no colocar en el where)
Campo1 NULL,(MAL)
Campo1 IS NULL (BIEN)
Campo1 IS NOT NULL(BIEN)
BUQUEDA DE CAPO DE TIPO CADENA
LIKE
-OPERADORES LOGICOS
AND
OR
UPDATE veterinario SET
Segundo_ap = ‘cruz’,
Estado = ‘A’,
Sal_basico=’3500
WHERE nro_ci =’12345678’’
AND ing_ci=’sc’;
REALIZAR CONSULTAS EN HEIDY SQL
/* realizer una consulta que muestre nro_ci,primer_ap,nombre de los veterinarios que tiene salrio básico entre 2500 y 3200
*/
SELECT nro_ci ,primer_ap,nombre FROM veterinario WHERE sal_basico BETWEEN 2500 AND .3200;
/*REALIZAR UNA CONSULTA QUE MUESTRE LOS 3 PRIMEROS REGISTROS DE LA TABLA VETERINARIO */
SELECT * FROM veterinario LIMIT =3;
/*REALIZAR una consulta que muestre los registros de la tabla veterinario ordenemos por fecha de nacimiento*/
SELECT * FROM veterinario ORDER BY fec_nac;
SELECT *FROM veterinario ORDER BY fec_nac DESC LIMIT =3;
-FORMATO SI VOY UTILIZAR UN SELECT
SELECT lista de requerimiento FROM al menos una tabla
WHERE condición del filtro
GROUP BY lista de campos de agrupación
ORDER BY lista de campos de campos de ordenación
LIMIT NRO;
/* REALIZAR UNA CONSULTA QUE MUESTRE TODOS LOS VETERINARIOS EN ESTADO A, ORDENADOS POR EL PRIMER APELLIDO ,SEGUNDO APELLIDO, Y NOMBRE(TODOS EN ORDEN DESCENDENTES) ,SOLO SE DEBEN MOSTRARN EN EL RESULTADOS LOS CAMPOS PRIMER APELLIDO,SEGUNDO APELLIDO,NOMBRE Y FECHA DE NACIMIENTO*/
SELECT primer_ap,segundo_ap,nombre,fec_nac
FROM veterinario
WHERE estado ‘A’
ORDER BY primer_ap,segundo_ap, DESC ,nombre DESC,
/* REALIZAR UNA CONSULTA QUE MUESTRE LA FECHA DE NACIMIENTO EL PRIMER APELLIDO Y NOMBRE DE LOS VETERINARIOS QUE ESTAN EN ESTADO A,QUE TIENE PRIMER APELLIDO QUE TERMINE EN A Y QUE SU SALARIO SEA SUPERIO A 2600 ,ORDENADO POR FECHA DE NACIMIENTO ,EN EL RESULTADO SOLO VISUALIZAR LOS PRIMEROS DEL RESULTADO*/
SELECT fec_nac,primer_ap,nombre
FROM veterinario
WHERE estado = ‘A’ AND
Primer_ap LIKE ‘%a’ AND
Sal_basico > 2500
LIMIT 2;
/*REALIZAR UNA CONSULTA QUE RETORNE TODAS LAS CITAS Y EL NOMBRE COMPLETO DEL VETERINARIO QUE ESTA ASOCIADO A LA CITA*/
SELECT cita .*, nombre,primer_ap,segundo_ap
FROM cita INNER JOIN veterinario ON (nro_ci_vet =nro_ci AND cita .lug_ci = veterinario.lug_ci);
/*REALIZAR UNA CONSULTA QUE RETORNE TODAS LAS CITAS pendientes Y EL NOMBRE COMPLETO DEL VETERINARIO QUE ESTA ASOCIADO A LA CITA*/
SELECT C.*, CONCAT(nombres, ‘ ’ ,primer_ap,’ ’ ,IFNULL(Segundo_ap,’ ’)AS ‘nombre veterinario’
FROM cita c INNER JOIN veterinario v ON (nro_ci_vet =nro_ci AND c.lug_ci = v.lug_ci)
WHERE c .estado = ‘pandiente’;
Crear una lista que guarde la consulta anterior
CREATE VIEW citasyvetpendientes
SELECT C.*, CONCAT(nombres, ‘ ’ ,primer_ap,’ ’ ,IFNULL(Segundo_ap,’ ’)AS ‘nombre veterinario’
FROM cita c INNER JOIN veterinario v ON (nro_ci_vet =nro_ci AND c.lug_ci = v.lug_ci)
WHERE c .estado = ‘pandiente’;
Hacer una consulta para probar la vista citasyvetpendientes
SELECT*FROM citasyvetpendientes;
Select *from citasyvetpendientes
ORDER BY cod_mas DESC;
/*REALIZAR UNA CONSULTA QUE RETORNE EL NOMBRE DE LAS MSCOTAS QUE TIENEN CITA PENDIENTE ,EL NOMBRE DEL DUEÑO ,EL SEXO DE LA MASCOTA,FECHA DE CUANDO SE DEBE REALIZA LA CITA Y EL NOMBRECOMPLETO DL VETERINARIO
*/
SELECT nombre,propietario,a_realizar , CONCAT(nombres, ‘ ’ ,primer_ap,’ ’ ,IFNULL(Segundo_ap,’ ’)AS ‘nombre veterinario’
FROM cita c INNER JOIN veterinario v ON (nro_ci_vet AND C.lug_ci = v.lug_cit)
INNER JOIN mascota n ON (n.cod_masc =c.cod_masc)
WHERE c.estado =’pendiente’;
/*Eliminar la vista citayvetpendientes*/
DROP VIEW citiayvetpendiente;
-PARA REMPLAZA UNA VISTA
CREATE OR REPLACE VIEW citasyvetpendientes
SELECT C.*, CONCAT(nombres, ‘ ’ ,primer_ap,’ ’ ,IFNULL(Segundo_ap,’ ’)AS ‘nombre veterinario’
FROM cita c INNER JOIN veterinario v ON (nro_ci_vet =nro_ci AND c.lug_ci = v.lug_ci)
WHERE c .estado = ‘pandiente’;
Information
- Description
- Note on INTRODUCCION SQL, created by victor soria on 13/10/2020.
- Created by
- victor soria
- Views
- 1
- Rating