Guía 2 SQL
Carga de registros a una tabla y su recuperación (insert into - select)
Un registro es una fila de la tabla que contiene los datos propiamente dichos. Cada registro tiene un dato
por cada columna.
Recordemos como crear la tabla "usuarios":
create table usuarios (
nombre varchar(30),
clave varchar(10)
);
Al ingresar los datos de cada registro debe tenerse en cuenta la cantidad y el orden de los campos.
Ahora vamos a agregar un registro a la tabla:
insert into usuarios (nombre, clave) values ('MarioPerez','Marito');
Usamos "insert into". Especificamos los nombres de los campos entre paréntesis y separados por comas y
luego los valores para cada campo, también entre paréntesis y separados por comas.
La tabla usuarios ahora la podemos graficar de la siguiente forma:
nombre clave
MarioPerez Marito
Es importante ingresar los valores en el mismo orden en que se nombran los campos, si ingresamos los
datos en otro orden, no aparece un mensaje de error y los datos se guardan de modo incorrecto.
Note que los datos ingresados, como corresponden a campos de cadenas de caracteres se colocan entre
comillas simples. Las comillas simples son OBLIGATORIAS.
Para ver los registros de una tabla usamos "select":
select nombre,clave from usuarios;
Aparece un registro.
El comando "select" recupera los registros de una tabla. Luego del comando select indicamos los nombres
de los campos a rescatar
BASE DE DATOS
Típos de datos básicos de un campo de una tabla.
Ya explicamos que al crear una tabla debemos resolver qué campos (columnas) tendrá y que tipo de datos
almacenará cada uno de ellos, es decir, su estructura. Estos son algunos tipos de datos básicos:
- varchar: se usa para almacenar cadenas de caracteres. Una cadena es una secuencia de caracteres. Se
coloca entre comillas (simples): 'Hola'. El tipo "varchar" define una cadena de longitud variable en la cual
determinamos el máximo de caracteres. Puede guardar hasta 65535 caracteres (versiones antiguas de
MySQL permitían solo 255). Para almacenar cadenas de hasta 30 caracteres, definimos un campo de tipo
varchar(30). Si asignamos una cadena de caracteres de mayor longitud que la definida, la cadena se
corta. Por ejemplo, si definimos un campo de tipo varchar(10) y le asignamos la cadena 'Buenas tardes',
se almacenará 'Buenas tar' ajustándose a la longitud de 10 caracteres.
- integer: se usa para guardar valores numéricos enteros, de -2000000000 a 2000000000 aprox.
Definimos campos de este tipo cuando queremos representar, por ejemplo, cantidades.
- float: se usa para almacenar valores numéricos decimales. Se utiliza como separador el punto (.).
Definimos campos de este tipo para precios, por ejemplo.
Antes de crear una tabla debemos pensar en sus campos y optar por el tipo de dato adecuado para cada
uno de ellos. Por ejemplo, si en un campo almacenaremos números enteros, el tipo "float" sería una mala
elección; si vamos a guardar precios, el tipo "float" es correcto, no así "integer" que no tiene decimales.
Servidor de MySQL instalado en forma local.
Crearemos mediante el "Workbench" una tabla en la base de datos "administracion" con una serie de
campos de distinto tipo:
create table libros(
titulo varchar(40),
autor varchar(20),
editorial varchar(15),
precio float,
cantidad integer
);
Procederemos a insertar una serie de filas:
insert into libros (titulo,autor,editorial,precio,cantidad)
values ('El aleph','Borges','Emece',45.50,100);
insert into libros (titulo,autor,editorial,precio,cantidad)
values ('Alicia en el pais de las maravillas','Lewis Carroll','Planeta',25,200);
insert into libros (titulo,autor,editorial,precio,cantidad)
values ('Matematica estas ahi','Paenza','Planeta',15.8,200);
BASE DE DATOS
Recuperación de algunos campos (select)
Hemos aprendido cómo ver todos los registros de una tabla:
select * from libros;
El comando "select" recupera los registros de una tabla. Con el asterisco (*) indicamos que seleccione
todos los campos de la tabla que nombramos.
Podemos especificar el nombre de los campos que queremos ver separándolos por comas:
select titulo,autor,editorial from libros;
En la sentencia anterior la consulta mostrará sólo los campos "titulo", "autor" y "editorial". En la siguiente
sentencia, veremos los campos correspondientes al título y precio de todos los libros:
select titulo,precio from libros;
Para ver solamente la editorial y la cantidad de libros tipeamos:
select editorial,cantidad from libros;
Recuperación de registros específicos (select - where)
Hemos aprendido cómo ver todos los registros de una tabla:
select nombre, clave from usuarios;
El comando "select" recupera los registros de una tabla. Detallando los nombres de los campos separados
por comas, indicamos que seleccione todos los campos de la tabla que nombramos.
Existe una cláusula, "where" que es opcional, con ella podemos especificar condiciones para la consulta
"select". Es decir, podemos recuperar algunos registros, sólo los que cumplan con ciertas condiciones
indicadas con la cláusula "where". Por ejemplo, queremos ver el usuario cuyo nombre es "MarioPerez",
para ello utilizamos "where" y luego de ella, la condición:
select nombre, clave from usuarios where nombre='MarioPerez';
Para las condiciones se utilizan operadores relacionales (tema que trataremos más adelante en detalle). El
signo igual(=) es un operador relacional. Para la siguiente selección de registros especificamos una
condición que solicita los usuarios cuya clave es igual a 'bocajunior':
select nombre, clave from usuarios where clave='bocajunior';
Si ningún registro cumple la condición establecida con el "where", no aparecerá ningún registro.
Ingresemos al programa y ejecutamos los siguientes comandos SQL:
drop table if exists usuarios;
create table usuarios (
nombre varchar(30),
clave varchar(10)
);
describe usuarios;
insert into usuarios (nombre, clave) values ('Leonardo','payaso');
insert into usuarios (nombre, clave) values ('MarioPerez','Marito');
insert into usuarios (nombre, clave) values ('Marcelo','bocajunior');
insert into usuarios (nombre, clave) values ('Gustavo','bocajunior');
select nombre, clave from usuarios;
BASE DE DATOS
select nombre, clave from usuarios where nombre='Leonardo';
select nombre, clave from usuarios where clave='bocajunior';
select nombre, clave from usuarios where clave='river';
BASE DE DATOS