Está en la página 1de 22

INSTITUTO SUPERIOR TECNOLOGICO INAN

INTRODUCCIÓN BASE DE DATOS

CONSULTAS

TNLGO. JULIO PERALTA


MySQL
• Características:
• Libre.- puede descargarse de forma gratuita
• Facilidad de uso.- gracias a aplicaciones como phpMyAdmin
• Multiplataforma.- listo para cualquier sistema operativo
• Rapidez.- en tiempo de ejecución (aplicaciones), consultas y extracción de datos.
• Seguridad.- puede usarse en proyectos sencillos (educativos) o que requieran ciertos
niveles de seguridad (empresariales)
• Estabilidad.- pocas veces genera errores internos en las bases de datos.
• (sql->Lenguaje de consulta estructurado)
Tipos de Datos

• Cadenas de Caracteres:
• char textos cortos de hasta 255 caracteres, si se introdujera una cadena de
más de 255 caracteres, se truncaría (cortaría) hasta el límite de este tipo
• varchar es el tipo que más se usa para almacenar cadenas de caracteres,
mismas características que el anterior
• blob (objeto binario de gran tamaño) empleado para almacenar objetos
binarios, esto es; desde un archivo de texto hasta imágenes, archivos de
sonido o video. Se subdivide en cuatro:
– tinyblob 255 caracteres
– blob 65,535 caracteres
– mediumblob 16,777,215 caracteres
– longblob 4,294,967,295 caracteres
• text sirve para almacenar grandes cantidades de texto plano equivalente a
campos memo en algunas bases de datos de más de 255 caracteres.
– tinytext 255 caracteres
– text 65,535 caracteres
– mediumtext 16,777,215 caracteres
– longtext 4,294,967,295 caracteres
Tipos de Datos
• Numéricos:
• Todos los tipos numéricos pueden definirse con dos parámetros opcionales: unsigned (impide
que los campos numéricos acepten signo negativo, sólo se acepta el cero y los valores positivos) y
zerofill (completa con ceros a la izquierda hasta la longitud máxima)
• decimal (o numeric o dec) recibe dos argumentos opcionales: el número de posiciones
enteras y decimales. Por defecto el primero es 10 y el segundo es 0 (rango de
-9,999,999,999 hasta 99,999,999,999)
• integer (o int) recibe como argumento el número de dígitos que el campo puede tomar.
Si se define con signo (por defecto) va de -2,147,483,648 hasta 2,147,483,647. Sin signo
de 0 hasta 4,294,967,295
• tinyint recibe como argumento el número de dígitos que el campo puede tomar. Si se
omite, tomará su máximo; con signo (defecto) de -128 a 127 y sin signo de 0 a 255
• bit es un tinyint de un dígito
• bool es un tinyint de un dígito
• mediumint recibe como argumento el número de dígitos que el campo puede tomar. Su
rango por defecto es de -8,388,608 a 8,388,607, sin signo de 0 a 16,777,215
• bigint recibe como argumento el número de dígitos que el campo puede tomar. Su
rango por defecto va de -9,233,372,036,854,775,808 a 9,233,372, 036,854,775,807, sin
signo desde 0 hasta 18,446,744,073,709,551,615
Tipos de Datos
• smallint recibe como argumento el número de digitos que el campo puede tomar. Si se define con signo
(por defecto) su rango va de -32,768 a 32,767, y sin signo (unsigned) de 0 a 65,535
• float sirve para definir números con coma, con menos precisión que double. Recibe como argumento el
número de posiciones enteras y el número de posiciones decimales. Óptimo para almacenar valores del
tipo moneda. Su rango va desde -3.402823466E+38 a -1.175494351E-38 y desde 1.175494351E-38 a
3.402823466E+38
• double (o double precision o real) permite definir números con coma con más precisión que float, recibe
como argumento el número de posiciones enteras y el número de posiciones decimales. El rango va desde
-1.7976931348623157E+308 a -2.2250738585072014E-308 y desde 2.2250738585072014E-308 a
1.7976931348623157E+308
Tipos de Datos
• Fecha y Hora:
• datetime permite almacenar fecha y hora a la vez. El formato por defecto es
‘YYYY-MM-DD HH:MM:SS’. El rango va de ‘1000-01-01 00:00:00’ a ‘9999-12-31
23:59:59’
• date permite almacenar una fecha y el formato por defecto es ‘YYYY-MM-DD’. El
rango va de ‘1000-01-01’ a ‘9999-12-31’
• timestamp es un tipo de dato que combina fecha y hora con posiciones
numéricas, y permite almacenar valores entre el 1 de enero de 1970 hasta el año
2037. Las opciones son:
• timestamp(14) --- YYYYMMDDHHMMSS
• timestamp(12) --- YYMMDDHHMMSS
• timestamp(10) --- YYMMDDHHMM
• timestamp(8) -----YYYYMMDD
• timestamp(6) -----YYMMDD
• timestamp(4) -----YYMM
• timestamp(2) -----YY
Tipos de Datos
• time se utiliza para trabajar sólo con horarios. El formato por defecto es HH:MM:SS, también soporta
HHH:MM:SS. Su rango va de -838:59:59 a 838:59:59
• year se usa para representar años y su formato por defecto es YYYY, aunque también puede definirse como
YY. El rango va de 1901 hasta 2155.
– Si se llegara a almacenar un dato incorrecto en los campos del tipo date, datetime, timestamp y time, se
almacenarán datos nulos (con ceros)
Sentencias DML
(Data Manipulation Language)

SENTENCIA DESCRIPCIÓN
SELECT Recupera datos de la base de datos.
INSERT Añade nuevas filas de datos a la base de datos.
DELETE Suprime filas de datos de la base de datos.
UPDATE Modifica datos existentes en la base de datos.

Aplicables a consultas.
Sentencias DDL
(Data Definition
Language)

SENTENCIA DESCRIPCIÓN
CREATE Crea un nuevo objeto
DROP Suprime un objeto.
ALTER Modifica la estructura o contenido de un objeto.
TRUNCATE Elimina el contenido de un objeto
RENAME Cambia el nombre de un objeto.
Aplicables a objetos como Database (base de datos), Table (tabla).
Funciones de Agregado

• Se emplean con SELECT


CONSTANTE DESCRIPCIÓN
AVG Calcula el promedio de los valores de un campo determinado
COUNT Devuelve el número de registros de la consulta SELECT
SUM Devuelve la suma de todos los valores de un campo determinado

MAX Devuelve el valor más alto de un campo especificado


MIN Devuelve el valor más bajo de un campo especificado
Operadores
• Al momento de llevar a cabo una instrucción SQL del tipo SELECT, DELETE, UPDATE, ALTER
(selección, eliminación, actualización, modificación) podemos incluir los llamados
operadores de comparación

OPERADOR DESCRIPCIÓN
= Igualdad
<> Ó != Desigualdad
<= Menor o igual que
< Menor que
>= Mayor o igual que
> Mayor que
Operadores

• Otras opciones son:


• IS NULL: devuelve verdadero si el valor evaluado es nulo.
• IS NOT NULL: devuelve verdadero si el valor evaluado no es nulo.
• IN: devuelve verdadero si el valor está contenido en una lista.
• NOT IN: devuelve verdadero si el valor no está contenido en una lista.

• Dentro de los OperadoresOPERADOR


Lógicos se encuentran:
DESCRIPCIÓN
NOT o ! Negación
AND o && Unión
OR o || Opción
XOR Exclusividad
Consultas
• Para crear una base de datos deberemos utilizar la sentencia DDL, CREATE con el objeto
DATABASE, para este caso.
Ejemplo: CREATE DATABASE PERROS
• Para borrar una base de datos deberemos utilizar la sentencia DDL, DROP.
Ejemplo: DROP DATABASE PERROS

• Para crear una tabla se emplea la sentencia CREATE con el objeto TABLE, ejemplo:
CREATE TABLE GOLDEN
Consultas

• Tipos:
• Simples.- se aplican a una sola tabla:
select * from nombreTabla;

• Multitabla.- recuperan datos de varias tablas:


select * from nombreTabla1, nombreTabla2 where nombreTabla1.campo1 = nombreTabla2.campo2

• Subconsultas.- posibilitan incluir más de una consulta de selección en la misma consulta:


select * from nombreTabla1 where campo1 = (select campo2 from nombreTabla2)
Estructura de la sentencia
SELECT
SELECT A1, …, An -Describe la salida deseada con:
• Nombres de columnas
• Expresiones aritméticas
• Literales
• Funciones escalares
• Funciones de columna
FROM T1, …, Tn - Nombres de las tablas / vistas
WHERE P - Condiciones de selección de filas

GROUP BY Ai1, …, Ain - Nombre de las columnas


HAVING Q - Condiciones de selección de grupo

ORDER BY Aj1, …, Ajn - Nombres de columnas

15
Estructura básica de la
sentencia SELECT
• Consta de tres cláusulas:
• SELECT
• La lista de los atributos que se incluirán en el resultado de una consulta.
• FROM
• Especifica las relaciones que se van a usar como origen en el proceso de la consulta.
• WHERE
• Especifica la condición de filtro sobre las tuplas en términos de los atributos de las relaciones de la
cláusula FROM.

16
Estructura básica de la
sentencia SELECT
• Una consulta SQL tiene la forma:
SELECT A1, ..., An /* Lista de atributos */
FROM R1, ..., Rm /* Lista de relaciones. A veces
opcional */
WHERE P; /* Condición. Cláusula opcional */
• Es posible que exista el mismo nombre de atributo en dos
relaciones distintas.
• Se añade "NOMBRE_RELACION." antes del nombre para
desambiguar.

17
Proyección de algunas
columnas
SELECT DEPTNO, DEPTNAME, ADMRDEPT
FROM DEPARTMENT

DEPTNO DEPTNAME ADMRDEPT


A00 SPIFFY COMPUTER SERVICE DIV. A00
B01 PLANNING A00
C01 INFORMATION CENTER A00
D01 DEVELOPMENTCENTER A00
D11 MANUFACTURING SYSTEMS D01
D21 ADMINISTRATION SYSTEMS D01
E01 SUPPORT SERVICES A00
E11 OPERATIONS E01
E21 SOFTWARE SUPPORT E01

18
Proyección de todos los
atributos
• Se puede pedir la proyección de todos los atributos de la consulta
mediante utilizando el símbolo '*'
• La tabla resultante contendrá todos los atributos de las tablas que aparecen
SELECT * FROM DEPARTMENT
en la cláusula FROM.

DEPTNO DEPTNAME MGRNO ADMRDEPT LOCATION


A00 SPIFFY COMPUTER SERVICE DIV. 000010 A00
B01 PLANNING 000020 A00
C01 INFORMATION CENTER 000030 A00
D01 DEVELOPMENTCENTER ------ A00
D11 MANUFACTURING SYSTEMS 000060 D01
D21 ADMINISTRATION SYSTEMS 000070 D01
E01 SUPPORT SERVICES 000050 A00
E11 OPERATIONS 000090 E01
E21 SOFTWARE SUPPORT 000100 E01
19
Salida ordenada
• SQL permite controlar el orden en el que se presentan las tuplas de una
relación mediante la cláusula ORDER BY.
• La cláusula ORDER BY tiene la forma
ORDER BY A1 <DIRECCION>, ..., An <DIRECCION>
• A1, ..., An son atributos de la relación resultante de la consulta
• Ai <DIRECCION> controla si la ordenación es Ascendente 'ASC' o descendente
'DESC' por el campo Ai. Por defecto la ordenación se realiza de manera ascendente.
• La ordenación se realiza tras haber ejecutado la consulta sobre las tuplas
resultantes.
• La ordenación puede convertirse en una operación costosa dependiendo del
tamaño de la relación resultante.
20
Salida ordenada (cont.)
SELECT DEPTNO, DEPTNAME, ADMRDEPT
FROM DEPARTMENT
ORDER BY ADMRDEPT ASC

DEPTNO DEPTNAME ADMRDEPT


A00 SPIFFY COMPUTER SERVICE DIV. A00
C01 INFORMATION CENTER A00
B01 PLANNING A00
E01 SUPPORTSERVICES A00
D01 DEVELOPMENTCENTER A00
D11 MANUFACTURING SYSTEMS D01
D21 ADMINISTRATION SYSTEMS D01
E21 SOFTWARE SUPPORT E01
E11 OPERATIONS E01

21
Salida ordenada (cont.)
SELECT DEPTNO, DEPTNAME, ADMRDEPT
FROM DEPARTMENT
ORDER BY ADMRDEPT ASC, DEPTNO DESC

ADMRDEPT DEPTNAME DEPTNO


A00 SUPPORT SERVICES E01
A00 DEVELOPMENT CENTER D01
A00 INFORMATION CENTER C01
A00 PLANNING B01
A00 SPIFFY COMPUTER SERVICE DIV. A00
D01 ADMINISTRATION SYSTEMS D21
D01 MANUFACTURING SYSTEMS D11
E01 SOFTWARE SUPPORT E21
E01 OPERATIONS E11

22

También podría gustarte