Sistemas de Información II Algunos comandos SQL Carlos Castillo UPF – 2007 1 SQL SQL = Structured query language Dos
Views 214 Downloads 4 File size 193KB
Sistemas de Información II
Algunos comandos SQL
Carlos Castillo UPF – 2007 1
SQL SQL = Structured query language Dos objetivos Lenguaje para describir datos Lenguaje para manipular datos
Es implementado por varios sistemas Libres: PostgreSQL, MySQL Propietarios: Oracle, SQLServer
Pequeñas variaciones de un sistema a otro 2
Seleccionar base de datos Un mismo sistema puede tener varias bases de datos mysql> SHOW DATABASES; +----------+ | Database | +----------+ | test
|
+----------+ 1 row in set (0.00 sec) mysql> USE test;
3
Crear tablas Crear tablas en una base de datos, se especifica cada columna y su tipo de dato CREATE TABLE agenda ( nombre TEXT, apellido TEXT, telefono INTEGER, nacimiento INTEGER
);
4
¿Cómo elegir el tipo de columna? Revisar bien el rango de datos Puede ser lento cambiarse después de tipo de dato, o costoso, o introducir errores
Evitar malgastar espacio Nombres no tienen más de 1000 caracteres
Ancho fijo es más rápido, pero puede malgastar espacio Usar el tamaño más “económico” en espacio para cada columna
5
Tipos de columna Existen muchos tipos de datos distintos además de TEXT e INTEGER Números (rangos aprox.) INTEGER (-2.000.000.000 a 2.000.000.000) BIGINT (números de 18 cifras) FLOAT DOUBLE
6
Tipos de columna (cont.) Texto CHAR(n) VARCHAR(n) TEXT (hasta 65Kb) LONGTEXT (hasta 4Gb)
7
Alterar tablas En algunos casos es posible modificar una tabla después de creada Los tipos de datos tienen que ser “compatibles” para que esto se pueda hacer ALTER TABLE agenda MODIFY nombre VARCHAR(30); ALTER TABLE agenda DROP COLUMN nacimiento; 8
Seleccionar datos Estructura básica SELECT columnas FROM tablas WHERE condición; SELECT telefono FROM agenda WHERE apellido='Gonzalez'; 9
Seleccionar todas las columnas * significa todas las columnas SELECT * FROM agenda;
10
Descartar repetidos SELECT DISTINCT nombre FROM agenda;
11
Renombrar columnas Se emplea cuando hay alguna condición compleja y una columna que se llama igual en dos tablas SELECT telefono AS t FROM agenda; SELECT FROM WHERE ORDER
depto.nom AS m depto,persona depto.iddep=persona.iddep BY m; 12
Condiciones en strings Comparación LIKE % = 0 o varios caracteres faltantes _ = 1 carácter faltante
= (igualdad)
Funciones Reciben un string y lo transforman a un número LENGTH, CONCAT, LOWER, UPPER, RTRIM 13
Condiciones aritméticas Operadores , =, != y aritméticos SELECT nombre FROM paises WHERE poblacion > 10000000; SELECT poblacion/superficie FROM ciudades WHERE poblacion < 10000; 14
Ordenación de elementos Operador ORDER BY SELECT nombre FROM paises ORDER BY nombre; SELECT FROM WHERE ORDER
nombre,superficie ciudades poblacion > 1000 BY superficie DESC; 15
Limitar elementos retornados Operador LIMIT Ejemplo: los 5 países más poblados: SELECT FROM ORDER LIMIT
nombre,poblacion paises BY poblacion DESC 5;
16
Buscar en más de una tabla Las dos tablas deben poder ser unidas mediante algún atributo SELECT pais.nom,ciudad.nom FROM pais,ciudad WHERE pais.idpais=ciudad.idpais; SELECT FROM WHERE AND
DISTINCT pais.nom pais,ciudad pais.idpais=ciudad.idpais ciudad.poblacion > 10000000;
17
Funciones de agregación Permiten operar con varios elementos de una columna AVG – promedio SUM – suma MIN, MAX – mínimo y máximo COUNT – contar
18
Funciones de agregación Si una columna está agregada, las otras columnas mostradas deben estar agrupadas SELECT SUM(poblacion) FROM paises; SELECT COUNT(*) FROM paises; SELECT FROM WHERE GROUP
pais.nombre,SUM(poblacion) pais,ciudad pais.idpais=ciudad.idpais BY pais.nombre; 19
Más información http://www.desarrolloweb.com/manuales/9/ http://en.wikibooks.org/wiki/SQL
20