Download Sistemas de Información II – Práctica 1: SQL Básico

Document related concepts

SQL wikipedia , lookup

Lenguaje de manipulación de datos wikipedia , lookup

Mecanismos de almacenamiento (MySQL) wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Transcript
Sistemas de Información II – Práctica 1: SQL Básico
Carlos Castillo / Victor Pascual – [email protected]
2.
El objetivo de esta práctica es aprender a usar un
sistema gestor de bases de datos utilizando el lenguaje
SQL. SQL es un estándar internacional para trabajar
con bases de datos, que consta de dos partes: una
parte para manipular datos y una parte para definir
tipos de datos.
El sistema gestor que usaremos será MySQL. Nos
conectaremos a este sistema usando la interfaz más
sencilla posible, que es un intérprete de comandos
SQL. En un entorno real de aplicaciones, es usual
utilizar herramientas de más alto nivel, pero comenzaremos con lo más básico que es interactuar directamente con la base de datos.
Comándos del intérprete
Una vez dentro del intérprete, existen algunos comandos útiles:
\q Salir
\h Ayuda
Dentro de MySQL pueden existir varias bases de
datos. Cada base de datos es un espacio independiente con sus propios objetos de datos. Para ver la
lista de bases de datos disponibles se usa:
SHOW DATABASES;
1.
Para comenzar
Para entrar a una base de datos se entrega el nombre de la base de datos al iniciar el mysql (en nuestro
Necesitaremos usar el comando MySQL, que es un caso es si2 NN), o se selecciona usando:
intérprete de comandos SQL que permite “conversar”
USE database;
directamente con la base de datos.
Nos conectaremos primero a otro servidor. Abre un
La base de datos (database) que usará cada uno
terminal en Linux y ejecuta:
tiene el mismo nombre que el nombre de usuario
ssh 193.145.45.40 -l XXXXXXX
(si2 NN). Para probar que el intérprete está bien, usa:
[email protected]’s password: YYYYYYY
SELECT 2+2;
XXXXXXX e YYYYYYY serán entregados durante la clase de prácticas. A continuación nos
conectaremos a la base de datos, usando:
3. Crear tablas de datos
mysql si2_NN -u si2_NN -p
Enter password: si2_NNbec
Consejo: para poder entender bien el código de las
prácticas, todas las palabras clave: SELECT, UPDATE, INSERT, etc. se recomienda escribirlas en
mayúscula. En cambio, los identificadores como nombres de las tablas o las columnas, se recomienda escribirlas en minúsculas. Al intérprete de MySQL no
le importa si son en mayúsculas o no, pero hace más
fácil leer el código y encontrar y arreglar errores.
Vamos a crear tablas para almacenar datos. Para
eso, usamos el siguiente comando:
NN será entregado durante la clase de prácticas.
A continuación debes cambiar tu password:
mysql> set password=password(’.....’);
Debes asegurarte de que no olvidarás tu password
porque la necesitarás durante todo el trimestre.
Consejo: abre dos ventanas, una con un editor de
texto y otra con el intérprete SQL; es muy complicado
editar directamente en el intérprete al comienzo, lo
más fácil es escribir los comandos en un editor de
texto y luego copiarlos y pegarlos en la ventana de
MySQL.
CREATE TABLE agenda (
nombre TEXT,
apellido TEXT,
telefono INTEGER,
1
6.
nacimiento INTEGER,
estatura FLOAT
);
Consultando los datos de la
tabla
Ejemplos de comandos que ejecutan consultas en
En este ejemplo, “TEXT” e “INTEGER” son dos
la
tabla de datos:
tipos de datos que existen en MySQL. Para ver si la
tabla fue creada exitosamente, usamos:
SELECT * FROM agenda;
SHOW TABLES;
SELECT nombre,apellido FROM agenda;
Y para ver los datos de la tabla:
SELECT telefono FROM agenda
SHOW COLUMNS FROM agenda;
WHERE apellido=’Gonzalez’;
Y para borrar la tabla:
SELECT nombre FROM agenda
DROP TABLE agenda;
WHERE nacimiento > 1984;
Actividad: crea una tabla agenda en tu base de
datos.
SELECT DISTINCT nombre FROM agenda;
4.
SELECT nombre FROM agenda
WHERE apellido=’Gonzalez’
OR apellido=’Perez’;
Insertando datos en la tabla
Una tabla vacı́a no sirve de mucho, para agregar
datos usamos:
SELECT nombre FROM agenda
WHERE apellido=’Perez’
AND nacimiento < 1984;
INSERT INTO agenda
(nombre,apellido,telefono,
nacimiento,estatura)
VALUES (’Juan’,’Perez’,60123,1983,1.70);
SELECT apellido FROM agenda
WHERE apellido LIKE ’P%’;
INSERT INTO agenda
(nombre,apellido,telefono,
nacimiento,estatura)
VALUES (’Pedro’,’Diaz’,93120,1985,1.65);
Actividad: escribe 5 consultas cualquiera sobre tu
agenda. Escribe 5 consultas cualquiera sobre la tabla
creada en la actividad marcada con un “*”.
En la jerga de SQL, se dice que hemos insertado 2
7. RESULTADO
filas en la tabla agenda.
Actividad: inserta 5 filas en la agenda, al menos
Lo que se debe entregar es un fichero de texto
2 con el mismo nombre, pero distinto apellido y al p1 NNNN MMMM.txt (copiar y pegar en el Aula Global)
menos 2 con el mismo año de nacimiento.
con comandos SQL que ejecuten todas las actividades
de esta sesión, NNNN y MMMM son los números de
NIA de los alumnos del grupo. Este archivo debe
5. Creación de tablas
poder ejecutarse sin problemas en MySQL. Incluye
Actividad: crear una tabla de datos conteniendo en este archivo de texto comentarios explicando lo
los 7 edificios más altos del mundo. Para cada edificio que hace cada parte:
se debe guardar el nombre, el nombre del paı́s en que
-- A continuación creo la tabla XXX
se encuentra, y la altura del edificio en metros. Se
debe entregar los comandos CREATE TABLE ... y
Todas las lı́neas que comienzan con -- son ignolos comandos INSERT para la creación de esta tabla. radas por MySQL.
Actividad: crear una tabla de datos con 5 columEl resultado de esta práctica debe entregarse
nas o más (el tema es de libre elección, puede ser hoy vı́a Campus Global.
cualquier cosa, usa campos TEXT, INTEGER y
FLOAT por ahora), insertar 10 filas en la tabla. (*)
2