Documentos de Académico
Documentos de Profesional
Documentos de Cultura
select * from libros order by codigo; alter table libros2 add column descuentos decimal(8,2);
select * from libros2 order by codigo;
delete from libros
where codigo=8; alter table libros2 add column OBSERVACIONES varchar(50);
--4.LISTAR LIBROS QUE NO TIENEN su EDITORIAL select * from libros2 limit 4 offset 5
SELECT * from libros2 where editorial is null; select * from docentes
select * from inscritos
--5.LISTAR TODOS LOS LIBROS QUE COMIENCEN CON 'M'; select * from materias
select * from libros2 where titulo like 'M%';
--cross join-producto cartesiano
INSERT into libros2 (titulo,autor,editorial,precio,cantidad) values select m.nombre,d.nombre,ap_paterno,ap_materno
('Algebra','Baldor','Atenea',105.50,20); from materias as m cross join docentes as d
--order by ordenar por orden alfabetico por apellidos --ciudades de los alumnos y las direcciones de los docentes difernciando con estado
select nombre, ap_paterno,ciudad,'alumnos' as estado
select * from docentes from alumnos
order by ap_paterno union
select nombre, ap_paterno,direccion,'docentes'
--listar los docentes ordenados por salario from docentes
select nombre,ap_paterno,salario order by estado;
from docentes order by 3; --indice
create index i_docentes_especial on docentes (especialidad);
--cuanto se desembolsa en salarios
select sum(salario) as "total salarios" --indice unique
from docentes alter table materias
--mostrar cual es el salario maxino, salario minimo y el prmedio add constraint UQ_materias_nombre
select max(salario) as sal_maximo,min(salario) as sal_minimo, avg(salario) as unique (nombre);
sal_promedio
from docentes ---funciones con cadenas
--CUENTA LOS CARACTERES
-- mostrar la edad maxima, edad minima y el promedio de edades de los alumnos select char_length('hola')as tamaño;
select max(edad) as edad_maximo,min(edad) as edad_minimo, avg(edad) as --CONVIERTE A MAYUSCULAS
edad_promedio select upper('hola');
from alumnos; ---CONVIERTE A MINUSCULAS
select lower('HOLA');
-- cuantos docentes tiene salario comun --muestra la posicion de la palabra Mundo--
select salario, count(*) as cantidad select position('Mundo'in 'Hola Mundo');
from docentes --Muestra la posicion de la palabra MUNDO, pero como no esxite con mayuscula
group by salario; muestra como resltado cero
select position('MUNDO' in 'Hola Mundo');
--Cuantos alumnos hombres y cuantas mujeres existe --muestra las 5 letras a partir del carater o posicion 3
select sexo, count(*) as cantidad select substring('Hola Mundo' from 3 for 5);
from alumnos --elimina espacios en blanco al principio y final de la cadena
group by sexo; select (trim(' Hola Mundo '));
--elimina espacios solo al inicio de la cadena
--mostrar los docentes que tiene salarios en comun mayor a 1 select (trim(leading' 'from' Hola Mundo '));
--having -- elimina los guiones solo al final de la cadena
select salario, count(*) as cantidad select trim(trailing'-'from'--Hola Mundo----');
from docentes
group by salario --funcion CONCAT()---
having count(*)>1; select concat ('Buenas',' ','noches',':');}
--ciudades de los alumnos y las direcciones de los docentes
--union --muestar en unsa sola columna los nombres y apeliidos (concate)---
select nombre, ap_paterno,ciudad select concat(nombre,' ',ap_paterno,' ',ap_materno) as "Nombre completo de los
from alumnos alumnos"
union from alumnos;
select nombre, ap_paterno, direccion select * from docentes;
--convierte las primeras letras en mayusculas el nombre y apellido del codigo112 select sqrt(9);
select nombre,ap_paterno, initcap(concat(nombre,' ',ap_paterno)) as "Nombre --devuelve el resto de dividir x con respecto a y
completo" select mod(11,2);
from docentes --muestra los salarios de los docentes redondeando el valor hacia abajo y arriba
where codigo_doc=112; select nombre,ap_paterno,salario, floor(salario) as abajo, ceiling(salario) as arriba
from docentes;
--convierte las primeras letras de la frase en mayusculas --funciones con fechas
select current_date;
select initcap('la paz - bolivia') as "Ciudad Pais" --hora actual
select current_time;
--muestra solo los 6 primeros caracteres de los nombres de las materias --fecha hora
select substring(nombre,1,6) as titulo select current_timestamp;
from materias; --funciones con fechas
--muestra los nombres de los docentes y en mayusculas el apellido paterno --retorna año 2009
select nombre, upper(ap_paterno) as "Apellido Paterno" select extract(year from timestamp'2009-12-31 12:25:50');
from docentes; --retorna mes
---muestra todos los nombres de las materias rellenando con el caracter * a la derecha select extract(month from timestamp'2009-12-31 12:25:50');
select rpad(nombre,30,'*') as "relleno*" --retorna dia
from materias; select extract(day from timestamp'2009-12-31 12:25:50');
--retorna hora
--imprime todas las direcciones que contienen la cadena 'El' en alguna parte de las select extract(hour from timestamp'2009-12-31 12:25:50');
direcciones --retorna minuto
select * select extract(minute from timestamp'2009-12-31 12:25:50');
from docentes select extract(second from timestamp'2009-12-31 12:25:50');
where position('El' in direccion)>0;
--imprime todas las especialidades que tienen 10 o mas carateres select extract(century from timestamp'2009-12-31 12:25:50');
select *
from docentes --funciones con la BD
where char_length(especialidad)>=10; --lista materias que iniciaron el año 2021
select nombre,duracion,aula,fecha_ini as "fecha de inicio"
---funciones matematicas from materias
--valor absoluto where extract (year from fecha_ini)=2021
select abs(-20); --listar nombres de docentes que iniciaron en mayo del 2021
--raiz cubica select d.nombre,ap_paterno,ap_materno,fecha_ini as "fecha de inicio"
select cbrt(27); from docentes as d inner join materias as m on d.codigo_doc=m.codigo_doc
--redondeo hacia arriba where extract(year from m.fecha_ini)=2021 and extract(month from m.fecha_ini)=5
select ceiling(12.34);
--redondea hacia abajo ---funciones sql
select floor(12.34); create or replace function sumar(integer,integer) returns integer
--retorna el valor de x elevado a la y--potencia---- as
select power(2,3); 'select $1+$2;'
---rdondeo a valor cercano o proximo language sql;
select round(10.4);
--retorna valores positivos en caso de postivo y -1 si es negativo --luego llamamos la funcion
select sign(-23.4); select sumar(3,7);
--raiza cuadrada
--ejemplo con la BD ( nro_cuenta bigint primary key,
create or replace function dia(date) returns varchar(16) estado varchar(10),
as tipocliente char(1)
'select )inherits(personas)--herencia--
case when to_char($1,''dy'')=''mon'' then ''lunes''
when to_char($1,''dy'')=''tue'' then ''martes'' create table funcionarios
when to_char($1,''dy'')=''wed'' then ''miercoles'' (cargo varchar(25)primary key,
when to_char($1,''dy'')=''thu'' then ''jueves'' departamento varchar(25),
when to_char($1,''dy'')=''fri'' then ''viernes'' fecha_ing date
when to_char($1,''dy'')=''sat'' then ''sabado'' )inherits(personas);
else ''domingo''
end;' ---ingresso de datos de clientes--
language sql; insert into clientes
--llamando a la funcion (numero,nombres,apellidos,direccion,telefono,fecha_nacim,nro_cuenta,estado,tipoclien
select dia(fecha_ini) as "dia de inicio", * from materias; te)
values
---funciones sql (3006001,'gladys','Villa','AV.Peru 5040','+569123123',null,900100,'A','V'),
--funcion resta (3006002,'Raul','Lopez','AV.Camacho 4500','+56955555',null,900200,'A','V');
create or replace function resta(integer,integer) returns integer
as --- ingreso de datos de personas
'select $1-$2;' insert into personas
language sql; (numero,nombres, apellidos, direccion, telefono, fecha_nacim)
values
--luego llamamos a la funcion resta (3006011,'Ely','Nina','San Pedro','454545','2000-01-01');
select resta(3,7); ---
select * from clientes;
---funciones producto select * from personas;
create or replace function producto(integer,integer) returns integer select * from funcionarios;
as
'select $1*$2;' --ingerso de datos de funcionarios
language sql; insert into funcionarios
(numero,nombres, apellidos, direccion, telefono, fecha_nacim,cargo,
--luego llamamos la funcion producto departamento,fecha_ing)
select producto(3,7); values
('contador','La Paz','2020-01-01');
----*****--------
create table personas --- tamaño de BD que ocupa en disco--
(numero serial not null primary key, select pg_size_pretty(pg_database_size('ejemplo3'));
nombres varchar(50),
apellidos varchar(50), ---tamaño de la tabla personas --
direccion varchar(200), select pg_size_pretty(pg_relation_size('personas'));
telefono varchar(20),
fecha_nacim date ---tamano mediante indices
); select pg_size_pretty(pg_total_relation_size('docente