Vous êtes sur la page 1sur 20

Manual de Sentencias mysql

Sintaxis de Sentencias
26/04/2011 iSystems Rafael Barradas Esquivel

1.- Crear una tabla. create table clientes( nombre varchar(20), domicilio varchar(30), telefono varchar(11) );

2.- Visualizar tablas existentes. show tables

3.- Eliminar tabla si esta existe. drop table if exists clientes; 4.- Eliminar table. drop table mishuevos; 5.- Insertar 3 registros en una tabla. insert into clientes (nombre, direccion, telefono) values (Javier Hernandez','Av. Manchester 123','123456'); insert into clientes (nombre, direccion, telefono) values ('Rio Ferdinand,'Av. Goliza 543','654321'); insert into clientes (nombre, direccion, telefono) values ('Rafael da Silva,'Av. Defensores 789','135790'); 6.- Obtener registros desde la tabla. select * from clientes; select nombre, direccion from clientes; 7.- OPERADORES RELACIONALES Igual que =

Mayor que o igual que >= Menor o igual que Diferente de <= <>

8.- Obeter registros especficos desde la tabla. select * from clientes where nombre = Javier Hernandez

9.- Eliminar registros especificos de la tabla. delete from clientes where nombre = 'Javier Hernandez'

10.- Modificar Registros de una tabla update clientes set nombre='Fabio da Silva' where nombre='Rio Ferdinand'; 11.- Establecer una clave primaria. create table usuarios ( clave varchar(10), nombre varchar(20), primary key(clave) ); 12.- Establecer un campo autonumrico. create table libros( codigo int auto_increment, titulo varchar(20), autor varchar(30), editorial varchar(15), primary key (codigo) );

13.- Una forma ms rpida de borrar los registros de una tabla. truncate table clientes; 14.- No permitir valores nulos en un campo. create table libros( codigo int auto_increment, titulo varchar(20) not null, autor varchar(30), editorial varchar(15), precio float, primary key (codigo) );

15.- Permitir valores nulos en un campo. create table libros( codigo int auto_increment, titulo varchar(20) null, autor varchar(30), editorial varchar(15), precio float, primary key (codigo) );

16.- Establecer un campo entero que acepte nicamente valores positivos. create table clientes( clave int auto_increment, nombre varchar(50) not null, edad integer unsigned, primary key (codigo) );

17.- Insertar valores por default al crear una tabla. (autoincrement, blob y text no aceptan valores default) create table libros( codigo int unsigned auto_increment, titulo varchar(40) not null, autor varchar(30) default 'Desconocido', precio decimal(5,2) unsigned default 1.11, cantidad int unsigned not null, primary key (codigo) );

18.- Rellenar los espacios a la izquierda en campos numricos create table libros( codigo int(6) zerofill auto_increment, titulo varchar(40) not null, autor varchar(30), editorial varchar(15), precio decimal(5,2) unsigned, cantidad smallint zerofill, primary key (codigo) );

19.- Obtener columnas calculadas. select titulo, precio,cantidad,precio*cantidad from libros; 20.- Ordenar elementos de una seleccin select codigo,titulo,autor,editorial,precio from libros order by titulo;

21.- Ordenar elementos de una seleccin de manera descendente. select codigo,titulo,autor,editorial,precio from libros order by editorial desc; 22.- Buscar subcadenas en un campo. select * from libros where autor like "%Borges%"; 23.- Buscar cadenas, segmentos de cadena o letras que contenga una cadena. Que Contengan una cadena: select * from libros where autor like "%Borges%"; Que contengan letras especificas: select autor from libros where autor regexp '[hkw]'; Que contengan al menos una letra de un rango de letras: select autor from libros where autor regexp '[a-d]'; Que inicien con una letra: select titulo from libros where titulo regexp '^A'; Que Finalizen con: select titulo from libros where titulo regexp 'HP$'; Una letra seguida de cualquier character seguida de otra letra: select titulo from libros where titulo regexp 'a.e'; Que Contengan exactamente cierto nmero de caracteres: select autor from libros where autor regexp '^......$'; Que contengan al menos cierto nmerode caracteres: select autor from libros where autor regexp '......'; Que contengan dos lestras en especifico: select titulo from libros where titulo regexp 'a.*a'; 24.- Contar registros select count(*) from libros; 25.- Obtener la suma de todos los registros de un campo. select sum(cantidad) from libros;

26.- Obtener el valor mayor de todos los registros. select max(precio) from libros; 27.- Obtener el valor mnimo. select min(precio) from libros where autor like '%Rowling%';

28.- Obtener el promedio de los registros de un campo especfico. select avg(precio) from libros where titulo like '%PHP%';

29.- Hacer operaciones con un grupo de registros especfico. select ciudad, count(*) from visitants group by ciudad;

30.- Obtener un conteo de grupos que contengan valores ms especficos. select editorial, count(*) from libros group by editorial having count(*)>2;

31.- Seleccionar registros omitiendo repeticiones. select distinct autor from libros;

32.- Usar un alias en una consulta. select count(*) as librosdeborges from libros where autor like '%Borges%';

33.- Utilizar una clave primaria compuesta. create table vehiculos( patente char(6) not null, tipo char(4), horallegada time not null horasalida time, primary key(patente,horallegada) );

34.- Crear un ndice comn. create table libros( codigo int unsigned auto_increment, titulo varchar(40) not null, autor varchar(30), editorial varchar(15), primary key(codigo), index i_editorial (editorial) );

35.- Borrar un ndice. drop index i_editorial on libros; drop index i_tituloeditorial on libros;

36.- Crear un ndice en una table creada anteriormente. create index i_editorial on libros (editorial);

37.- Restringir los registros que se retornan en una consulta "select". select * from libros limit 0,4;

38.- Recuperar de una tabla registros aleatorios se puede utilizar la funcin "rand()" combinada con "order by" y "limit". select * from libros order by rand() limit 5;

39.- Remplazar registros en una table. replace into libros values(23,'Java en 10 minutos','Mario Molina','Emece',25.5);

40.- Modificar la estructura de una tabla existente. (agregar nuevos campos, eliminar campos existentes, modificar el tipo de dato de un campo, agregar o quitar modificadores como "null", "unsigned", "auto_increment", cambiar el nombre de un campo, agregar o eliminar la clave primaria, agregar y eliminar ndices, renombrar una tabla). alter table libros add edicion date; alter table libros add cantidad tinyint unsigned after autor;

41.- Eliminar campos de una tabla. alter table libros drop edicion;

42.- Modificar el tipo de algn campo incluidos sus atributos. alter table libros modify cantidad smallint unsigned;

43.- Modificar el nombre de un campo. alter table libros change costo precio decimal (5,2);

44.- Crear y eliminar llaves primarias en una tabla creada. alter table libros add primary key (codigo); alter table libros drop primary key;

45.- Crear y borrar indices en una table creada. alter table libros add index i_editorial (editorial); alter table libros drop index i_editorial;

46.- Renombrar una tabla. alter table amigos rename contactos;

47.- Establecer valores nicos seleccionables en un campo. create table postulantes( numero int unsigned auto_increment, documento char(8), nombre varchar(30), estudios enum('ninguno','primario','secundario', 'terciario','universitario'), primary key(numero) );

48.- Establecer valores seleccionables en un campo permitiendo ms de un valor en cada registro. create table postulantes( numero int unsigned auto_increment, documento char(8), nombre varchar(30), idioma set('ingles','italiano','portuges'), primary key(numero) );

49.- Obeteniendo datos de dos tablas diferentes. select * from libros join editoriales on libros.codigoeditorial=editoriales.codigo; 50.- Utilizar variables para las consultas. select @mayorprecio:=max(precio) from libros; 51.- Actualizar los registros de una tabla con los datos de otra. update libros join editoriales on libros.codigoeditorial=editoriales.codigo set libros.editorial=editoriales.nombre;

52.- Encriptar y desencriptar valores. select encode('feliz','dia'); select decode(' 7','dia');

Tipos de chequeo Tipo


quick fast changed medium extended

Funcin
No controla los enlaces incorrectos de los registros. Controla nicamente las tablas que no se han cerrado en forma correcta. nicamente controla las tablas que se han cambiado desde el ltimo chequeo o que no se cerraron correctamente. Controla los registros para verificar que los enlaces borrados estn bien. Realiza una bsqueda completa para todas las claves de cada registro.

Tipos de Join Tipo left join Sintaxis


select * from editorials left join libros on editoriales.codigo=libros.codigoeditorial;

Funcin
Hacer coincidir registros en una tabla(izquierda) con otra tabla(derecha) (Para las coincidencias no encontradas se anexa una fila en cada una con valor null). Hacer coincidir registros en una tabla(derecha) con otra tabla(izquierda) (Para las coincidencias no encontradas se anexa una fila en cada una con valor null). Retorna todos los registros de todas las tablas implicadas en la unin, devuelve el producto cartesiano Se usa cuando los campos por los cuales se enlazan las tablas tienen el mismo nombre Todos los registros no coincidentes son descartados, slo los coincidentes se muestran en el resultado Es igual a "join", slo que la tabla de la izquierda es leda siempre antes que la de la derecha.

rigth join

select nombre,titulo from libros as l right join editoriales as e on e.codigo=l.codigoeditorial;

cross join

select c.*,p.* from comidas as c cross join postres as p; select titulo,nombre from libros as l natural join editoriales as e; select nombre,titulo from editoriales as e inner join libros as l on e.codigo=l.codigoeditorial; select nombre,titulo from editoriales as e straight join libros as l on e.codigo=l.codigoeditorial;

natural join inner join

straight join

Funciones de control

Funcin if case

Sintaxis
select titulo, if (precio>50,'caro','economico') from libros; select editorial, case count(*) when 1 then 1 when 2 then 2 when 3 then 3 else 'Ms de 3' end as 'cantidad' from libros group by editorial order by cantidad;

Tipos de datos blob o text. Tipo


tinyblob o tinytext mediumblob o mediumtext longblob o longtext

Longitud Mxima
255 caracteres 16777215 caracteres 4294967295 caracteres

Operadores Lgicos y Relacionales Operador and or xor not () between in Significado y o Solo uno de los dos no Parntesis Selecciona rango Pertenecia a cadenas

Valores nulos Tipo Todos varchar numrico numrico Propiedades null not null not null autoincrement Valor Default null (cadena vacia) 0 Secuencia desde 1

FUNCIONES MY SQL FUNCIONES PARA EL MANEJO DE CADENAS Funcin ord(caracter) char(x,..) Sentencia select ord('A'); select char(65,66,67); Retorno Retorna el cdigo ASCII para el caracter enviado como argumento. Retorna una cadena con los caracteres en cdigo ASCII de los enteros enviados como argumentos Devuelve la cadena resultado de concatenar los argumentos El primer argumento especifica el separador que utiliza para los dems argumentos; el separador se agrega entre las cadenas a concatenar. 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. La lista de cadenas enviada como segundo argumento es una cadena formada por subcadenas separadas por comas. Devuelve 0 si no encuentra "cadena" en la "lista de cadenas" Retorna la longitud de la cadena enviada como argumento. Retorna la posicin de la primera ocurrencia de la subcadena en la cadena enviadas como argumentos.

concat(cadena1,cadena2,...) concat_ws(separador,cadena1,cadena2,...)

select concat('Hola,',' ','como esta?'); select concat_ws('-' ,'Juan','Pedro','Luis');

find_in_set(cadena,lista de cadenas)

select find_in_set('hola','como esta,hola,buen dia');

length(cadena) locate(subcadena,cadena)

select length('Hola'); select locale('o','como le va');

position(subcadena in cadena) locate(subcadena,cadena,posicioninicial)

select position('o' in 'como le va'); select locate('ar','Margarita',1);

instr(cadena,subcadena)

select instr('como le va','om');

lpad(cadena,longitud,cadenarelleno)

select lpad('hola',10,'0');

rpad(cadena,longitud,cadenarelleno) left(cadena,longitud)

select rpad('hola',10,'0'); select left('buenos dias',8);

right(cadena,longitud)

select right('buenos dias',8);

Devuelve "0" si la subcadena no se encuentra en la cadena. Devuelve "0" si la subcadena no se encuentra en la cadena 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. Retorna la posicin de la primera ocurrencia de la subcadena enviada como segundo argumento en la cadena enviada como primer argumento. 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. Realiza la funcin de "lpad" excepto que rellena por la derecha Retorna la cantidad (longitud) de caracteres de la cadena comenzando desde la inquierda, primer caracter. Retorna la cantidad (longitud) de

substring(cadena,posicion,longitud)

select substring('Buenas tardes',3,5);

substring(cadena from posicion for longitud)

select substring('Buenas tardes' from 3 for 5); select mid('Buenas tardes' from 3 for 5); select substring('Margarita',4);

caracteres de la cadena comenzando desde la derecha, ltimo caracter. 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. Variante de "substring(cadena,posicion,longitud)" Realiza la misma funcin que "substring(cadena,posicion,longitud)" Retorna la subcadena de la cadena enviada como argumento, empezando desde la posicin indicada por el segundo argumento. Variante de "substring(cadena,posicion) Retorna la subcadena de la cadena enviada como argumento antes o despus de la "ocurrencia" de la cadena enviada como delimitador. Si "ocurrencia" es positiva, retorna la subcadena anterior al delimitador (comienza desde la izquierda); si "ocurrencia" es negativa, retorna la subcadena posterior al delimitador (comienza desde la derecha). Retorna la cadena con los espacios

mid(cadena,posicion,longitud)

substring(cadena,posicion)

substring(cadena from posicion) substring_index(cadena,delimitador,ocurrencia)

select substring('Margarita' from 4); select substring_index( 'margarita','ar',2);

ltrim(cadena)

select ltrim(' Hola ');

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

select rtrim('Hola ');

select trim(' Hola '); retorna 'Hola'. select trim (leading '0' from '00hola00'); retorna "hola00". select trim (trailing '0' from '00hola00'); retorna "00hola". select trim (both '0' from '00hola00'); retorna "hola". select trim ('0' from '00hola00'); retorna "hola". select trim (' hola '); retorna "hola" replace(cadena,cadenareemplazo,cadenareemplazar) select replace('xxx.mysql.com','x','w');

de la izquierda eliminados Retorna la cadena con los espacios de la derecha eliminados. 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.

Retorna la cadena con todas las ocurrencias de la subcadena reemplazo por la subcadena a reemplazar. 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. Devuelve la cadena invirtiendo el order de los caracteres. Retorna la cadena con la nueva cadena colocndola en la posicin indicada por "posicion" y elimina la

repeat(cadena,cantidad)

select repeat('hola',3);

reverse(cadena) insert(cadena,posicion,longitud,nuevacadena)

select reverse('Hola'); select insert('buenas tardes',2,6,'xx');

lcase(cadena) y lower(cadena)

select lower('HOLA ESTUDIAnte'); select lcase('HOLA ESTUDIAnte'); select upper('HOLA ESTUDIAnte'); select ucase('HOLA ESTUDIAnte'); select strcmp('Hola','Chau');

cantidad de caracteres indicados por "longitud". Retornan la cadena con todos los caracteres en minsculas. Retornan la cadena con todos los caracteres en maysculas. 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.

ucase(cadena) y upper(cadena)

strcmp(cadena1,cadena2)

FUNCIONES MATEMTICAS
Los operadores aritmticos son "+","-","*" y "/". Todas las operaciones matemticas retornan "null" en caso de error.

Funcin
abs(x) ceiling(x) floor(x) greatest(x,y,..) least(x,y,...) mod(n,m) % power(x,y) rand() round(x) srqt() truncate(x,d)

Sentencia
select abs(-20); select ceiling(12.34); select floor(12.34);

Retorno
Retorna el valor absoluto del argumento "x". Redondea hacia arriba el argumento "x" Redondea hacia abajo el argumento "x" retorna el argumento de mximo valor Con dos o ms argumentos, retorna el argumento ms pequeo Significa "mdulo aritmtico"; retorna el resto de n dividido en m. Devuelve el resto de una divisin Retorna el valor de "x" elevado a la "y" potencia. Retorna un valor de coma flotante aleatorio dentro del rango 0 a 1.0. Retorna el argumento "x" redondeado al entero ms cercano Devuelve la raz cuadrada del valor enviado como argumento. Retorna el nmero "x", truncado a "d" decimales. Si "d" es 0, el resultado no tendr parte fraccionaria.

select mod(10,3); select 10%3 select power(2,3);

select round(12.34);

select truncate(123.4567,2);

FUNCIONES PARA FECHAS Y HORAS Funcin


adddate(fecha, interval expresion) adddate(fecha, dias) addtime(expresion1,expresion2) current_date current_time date_add(fecha,interval expresion tipo) y date_sub(fecha,interval expresion tipo) date_add('2006-08-10', interval 1 month) retorna "2006-09-10"; date_add('2006-08-10', interval -1 day) retorna "2006-09-09"; date_sub('2006-08-10 18:55:44', interval 2 minute) retorna "2006-08-10 18:53:44"; date_sub('2006-08-10 18:55:44', interval '2:3' minute_second) retorna "2006-08-10 18:52:41".

Sentencia
adddate('2006-10-10',interval 25 day); adddate('2006-10-10',interval 5 month); adddate('2006-10-10',25)

Retorno
Retorna la fecha agregndole el intervalo especificado. Retorna la fecha agregndole a fecha "dias" Agrega expresion2 a expresion1 y retorna el resultado. Retorna la fecha de hoy con formato "YYYY-MMDD" o "YYYYMMDD". Retorna la hora actual con formato "HH:MM:SS" o "HHMMSS". El argumento "fecha" es un valor "date" o "datetime", "expresion" especifica el valor de intervalo a ser aadido o substrado de la fecha indicada (puede empezar con "-", para intervalos negativos), "tipo" indica la medida de adicin o substraccin. Los valores para "tipo" pueden ser: second, minute, hour, day, month, year, minute_second (minutos y segundos), hour_minute (horas y minutos), day_hour (das y horas), year_month (ao y mes), hour_second (hora, minuto y segundo), day_minute (dias, horas y minutos), day_second(dias a segundos). retorna la cantidad de das entre fecha1 y fecha2. Retorna el nombre del da de la semana de la fecha. Retorna el da del mes para la fecha dada, dentro del rango 1 a 31. Retorna el da del ao para la fecha dada, dentro del rango 1 a 366. Extrae partes de una fecha.

datediff(fecha1,fecha2) dayname(fecha) dayofmonth(fecha) dayofyear(fecha) extract(tipo from fecha)

dayname('2006-08-10') retorna "thursday". dayofmonth('2006-08-10'); dayofmonth('2006-08-10') retorna 222 extract(year from '2006-10-10'), retorna "2006". extract(year_month from '2006-10-10 10:15:25') retorna "200610".

hour(hora) minute(hora) monthname(fecha) month(fecha) now() y sysdate() period_add(p,n)

extract(day_minute from '2006-10-10 10:15:25') retorna "101015"; hour('18:25:09'); retorna "18"

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

period_add('200608',2) retorna "200610"

period_diff(p1,p2)

period_diff('200608','200602') retorna 6.

second(hora) sec_to_time(segundos) timediff(hora1,hora2) time_to_sec(hora) to_days(fecha) weekday(fecha) weekday('2006-08-10') retorna 3, o sea jueves. sec_to_time(90) retorna "1:30"

year(fecha)

year('06-08-10') retorna "2006"

Retorna la hora para el dato dado, en el rango de 0 a 23. Retorna los minutos de la hora dada, en el rango de 0 a 59. Retorna el nombre del mes de la fecha dada. Retorna el mes de la fecha dada, en el rango de 1 a 12. Retornan la fecha y hora actuales 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. 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. Retorna los segundos para la hora dada, en el rango de 0 a 59. Retorna el argumento "segundos" convertido a horas, minutos y segundos. Retorna la cantidad de horas, minutos y segundos entre hora1 y hora2. Retorna el argumento "hora" convertido en segundos. Retorna el nmero de da (el nmero de da desde el ao 0). Retorna el ndice del da de la semana para la fecha pasada como argumento. Los ndices son: 0=lunes, 1=martes,... 6=domingo). Retorna el ao de la fecha dada, en el rango de 1000 a 9999.

Vous aimerez peut-être aussi