P. 1
Resumen MySQL

Resumen MySQL

4.78

|Views: 9.709|Likes:
Publicado porigovan
Comandos y cosas utiles de MYSQL
Comandos y cosas utiles de MYSQL

More info:

Published by: igovan on Jun 13, 2008
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

03/24/2013

pdf

text

original

FUNCIONES ........................................................................................................... ..........

3
AVG.......................................................................................... ...................................3
CONCAT...................................................................................................... .................3
SUBSTR....................................................................................................................... .3
LENGTH.......................................................................................... .............................3
ROUND............................................................................................ ............................3
CURRENT_DATE()................................................................................................. ........3
DAY()............................................................................................ ...............................3
MONTH()............................................................................................................. .........3
YEAR()........................................................................................... ..............................3
CURRENT_TIME()........................................................................... ..............................3
HOUR()............................................................................................. ...........................3
LOWER().............................................................................................. ........................3
UPPER().......................................................................................... .............................4
IFNULL()................................................................................................................ .......4
MAX/MIN()................................................................................................................... .4
COUNT()........................................................................................ ..............................4
SUM()........................................................................................................................ ...4
IS NULL/ IS NOT NULL............................................................................. .....................4
CLAUSULAS ................................................................................... ................................. 5
GROUP BY........................................................................................................ ............5
WHERE........................................................................................ ................................5
HAVING........................................................................................................... .............5
ORDER BY....................................................................................................... .............5
LIMIT................................................................................................................. ...........5
LIE................................................................................................. ............................5
IN........................................................................................................................ .........5
ANY.......................................................................................................................... ....5
ALL............................................................................................... ...............................!
EXISTS..................................................................................................... ....................!
SENTECIAS ................................................................................................................ ...... "
ALTER TABLE ...................................................................................................... ........."
CREATE DATABASE......................................................................................................"
CREATE TABLE....................................................................................... ......................"
CREATE USER .............................................................................. ...............................#
CREATE VIEW........................................................................................................ .......#
$%
DELETE ...................................................................................................... .................#
DESCRIBE O DESC................................................................................. ......................&
DROP DATABASE.................................................................................................... ......&
DROP TABLE.................................................................................. ..............................&
DROP USER............................................................................................................... ...&
GRANT................................................................................................... ......................&
INSERT......................................................................................................... ..............$'
INSERT...SELECT........................................................................................................$'
RENAME TABLE.......................................................................................... ................$'
SELECT............................................................................................. .........................$'
UPDATE................................................................................................................ ......$$
USE................................................................................................................... .........$$
OTROS .................................................................................................... ...................... $3
G()*+)* , C)*-)*............................................................................................. ..........$3
T*.--/*0.................................................................................................................... ..$3
$%
FUNCIONES
AVG
Devuelve el valor medio de expresión: AVG(expr)
CONCAT
Devuelve la cadena resultante de concatenar los argumentos. Devuelve NULL si
alguno de los argumentos es NULL. Puede haber más de argumentos.
P.e!: "#N"$%(empno&' cobra (& sal)) *ue nos dar+a una ,rase hecha diciendo lo *ue
cobra cada t+o
SUBSTR
Devuelve la cadena de entre las posiciones del -tring *ue tu eli!as: Substr
((-tring'&.&/) te devolver+a (-tr'
LENGTH
Devuelve la cantidad de caracteres de la cadena: Length(‘String’); te devolver+a 0
ROUND
Devuelve un n1mero redondeado con tantos decimales como le pongas:
Run!("#$%&'(&); te devolver+a 23.4/
CURRENT)DATE()
Devuelve la ,echa actual como un valor en el ,ormato 5$$$$6776DD5 o $$$$77DD&
dependiendo de si la ,unción se usa en un contexto de cadena o num8rico:
CURRENT)DATE()
DA*()
Devuelve el d+a del mes para la ,echa dada& en el rango de . a /.: DA*(expr)
+ONTH()
Devuelve el mes para la ,echa dada& en el rango de . a .: +ONTH(expr)
*EAR()
Devuelve el a9o para la ,echa dada: *EAR(expr)
CURRENT)T,+E()
Devuelve la hora actual como un valor en el ,ormato 5:::77:--5 o ::77--&
dependiendo de si la ,unción se usa en un contexto de cadena o num8rico:
CURRENT)T,+E()
HOUR()
Devuelve la hora del tiempo dado& en el rango de . a 2: HOUR(expr)
LO-ER()
Devuelve la cadena str cono todos los caracteres cambiados a min1sculas de acuerdo
con el mapa de caracteres actual: LO-ER(expr)
$%
U..ER()
Devuelve la cadena en ma;1sculas: U..ER(expr)
,/NULL()
-i expr. no es NULL& ,/NULL() devuelve expr.& en caso contrario& devuelves expr.
,/NULL() devuelve un valor num8rico o una cadena& dependiendo del contexto en el
*ue se use: ,/NULL(comm&<))
+A01+,N()
Devuelve el valor m+nimo o máximo de expr. +,N() ; +A0() pueden tomar como ar6
gumento una cadena& en ese caso devolverán el valor de la cadena m+nima o máxima.
COUNT()
"uenta el n1mero de atributos *ue tiene por los re*uisitos *ue le has pedido :
Cunt (empno) ,rom emp) te devolver+a la cantidad de empleados de la tabla emp
SU+()
Devuelve la suma de cada valor num8rico de los atributos *ue se pide:
Cunt (sal) ,rom emp) te devolver+a el total de los salarios pagados a los empleados
,S NULL1 ,S NOT NULL
Para buscar los valores de la tabla *ue *ueramos *ue sean=no sean nulos:
-here ciudad >- NULL)
$%
CLAUSULAS
GROU. B*
-irve para agrupar las consultas& no solo puede hacerse con un campo sino *ue
tambi8n se puede con dos? siendo el primero la primera agrupación ; el segundo la
segunda: GROU. B* empno&deptno
-HERE
@s *uien te limita la consulta de un resultado de toda la tabla a las condiciones *ue tu
estás buscando:
-here deptnoA<
HAV,NG
Lo mismo *ue el Bhere pero esta se usa cuando se *uiere poner la condición a algo
*ue tiene un a ,uncion:: H23ing avg(sal)C/<
ORDER B*
-irve para ordenar las consultas (N# $DEUP$E). Una caracter+stica de esta es *ue
va;a acompa9ado por $-" o des con las cuales nos las ordenar+an de menor a ma;or
($-") o de ma;or a menor (D@-").
FPara sacar datos como máximos ; m+nimos una posibilidad es usar esta ,unción
convinada con Limit:
-elect nombre ,rom persona
Droup b; nombre
Or!er b4 sal Des5
Limit ..... %e devolver+a el *ue más cobra? para el *ue menos en veG de
Desc 6C$sc
L,+,T
%e limita los resultados a la cantidad *ue tu *uieras
-here 6$ Li7it .) @n este caso te devolver+a un 1nico valor
L,8E
%e permite buscar los resultados con el carácter *ue tu *uieras?.
Hhere ? liIe (aJ' ????..*ue empiece por a
Hhere ? liIe (Ja'............. *ue acabe por a
Hhere ... liIe J'a'J.......... *ue tenga una a
,N
%e dice lo *ue ha; dentro de una tabla?. @s una mu; buena opción para no hacer
Le,tKoin haciendo not in:
-elect ename ,rom emp
Hhere ename not in (select ename in dept)) %e dice los t+os *ue no están en ning1n
departamento
AN*
La palabra clave $NL & *ue debe seguir a un operador de comparación& signi,ica
Mreturn %EU@ si la comparación es %EU@ para $NL (cual*uiera) de los valores en la
columna *ue retorna la subconsulta
$%
@!m: -@L@"% s. NE#7 t. H:@E@ s. C $NL (-@L@"% s. NE#7 t))
ALL
La palabra ALL& *ue debe seguir a un operador de comparación& signi,ica Mreturn
%EU@ si la comparación es %EU@ para $LL todos los valores en la columna *ue retorna
la subconsulta.O
E0,STS
-i una subconsulta no retorna ning1n registro& entonces @P>-%- sub*uer; es %EU@& ;
N#% @P>-%- sub*uer; es N$L-@.
QRu8 clase de tienda ha; en una o más ciudadesS
-@L@"% D>-%>N"% storeTt;pe NE#7 -tores
H:@E@ @P>-%- (-@L@"% F NE#7 "itiesT-tores
H:@E@ "itiesT-tores.storeTt;pe A -tores.storeTt;pe))
$%
SENTECIAS
ALTER TABLE
Permite modi,icar la estructura de una tabla existente. Por e!emplo& se pueden a9adir
o eliminar columnas& crear ; destruir +ndices& cambiar el tipo de una columna
existente o renombrar columnas o la propia tabla. %ambi8n es posible modi,icar el
comentario ; el tipo de la tabla.
ALTER TABLE nombreTtabla +OD,/* nombreT,ila tipoTdatoTnuevo)
D.1/*/23/0 450.6.7.+)+/08
7#D>NL modi,icar tipo dato
E@N$7@ renombrar tabla
DE#P borrar ,ila
$DD agregar ,ila
D>-$UL@ deshabilitar algo por e!m Ie;s
$L%@E %$UL@ emp
D>-$UL@ "#N-%E$>N% empTempnoTpI)
@N$UL@ habilitar algo
$L%@E %$UL@ emp
@N$UL@ "#N-%E$>N% empTempnoTpI)
#ED@E UL ordenar por
Para meter a pelo la PV:
ALTER TABLE tabla ADD CONSTRANT pITnombre .R,+AR* 8E* (nombre))
Para meter la NV:
ALTER TABLE tabla ADD CONSTRA,NT ,ITnombre /ORE,GN 8E* (nombre)
RE/ERENCES tabla (nombre)
CREATE DATABASE
"E@$%@ D$%$U$-@ crea una base de datos con el nombre dado. Para usar CREATE
DATABASE se necesita el privilegio "E@$%@ en la base de datos.
CREATE DATABASE nombreTUD
CREATE TABLE
"rea una tabla con el nombre dado. -e debe poseer el privilegio "E@$%@ para la tabla.
Las reglas para nombres válidos de tablas se pueden ver a*u+. Por de,ecto& la tabla se
$%
crea en la base de datos actual. -e producirá un error si la tabla ;a existe& si no ha;
una base de datos actual o si la base de datos no existe.
CREATE TABLE nombreTtabla
(
nombreTdato tipoTdato&
...
))
@!emplo para meter una PN o NV con la creación de tablas:
CREATE TABLE dept
(
deptno >N%()&
dname W$E":$E(.2)&
loc W$E":$E(./)&
CONSTRA,N% deptTdnameTuI UN,9UE(dname)
))
-i se *uiere *ue algun campo no pueda ser null: dname W$E":$E() NOT NULL
CREATE USER
La sentencia CREATE USER crea nuevas cuentas 7;-RL. Para usarla se debe tener el
privilegio DE$N% #P%>#N para la base de datos m;s*l. Para cada cuenta& CREATE
USER crea un nuevo registro en la tabla m;s*l.user sin privilegios.
-e produce un error si la cuenta ;a existe.
-e le puede dar una contrase9a a la cuenta con la cláusula opcional >D@N%>N>@D.
CREATE USER nombreTusuario ,DENT,/,ED B* 5P$--5
CREATE V,E-
@sta sentencia crea una vista nueva o reemplaGa una existente si se inclu;e la
cláusula #E E@PL$"@.
T5+) 9.03) 4/*3/2/:/ ) (2) 6)0/ +/ +)350. P5* +/1/:35; 7)0 9.03)0 0/ :*/)2 /2 7) 6)0/
+/ +)350 ):3()7.
P/*) :*/)* (2) 9.03) /2 (2) 6)0/ +/ +)350 /04/:<1.:); .2+<=(/7) :52
6)0/_+/_+)350.25>6*/_9.03) )7 >5>/235 +/ :*/)*7).
Las tablas ; las vistas comparten el mismo espacio de nombres en la base de datos&
por eso& una base de datos no puede contener una tabla ; una vista con el mismo
nombre.
CREATE V,E- nombreTvista AS -@L@"% F NE#7 t...-entencia
DELETE
D@L@%@ elimina columnas desde XtableTnameX *ue satis,agan la condición dada por la
XBhereTde,initionX& ; devuelve el n1mero de registros borrados.
-i se usa una sentencia D@L@%@ sin cláusula H:@E@& todas las ,ilas serán borradas
DELETE /RO+ nombreTtabla -HERE
$%
DESCR,BE O DESC
Proporciona in,ormación sobre las columnas de una tabla. colTname puede ser un
nombre de columna o una cadena *ue contenga los caracteres comod+n -RL 5J5 and
5T5 para obtener salida sólo para las columnas cu;os nombres coincidan con la cadena.
No es necesario escribir las cadenas entre comillas.
DESC nombreTtabla
DRO. DATABASE
DRO. DATABASE elimina todas las tablas de la base de datos ; borra la base de
datos. :a; *ue ser extremadamente cuidadoso con esta sentencia. Para usar DRO.
DATABASE& es necesario tener el privilegio DE#P para la base de datos.
DRO. DATABASE nombreTUD
DRO. TABLE
DRO. TABLE elimina una o más tablas. -e debe poseer el privilegi DE#P para cada
una de las tablas. -e eliminan tanto los datos *ue contengan ; las de,iniciones de las
tablas& as+ *ue ha; *ue tener cuidado con esta sentencia.
DRO. TABLE nombreTtabla
DRO. USER
La sentencia DRO. USER elimina una o más cuentas 7;-RL. Para usarla se debe
poseer el privilegio DE$N% #P%>#N para la base de datos m;s*l. "ada cuenta se
nombra usando el mismo ,ormato *ue para DE$N% # E@W#V@) por e!emplo&
5!e,,re;5Y5localhost5. Las partes del usuario ; la má*uina del nombre de la cuenta
corresponden a los valores de las columnas User ; :ost del registro de la tabla user
para la cuenta.
DRO. USER nombreTusr
GRANT
Las sentencias GRANT ; REVO8E permiten a los administradores del sistema crear
cuentas de usuario 7;-RL ; conceder ; revocar derechos de esas cuentas$
En +4S9L e:isten 5in5 ni3e;es !istints !e <ri3i;egis=
• G;b2;es= se aplican al con!unto de todas las bases de datos en un servidor. @s
el nivel más alto de privilegio& en el sentido de *ue su ámbito es el más general.
• De b2se !e !2ts= se re,ieren a bases de datos individuales& ; por extensión&
a todos los ob!etos *ue contiene cada base de datos.
• De t2b;2= se aplican a tablas individuales& ; por lo tanto& a todas las columnas
de esas tabla.
• De 5;u7n2= se aplican a una columna en una tabla concreta.
• De rutin2= se aplican a los procedimientos almacenados. $1n no hemos visto
$%
nada sobre este tema& pero en +4S9L se pueden almacenar procedimietos
consistentes en varias consultas -RL
Privilegios Dlobales en una UD:
GRANT ALL ON dbTname.F TO nombreTusr ,DENT,/,ED B* 5pass5
Privilegios >ndividuales UD:
GRANT SELECT(,NSERT$$$ dbTname.F TO nombreTusr ,DENT,/,ED B* 5pass5
,NSERT
>nserta nuevas ,ilas en una tabla existente. Los ,ormatos >N-@E% ... W$LU@- e >N-@E%
... -@%& insertas ,ilas basándose en los valores especi,icados expl+citamente. @l ,ormato
%he >N-@E% ... -@L@"% inserta ,ilas seleccionadas de otra tabla o tablas. @l ,ormato
>N-@E% ... W$LU@- con una lista de m1ltiples valores
,NSERT ,NTO nombreTtabla () VALUES()
,NSERT$$$SELECT
"on ,NSERT $$$ SELECT& se pueden insertar rápidamente muchas ,ilas en una tabla
desde otra u otras tablas.
,NSERT ,NTO nombreTtabla ()
SELECT tblTtemp..,ldTorderTid
/RO+ tblTtemp. -HERE tblTtemp..,ldTorderTid C .<<)
RENA+E TABLE
La operación de renombrado se hace atómicamente& lo *ue signi,ica *ue ning1n otro
proceso puede acceder a ninguna de las tablas mientras se realiGa el renombrado.
RENA+E TABLE oldTtable %# neBTtable
SELECT
SELECT se usa para recuperar ,ilas seleccionadas de una o más tablas:
• "ada selectTexpr indica una columna *ue se *uiere recuperar.
• tableTre,erences indica la tabla o tablas de las *ue se recuperan ,ilas. -u
sintaxis se describe en >O,N.
• BhereTde,inition consiste de la palabra clave -HERE seguida por una
expresión *ue indica la condición o condiciones *ue las ,ilas deben satis,acer
para ser seleccionadas.
%odas las cla1sulas usadas deben darse en el mismo orden exacto *ue se muestra en
la descripción de la sintaxis. Por e!emplo& la cláusula HAV,NG debe estar despu8s de
cual*uier cláusula GROU. B* ; antes de cual*uier cláusula ORDER B*.
$%
La cláusula L,+,T puede ser usada para limitar a *ue el n1mero de ,ilas devuelto por
la sentencia SELECT. L>7>% toma uno o dos argumentos num8ricos& *ue deben ser
constantes enteras. "on dos argumentos& el primero especi,ica el desplaGamiento de
la primera ,ila a devolver& el segundo especi,ica el máximo n1mero de ,ilas a devolver.
@l desplaGamiento de la ,ila inicial es < (no .):
U.DATE
U.DATE actualiGa columnas de ,ilas existentes de una tabla con nuevos valores. La
cláusula -@% indica las columnas a modi,icar ; los valores *ue deben tomar. La
cláusula H:@E@& si se da& especi,ica *u8 ,ilas deben ser actualiGadas. -i no se
especi,ica& serán actualiGadas todas ellas. -i se especi,ica la cláusula #ED@E UL& las
,ilas se modi,icarán en el orden especi,icado. La cláusula L>7>% establece un l+mite al
n1mero de ,ilas *ue se pueden actualiGar.
La sentencia U.DATE soporta los modi,icadores siguientes:
• -i se usa la palabra L#HTPE>#E>%L& la e!ecución de U.DATE se retrasará hasta
*ue no ha;a otros clientes haciendo lecturas de la tabla.
• -i se especi,ica >DN#E@& la sentencia U.DATE no se abortará si se producen
errores durante la actualiGación. Las ,ilas con con,lictos de claves duplicadas no
se actualiGarán. Las ,ilas para las *ue la actualiGación de columnas se puedan
producir errores de conversión se actualiGarán con los valores válidos más
próximos.
@l e!emplo muestra una ,usión interna usando el operador coma& pero un U.DATE
multitabla puede usar cual*uier tipo de ,usión (!oin) permitido en sentencias SELECT,
como un L@N% K#>N.
Nota: no es posible usar #ED@E UL o L>7>% con U.DATE multitabla.
-i se usa una sentencia U.DATE multitabla *ue a,ecte a tablas ,nnDB para las *ue
ha;a de,iniciones de claves ,oráneas& el optimiGador 7;-RL procesará las tablas en un
orden di,erente del de la relación padre=hi!o. @n ese caso& la sentencia puede ,allar ;
deshará los cambios (roll bacI). @n su lugar& se debe actualiGar una tabla ; con,iar el
las capacidades de #N UPD$%@ *ue proporciona ,nnDB *ue harán *ue las otras
tablas se modi,i*uen del modo adecuado.
$ctualmente& no se puede actualiGar una tabla ; seleccionar desde la misma en una
subconsulta.
U.DATE nombreTcolumna SET campoTactualiGar -HERE...
U.DATE con inner ?in por medio:
U.DATE nombretabla
SET micampo A valor
/RO+ nombretabla. t.
,NNER >O,N nombretabla t ON t..campoidAt.campoid
-HERE t..algo A unvalor)
USE
La sentencia USE !b)n27e indica a 7;-RL *ue use la base de datos dbTname como
$%
la base de datos por de,ecto (actual) en sentencias subsiguientes. La base de datos
sigue siendo la base de datos por de,ecto hasta el ,inal de la sesión o hasta *ue se
use otra sentencia USE
USE nombreTDU
$%
OTROS
Gu2r!2r 4 C2rg2r
m;s*l 6u root scottZ gorde.s*l
m;s*ldump 66opt scott 6u root Cgorde.s*l
Triggers
create trigger trigger$cceso a,ter delete on $cceso
,or each roB
begin
set Y,echaA(select count(,echa) ,rom historica$cceso Bhere ,echaAold.,echa))Z6666666
importante
i, (Y,echa[A<) then
update historica$cceso
set num$ccesoAnum$cceso\. Bhere ,echaAold.,echa)
endi,)
) tras cada instruccion
endi,
#LD ; N@H
$N%@E ; U@N#E@
N#E @$": E#H: salta el trigger por cada ,ila a,ectada
$%

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->