jueves, 24 de noviembre de 2011

Ejercicios SQL

Ejercicio 1
Para generar este resultado:
Utilice este comando:
SELECT City, CompanyName FROM customers WHERE City LIKE 'Ber%'
En donde se realiza solo la consulta de las columnas City y CompanyName en donde se encuentren las iniciales Ber en la columna City.

Ejercicio B
Para generar este resultado:
Utilice este comando:
SELECT CompanyName, ContactName FROM customers ORDER BY ContactName
En donde se realiza la consulta de las columnas CompanyName y ContactName, pero la columna ContactName se ordena en forma ascendente.

Ejercicio C
Pata generar este resultado:
Utilice este comando:
SELECT COUNT(City) FROM CUSTOMERS WHERE City LIKE 'Ber%'
En donde se cuentan el número de registros en la columna City en donde las iniciales son Ber.

Ejercicio D
Consultas de la página de prueba

Comando:
SELECT * FROM customers
Resultado:
Se seleccionó la consulta de toda la tabla customers.

Comando:
SELECT CompanyName, ContactName FROM customers
Resultado:
Se seleccionó la consulta de las columnas CompanyName y ContactName de la tabla customers.

Comando:
SELECT * FROM customers WHERE CompanyName LIKE 'a%'
Resultado:
Se seleccionó la consulta de todos los campos en donde en la columna CompanyName los registros comenzarán con a.

Comando:
SELECT CompanyName, ContactName
FROM customers
WHERE CompanyName > 'a'

Resultado:
Se realizó la consulta de las columnas CompanyName y ContactName en donde aparecieran todos los registros de la columna CompanyName después del registro que empeieza con la letra a, incluyendo a este.


---Continuación---

Referencias

Eventos en Java

En esta entrada explicaré como funcionan los eventos al presionar un botón en Java.

Cuando creamos una aplicación en Java utilizamos botones que al presionarlos, realizan una función. Explicare un ejemplo sencillo de como funcionan tres botones al presionarlos, uno de ellos será un botón de salida de la ventana, el otro al presionarlo imprimirá algo en la terminal y el otro cambiará de color al panel contenido en la ventana.

Ejemplo

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Eventos implements ActionListener{

JButton boton;
JButton boton2;
JButton boton3;
JPanel ev;

public Eventos(){
JFrame ventana = new JFrame();
ventana.setTitle("Ventana");
ventana.setSize(500, 250);
ventana.setVisible(true);
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

ev = new JPanel();
ventana.setContentPane(ev);
ev.setBackground(Color.WHITE);
ev.setLayout(null);

boton = new JButton("Imprime");
boton.addActionListener(this);
boton.setBounds(60, 100, 100, 50);
ev.add(boton);

boton2 = new JButton("Salir");
boton2.addActionListener(this);
boton2.setBounds(170, 100, 100, 50);
ev.add(boton2);

boton3 = new JButton("Cambia color");
boton3.addActionListener(this);
boton3.setBounds(280, 100, 150, 50);
ev.add(boton3);

}

public void actionPerformed(ActionEvent e){
if(boton == e.getSource()){
System.out.println("Imprimiendo");
}
if(boton2 == e.getSource()){
System.exit(0);
}
if(boton3 == e.getSource()){
ev.setBackground(Color.GREEN);
}
}
public static void main(String args[]){

Eventos evento = new Eventos();

}
}

El ActionListener avisa que se a presionado el boton, es decir, se a creado un evento, por esta razón los botones Imprime, Salir y Cambia color agregan un AcionListener.
El actionPerformed es en donde van las acciones que se realizarán al presionar cada botón.

Si presionamos el botón Imprime, se imprimirá un mensaje en la terminal que dice "Imprimiendo", en cambio si presionamos el botón Salir, se cerrará la ventana y si presionamos el botón Cambia color, el panel de la ventana, cambiará de color blanco a verde.

La clase debe implementar el ActionListener para que los botones realicen una acción al ser presionados.

Imagenes


Referencias

Saludos.



Comandos SQL

Esta entrada es para explicar como se manipula una base de datos en MySQL en terminal, para cuando se desea trabajar un proyecto en el cual se incorpore una conexión a una base de datos en Mysql.

Para comenzar a usar MySQL en la terminal, abrimos nuestra terminal y tecleamos lo siguiente:
mysql -u root -p
Nos pedirá la contraseña que le asignamos cuando instalamos el cliente y el servidor de MySQL.
Ahora ya estamos en MySQL, y ya podremos crear nuestra base de datos.

Para crear nuestra base de datos escribimos el comando siguiente:
CREATE DATABASE nombrebase;

El comando CREATE DATABASE esta escrito en mayúsculas, pero se puede escribir con minúsculas en Linux, solo se escribe en mayúsculas para separar los comandos de los nombres de las bases, de los nombres de los campos, etc.

Ahora para ver nuestra base, tecleamos el comando:
SHOW DATABASES;

Con el comando anterior, se muestran las bases creadas en MySQL.

Ahora, para insertar tablas en nuestra base de datos, tenemos que teclear el comando:
USE nombrebase;

El comando anterior se utiliza para usar la base de datos a la que le queremos insertar tablas, datos.
Para crear una tabla en nuestra base se utiliza el comando:
CREATE TABLE nombretabla();
Pero dentro de los paréntesis van los campos que llevara nuestra tabla a crear y el tipo de dato que es. Además se puede agregar cual es la llave primaria en nuestra tabla y si algun campo puede ser o no NULL (nulo).

Por ejemplo, para crear una tabla que se llame cliente, en donde queremos que el cliente tenga un ID, un nombre, una edad y un telefono, teclearemos lo siguiente:
CREATE TABLE cliente(ID int AUTO_INCREMENT PRIMARY KEY, nombre CHAR(15), edad CHAR(5), telefono CHAR(10));
Creé el campo ID como un INT y AUTO_INCREMENT es para que la ID del cliente se vaya aumentando automáticamente conforme se vaya ingresando un cliente; coloqué PRIMARY KEY en este campo, ya que este campo será la llave primaria de la tabla cliente.
Creé los campos nombre, edad y telefono como CHAR(), ya que serán caracteres porque en los campos edad y telefono no se necesita que sean de tipo entero, ya que no se realizará ninguna operación con ellos. Dentro de los paréntestis se coloca el número de caracteres para el campo.

Ahora ingresamos el comando:
SHOW TABLES;
Y nos mostrará las tablas que hayamos creado en nuestra base.

Para ingresar datos en nuestra tabla se usa el comando:
INSERT INTO cliente VALUES();

Dentro de los paréntesis van en orden los valores que le queremos agregar a los campos nombre, edad y telefono.

Por ejemplo si queremos agregar un cliente que se llame Sandra y de edad tenga 20 años y su telefono sea 83765420, estos datos, se ingresarán de la manera siguiente:
INSERT INTO cliente VALUES(1, 'Sandra', '20', '83765420');
Coloque el número 1, como ID de sandra. Solo los datos que ingresamos de tipo CHAR, deben estar dentro de comillas simples ' '.

Ahora para ver los datos que acabamos de ingresar en MySQL hay un comando que es SELECT, este comando, sirve para realizar consultas.
Para consultar toda la tabla, ingresamos el comando siguiente:
SELECT * FROM cliente;

Si queremos que solo ciertos datos aparezcan y no toda la tabla, se utiliza este comando SELECT pero con condiciones.
Por ejemplo, si solo queremos ver la columna nombre, el comando a utilizar será:
SELECT nombre FROM cliente;
Lo anterior, es algo básico para comenzar a utilizar MySQL en terminal.

Referencias
Referencia1 Esta referencia es muy buena, sirve mucho.

Saludos.

Layouts en Java

Los Layouts son clases que dicen como se van a acomodar los componentes en una interfaz gráfica en Java.
Algunos de ellos, son GridLayout, GridBagLayout, FlowLayout, BorderLayout, etc.

Cada Layout tiene una manera diferente de acomodar los componentes como botones, labels, textfields, etc., en una ventana.

Explicaré el uso de algunos de los Layouts de Java, con el siguiente código.

Uso del BorderLayout, GridLayout y FlowLayout.
import java.awt.*;
import javax.swing.*;

public class Layouts{

public Layouts(){
}

public static void main(String[] args) {

JFrame ventana = new JFrame(); //creacion de la ventana

ventana.setSize(1028, 740); //tamaño de la ventana
ventana.setLocation(0, 25); //donde se localiza la ventana
ventana.setTitle("Ventana"); //como se llama la ventana
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //cuando se cierra la ventana

JPanel p = new JPanel(); //panel contenedor de los demas paneles
JPanel pBorder = new JPanel(); //panel para el BorderLayout
JPanel pGrid = new JPanel(); //panel para el GridLayout
JPanel pFlow = new JPanel(); //panel para el FlowLayout

ventana.setContentPane(p); //la ventana contiene el panel p
p.add(pBorder);
p.add(pGrid); //el panel p contiene a los paneles pBorder, pGrid y pFlow
p.add(pFlow);

p.setLayout(new GridLayout(3, 1));
pBorder.setLayout(new BorderLayout());
pGrid.setLayout(new GridLayout(3, 2));
pFlow.setLayout(new FlowLayout());

p.setBackground(Color.WHITE);
pBorder.setBackground(Color.YELLOW); //colores de los layouts
pGrid.setBackground(Color.GREEN);
pFlow.setBackground(Color.RED);

JLabel centro = new JLabel("¡Centro!");
JLabel norte = new JLabel("¡Norte!");
JLabel sur = new JLabel("¡Sur!"); //labels
JLabel este = new JLabel("¡Este!");
JLabel oeste = new JLabel("¡Oeste!");

JPanel panel = new JPanel(); //panel que esta en el centro del panel pBorder
panel.add(centro); //este panel agrega el label centro
pBorder.add(panel, BorderLayout.CENTER);
pBorder.add(norte, BorderLayout.NORTH); //este panel agrega el label norte al norte
pBorder.add(sur, BorderLayout.SOUTH); //este panel agrega el label sur al sur
pBorder.add(este, BorderLayout.EAST); //este panel agrega el label este al este
pBorder.add(oeste, BorderLayout.WEST); //este panel agrega el label oeste al oeste

JButton bot1 = new JButton("Boton1");
JButton bot2 = new JButton("Boton2");
JButton bot3 = new JButton("Boton3"); //botones
JButton bot4 = new JButton("Boton4");
JButton bot5 = new JButton("Boton5");
JButton bot6 = new JButton("Boton6");

pGrid.add(bot1);
pGrid.add(bot2);
pGrid.add(bot3); //el panel pGrid agrega todos estos botones
pGrid.add(bot4);
pGrid.add(bot5);
pGrid.add(bot6);

JLabel lab = new JLabel("Ejemplo");
JButton bot = new JButton("Boton");
JButton boton = new JButton("Boton");
JLabel label = new JLabel("Ejemplo");

pFlow.add(lab);
pFlow.add(bot); //el panel pFlow contiene estos componentes
pFlow.add(boton);
pFlow.add(label);

ventana.setVisible(true);

return;
}
}
Imagen de la ejecución

BorderLayout
Como se ve en el código anterior el BorderLayout se usa para acomodar los componentes al norte, sur, este, oeste y centro de una ventana. Solo hay que agregar un componente a un BorderLayout y decir donde queremos que se vea, ya sea al centro, al norte, al sur, al este o al oeste.

GridLayout
El GridLayout se utiliza para crear matrices en una ventana. Acomoda los componentes en un mismo tamaño. Es útil para realizar calculadoras.
Como se muestra en el código, para decir cuantas filas y columnas queremos en la matriz, se coloca primero el número de filas y después el número de columnas, por ejemplo, en el código, en el GridLayut del panel pGrid hay 3 filas y dos columnas, pGrid.setLayout(new GridLayout(3, 2)).

FlowLayout
Este Layout es muy sencillo, ya que solo acomoda los componentes en fila hasta donde se lo permita la ventana.

Referencias

Clase Moto

Pseudocódigo

Clase Moto{
placa, estadoMotor, velocidad, vidaBateria

Moto(placa)
placa = placa
estadoMotor = apagado
velocidad = 0
vidaBateria = 100

verPlaca()
return placa

encender()
estadoMotor = encendido
vidaBateria --

apagar()
estadoMotor = apagado
velocidad = 0

acelerar()
if estadoMotor == encendido
velocidad = velocidad + 20

frenar()
if estadoMotor == encendido && velocidad > 0
velocidad = velocidad - 20

}

Clase MainMoto
public class Moto
{
private int placa;
private boolean estadom;
private int velocidad;
private int vbateria; //atributos

public Moto(int placa)
{
placa = placa;
estadom = false;
velocidad = 0;
vbateria = 100;
}

public int verplaca(int placa)
{
System.out.println("Placa: "+placa);

return placa;
}

public void encender()
{
estadom = true;
System.out.println("El motor esta encendido");
vbateria--;
System.out.println("Bateria: "+ vbateria);

return;
}

public void apagar()
{
estadom = false;
System.out.println("El motor esta apagado");
velocidad = 0;
System.out.println("La velocidad es 0");

return;
}

public void acelerar()
{
if(estadom==true){
velocidad = velocidad + 20;
System.out.println("Velocidad: "+ velocidad);
}
else{
System.out.println("El motor esta apagado");
}

return;
}

public void frenar()
{
if(velocidad > 0 && estadom == true){
velocidad = velocidad - 20;
System.out.println("Velocidad: "+ velocidad);
}
else{
System.out.println("El motor esta apagado / La velocidad no puede ser negativa");
}

return;
}

}
Clase Moto
import java.util.Scanner;

public class MainMoto{

public static void main(String args[]){

Moto motoEjemplo = new Moto(42424);

Scanner leer = new Scanner(System.in);
int opc;
do{

System.out.println("\t\tMoto");
System.out.println("1.- Ver placa");
System.out.println("2.- Encender");
System.out.println("3.- Apagar");
System.out.println("4.- Acelerar");
System.out.println("5.- Frenar");
opc = leer.nextInt();

switch(opc){
case 1:
motoEjemplo.verplaca(343);
break;
case 2:
motoEjemplo.encender();
break;
case 3:
motoEjemplo.apagar();
break;
case 4:
motoEjemplo.acelerar();

break;
case 5:
motoEjemplo.frenar();
break;
}
}while(opc<=5);
}
}

Ejecución

Referencias

Saludos.