Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MySQL
Lenguaje estructurado de consultas.
Usa una combinacin de lgebra relacional y
MySQL
El lenguaje de consulta estructurado (SQL) es un
Componentes de SQL
Lenguaje de definicin de datos.
Lenguaje de manipulacin de datos.
Definicin de vistas.
Control de transacciones.
SQL incorporado y SQL dinmico (cmo incorporar
MySQL permite:
crear base de datos y tablas,
insertar datos,
modificarlos,
eliminarlos,
ordenarlos,
hacer consultas
Administrar bases de datos.
Comandos SQL
Existen dos tipos de comandos SQL:
DDL
DML
Comandos SQL
Los comandos DDL permiten crear y definir nuevas bases
Comandos DDL
Comando
CREATE
DROP
ALTER
Descripcin
Utilizado para crear nuevas
tablas, campos e ndices
Empleado
para
eliminar
tablas e ndices
Utilizado para modificar las
tablas agregando campos o
cambiando la definicin de
los campos.
CREATE DATABASE
CREATE DATABASE [IF NOT EXISTS] db_name
Este comando se emplea para crear una base de datos.
CREATE DATABASE Escuela;
USE
USE nombre_DB
El comando USE se utiliza para establecer que las
SHOW DATABASES
Este comando permite ver cuntas bases de datos est
CREATE TABLE
Este comando permite la creacin de tablas dentro de una
determinada base de datos.
CREATE TABLE alumnos (clave varchar(10) primary key,
nombre varchar(30));
CREATE TABLE alumnos (clave Int auto_increment
Primary Key, nombre varchar(30) Not Null, FechaNac Date
Not Null);
Describe alumnos;
Comandos DML
Comando
SELECT
Descripcin
Utilizado para consultar registros de
la base de datos que satisfagan un
criterio determinado
INSERT
UPDATE
DELETE
Insert into
Insert into productos(folio, nombre, descripcio, precio,
Insert into
Mediante la sentencia INSERT INTO se insertan registros
a las tablas:
Mtodo que no especifica los nombres de las columnas
Insert into
El segundo mtodo especifica los nombres de las
Clusulas
Las clusulas son condiciones de modificacin utilizadas
Clusula
FROM
WHERE
GROUP BY
HAVING
ORDER BY
Descripcin
Utilizada para especificar la tabla de la cual se van a
seleccionar los registros
Utilizada para especificar las condiciones que deben
reunir los registros que se van a seleccionar
Utilizada para separar los registros seleccionados en
grupos especficos
Utilizada para expresar la condicin que debe
satisfacer cada grupo
Utilizada para ordenar los registros seleccionados de
acuerdo con un orden especfico
Operadores lgicos
Operador
AND
OR
NOT
Uso
Es el "y" lgico. Evalua dos condiciones y
devuelve un valor de verdad slo si
ambas son ciertas.
Es el "o" lgico. Evala dos condiciones y
devuelve un valor de verdar si alguna de
las dos es cierta.
Negacin lgica. Devuelve el valor
contrario de la expresin.
Operadores de comparacin
Operador
Uso
<
Menor que
>
Mayor que
<>
Distinto de
<=
Menor Igual que
>=
Mayor Igual que
=
Igual que
BETWEEN Utilizado para especificar un intervalo de
valores.
LIKE
Utilizado en la comparacin de un modelo
In
Utilizado para especificar registros de una
base de datos
Tipos de datos
TEXTO:
Para almacenar texto usamos cadenas de caracteres.
Las cadenas se colocan entre comillas simples.
Tipos:
varchar,
char,
text.
Tipos de datos
Texto
varchar(x):
Define una cadena de caracteres de longitud variable.
Su rango va de 1 a 255 caracteres.
Un varchar(10) ocupa 11 bytes, pues en uno de ellos
Tipos de datos
Texto
char(x):
Define una cadena de longitud fija, su rango es de 1 a 255 caracteres.
Si la cadena ingresada es menor a la longitud definida almacena
Tipos de datos
Texto
blob o text:
Almacena bloques de datos de 60000 caracteres de
longitud aprox.
Tipos de datos
Nmero
Para almacenar valores enteros usamos:
integer(x) o int(x)
Su rango es de -2000000000 a 2000000000
aprox.
Tipos de datos
Nmero
Su rango es de -2000000000 a 2000000000 aprox.
El tipo "int unsigned" va de 0 a 4000000000. El tipo "integer" tiene
subtipos:
Tipo
Valores
mediumint(x)
8000000 a 8000000
smallint(x)
-30000 a 30000
tinyint(x)
-128 a 127
bool o boolean
bigint(x)
Entero largo.
Va de 9000000000000000000 a
9000000000000000000 aprox.
Tipos de datos
Nmero
Para almacenar valores con decimales utilizamos:
Tipos de datos
Nmero
Tipo
Bytes de
almacenamiento
tinyint
smallint
mediumint
int
bigint
float
Tipos de datos
Fecha y hora
Permiten almacenar fechas y horas.
Tipos:
date (fecha),
datetime (fecha y hora),
time (hora),
year (ao),
timestamp.
Tipos de datos
Fecha y hora
date:
Representa una fecha con formato "YYYY-MM-DD".
El rango va de "1000-01-01" a "9999-12-31".
datetime:
Almacena fecha y hora, su formato es "YYYY-MM-DD
HH:MM:SS". El rango es de "1000-01-01 00:00:00" a
"9999-12-31 23:59:59".
Tipos de datos
Fecha y hora
time:
Almacena una hora.
Su formato es "HH:MM:SS".
El rango va de "-838:59:59" a "838:59:59".
year(2) y year(4):
Almacena un ao.
Su formato es "YYYY" o "YY". Permite valores desde
1901 a 2155 (en formato de 4 dgitos) y desde 1970 a
2069 (en formato de 2 dgitos).
Tipos de datos
Fecha y hora
Tipo
Bytes de
almacenamiento
date
datetime
time
year
Tipos de datos
enum y set
Representan
una
respectivamente.
enumeracin
un
conjunto
"null"
El valor 'null' significa valor desconocido o "dato
inexistente
Funciones de agregado
Las funciones de agregado se usan dentro de una
Descripcin
Utilizada para calcular el promedio de los valores de un
campo determinado
Utilizada para devolver el nmero de registros de la
seleccin
Utilizada para devolver la suma de todos los valores de un
campo determinado
Utilizada para devolver el valor ms alto de un campo
especificado
Utilizada para devolver el valor ms bajo de un campo
especificado
Significado
ord(caracter)
char(x,..)
concat(cadena1,cadena2,...)
Significado
length(cadena)
locate(subcadena,cadena)
position(subcadena in cadena)
locate(subcadena,cadena,posicioninici
al
Significado
instr(cadena,subcadena)
lpad(cadena,longitud,cadenarelleno)
rpad(cadena,longitud,cadenarelleno)
left(cadena,longitud)
Significado
right(cadena,longitud)
substring(cadena,posicion,longitud)
variante de "substring(cadena,posicion,longitud)".
Ejemplo:
select substring('Buenas tardes' from 3 for 5);
mid(cadena,posicion,longitud)
substring(cadena,posicion)
Significado
ltrim(cadena)
rtrim(cadena)
trim([[both|leading|trailing]
[subcadena] from] cadena)
replace(cadena,cadenareem
plazo,cadenareemplazar):
Significado
repeat(cadena,cantidad)
reverse(cadena)
insert(cadena,posicion,longitud,nuevacadena)
lcase(cadena) y lower(cadena)
-ucase(cadena) y upper(cadena)
strcmp(cadena1,cadena2)
Funciones matemticas
Funcin
Significado
abs(x)
ceiling(x)
floor(x)
greatest(x,y,..)
least(x,y,...)
mod(n,m)
%:
Funciones matemticas
Funcin
Significado
power(x,y)
rand()
round(x)
srqt()
truncate(x,d)
Funciones
de
fecha
y
hora
Funcin
Significado
adddate(fecha, interval
expresion)
adddate(fecha, dias)
current_time
Funciones
de fecha y hora
Funcin
Significado
datediff(fecha1,fecha2)
dayname(fecha)
dayofmonth(fecha)
dayofweek(fecha)
dayofyear(fecha)
Significado
hour(hora)
minute(hora)
monthname(fecha)
month(fecha)
now() y sysdate()
period_add(p,n)
Significado
period_diff(p1,p2)
second(hora)
time_to_sec(hora)
to_days(fecha)
weekday(fecha)
Columnas calculadas
Es posible obtener salidas en las cuales una columna sea
Create table
La tabla debe ser definida con un nombre que la
Clave primaria
Para definir un campo como clave primaria es necesario
Clave primaria
Es importante recordar que:
Si intentamos ingresar un valor para el campo clave y
repetirse.
Cualquier campo puede ser clave primaria, sin embargo,
ALTER TABLE
Modifica el diseo de una tabla ya existente, se pueden
Alter table
ALTER TABLE Empleados ADD COLUMN Salario
CURRENCY;
Agrega un campo Salario de tipo Moneda a la tabla
Empleados.
ALTER TABLE Empleados DROP COLUMN Salario;
DROP TABLE
Se utiliza para eliminar una tabla.
DROP TABLE
Ejemplo:
DROP TABLE clientes;
Si la tabla a eliminar no existe, se mostrar un mensaje de
TRUNCATE TABLE
especificada:
Elimina todos los registros de la tabla.
Crea nuevamente la tabla con la
estructura que se defini inicialmente.
DROP TABLE
TRUNCATE TABLE
Borra la tabla
misma
DELETE
Ms rpido
Ms lento
Borra los registros uno a uno
Al eliminar registros
auto_increment, la
secuencia numrica
Inicia en 1
Al eliminar registros
auto_increment, contina con
la secuencia numrica
INSERT INTO
El comando INSERT INTO se utiliza para ingresar valores
Valores nulos
null significa valor no existente o desconocido.
Null no significa un valor 0, una cadena vaca.
Los campos definidos como clave primaria no aceptan
valores nulos.
Para que un campo no permita valores nulos es
necesario indicarlo al definir el campo, agregando "not
null".
Ejemplo:
CREATE TABLE clientes(id int auto_increment,
nombre varchar(20) not null, ap_paterno varchar(30),
ap_materno varchar(30), primary key (id) );
Delete
El comando DELETE elimina los registros de una tabla.
Ejemplo:
UPDATE
El comando UPDATE permite modificar uno o varios datos de uno o
varios registros.
Sintaxis:
UPDATE
Si se desea actualizar solamente algunos registros especficos,
Consultas bsicas
La sintaxis bsica de una consulta de seleccin es la
siguiente:
SELECT Campos FROM Tabla;
En donde campos es la lista de campos que se deseen
Consultas de seleccin
Las consultas de seleccin se utilizan para indicar al
registros.
Este conjunto de registros es modificable.
Consultas bsicas
Clausula DISTINCT
Fuerza que solo se muestren los registros con valores
Filtros
Los filtros son condiciones que el gestor de BD interpreta
Ejemplo WHERE
SELECT nombre
FROM alumnos
WHERE nombre=Luis AND ciudad=SLP
SELECT nombre
FROM alumnos
WHERE nombre=Luis (AND ciudad=SLP OR
ciudad=Qro)
Operador de rango
BETWEEN
Permite seleccionar los registros que estn incluidos en
un rango.
SELECT nombre
FROM alumnos
WHERE edad BETWEEN 18 AND 25;
campo es o no es nulo.
SELECT nombre
FROM alumnos
WHERE ciudad IS null;
SELECT nombre
FROM alumnos
WHERE ciudad IS NOT null;
nmero
de
consulta.
LIMIT [desplazamiento], nfilas
desplazamiento indica a partir de qu fila se empieza a
contar.
nfilas indica el nmero de filas a devolver.
Mltiples tablas
Considerar las siguientes tablas:
create table libros
(codigo int unsigned auto_increment, titulo varchar(40) not
null, autor varchar(30) not null default 'Desconocido',
codigoeditorial tinyint unsigned not null, precio decimal(5,2)
unsigned, cantidad smallint unsigned default 0, primary key
(codigo) );
create table editoriales
(codigo tinyint unsigned auto_increment,
varchar(20) not null, primary key(codigo) );
nombre
Mltiples tablas
Al consultar los datos de los libros:
select * from libros;
En el campo "editorial" aparece el cdigo, pero no
Mltiples tablas
Ejemplo:
select * from libros join editoriales on
libros.codigoeditorial=editoriales.codigo;
Es necesario indicar el nombre de la tabla luego del "from"
Mltiples tablas
Cuando se combina (join, unin) informacin de varias
Mltiples tablas
Ejemplo:
select
*
from
libros
join
editoriales
libros.codigoeditorial=editoriales.codigo;
on
tambin.
Cuando en las tablas, los campos tienen el mismo
nombre, debemos especificar a cul tabla pertenece el
campo al hacer referencia a l, para ello se antepone el
nombre de la tabla al nombre del campo, separado por un
punto (.)
Mltiples tablas
Para simplificar la sentencia podemos usar un alias para
cada tabla:
select * from libros as l join editoriales as e on
l.codigoeditorial=e.codigo;
Cada tabla tiene un alias y se referencian los campos