Upload
turulo75
View
218
Download
0
Embed Size (px)
Citation preview
7/26/2019 1 MySQL
1/34
DISEO DE BASE DEDATOS MYSQL
(BSICO)
[email protected]@hotmail.om
MATI. I!" O#TI$ #AM%#E$MATI. I!" O#TI$ #AM%#E$
mailto:[email protected]:[email protected]:[email protected]7/26/2019 1 MySQL
2/34
T&mario
I'troui' *i+toria I'+talai'
Co'&,i' - &+o'&,i' al +&rior Ti/o+ & ato+ &' M-S0l
Cr&a'o u'a 1a+& & ato+ (BD) Cr&ai' BD Cr&ai' & ta1la Li+tao & la+ ta1la+ & u'a BD E+trutura & u'a ta1la 2orma+ & i'+&rtar r&3i+tro+
I'+&rtar ato+ &'tro & u'a i'+trui' I'+&rtar u'a 3ra' a'tia & ato+ &+& u' arhio
#&u/&rai' & i'4ormai' & ta1la+ Or&'ai'
Elimi'ar r&3i+tro+ Cam1io+ &' lo+ r&3i+tro+ & u'a ta1la
7/26/2019 1 MySQL
3/34
T&mario
Elimi'ar u'a ta1la Moi4iar la &+trutura & u'a ta1la A3r&3ar olum'a+ a u'a ta1la Elimi'ar olum'a+
Elimi'ar u'a Ba+& & Dato+ ro3rama+ /ara i'+talar u' +&rior 6&1
7/26/2019 1 MySQL
4/34
El +i+t&ma & 1a+& & ato+ o/&raio'al M-SQL &+ ho- &' a u'o & lo+m8+ im/orta't&+ &' lo 0u& ha& al i+&9o - /ro3ramai' & 1a+& & ato+& ti/o r&laio'al.
Cu&'ta o' millo'&+ & a/liaio'&+ - a/ar&& &' &l mu'o i'4orm8tioomo u'a & la+ m8+ utili:aa+ /or u+uario+ &l m&io. El /ro3rama M-SQL
+& u+a omo +&rior a tra;+ &l ual /u&&' o'&tar+& m&+ & /ro3ramai' 0u& +& aa/ta' a i4&r&'t&+ '&&+ia&+ -
r&0u&rimi&'to+.
M-SQL &+ o'oia /or &+arrollar alta &loia &' la 1
7/26/2019 1 MySQL
5/34
La hi+toria &l M-SQL (u-a +i3la &' i'3l;+ +& tra+laa a M- Strutur&Qu&r- La'3ua3& o L&'3ua>& & Co'+ulta E+truturao)
+& r&mit& a /ri'i/io+ & la ;aa & .
ro3ramaor&+ & IBM lo &+arrollaro' /ara o'tar o' u' i3o &/ro3ramai' 0u& /&rmiti&ra 3&'&rar m
7/26/2019 1 MySQL
6/34
Al3u'o+ Co'&/to+
SQL? Strutur& Qu&r- La'3ua3& (L&'3ua>& & Co'+ulta E+truturao) &+ u'l&'3ua>& & /ro3ramai' /ara tra1a>ar o' 1a+& & ato+ r&laio'al&+ omoM-SQL? Oral&? &t.
M-SQL &+ u' i't&r/r&taor & SQL? &+ u' +&rior & 1a+& & ato+.
M-SQL /&rmit& r&ar 1a+& & ato+ - ta1la+? i'+&rtar ato+? moi4iarlo+?&limi'arlo+? or&'arlo+? ha&r o'+ulta+ - r&ali:ar muha+ o/&raio'&+? &t.?
La +&'+i1ilia a ma-&m/lo i'o6+ i't&r/r&ta i3ualm&'t& la+ +i3ui&'t&+ +&'t&'ia+Fr&at& ata1a+& ami'i+traio'GCr&at& DataBa+& ami'i+traio'G
7/26/2019 1 MySQL
7/34
El equipo en el que se ejecuta MySQL y que almacena los datos se denomina
sewidor MySQL. Para establecer una conexin a este servidor dispone de
varias opciones de instalacin.
En primer lu!ar puede instalar el cliente y el servidor MySQL en su equipo de
escritorio.
I'+talai'
7/26/2019 1 MySQL
8/34
En se!undo lu!ar puede instalar el cliente MySQL en su equipo de sobremesa y el
servidor MySQL en otro equipo al que se establecer" la conexin.
Por ultimo su equipo de sobremesa puede ser cualquier ordenador que se
conecte a otro equipo con un cliente MySQL instalado que a su ve# se
conectara al servidor MySQL situado en el mismo equipo o en otro como muestra
la $i!ura %.&.
I'+talai'
7/26/2019 1 MySQL
9/34
ara i'iiar &l motor &l M-SQL? &1&mo+ +&3uir lo+ +i3ui&'t&+ /a+o+F. E'tramo+ al +m1olo & +i+t&ma+. E'tramo+ a la ar/&ta o'& t&'&mo+ 3uarao 'u&+tro M-SQL.
H. T&l&amo+ la +i3ui&'t& i'+trui'Fmysql h localhost u root -p. "o+ /&ir8 u' /a++6or?
7/26/2019 1 MySQL
10/34
Al r&ar u'a ta1la &1&mo+ r&+ol&r 0u; am/o+ (olum'a+) t&'r8 - 0u&ti/o & ato+ alma&'ar8 aa u'o & &llo+? &+ &ir? +u &+trutura. E+to++o' al3u'o+ ti/o+ & ato+ 18+io+F
arharF +& u+a /ara alma&'ar a&'a+ & arat&r&+. ='a a&'a &+ u'a+&u&'ia & arat&r&+. S& oloa &'tr& omilla+ (+im/l&+)F J*olaJ. El ti/oKarharK &4i'& u'a a&'a & lo'3itu aria1l& &' la ual &t&rmi'amo+&l m8,imo & arat&r&+. u&& 3uarar ha+ta 55 arat&r&+. araalma&'ar a&'a+ & ha+ta H arat&r&+? &4i'imo+ u' am/o & ti/oarhar(H). Si a+i3'amo+ u'a a&'a & arat&r&+ & ma-or lo'3itu0u& la &4i'ia? la a&'a +& orta.
or &>&m/lo? +i &4i'imo+ u' am/o & ti/o arhar() - l& a+i3'amo+ laa&'a JBu&'a+ tar&+J? +& alma&'ar8 JBu&'a+ tarJ a>u+t8'o+& a lalo'3itu & arat&r&+.
Ti/o+ & ato+ &' M-S0l
7/26/2019 1 MySQL
11/34
i't&3&rF +& u+a /ara 3uarar alor&+ 'um;rio+ &'t&ro+? & a a/ro,. D&4i'imo+ am/o+ & &+t& ti/o ua'o 0u&r&mo+r&/r&+&'tar? /or &>&m/lo? a'tia&+.
4loatF +& u+a /ara alma&'ar alor&+ 'um;rio+ &imal&+. S& utili:a omo+&/araor &l /u'to (.). or &>&m/lo? &4i'imo+ am/o+ & &+t& ti/o /ara/r&io+.
A't&+ & r&ar u'a ta1la &1&mo+ /&'+ar &' +u+ am/o+ - o/tar /or &l ti/o& ato a&uao /ara aa u'o & &llo+.
or &>&m/lo? +i &' u' am/o alma&'ar&mo+ '
7/26/2019 1 MySQL
12/34
Lo+ o/&raor&+ r&laio'al&+ i'ula' u' am/o o' u' alor /ara 0u&M-SQL om/ar& aa r&3i+tro (&l am/o &+/&i4iao) o' &l alor ao.
Lo+ o/&raor&+ r&laio'al&+ +o' lo+ +i3ui&'t&+F' i!ual
() distinto
) mayor
( menor
)' mayor o i!ual
(' menor o i!ual
O/&raor&+ #&laio'al&+
7/26/2019 1 MySQL
13/34
Cr&a'o u'a Ba+& & Dato+
7/26/2019 1 MySQL
14/34
*na base de datos es un conjunto de tablas. *na base de datos tiene un nombre
con el cual accederemos a ella.
Para crear una nueva +ase de ,atos usamos la si!uiente Sintaxis-
create database nombre_BD;
La +.,. recien creada estar" representada por una carpeta dentro de la carpeta
data de mysql.
Para que el servidor nos muestre las bases de datos existentes se lo solicitamos
enviando la instruccin-
show databases;
Cr&ai' & la Ba+& & Dato+
7/26/2019 1 MySQL
15/34
='a 1a+& & ato+ alma&'a +u+ ato+ &' ta1la+. ='a ta1la &+ u'a &+trutura& ato+ 0u& or3a'i:a lo+ ato+ &' olum'a+ - 4ila+G aa olum'a &+ u'am/o (o atri1uto) - aa 4ila? u' r&3i+tro.
Caa r&3i+tro o'ti&'& u' ato /or aa olum'a & la ta1la. Caa am/o(olum'a) &1& t&'&r u' 'om1r&. El 'om1r& &l am/o ha& r&4&r&'ia a la
i'4ormai' 0u& alma&'ar8. Caa am/o (olum'a) tam1i;' &1& &4i'ir <i/o & ato 0u& alma&'ar8.
r84iam&'t& a8 t&'&mo+ la ta1la u+uario+? 0u& o'ti&'& o+ am/o+llamao+F'om1r& - la&. Lu&3o t&'&mo+ tr&+ r&3i+tro+ alma&'ao+ &' &+tata1la? &l /rim&ro alma&'a &' &l am/o 'om1r& &l alor KMario&r&:K - &' &lam/o la& KMaritoK? - a+ +u&+iam&'t& o' lo+ otro+ o+ r&3i+tro+.
La+ ta1la+ 4orma' /art& & u'a 1a+& & ato+.
Cr&ai' & Ta1la+
7/26/2019 1 MySQL
16/34
Al r&ar u'a ta1la &1&mo+ r&+ol&r 0u; am/o+ (olum'a+) t&'r8 - 0u&ti/o & ato+ alma&'ar8' aa u'o & &llo+? &+ &ir? +u &+trutura.
La ta1la &1& +&r &4i'ia o' u' 'om1r& 0u& la i&'ti4i0u& - o' &l uala&&r&mo+ a &lla.
Si 0ui+i;ramo+ r&ar u'a ta1la llamaa Ku+uario+K? &+ri1imo+Fcreate table usuarios ( nombre varchar(30) clave varchar(!0) );
Cr&ai' & Ta1la+
7/26/2019 1 MySQL
17/34
Li+tao & la+ ta1la+ & u'a BD
ara &r la+ ta1la+ &,i+t&'t&+ &' u'a 1a+& & ato+ &+ri1imo+Fshow "#B$%&;
7/26/2019 1 MySQL
18/34
ara &r la &+trutura & u'a ta1la u+amo+ &l oma'o K&+ri1&K >u'to al'om1r& & la ta1laF
describe "#B$#;
parece lo si!uiente-
2i&l T-/& "ullnombre varc/ar0&12 3ES
4lave varc/ar0%12 3ES
E+trutura & u'a ta1la
7/26/2019 1 MySQL
19/34
o&mo+ am1iar &l 'om1r& & u'a ta1la o' Kalt&r ta1l&K.
E'to'&+ u+amo+ Kalt&r ta1l&K +&3uio &l 'om1r& atual? Kr&'am&K - &l'u&o 'om1r&.
ara am1iar &l 'om1r& & u'a ta1la llamaa Kami3o+K /or Ko'tato+Ku+amo+ &+ta +i'ta,i+Falter table ami'os rename contactos;
Tam1i;' /o&mo+ am1iar &l 'om1r& a u'a ta1la u+a'o la +i3ui&'t&+i'ta,i+F
rename table ami'os to contactos;
La r&'om1rai' +& ha& & i:0ui&ra a &r&ha? o' lo ual? +i0u&r&mo+ i't&ram1iar lo+ 'om1r&+ & o+ ta1la+? &1&mo+ &+ri1ir lo+i3ui&'t&Frename table ami'os to auiliar contactos to ami'os auiliar to contactos;
#&'om1rar u'a ta1la
7/26/2019 1 MySQL
20/34
ara &limi'ar u'a ta1la u+amo+ Kro/ ta1l&K. E+ri1imo+Fdrop table "#B$#;
E' la +i3ui&'t& +i'ta,i+ &+/&i4iamo+ 0u& &limi'& la ta1la Ku+uario+K +i&,i+t&.
drop table i$ exists usuarios5
Elimi'ai' & u'a ta1la
7/26/2019 1 MySQL
21/34
=' r&3i+tro &+ u'a 4ila & la ta1la 0u& o'ti&'& lo+ ato+ /ro/iam&'t& iho+.Caa r&3i+tro ti&'& u' ato /or aa olum'a.
Al i'3r&+ar lo+ ato+ & aa r&3i+tro &1& t&'&r+& &' u&'ta la a'tia - &lor&' & lo+ am/o+.
=+amo+ Ki'+&rt i'toK. E+/&i4iamo+ lo+ 'om1r&+ & lo+ am/o+ &'tr&/ar;'t&+i+ - +&/arao+ /or oma+ - lu&3o lo+ alor&+ /ara aa am/o?tam1i;' &'tr& /ar;'t&+i+ - +&/arao+ /or oma+.
E>&m/loF
Si'ta,i+F insert into "#B$# (nombre clave) values (*ario+ere,*arito);
NOTA:Es importante in!resar los valores en el mismo orden en que se nombran
los campos si in!resamos los datos en otro orden no aparece un mensaje de
error y los datos se !uardan de modo incorrecto.
2orma+ & i'+&rtar r&3i+tro+
7/26/2019 1 MySQL
22/34
='a & lo+ u+o+ m8+ &,t&'io+ & I't&r'&t &+ la 1
7/26/2019 1 MySQL
23/34
7/26/2019 1 MySQL
24/34
ara la+ o'iio'&+ +& utili:a' o/&raor&+ r&laio'al&+. El +i3'o i3ual() &+u' o/&raor r&laio'al. ara la +i3ui&'t& +&l&i' & r&3i+tro+&+/&i4iamo+ u'a o'ii' 0u& +oliita lo+ u+uario+ u-a la& &+ i3ual aJ1oa>u'iorJF
select nombre clave rom usuarios where clave/bocaunior;
Si 'i'3
7/26/2019 1 MySQL
25/34
I'+&rtar u'a 3ra' a'tia& ato+ &+& u' arhio
7/26/2019 1 MySQL
26/34
ara &limi'ar lo+ r&3i+tro+ & u'a ta1la u+amo+ &l oma'o K&l&t&KFdelete $rom usuarios5
La &>&ui' &l oma'o i'iao &' la l'&a a't&rior 1orra TODOS lo+r&3i+tro+ & la ta1la.
Si 0u&r&mo+ &limi'ar u'o o ario+ r&3i+tro+ &1&mo+ i'iar u8l o u8l&+?/ara &llo utili:amo+ &l oma'o K&l&t&K >u'to o' la lau+ula K6h&r&K o' laual &+ta1l&&mo+ la o'ii' 0u& &1&' um/lir lo+ r&3i+tro+ a 1orrar.
or &>&m/lo? 0u&r&mo+ &limi'ar a0u&l r&3i+tro u-o 'om1r& & u+uario&+ JL&o'aroJF
delete rom usuarios where nombre/$eonardo;
NOTA: Si +oliitamo+ &l 1orrao & u' r&3i+tro 0u& 'o &,i+t&? &+&ir? 'i'3
7/26/2019 1 MySQL
27/34
A/r&'imo+ 0u& /ara 1orrar too+ lo+ r&3i+tro & u'a ta1la +& u+a K&l&t&K+i' o'ii' K6h&r&K.
Tam1i;' /o&mo+ &limi'ar too+ lo+ r&3i+tro+ & u'a ta1la o' Ktru'at&ta1l&K.
or &>&m/lo? 0u&r&mo+ aiar la ta1la Kli1ro+K? u+amo+Ftruncate table libros;
La +&'t&'ia Ktru'at& ta1l&K aa la ta1la (&limi'a too+ lo+ r&3i+tro+) -u&l& a r&ar la ta1la o' la mi+ma &+trutura.
Borrao & r&3i+tro+ & u'a ta1la
7/26/2019 1 MySQL
28/34
La i4&r&'ia o' Kro/ ta1l&K &+ 0u& &+ta +&'t&'ia 1orra la ta1la.
Ktru'at& ta1l&K la aa.
La i4&r&'ia o' K&l&t&K &+ la &loia? &+ m8+ r8/io Ktru'at& ta1l&K0u& K&l&t&K (+& 'ota ua'o la a'tia & r&3i+tro+ &+ mu- 3ra'&) -a0u& ;+t& 1orra lo+ r&3i+tro+ u'o a u'o.
Otra i4&r&'ia &+ la +i3ui&'t&F ua'o la ta1la ti&'& u' am/oKautoPi'r&m&'tK? +i 1orramo+ too+ lo+ r&3i+tro+ o' K&l&t&K - lu&3o
i'3r&+amo+ u' r&3i+tro? al ar3ar+& &l alor &' &l am/oautoi'r&m&'ta1l&? o'ti'
7/26/2019 1 MySQL
29/34
ara moi4iar u'o o ario+ ato+ & u'o o ario+ r&3i+tro+ utili:amo+Ku/at&K (atuali:ar).
or &>&m/lo? &' 'u&+tra ta1la Ku+uario+K? 0u&r&mo+ am1iar lo+ alor&+ &toa+ la+ la&+? /or K#&alMariKF
update usuarios set clave/1eal*adrid;
=tili:amo+ Ku/at&K >u'to al 'om1r& & la ta1la - K+&tK >u'to o' &lam/o a moi4iar - +u 'u&o alor.
El am1io a4&tar8 a too+ lo+ r&3i+tro+.
o&mo+ moi4iar al3u'o+ r&3i+tro+? /ara &llo &1&mo+ &+ta1l&&ro'iio'&+ & +&l&i' o' K6h&r&K.
Moi4iai' & #&3i+tro+ & u'a Ta1la
M i4i i # i T 1l
7/26/2019 1 MySQL
30/34
or &>&m/lo? 0u&r&mo+ am1iar &l alor orr&+/o'i&'t& a la la& &'u&+tro u+uario llamao JMario&r&:J? 0u&r&mo+ omo 'u&a la& JBoaJ?'&&+itamo+ u'a o'ii' K6h&r&K 0u& a4&t& +olam&'t& a &+t& r&3i+troF
update usuarios set clave/Boca where nombre/*ario+ere,;
Si 'o &'u&'tra r&3i+tro+ 0u& um/la' o' la o'ii' &l K6h&r&K?
'i'3u'to al 'om1r& &lam/o - &l 'u&o alor - +&/arao /or oma? &l otro 'om1r& &l am/oo' +u 'u&o alor.2pdate usuarios set nombre/*arceloDuarte clave/*arce where
nombre/*arcelo;
Moi4iai' & #&3i+tro+ & u'a Ta1la
7/26/2019 1 MySQL
31/34
='a la& /rimaria &+ u' am/o (o ario+) 0u& i&'ti4ia +olo r&3i+tro (4ila)&' u'a ta1la.
ara u' alor &l am/o la& &,i+t& +olam&'t& r&3i+tro. Lo+ alor&+ 'o +&r&/it&' 'i /u&&' +&r 'ulo+.
!&amo+ u' &>&m/loF+i t&'&mo+ u'a ta1la o' ato+ & /&r+o'a+? &l '
7/26/2019 1 MySQL
32/34
ara &4i'ir u' am/o omo la& /rimaria a3r&3amo+ K/rimar- &-K lu&3o& la &4i'ii' & too+ lo+ am/o+ - &'tr& /ar;'t&+i+ oloamo+ &l 'om1r&&l am/o 0u& 0u&r&mo+ omo la&.
E+ta1l&&mo+ 0u& u' am/o +&a la& /rimaria al mom&'to & r&ai' & la
ta1laF create table usuarios ( nombre varchar(40) clave varchar(!0) primary5ey(nombre) );
Al &+ta1l&&r u'a la& /rimaria &+tamo+ i'&,a'o la ta1la? &+
&ir? r&a'o u' 'i& /ara iha ta1la. ara a3r&3ar u'a la&/rimaria a u'a ta1la &,i+t&'t& u+amo+F =+amo+ Kalt&r ta1l&K o'Ka /rimar- &-K - &'tr& /ar;'t&+i+ &l 'om1r& &l am/o 0u& +&r8la&
alter table "#B$# add primary 5ey (6#*+7);
Para eliminar una clave primaria en una tabla, usamos la siguientesintaxis:F
Cla& rimaria
7/26/2019 1 MySQL
33/34
ERE#CICIOS #ACTICOS
http://var/www/apps/conversion/tmp/scratch_2/Practicas%20Taller.docxhttp://var/www/apps/conversion/tmp/scratch_2/Practicas%20Taller.docxhttp://var/www/apps/conversion/tmp/scratch_2/Practicas%20Taller.docx7/26/2019 1 MySQL
34/34
#ACIAS