Sei sulla pagina 1di 83

MYSQL

MySQL
Lenguaje estructurado de consultas.
Usa una combinacin de lgebra relacional y

construcciones de clculo relacional.

MySQL
El lenguaje de consulta estructurado (SQL) es un

lenguaje de base de datos normalizado, utilizado por los


diferentes motores de bases de datos para realizar
determinadas operaciones sobre los datos o sobre la
estructura de los mismos.

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

instrucciones en lenguajes de programacin).


Integridad (restricciones de integridad que deben
satisfacer los datos).
Autorizacin.

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

de datos, campos e ndices.


Los comandos DML permiten generar consultas para

ordenar, filtrar y extraer datos de la base de datos.

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

operaciones que se realicen debern ser sobre la Base


de datos especificada.
USE Escuela;

SHOW DATABASES
Este comando permite ver cuntas bases de datos est

controlando el gestor de BD, es decir, obtiene un listado


de las bases de datos activas.
SHOW DATABASES;

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

Utilizado para cargar lotes de datos


en la base de datos en una nica
operacin.
Utilizado para modificar los valores
de
los
campos
y
registros
especificados
Utilizado para eliminar registros de
una tabla de una base de datos

UPDATE

DELETE

Insert into
Insert into productos(folio, nombre, descripcio, precio,

existencia) values (12345,azucar,por kilo,15.00,25);


Insert into productos(folio, nombre, descripcio, precio,

existencia) values (12345,azucar,por kilo,15.00,25),


(12346,harina,por kilo,17,22),
(12444,agua,por litro,8.00,50);

Insert into
Mediante la sentencia INSERT INTO se insertan registros

a las tablas:
Mtodo que no especifica los nombres de las columnas

en las que se inserta los datos, pero si los valores:


Insert into table_name values (value1,value2,value3,...);

Insert into
El segundo mtodo especifica los nombres de las

columnas y los valores a insertar:


Insert into table_name (column1,column2,column3,...)
Values (value1,value2,value3,...);

Insert into y select


Es posible copiar todas los registros de una tabla a otra que existe.
INSERT INTO tabla2
SELECT * FROM tabla1;

Tambin es posible copiar de una tabla a otra, algunas columnas.


INSERT INTO tabla2
(Nombre_columna(s))
SELECT Nombre_columna(s)
FROM tabla1;

Clusulas
Las clusulas son condiciones de modificacin utilizadas

para definir los datos que desea seleccionar o manipular.

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

Valores numricos sin signo


Los campos de tipo entero pueden tener el atributo

"auto_increment", el cual incrementa automticamente el


valor del campo en 1.
Los campos de cualquier tipo aceptan el atributo "null" y
"not null.
Otro atributo que permiten los campos de tipo numrico
es "unsigned".
El atributo "unsigned" (sin signo) permite slo valores
positivos.

Valores numricos sin signo


Ejemplo:
edad integer unsigned;
precio float unsigned
En los tipos enteros, "unsigned" duplica el rango.
Los tipos de coma flotante tambin aceptan el atributo

"unsigned", sin embargo, el valor del lmite superior del


rango se mantiene.

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 bsicos


varchar:
Almacena cadenas de caracteres.
Se escribe entre comillas simples: 'Hola'.
Define una cadena de longitud variable en la cual determinamos el mximo de
caracteres. Puede guardar hasta 255 caracteres.
Para almacenar cadenas de hasta 30 caracteres, definimos un campo de tipo
varchar(30).
integer:
Almacena valores numricos enteros, de -2000000000 a 2000000000 aprox.
float:
Almacena valores numricos decimales.
Se utiliza como separador el punto.

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

almacena la longitud de la cadena.


Ocupa un byte ms que la cantidad definida.

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

espacios en blanco a la derecha, tales espacios se eliminan al


recuperarse el dato. Un char(10) ocupa 10 bytes, pues al ser fija su
longitud, no necesita ese byte adicional donde guardar la longitud. Por
ello, si la longitud es invariable, es conveniente utilizar el tipo char;
caso contrario, el tipo varchar.
Ocupa tantos bytes como se definen con el argumento "x". Si ingresa

un argumento mayor al permitido (255) aparece un mensaje indicando


que no se permite y sugiriendo que use "blob" o "text". Si omite el
argumento, coloca 1 por defecto.

Tipos de datos
Texto
blob o text:
Almacena bloques de datos de 60000 caracteres de
longitud aprox.

Tipos de datos nmero


NUMEROS:
Permiten representar enteros, negativos, decimales.
Para almacenar valores con decimales utilizamos:
float o decimal.

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

Un valor cero se considera


falso, los valores distintos de
cero, verdadero.

bigint(x)

Entero largo.
Va de 9000000000000000000 a
9000000000000000000 aprox.

Tipos de datos
Nmero
Para almacenar valores con decimales utilizamos:

float (t,d): nmero de coma flotante.


Su rango es de -3.4e+38 a 1.1e-38 (9 cifras).
decimal o numeric (t,d):
El primer argumento indica el total de dgitos y el segundo, la
cantidad de decimales.
El rango depende de los argumentos, tambin los bytes que ocupa.
Si queremos almacenar valores entre 0.00 y 99.99 debemos definir el
campo como tipo "decimal (4,2)". Si no se indica el valor del segundo
argumento, por defecto es 0. Para los tipos "float" y "decimal" se
utiliza el punto como separador de decimales.
Todos los tipos enteros pueden tener el atributo "unsigned", esto
permite slo valores positivos y duplica el rango. Los tipos de coma
flotante tambin aceptan el atributo "unsigned", pero el valor del lmite
superior del rango no se modifica.

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

clusula SELECT en grupos de registros para devolver un


nico valor que se aplica a un grupo de registros.
Funcin
AVG
COUNT
SUM
MAX
MIN

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

Funciones para el manejo de cadenas


Funcin

Significado

ord(caracter)

Retorna el cdigo ASCII para el caracter enviado


como argumento.
select ord('A'); retorna 65.

char(x,..)

retorna una cadena con los caracteres en cdigo


ASCII de los enteros enviados como argumentos.
select char(65,66,67); retorna "ABC".

concat(cadena1,cadena2,...)

devuelve la cadena resultado de concatenar los


argumentos.

concat_ws(separador,cadena :"ws" son las iniciales de "with separator". El


1,cadena2,...)
primer argumento especifica el separador que
utiliza para los dems argumentos; el separador
se agrega entre las cadenas a concatenar.
find_in_set(cadena,lista de
cadenas)

devuelve un valor entre de 0 a n (correspondiente


a la posicin), si la cadena envidada como primer
argumento est presente en la lista de cadenas
enviadas como segundo argumento.

Funciones para el manejo de cadenas


Funcin

Significado

length(cadena)

retorna la longitud de la cadena enviada como


argumento.
select length('Hola'); devuelve 4.

locate(subcadena,cadena)

retorna la posicin de la primera ocurrencia de la


subcadena en la cadena enviadas como
argumentos. Devuelve "0" si la subcadena no se
encuentra en la cadena.
select locale('o','como le va'); retorna 2.

position(subcadena in cadena)

funciona como "locate()". Devuelve "0" si la


subcadena no se encuentra en la cadena.
select position('o' in 'como le va'); retorna 2.

locate(subcadena,cadena,posicioninici
al

retorna la posicin de la primera ocurrencia de la


subcadena enviada como primer argumentos en la
cadena enviada como segundo argumento,
empezando en la posicin enviada como tercer
argumento. Devuelve "0" si la subcadena no se
encuentra en la cadena. Ejemplos:
select locate('ar','Margarita',1); retorna 1.
select locate('ar','Margarita',3); retorna 5.

Funciones para el manejo de cadenas


Funcin

Significado

instr(cadena,subcadena)

retorna la posicin de la primera ocurrencia de


la subcadena enviada como segundo
argumento en la cadena enviada como primer
argumento. Ejemplo:
select instr('como le va','om'); devuelve 2.

lpad(cadena,longitud,cadenarelleno)

retorna la cadena enviada como primer


argumento, rellenada por la izquierda con la
cadena enviada como tercer argumento hasta
que la cadena retornada tenga la longitud
especificada como segundo argumento. Si la
cadena es ms larga, la corta. Ejemplo:
select lpad('hola',10,'0'); retorna "000000hola.

rpad(cadena,longitud,cadenarelleno)

igual que "lpad" excepto que rellena por la


derecha.

left(cadena,longitud)

retorna la cantidad (longitud) de caracteres de


la cadena comenzando desde la inquierda,
primer caracter. Ejemplo:

Funciones para el manejo de cadenas


Funcin

Significado

right(cadena,longitud)

retorna la cantidad (longitud) de caracteres de la


cadena comenzando desde la derecha, ltimo
caracter. Ejemplo:
select right('buenos dias',8); retorna "nos dias.

substring(cadena,posicion,longitud)

retorna una subcadena de tantos caracteres de


longitud como especifica en tercer argumento, de la
cadena enviada como primer argumento,
empezando desde la posicin especificada en el
segundo argumento. Ejemplo:
select substring('Buenas tardes',3,5); retorna "enas.

substring(cadena from posicion for


longitud):

variante de "substring(cadena,posicion,longitud)".
Ejemplo:
select substring('Buenas tardes' from 3 for 5);

mid(cadena,posicion,longitud)

igual que "substring(cadena,posicion,longitud)".


Ejemplo:
select mid('Buenas tardes' from 3 for 5); retorna
"enas.

substring(cadena,posicion)

retorna la subcadena de la cadena enviada como


argumento, empezando desde la posicin indicada

Funciones para el manejo de cadenas


Funcin

Significado

ltrim(cadena)

retorna la cadena con los espacios de la izquierda


eliminados. Ejemplo:
select ltrim(' Hola '); retorna "Hola

rtrim(cadena)

retorna la cadena con los espacios de la derecha


eliminados. Ejemplo:
select rtrim(' Hola '); retorna " Hola

trim([[both|leading|trailing]
[subcadena] from] cadena)

retorna una cadena igual a la enviada pero eliminando la


subcadena prefijo y/o sufijo. Si no se indica ningn
especificador (both, leading o trailing) se asume "both"
(ambos). Si no se especifica prefijos o sufijos elimina los
espacios. Ejemplos:
select trim(' Hola '); retorna 'Hola'.
select trim (leading '0' from '00hola00'); retorna "hola00".
select trim (trailing '0' from '00hola00'); retorna "00hola.

replace(cadena,cadenareem
plazo,cadenareemplazar):

retorna la cadena con todas las ocurrencias de la


subcadena reemplazo por la subcadena a reemplazar.
Ejemplo:
select replace('xxx.mysql.com','x','w');

Funciones para el manejo de cadenas


Funcin

Significado

repeat(cadena,cantidad)

devuelve una cadena consistente en la cadena repetida la


cantidad de veces especificada. Si "cantidad" es menor o
igual a cero, retorna una cadena vaca. Ejemplo:
select repeat('hola',3); retorna "holaholahola

reverse(cadena)

devuelve la cadena invirtiendo el order de los caracteres.


Ejemplo:
select reverse('Hola'); retorna "aloH

insert(cadena,posicion,longitud,nuevacadena)

retorna la cadena con la nueva cadena colocndola en la


posicin indicada por "posicion" y elimina la cantidad de
caracteres indicados por "longitud". Ejemplo:
select insert('buenas tardes',2,6,'xx'); retorna ""bxxtardes

lcase(cadena) y lower(cadena)

retornan la cadena con todos los caracteres en minsculas.


Ejemplo:
select lower('HOLA ESTUDIAnte'); retorna "hola
estudiante".
select lcase('HOLA ESTUDIAnte'); retorna "hola estudiante

-ucase(cadena) y upper(cadena)

retornan la cadena con todos los caracteres en maysculas.


Ejemplo:
select upper('HOLA ESTUDIAnte'); retorna "HOLA
ESTUDIANTE

strcmp(cadena1,cadena2)

retorna 0 si las cadenas son iguales, -1 si la primera es


menor que la segunda y 1 si la primera es mayor que la
segunda. Ejemplo:

Funciones matemticas
Funcin

Significado

abs(x)

retorna el valor absoluto del argumento "x".


Ejemplo: select abs(-20); retorna 20

ceiling(x)

redondea hacia arriba el argumento "x". Ejemplo: select


ceiling(12.34), retorna 13

floor(x)

redondea hacia abajo el argumento "x". Ejemplo: select


floor(12.34); retorna 12

greatest(x,y,..)

retorna el argumento de mximo valor

least(x,y,...)

con dos o ms argumentos, retorna el argumento ms


pequeo.

mod(n,m)

significa "mdulo aritmtico"; retorna el resto de "n" dividido


en "m". Ejemplos:
select mod(10,3); retorna 1.
select mod(10,2); retorna 0.

%:

devuelve el resto de una divisin. Ejemplos:


select 10%3; retorna 1.
select 10%2; retorna 0.

Funciones matemticas
Funcin

Significado

power(x,y)

retorna el valor de "x" elevado a la "y" potencia.


Ejemplo:
select power(2,3); retorna 8

rand()

retorna un valor de coma flotante aleatorio dentro del


rango 0 a 1.0

round(x)

retorna el argumento "x" redondeado al entero ms


cercano. Ejemplos:
select round(12.34); retorna 12.
select round(12.64); retorna 13.

srqt()

devuelve la raiz cuadrada del valor enviado como


argumento.

truncate(x,d)

retorna el nmero "x", truncado a "d" decimales. Si


"d" es 0, el resultado no tendr parte fraccionaria.
Ejemplos:
select truncate(123.4567,2); retorna 123.45;
select truncate (123.4567,0); retorna 123.

Funciones
de
fecha
y
hora
Funcin
Significado
adddate(fecha, interval
expresion)

retorna la fecha agregndole el intervalo


especificado. Ejemplos: adddate('2006-1010',interval 25 day) retorna "2006-11-04".
adddate('2006-10-10',interval 5 month)
retorna "2007-03-10".

adddate(fecha, dias)

retorna la fecha agregndole a fecha "dias".


Ejemplo: adddate('2006-10-10',25), retorna
"2006-11-04".

addtime(expresion1,expresion2) agrega expresion2 a expresion1 y retorna el


resultado.
current_date

retorna la fecha de hoy con formato "YYYYMM-DD" o "YYYYMMDD".

current_time

retorna la hora actual con formato


"HH:MM:SS" o "HHMMSS".

Funciones
de fecha y hora
Funcin
Significado
datediff(fecha1,fecha2)

retorna la cantidad de das entre fecha1 y


fecha2.

dayname(fecha)

retorna el nombre del da de la semana de la


fecha.

dayofmonth(fecha)

retorna el da del mes para la fecha dada, dentro


del rango 1 a 31.

dayofweek(fecha)

retorna el ndice del da de semana para la fecha


pasada como argumento. Los valores de los
ndices son: 1=domingo, 2=lunes,... 7=sbado).
Ejemplo: dayofweek('2006-08-10') retorna 5, o
sea jueves.

dayofyear(fecha)

retorna el da del ao para la fecha dada, dentro


del rango 1 a 366. Ejemplo: dayofmonth('200608-10') retorna 222.

extract(tipo from fecha)

extrae partes de una fecha.


Ejemplos:
extract(year from '2006-10-10'), retorna "2006".
extract(year_month from '2006-10-10 10:15:25')

Funciones de fecha y hora


Funcin

Significado

hour(hora)

retorna la hora para el dato dado, en el


rango de 0 a 23. Ejemplo: hour('18:25:09')
retorna "18

minute(hora)

retorna los minutos de la hora dada, en el


rango de 0 a 59.

monthname(fecha)

retorna el nombre del mes de la fecha


dada.
Ejemplo: monthname('2006-08-10') retorna
"August.

month(fecha)

retorna el mes de la fecha dada, en el


rango de 1 a 12.

now() y sysdate()

retornan la fecha y hora actuales.

period_add(p,n)

agrega "n" meses al periodo "p", en el


formato "YYMM" o "YYYYMM"; retorna un
valor en el formato "YYYYMM". El
argumento "p" no es una fecha, sino un
ao y un mes. Ejemplo:

Funciones de fecha y hora


Funcin

Significado

period_diff(p1,p2)

retorna el nmero de meses entre los perodos "p1" y "p2", en


el formato "YYMM" o "YYYYMM". Los argumentos de perodo
no son fechas sino un ao y un mes. Ejemplo:
period_diff('200608','200602') retorna 6.

second(hora)

retorna los segundos para la hora dada, en el rango de 0 a 59.

sec_to_time(segundos) retorna el argumento "segundos" convertido a horas, minutos y


segundos. Ejemplo: sec_to_time(90) retorna "1:30".
timediff(hora1,hora2)

retorna la cantidad de horas, minutos y segundos entre hora1


y hora2.

time_to_sec(hora)

retorna el argumento "hora" convertido en segundos.

to_days(fecha)

retorna el nmero de da (el nmero de da desde el ao 0).

weekday(fecha)

retorna el ndice del da de la semana para la fecha pasada


como argumento. Los ndices son: 0=lunes, 1=martes,...
6=domingo). Ejemplo: weekday('2006-08-10') retorna 3, o sea
jueves.

Columnas calculadas
Es posible obtener salidas en las cuales una columna sea

el resultado de un clculo y no un campo de una tabla.


Ejemplo:
Consultar el monto a pagar.

select producto, precio, cantidad, precio*cantidad


from productos;
Consultar el 10% de descuento .

select producto, precio, precio*0.1, precio-(precio*0.1)


from productos;

Create table
La tabla debe ser definida con un nombre que la

identifique. Mediante este nombre se tendr


acceso a la tabla.
CREATE TABLE tabla (nombre_campo1 tipo
(tamao),
nombre_campo2 tipo (tamao), ... )
Ejemplo:
CREATE TABLE usuarios ( nombre varchar(30),
clave varchar(10) );
Para ver las tablas existentes en una base de
datos se utiliza el comando: show tables;

Clave primaria
Para definir un campo como clave primaria es necesario

agregar "primary key y el nombre del campo que ser


definido como clave primaria.
Ejemplo:

CREATE TABLE clientes


(id int, nombre varchar(20),
clave varchar(10),
primary key(id) );

Clave primaria
Es importante recordar que:
Si intentamos ingresar un valor para el campo clave y

ste ya existe, visualizaremos un mensaje de error


indicando que no es posible almacenar el registro debido
a que el campo clave ya existe.
Los campos definidos como clave primaria no pueden

repetirse.
Cualquier campo puede ser clave primaria, sin embargo,

es necesario que sus valores no se repitan.

ALTER TABLE
Modifica el diseo de una tabla ya existente, se pueden

modificar los campos o los ndices existentes.


Sintaxis:

ALTER TABLE tabla {ADD {COLUMN tipo de


campo[(tamao)] [CONSTRAINT ndice]
CONSTRAINT ndice multicampo} |
DROP {COLUMN campo I CONSTRAINT nombre del
ndice} }

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;

Elimina el campo Salario de la tabla empleados.

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

error, para evitar el error, puede indicarse que se elimine la


tabla clientes slo en caso de que exista:
drop table if exists clientes;

TRUNCATE TABLE

El comando TRUNCATE TABLE elimina la tabla

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

Vaca los registros

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

dentro de una tabla ya existente.


Sintaxis:

INSERT INTO nombre_tabla


(campo1, campo2, campo3)
values (valor1,valor2, valor3);
Ejemplo:

INSERT INTO clientes


(id, nombre, telefono)
Values (1001,Jess,1234567);

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:

DELETE FROM clientes


Este ejemplo elimina todos los registros de la tabla clientes.
Para eliminar exclusivamente algunos registros, es necesario indicar

cul o cules registro debern eliminarse, utilizando la clausula


"where.
Ejemplo:

DELETE FROM clientes


WHERE nombre=Jess;

UPDATE
El comando UPDATE permite modificar uno o varios datos de uno o

varios registros.
Sintaxis:

UPDATE nombre_tabla SET nombre_campo = valor_a_asignar;


Ejemplo:

UPDATE clientes SET ciudad=SLP;


De este modo, la actualizacin afectar a todos los registros

existentes en la tabla clientes.

UPDATE
Si se desea actualizar solamente algunos registros especficos,

se emplea la clusula WHERE


Ejemplo:

UPDATE clientes SET ciudad=SLP


WHERE cp=78000;
Es posible actualizar ms de un campo de manera simultnea:

UPDATE clientes SET ciudad=SLP, cp=78000


WHERE id=1004;

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

recuperar y tabla es el origen de los mismos, por ejemplo:


SELECT Nombre, Telefono FROM Clientes;
Esta consulta devuelve un registro con el campo nombre y

telfono de la tabla clientes.

Consultas de seleccin
Las consultas de seleccin se utilizan para indicar al

motor de datos que devuelva informacin de las bases de


datos.
La informacin es devuelta en forma de conjunto de

registros.
Este conjunto de registros es modificable.

Consultas bsicas
Clausula DISTINCT
Fuerza que solo se muestren los registros con valores

distintos, es decir, suprime las repeticiones.


SELECT [DISTINCT] nombres_de_campos
FROM tabla;

Filtros
Los filtros son condiciones que el gestor de BD interpreta

para seleccionar registros y mostrarlos como resultado de


la consulta.
Clusula WHERE

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 pertenencia a conjuntos IN


Este operador permite comprobar si una columna tiene

un valor igual que cualquiera de los que estn incluidos


dentro del parntesis:
SELECT nombre
FROM alumnos
WHERE ciudad IN (SLP, Qro, Gto);

Operador de rango
BETWEEN
Permite seleccionar los registros que estn incluidos en

un rango.
SELECT nombre
FROM alumnos
WHERE edad BETWEEN 18 AND 25;

Filtros con Test de valor nulo


Los operadores IS e IS NOT permiten verificar si un

campo es o no es nulo.
SELECT nombre
FROM alumnos
WHERE ciudad IS null;
SELECT nombre
FROM alumnos
WHERE ciudad IS NOT null;

Filtros con test de patrn


Los filtros con test de patrn seleccionan solamente

aquellos registros que cumplan con una serie de


caractersticas.
Se utilizan los comodines % y _
%

busca coincidencias de cualquier


caracteres.
_ busca coincidencias de un carcter.

nmero

de

Filtros con test de patrn


SELECT *
FROM clientes
WHERE Ciudad like %an%;
SELECT *
FROM clientes
WHERE nombre like A _ _ _ _ _ o;

Filtros con test de patrn


SELECT *
FROM clientes
WHERE nombre like _er%;

Filtros con test de patrn


Si necesitamos buscar un patrn en el que aparezcan los caracteres

comodines, por ejemplo, queremos ver todos los registros que


comiencen con un guin bajo, si utilizamos '_%', mostrar todos los
registros porque lo interpreta como "patrn que comienza con un
caracter cualquiera y sigue con cualquier cantidad de caracteres".
Es decir, si queremos incluir en una bsqueda de patrones los

caracteres comodines, debemos anteponer al caracter comodn, la


barra invertida "\", as lo tomar como caracter de bsqueda literal y
no como comodn para la bsqueda.
Debemos utilizar "\_%", esto se interpreta como 'patrn que comienza

con guin bajo y contina con cualquier cantidad de caracteres".


Para buscar el caracter literal "%" se debe colocar "\%.

Filtros por lmite de nmero de registros


Permite limitar el nmero de registros devuelto en una

consulta.
LIMIT [desplazamiento], nfilas
desplazamiento indica a partir de qu fila se empieza a

contar.
nfilas indica el nmero de filas a devolver.

Filtros por lmite de nmero de registros


Ejemplo que devuelve las primeras 4 filas:

SELECT nombre, apellidop, apellidom


FROM clientes LIMIT 4;
Ejemplo que devuelve 3 filas a partir de la sexta:

SELECT nombre, apellidop, apellidom


FROM clientes LIMIT 5,3;

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

sabemos el nombre de la editorial.


Para obtener los datos de cada libro, incluyendo el

nombre de la editorial, necesitamos consultar ambas


tablas, para traer informacin de las dos tablas.
Cuando obtenemos informacin de ms de una tabla

decimos que hacemos un "join" (unin).

Mltiples tablas
Ejemplo:
select * from libros join editoriales on

libros.codigoeditorial=editoriales.codigo;
Es necesario indicar el nombre de la tabla luego del "from"

("libros"), unimos esa tabla con "join" y el nombre de la otra


tabla ("editoriales"), despus la condicin para enlazarlas con
"on.
"on" hace coincidir registros de las dos tablas basndose en

el valor de algn campo. Los cdigos de las editoriales de


ambas tablas, el campo "codigoeditorial" de "libros" y el campo
"codigo" de "editoriales" son los que enlazarn ambas tablas.

Mltiples tablas
Cuando se combina (join, unin) informacin de varias

tablas, es necesario indicar qu registro de una tabla se


combinar con qu registro de la otra tabla.
Si no se especifica por cual campo se relacionan las

tablas el resultado ser el producto cartesiano de ambas


tablas , por ejemplo:
select * from libros join editoriales;

Mltiples tablas
Ejemplo:
select

*
from
libros
join
editoriales
libros.codigoeditorial=editoriales.codigo;

on

Al nombrar el campo usamos el nombre de la tabla

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

usando el alias correspondiente.

Potrebbero piacerti anche