Desarrollo Javascript

Desarrollo con javascript plano, y frameworks como angular y vue para mejorar el front-end, Ejercicios, retos y participación en challenge

Conocimientos en laravel framework potente de php y vue para el front-end

Framework laravel es el mejor mvc de php para poder desarrollar apis robustas.

Diseño y Desarrollo de base de Datos

SQL y querys usados con frecuencia en el mundo laboral.

jueves, 22 de octubre de 2015

Procedimiento Almacenado



Un procedimiento almacenado de SQL Server es un grupo de una o varias instrucciones Transact-SQL o una referencia a un método de Common Runtime Language (CLR) de Microsoft .NET Framework.Los procedimientos se asemejan a las construcciones de otros lenguajes de programación, porque pueden:
Aceptar parámetros de entrada y devolver varios valores en forma de parámetros de salida al programa que realiza la llamada.
Contener instrucciones de programación que realicen operaciones en la base de datos.Entre otras, pueden contener llamadas a otros procedimientos.
Devolver un valor de estado a un programa que realiza una llamada para indicar si la operación se ha realizado correctamente o se han producido errores, y el motivo de estos.


Ventajas de usar procedimientos almacenados

En la siguiente lista se describen algunas de las ventajas que brinda el uso de procedimientos.
Reutilización del código
Tráfico de red reducido entre el cliente y el servidor
Mayor seguridad

La sintaxis es:

 create proc NOMBREPROCEDIMIENTO
  @NOMBREPARAMETRO TIPO =VALORPORDEFECTO
  as SENTENCIAS;




Creamos un procedimiento que recibe el nombre de un empleado como parámetro para mostrar todos los libros del autor solicitado:

 create procedure pa_nempleado
  @empleado varchar(30)
 as
  select titulo, editorial,precio
   from empleados
   where empleado = @empleado;


exec nempleado 'Borges';



Fuente

Diferencia entre SQL / MySQL / SQLite




Acontinuación se presenta los gestores más usados a nivel empresarial como para empezar a estudiarlos e incursionar en el mundo de la tecnología y poder innovar en el mercado empresarial.




Ejercicio Práctico


‘Obtener el nombre de los productos cuyo precio sea menor o igual a 200 $
SELECT Nombre FROM ARTICULOS WHERE Precio > 200
‘Obtener todos los datos de los artículos cuyo precio esté entre los 60 $ y los 120 $
/*con AND*/
SELECT * FROM ARTICULOS
 WHERE Precio >=60 AND Precio <=120

/*CON BETWEEN */
SELECT * FROM ARTICULOS
WHERE Precio  BETWEEN 60 AND 120

‘Obtener el número de artículos cuyo codigo de fabricante sea 2

SELECT AVG(Precio) FROM ARTICULOS WHERE Fabricantes=2

‘Obtener el nombre y precio de los articulos cuyo precio sea mayor o igual a 180 4 y ordenarlos descendentemente por precio , y luego ascendetemente por nombre
SELECT Nombre, Precio FROM ARTICULOS
WHERE Precio >=180
ORDER BY Precio DESC, Nombre

‘Obtener un listado completo de artículos, incluyendo por cada articulo los datos del articulo y de su fabricante
/*SIN INNER JOIN */
SELECT * FROM ARTICULOS, FABRICANTES
WHERE ARTICULOS.Fabricante = FABRICANTES.codigo

En el siguiente apartado se muestra ejercicios básicos de cómo trabajar con dos tablas usando comandos DML.




/* CON INNER JOIN */
SELECT *
FROM ARTICULOS INNER JOIN FABRICANTES
ON ARTICULOS.Fabricante = FRABRICANTE = FABRICANTES.Codigo

/*OBTENER EL NÚMERO Y PRECIO DE LOS ARTÍCULOS CUYO PRECIO SEA MAYOR O IGUAL A 180 */
SELECT COUNT(*) FROM ARTICULOS WHERE PRECIO >=180

/*OBTENER EL PRECIO MEDIO DE LOS PRODUCTOS DE CADA FABRICANTE, MOSTRANDO EL NOMBRE DEL FABRICANTE*/

/*SIN INNR JOIN*/
SELECT AVG (PRECIO), FABRICANTES.Nombre
FROM ARTICULOS, FABRICANTES
WEHRE ARTICULOS.Fabricante = FABRICANTES.Codigo
GROUP BY FABRICANTES.Nombre

/*OBTENER EL PRECIO Y EL NOMBRE DEL ARTICULO MÁS BARATO */
SELECT Nombre, Precio
FROM ARTICULOS
WHERE Precio = (SELECT MIN(Precio) FROM  ARTICULOS)


/*CAMBIAR EL NOMBRE DEL PRODUCTO 8 A ‘IMPRESORA’*/
UPDATE ARTICULOS
 SET Nombre=’Impresora Laser’
WHERE Codigo=8

/*APLICAR UN DESCUENTO DEL 10% (MULTIPLICAR EL PRECIO POR 0,9) A TODOS LOS PRODUCTOS */

UPDATE ARTICULOS

SET Precio=Precio*0.9

Optimizar Una Consulta



Cuidado al diseñar el esquema

Antes de hacer consultas, lo primero que deberías hacer es diseñar el esquema y quizá es uno de los pasos más importantes si la aplicación. La memoria necesaria para una tabla es el número de entradas por el tamaño de una fila ( de perogrullo )  por lo que las tablas deben tener un tamaño aceptable. Es lógico que un campo nombre sea varchar pero, ¿qué pasa con un código postal que solo va a tener 5 caracteres… siempre?

Veamos lo que pasa internamente:

Valor   CHAR (5)       Almacenamiento requerido   VARCHAR (5)           Almacenamiento requerido
''          ' '         5 bytes            ''          1 byte
‘ab’      'ab '     5 bytes            'ab'      3 bytes
'abcde' 'abcde' 5 bytes            'abcde' 6 bytes
Como ves, a tamaño completo, no tiene mucho sentido guardar un varchar de 5 caracteres teniendo en cuenta que, si siempre va a ocupar lo máximo, ocupará más que si fuera un char.


Particiona las tablas

Es bastante común tener tablas de las que solo seleccionemos algunas columnas en concreto con asiduidad. Imagina por ejemplo la tabla de un usuario en la que podemos llegar a guardar un montón de información como su fecha de nacimiento, departamento al que pertenece, etc. Pero habitualmente accederás a su nombre de usuario, correo, contraseña y poco más. Para esos casos, es buena idea particionar la tabla:




CREATE TABLE usuarios {
    id INT unsigned not null auto_increment,
    usuario VARCHAR(20) not null,
    password VARCHAR(40) not null,
    email VARCHAR(40),
    PRIMARY KEY(id)
}

CREATE TABLE datos_usuario {
    id_usuario INT unsigned not null,
    id_departamento INT unsigned,
    fecha_nacimiento DATE,
    dni CHAR(9),
    PRIMARY KEY (id_usuario)
}


Los datos que usamos frecuentemente los mantenemos en una tabla mientras que los que usamos con menos frecuencia los dejamos en otra, esto hará que la tabla menos frecuente ocupe menos memoria.


Encadena SELECT o usa JOIN pero no ambos

Aparte de que son menos mantenibles y legibles, tienen un alto impacto en cuanto a recursos usados. Por regla general además, es recomendable no usar SELECTs anidados y usar únicamente JOINs ya que el rendimiento es casi siempre mejor. Recuerda que, por regla general, puedes convertir un SELECT anidado en un JOIN fácilmente:

SELECT usuario
FROM usuarios
WHERE id IN (
    SELECT id
    FROM datos_usuario
    WHERE departamento = 1
)
Ahora con JOINs

SELECT usuarios.usuario
FROM usuarios
INNER JOIN datos_usuario ON usuarios.id = datos_usuario.id
WHERE datos_usuario.departamento = 1;
Este es un error bastante común para los iniciados al SQL ya que la primera consulta es más “natural” para el programador.




Vistas En SQL

Esta información es una recopilación del curso de Fundamentos de base de datos de la Academia virtual de Microsoft.


Crear nuevas entidades en SQl Server incluyen algunas entidades comunes.
A continuación se muestra una descripción de lo que se debe emplear en una base de datos a la hora de crearla y administrarla.



DATABASE
PROCEDURE
TABLE
TRIGGER
DEFAULT
VIEW
INDEX
USER
LOGIN
ROLE


VISTAS

Una vista es una alternativa para mostrar datos de varias tablas. Una vista es como una tabla virtual que almacena una consulta. Los datos accesibles a través de la vista no están almacenados en la base de datos como un objeto.
Las vistas permiten:

- ocultar información: permitiendo el acceso a algunos datos y manteniendo oculto el resto de la información que no se incluye en la vista. El usuario opera con los datos de una vista como si se tratara de una tabla, pudiendo modificar tales datos.

- simplificar la administración de los permisos de usuario: se pueden dar al usuario permisos para que solamente pueda acceder a los datos a través de vistas, en lugar de concederle permisos para acceder a ciertos campos, así se protegen las tablas base de cambios en su estructura.

- mejorar el rendimiento: se puede evitar tipear instrucciones repetidamente almacenando en una vista el resultado de una consulta compleja que incluya información de varias tablas.

Podemos crear vistas con: un subconjunto de registros y campos de una tabla; una unión de varias tablas; una combinación de varias tablas; un resumen estadístico de una tabla; un subconjunto de otra vista, combinación de vistas y tablas.



Una vista se define usando un "select".


La sintaxis básica parcial para crear una vista es la siguiente:

 create view NOMBREVISTA as
  SENTENCIASSELECT
   from TABLA;

El contenido de una vista se muestra con un "select":

 select *from NOMBREVISTA;
En el siguiente ejemplo creamos la vista "vista_empleados", que es resultado de una combinación en la cual se muestran 4 campos:

 create view vista_empleados as
  select (apellido+' '+e.nombre) as nombre,sexo,
   s.nombre as seccion, cantidadhijos
   from empleados as e
   join secciones as s
   on codigo=seccion

Para ver la información contenida en la vista creada anteriormente tipeamos:

 select *from vista_empleados;
Podemos realizar consultas a una vista como si se tratara de una tabla:

 select seccion,count(*) as cantidad
  from vista_empleados;



Ver la versión de tu navegador segun el Gestor de Base de Datos



A la hora de trabajar con una herramienta de programación se necesita saber la versión y mejor aún si lo sabemos por medio de comandos  puede ser con sentencias normales de sql o sino con sentencias transact –SQL.
SELECT @@VERSION AS 'SQL Server Version';


El resultado sería :


Microsoft SQL Server 2000 - 8.00.760 (Intel X86)
Dec 17 2002 14:22:05
Copyright (c) 1988-2003 Microsoft Corporation
Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 2)

Crear una base de datos




CREATE DATABASE EMPLEADO


/*crear una tabla*/

CREATE TABLE Customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date datetime);

 Recomendaciones
Cada vez que se crea, modifica o quita una base de datos de usuario, se debe hacer una copia de seguridad de la base de datos maestra.
Cuando cree una base de datos, defina el mayor tamaño posible para los archivos de datos según la cantidad de datos máxima prevista para la base datos.

Seguridad

Permisos
Requiere el permiso CREATE DATABASE en la base de datos maestra, o los permisos CREATE ANY DATABASE o ALTER ANY DATABASE.


Los datos más usados en una table son enteros y cadenas de caracteres, dependiendo del Proyecto a realizar.


Los datos más usados en una table son enteros y cadenas de caracteres, dependiendo del Proyecto a realizar. 

miércoles, 21 de octubre de 2015

Diferencia entre Java y Javascript



El lenguaje de programación JavaScript, desarrollador por Netscape, Inc., no forma parte de la plataforma Java.

JavaScript no crea applets ni aplicaciones independientes. En su forma más habitual, JavaScript está en documentos HTML y puede proporcionar niveles de interactividad en las páginas web que no se pueden conseguir con HTML simple.



JAVA
JAVASCRIPT
Es un lenguaje de programación orientado a objetos.
Javascript es un lenguaje interpretado basado en prototipos.
La Plataforma Java se compone de un amplio abanico de tecnologías como SDK, IDE, máquina virtual.
Solo necesita un editor de código
Puede establecer conexiones con bases de datos y desarrollar aplicaciones avanzadas tanto del lado del cliente como del lado del servidor.
Solo se puede desarrollar aplicaciones del lado del cliente. Y su funcionalidad avanzada depende de plugins.
Posee paquetes o clases que complementan el desarrollo de aplicaciones.
Posee librerías para desarrollar aplicaciones en entornos web.
Su sintaxis está inspirada en la sintaxis del lenguaje de programación C.
Su sintaxis también está inspirada en la sintaxis del lenguaje de programación C.

Formulario con Controles Swing


El siguiente ejemplo se trata de un formulario para un cine multimedia




Paso1.- Seria luego de crear un proyecto click derecho en el paquete - nuevo - JFrame


Paso2.- Verificamos que este inicializado el componente, sino dígitamos el código 
public CineSuper() {      
 initComponents();
}


Paso3.- Empezamos a programar sobre el botón calcular


Eso es todo para ejecutar nuestro formulario abria que ir a customize - 




Seleccionamos nuestro proyecto main y lo eliminamos dentro de esa entrada de texto y nos quedamos con nuestra clase que contiene todo nuestros controles swing.

y listo ahora si lo ejecutamos.!!!




Herencia en Java



Significa que se pueden crear nuevas clases partiendo de clases existentes, que tendrá todas los atributos y los métodos de su 'superclase' o 'clase padre' y además se le podrán añadir otros atributos y métodos propios.


Estructura del paquete herencia

Herencia.- es la clase pinpricipal conocido como el main
Hijo.- es la clase que va a heredar del padre por medio de la palabra clave extend
Padre.- es la clase donde se declaran los atributos y metodos a heredar










Código de la clase padre




Código de la clase hijo

En esta clase se desarrollaron metodos opcionales que en el instante que creamos un objeto en el main de java es decir en la clase herencia aparecia un error el cual se corrigió forzando la creada de un metodo.





Herencia principal

Es aquí donde creamos un objeto y llamamos a los métodos heredados.








La Clase Scanner


La clase Scanner está disponible a partir de Java 5 y facilita la lectura de datos en los programas Java.
Primero veremos varios ejemplos de lectura de datos en Java con Scanner y después explicaremos en detalle cómo funciona.


Funcionamiento la clase Java Scanner.
De forma resumida podemos decir que cuando se introducen caracteres por teclado, el objeto Scanner toma toda la cadena introducida y la divide en elementos llamados tokens. El carácter predeterminado que sirve de separador de tokens es el espacio en blanco.

Por ejemplo, si introducimos:

Esto es un ejemplo, lectura de datos. Scanner divide la cadena en los siguientes tokens:
Esto
es
un
ejemplo,
lectura
de
datos.


Ya hemos visto el método nextXxx(). Además la clase Scanner proporciona otros métodos, algunos de los métodos más usados son:

MÉTODO
DESCRIPCIÓN
nextXxx()
Devuelve el siguiente token como un tipo básico. Xxx es el tipo. Por ejemplo, nextInt() para leer un entero, nextDouble para leer un double, etc.
next()
Devuelve el siguiente token como un String.
nextLine()
Devuelve la línea entera como un String. Elimina el final \n del buffer
hasNext()
Devuelve un boolean. Indica si existe o no un siguiente token para leer.
hasNextXxx()
Devuelve un boolean. Indica si existe o no un siguiente token del tipo especificado en Xxx, por ejemplo hasNextDouble()
useDelimiter(String)
Establece un nuevo delimitador de token.











miércoles, 7 de octubre de 2015

OPTIMIZAR UNA CONSULTA


Cuidado al diseñar el esquema

Antes de hacer consultas, lo primero que deberías hacer es diseñar el esquema y quizá es uno de los pasos más importantes si la aplicación. La memoria necesaria para una tabla es el número de entradas por el tamaño de una fila ( de perogrullo )  por lo que las tablas deben tener un tamaño aceptable. Es lógico que un campo nombre sea varchar pero, ¿qué pasa con un código postal que solo va a tener 5 caracteres… siempre?

Veamos lo que pasa internamente:

Valor     CHAR (5)             Almacenamiento requerido       VARCHAR (5)     Almacenamiento requerido
''              ' '             5 bytes ''              1 byte
‘ab’        'ab '        5 bytes 'ab'         3 bytes
'abcde' 'abcde' 5 bytes 'abcde' 6 bytes
Como ves, a tamaño completo, no tiene mucho sentido guardar un varchar de 5 caracteres teniendo en cuenta que, si siempre va a ocupar lo máximo, ocupará más que si fuera un char.

Particiona las tablas

Es bastante común tener tablas de las que solo seleccionemos algunas columnas en concreto con asiduidad. Imagina por ejemplo la tabla de un usuario en la que podemos llegar a guardar un montón de información como su fecha de nacimiento, departamento al que pertenece, etc. Pero habitualmente accederás a su nombre de usuario, correo, contraseña y poco más. Para esos casos, es buena idea particionar la tabla:





CREATE TABLE usuarios {
    id INT unsigned not null auto_increment,
    usuario VARCHAR(20) not null,
    password VARCHAR(40) not null,
    email VARCHAR(40),
    PRIMARY KEY(id)
}

CREATE TABLE datos_usuario {
    id_usuario INT unsigned not null,
    id_departamento INT unsigned,
    fecha_nacimiento DATE,
    dni CHAR(9),
    PRIMARY KEY (id_usuario)
}
Los datos que usamos frecuentemente los mantenemos en una tabla mientras que los que usamos con menos frecuencia los dejamos en otra, esto hará que la tabla menos frecuente ocupe menos memoria.

Nada de SELECT *

A menudo, especialmente durante el desarrollo, nos vemos tentados a escribir SELECT * para cualquier consulta en la que nos traigamos datos de una tabla. Esto es un error en la mayoría de las ocasiones ya que estarás trayendo datos que, probablemente, no necesites. Lo que es aun peor es que la tabla puede crecer en número de columnas en el futuro, lo cual implica que traerás aun más datos que no necesitarás.

Limita las consultas a las columnas que necesites.




Encadena SELECT o usa JOIN pero no ambos

Aparte de que son menos mantenibles y legibles, tienen un alto impacto en cuanto a recursos usados. Por regla general además, es recomendable no usar SELECTs anidados y usar únicamente JOINs ya que el rendimiento es casi siempre mejor. Recuerda que, por regla general, puedes convertir un SELECT anidado en un JOIN fácilmente:

SELECT usuario
FROM usuarios
WHERE id IN (
    SELECT id
    FROM datos_usuario
    WHERE departamento = 1
)
Ahora con JOINs

SELECT usuarios.usuario
FROM usuarios
INNER JOIN datos_usuario ON usuarios.id = datos_usuario.id
WHERE datos_usuario.departamento = 1;
Este es un error bastante común para los iniciados al SQL ya que la primera consulta es más “natural” para el programador.




Evita los filtros de texto


Una de las cosas que más impactan sobre el rendimiento de la base de datos es el hacer búsquedas de texto en cadenas, especialmente en campos de tipo TEXT y usando %.