You are on page 1of 14

Laboratorio 12

Presentado por : Jhon Barcasnegras
Al profesor: Camilo Gutiérrez

Análisis y desarrollo de sistemas de información
Servicio nacional de aprendizaje
2015

. doc_est_estcur varchar(11) not null. Crear las tablas propuestas en el ejercicio Creamos la base de datos y utilizamos “use para trabajar con ella: mysql> create database laboratorioSQL.16 sec) mysql> create table curso(cod_curso int primary key auto_increment not null. ape_est varchar(30) not null. nom_prof varchar(30) not null. cate_prof int. 1 row affected (0. ape_profesor varchar(30) not null. ape_cli varchar(30) not null. Con “describe” podemos ver cómo quedó la tabla que hicimos: mysql> describe profesor. mysql> create table Estudiante(doc_est varchar(11) primary key not null. La tabla Estudianxcurso la creamos pero no designamos las claves foráneas: mysql> create table Estudiantexcurso(cod_curso_estcur int not null. nom_curs varchar(100) not null. dir_cli varchar(100). fec_ini_estcur date).03 sec) mysql> use laboratorioSQL. nom_est varchar(30) not null. valor_cur int). edad_est int). Query OK. mysql> alter table estudiantexcurso add constraint fkcodcurs foreign key(cod_curso_estcur) references curso(cod_curso). mes_cum_cli varchar(10)). sal_prof int). mysql> create table Cliente(id_cli varchar(11) primary key not null. +----------------+---------------+---------+-----+---------+--------+ | Field | Type | Null | Key | Default | Extra | +-----------------+--------------+---------+-----+---------+--------+ | doc_profesor | varchar(11) | NO | PRI | NULL | | | nom_profesor | varchar(30) | NO | | NULL | | | ape_profesor | varchar(30) | NO | | NULL | | | cate_prof | int(11) | YES | | NULL | | | sal_prof | int(11) | YES | | NULL | | +----------------+---------------+---------+------+----------+-----+ 5 rows in set (0.horas_cur int. dep_cli varchar(20).Laboratorio 12 1. Designamos las fk individualmente: mysql> alter table estudiantexcurso add constraint fkdoc_est foreign key(doc_est_estcur) references estudiante(doc_est). nom_cli varchar(30) not null. Database changed Creamos las tablas: mysql> create table Profesor(doc_prof varchar(11) primary key not null.

comnombre varchar(30) not null. edi_art varchar(300). aseplaca varchar(6)). aut_art varchar(100). mysql> create table TiposAutomotores(autotipo int primary key not null). ERROR 1064 (42000): You have an error in your SQL syntax. asecosto int not null. autonumchasis varchar(20)). check the manual that corresponds to your MySQL server version for the right syntax to use near 'date not null. Aquí me dio un error de sintaxis y no lograba encontrar el por qué: mysql> create table aseguramientos(asecodigo int(6) primary key not null auto_increment. autonumpasajeros int. prec_art int not null).mysql> create table Articulo(id_art int primary key not null auto_increment. mysql> alter table pedido add constraint fkid_cli foreign key(id_cli_ped) references Cliente(id_cli). val_ped int not null). automarca varchar(30) not null. asefechainicio datenot null. mysql> create table Compañia(comnit varchar(11) primary key not null. asefechainspiracion date not null. mysql> alter table aseguramientos add asevalorasegurado int not null after asefechaexpiracion. mysql> alter table aseguramientos add asefechaexpiracion date not null after asefechainicio. mysql> alter table Automotores add constraint fk_tipoauto foreign key(Autotipo) references TiposAutomotores(autotipo). asefechainspiracion date not null. . fec_ped date not null. mysql> create table Automotores(autoplaca varchar(6) primary key not null. comañofun int. mysql> create table Articuloxpedido(id_ped_artped int not null. comreplegal varchar(100)). tit_art varchar(100). mysql> alter table Articuloxpedido add constraint fk_art_ped foreign key(id_art_artped) references Articulo(id_art). asevalorasegurado int not null. Creamos la tabla Pedido y luego referenciamos id_cli_ped como foránea: mysql> create table Pedido(id_pedido int primary key not null auto_increment. asevalorasegurado int not null. mysql> alter table aseguramientos add asefechainicio date not null after asecodigo. aseestado varchar not null. id_art_artped int. val_ven_art_artped int). autotipo int. autocilindraje int. can_art_artped int. automodelo int. id_cli_ped varchar(11). El problema era que “aseestado” no tenía longitud en el ejercicio y hay varchar hay que asignarle una: mysql> alter table aseguramientos add aseestado varchar(11) after asevalorasegurado. mysql> alter table Articuloxpedido add constraint fk_id_ped foreign key(id_ped_artped) references Pedido(id_pedido).' at line 1 Como fallé varias veces al intentar crear la tabla decidí crearla sólo con su tabla primaria para ir añadiendo columnas hasta hallar el error: mysql> create table aseguramientos(asecodigo int(6) primary key not null auto_increment).

4.098. incicanautosinvolucrados int).826. mysql> alter table incidentes add constraint fk_inciplacas foreign key(inciplaca) references automotores(autoplaca). 4. 2. 'Alejandra'.904 | Carlos | Pérez | 3 | 950000 | +-----------------+-----------------+----------------+-----------+----------+ . mysql> alter table aseguramientos add constraint fk_placas foreign key(aseplaca) references automotores(autoplaca). incilugar varchar(40) not null. Con este obtuvimos error por la longitud: mysql> insert into profesor values('1.765. +---------------+-------------------+----------------+-----------+----------+ | doc_profesor | nom_profesor | ape_profesor | cate_prof | sal_prof | +-----------------+-----------------+----------------+-----------+----------+ | 1. inciplaca varchar(6) not null. 'Torres'.765. 'Maritza'.502. 1100000).720 | Martha | Rojas | 2 | 690000 | | 91. 'Pérez'. 2. 'Rojas'. incicantfatalidades int. mysql> select * from profesor. 'Carlos'. mysql> insert into profesor values('91. 1100000). mysql> insert into profesor values('13.216. 950000).502. 690000).00 sec) mysql> create table incidentes(incicodigo int primary key not null auto_increment. +---------------------+--------------+------+---------+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------------+---------------+------+----.789 | Maritza | Angarita | 1 | 550000 | | 63.765. 'Torres'.098. Añadimos los registros mysql> insert into profesor values('63.mysql> alter table aseguramientos add asecosto int not null after aseestado. 'Angarita'. mysql> alter table aseguramientos add aseplaca varchar(6) after aseestado. Y ahora sí quedó bien la tabla: mysql> describe automotores.720'. 1.789 | Alejandra | Torres | 4 | 1100000 | | 13. 'Martha'.904'. incicantheridos int. 3. incifecha date not null.826. 550000).789'.789'.216.789'. 'Alejandra'. ERROR 1406 (22001): Data too long for column 'doc_profesor' at row 1 Se cambia la longitud de doc_profesor: mysql> alter table profesor modify doc_profesor varchar(20). mysql> insert into profesor values('1.098.--+---------+-------+ | autoplaca | varchar(6) | NO | PRI | NULL | | | automarca | varchar(30) | NO | | NULL | | | autotipo | int(11) | YES | MUL | NULL | | | automodelo | int(11) | YES | | NULL | | | autonumpasajeros | int(11) | YES | | NULL | | | autocilindraje | int(11) | YES | | NULL | | | autonumchasis | varchar(20) | YES | | NULL | | +---------------------+----------------+------+-------+---------+-------+ 7 rows in set (0.

'Ardila'. 'Fundamentos de bases de datos'. 55000).098. 'Fundamentals of Oracle'. -> (Null. -> ('13890234'. 'Manejo de MySQL'. mysql> insert into estudiantexcurso values -> (289011. 14-45'. '2011-01-04'). mysql> insert into curso values -> (149842.'2012-04-30'. 55000). 3000000). 'Catalina'.098. 'Maritza'. '63. 'Fundamentos de Oracle'. -> ('91. 20. 700000). -> (Null. 40000).502.098.678'. -> (345671. -> (1. -> (250067.245. .'2012-02-25'. 'Juan Carlos'.mysql> insert into curso values -> (149842. 'Alfaomega-Rama'. -> ('1. 40. mysql> insert into pedido values -> (null. 52000). 'Fundamentos de SQL'. 'Jonatan'.720'. 'Valle'.098. 'Alfaomega-Rama'. 'Facebook y twitter para adultos'.720'. -> (289011. 700000). 'Cauca'. 'Arenas'. 101'. 12. 5. 17). '1. 'Alfaomega-Rama'. 60000). 20. -> (4. 'Santander'. 550000). -> (250067. 'Martinez'. 'Creación de un portal con php y mysql'. 12-34 apto. '1. 'Manejo de MYSQL'.'Fundamentos de SQL'. 10. mysql> insert into articulo values -> (Null. 23).098. 'Jacobo Pavón Puertas'.1800000). -> (null. mysql> insert into estudiante values -> ('63. 'Veloso Claudio'. 'Perez'. 'Abril'). 'Antioquia'. 'Rojas'. -> (3.097'. 55000).55000).260000).'2012-02-25'. mysql> insert into articuloxpedido values -> (1.120000).60. 4. 500000). 60. 'Fundamentos de bases de datos'.502.'2011-12-10'. -> (null. 'Ernesto Arigasello'.'63502718'.'Redes cisco'. 'Ariza'. 'Julio Gómez López'. 2. 'Administración de sistemas operativos'.'77191956'. 3. 'Junio'). -> (345671. -> (289011.720'.502. -> (null. 45. 30-14'.'1098765789'.'63502718'. 40. '2011-01-02'). -> ('1098765789'.765. 'Roger'. 'Alfaomega-Rama'. 'Avenida el Libertador No. 'Marzo').097'. -> (289011. mysql> insert into cliente values -> ('63502718'. -> (2. -> ('77191956'. 25). 500000).098. 20. 'Diagonal 23 No. 12. -> (250067. '63. 'María'. 'Calle 34 No. 65000).768'. 1. 'Carlos Jose'.678'. -> (3. 3. 19). 'Carlos'. 5. 13-45'. -> (345671. 3000000). 65000).765. 'Zapata'. 550000). 'Carrera 30 No. -> (Null. 'Lopez'. -> ('1. 40000). 45000). '2011-01-03'). 1. 45. '2011-01-02'). 'Marzo').

'Seguros Atlantida'. 1998. 2009. 2000. mysql> insert into aseguramientos values -> (1. 0 rows affected (0.72 sec) mysql> insert into tiposautomotores values -> (1. 600000). 800000). 2). '2012-09-27'. 2). 'Chevrolet corsa'. 500000). 2. 0. -> (3. 'Vigente'. '2013-09-30'. -> ('KJQ920'. 'Kia sportage'. -> ('899999999-1'. 2001. '2013-09-27'. 'Bucaramanga'. 7. -> (2. 'Camperos'). 'FLL420'. 'Renault stepway'. 'FLL420'. 'DKZ820'. mysql> insert into incidentes values -> (1. 3 rows affected (0. 'FLL420'. 'Vencido'. 'wywzzz157kk009d45'). Query OK. '2011-09-28'. '2012-09-27'. 'Carlos López'). '2011-09-28'. 1). -> ('DKZ820'. 1. La tabla TiposAutomotores no tenía columna autnombre: mysql> alter table tiposautomotores add column (autnombre varchar(11) not null). +----------+ | sal_prof | +----------+ | 550000 | | 690000 | | 950000 | | 1100000 | +----------+ . -> (2. 0. 'wywzzz157kk009d25'). 1400. 5. 'Maria Margarita Pérez'). 5. 'KJQ920'.mysql> insert into compañia values -> ('800890890-2'. 0. 'Luis Fernando Rojas'). 50000000. 'Seguros del Estadio'. 35000000. 'Bucaramanga'. 'DKZ820'. -> (3. 1991. -> (3. mysql> insert into automotores values -> ('FLL420'. -> (2. 'wywzzz167kk009d25'). 1. 'Automóviles'). 1. 'Camiones'). 2008. Realizamos consultas Salarios de los profesores ordenados por categorías: mysql> select sal_prof from profesor order by cate_prof. 'Aseguradora Rojas'. 'Girón'. -> ('899999999-5'. 1. Query OK.19 sec) 3. 1600. 30000000. 0. '2012-09-30'. 'Vigente'. 2003. '2012-09-30'. '2012-09-28'.

00 sec) Calcular el valor promedio de lso cursos cuyas horas sean mayores a 40: mysql> select avg(valor_cur) from curso where horas_cur > 40. +---------------+ | avg(sal_prof) | +---------------+ | 550000.02 sec) . +----------+ | edad_est | +----------+ | 17 | +----------+ 1 row in set (0. +------------------+ | avg(valor_cur) | +------------------+ | 1775000.Mostrar cursos con valor mayor a $500000: mysql> select valor_cur from curso where valor_cur > 500000.00 sec) Sueldo promedio de los profesores categoría 1: mysql> select avg(sal_prof) from profesor where cate_prof = 1.0000 | +---------------+ 1 row in set (0.0000 | +-------------------+ 1 row in set (0. +-----------+ | valor_cur | +-----------+ | 700000 | | 550000 | | 3000000 | +-----------+ Número de estudiantes cuya edad sea mayor a 22 años: mysql> select count(*) from estudiante where edad_est > 22. +----------+ | count(*) | +----------+ | 2 | +----------+ 1 row in set (0.05 sec) Muestrar nombre y edad del estudiante más joven: mysql> select edad_est from estudiante order by edad_est asc limit 1.

Mostrar todos los campos de la tabla curso en orden ascendente por valor: mysql> select * from curso order by valor_cur asc. sal_prof -> from profesor -> where sal_prof >= 500000 and sal_prof <= 700000.00 sec) Mostrar nombre del profesor con menos sueldo: mysql> select nom_profesor from profesor order by sal_prof asc limit 1. del curso debe mostrarse el nombre. valor_cur -> from estudiante join estudiantexcurso join curso -> on fec_ini_estcur = '2011-01-02'and doc_est = doc_est_estcur and cod_curso_estcur = cod_curso.00 sec) Mostrar estudiantes (código y nombre) que iniciaron curso el 01-02-2011.098. nom_est.01 sec) Visualizar profesores cuyo sueldo esté entre $500000 y $700000: mysql> select nom_profesor. fec_ini_estcur. +-----------+--------------------------------------+-----------+-------------+ | cod_curso | nom_curs | horas_cur | valor_cur | +-----------+--------------------------------------+-----------+--------------+ | 149842 | Fundamentos de bases de datos | 40 | 500000 | | 289011 | Manejo de MySQL | 45 | 550000 | | 250067 | Fundamentos de SQL | 20 | 700000 | | 345671 | Fundamentos de Oracle | 60 | 3000000 | +-----------+--------------------------------------+-----------+--------------+ 4 rows in set (0.097 | Jonatan | 2011-01-02 | Manejo de MySQL | 45 | 550000 | +-----------------+------------+-----------------+-------------------------+-----------+-----------+ 2 rows in set (0.678 | Carlos | 2011-01-02 | Manejo de MySQL | 45 | 550000 | | 1.--+-----------+ | 1.098. ape_profesor. nom_curs. horas_cur.098. . +-----------------+ | nom_profesor | +-----------------+ | Maritza | +-----------------+ 1 row in set (0. las horas y el valor: mysql> select doc_est.765. +-----------------+-----------+-----------------+------------------------+-----------+-----------+ | doc_est | nom_est | fec_ini_estcur | nom_curs | horas_cur | valor_cur | +-----------------+-----------+------------------+------------------------+--------.

+------------+--------------------------------------------------+-------------+----------------+ | fec_ped | tit_art | nom_cli | can_art_artped | +------------+--------------------------------------------------+-------------+----------------+ | 2012-02-25 | Creación de un portal con php y mysql | Maritza | 5| | 2012-02-25 | Administración de sistemas operativos | Maritza | 12 | | 2012-04-30 | Redes cisco | Juan Carlos | 5| | 2011-12-10 | Facebook y twitter para adultos | Maritza | 10 | | 2011-12-10 | Creación de un portal con php y mysql | Maritza | 12 | | 2012-02-25 | Redes cisco | Catalina | 20 | +------------+--------------------------------------------------+--------------+-----------------+ 6 rows in set (0. can_art_artped -> from articulo join articuloxpedido join pedido join cliente -> on id_cli_ped = id_cli and id_ped_artped = id_pedido and id_art = id_art_artped.Mostrar nombre. tit_art. nom_cli. ape_cli.00 sec) Lista de todos los pedidos con el nombre del artículo: mysql> select fec_ped. +-------------+----------------+ | nom_cli | mes_cum_cli | +-------------+----------------+ | Catalina | Marzo | | Juan Carlos | Marzo | +--------------+---------------+ 2 rows in set (0.00 sec) Visualizar los clientes que cumplen años en marzo: mysql> select nom_cli. +----------+---------+------------+ | nom_cli | ape_cli | fec_ped | +----------+---------+------------+ | Maritza | Rojas | 2012-02-25 | | Catalina | Zapata | 2012-02-25 | +----------+---------+------------+ 2 rows in set (0. mes_cum_cli -> from cliente -> where mes_cum_cli = 'Marzo'. apellido y dirección de los clientes que realizaron pedido el día 25/02/2012: mysql> select nom_cli.00 sec) . fec_ped -> from cliente join pedido -> on id_cli_ped = id_cli and fec_ped = '2012-02-25'.

la dirección del mismo y el valor de los artículos (Los valores en realidad son incorrectos pero así estaban en el ejercicio): mysql> select id_ped_artped.Visualizar los datos del pedido 1 incluyendo el nombre del cliente. can_art_artped.val_ped -> from cliente join pedido -> on id_cli = id_cli_ped order by val_ped desc limit 1. fecha y valor del pedido más costoso: mysql> select nom_cli. tit_art. prec_art. fec_ped. dir_cli. can_art_artped.00 sec) Ver el conteo de artículos por editorial (sólo hay una editorial): mysql> select count(*) as id_art -> from articulo -> group by edi_art. tit_art. +----------+---------------+-----------+ | nom_cli | fec_ped | val_ped | +----------+---------------+-----------+ | Catalina | 2012-02-25 | 1800000 | +----------+---------------+-----------+ 1 row in set (0. Visualizar cliente. +---------------+-----------------------------------------------+------------------+------------------------+ | id_art_artped | tit_art | can_art_artped | val_ven_art_artped | +---------------+-----------------------------------------------+------------------+------------------------+ | 3 | Creación de un portal con php y mysql | 5| 40000 | | 4 | Administración de sistemas operativos | 12 | 55000 | | 1 | Redes cisco | 5| 65000 | | 2 | Facebook y twitter para adultos | 10 | 55000 | | 3 | Creación de un portal con php y mysql | 12 | 45000 | | 1 | Redes cisco | 20 | 65000 | +---------------+------------------------------------------------+-------------------+-----------------------+ . +--------+ | id_art | +--------+ | 4 | +--------+ Mostrar todos los pedidos con los respectivos articulos: mysql> select id_art_artped. val_ped -> from articuloxpedido join cliente join articulo join pedido -> on id_cli = id_cli_ped and id_pedido = id_ped_artped and id_ped_artped = 1 and id_art= id_art_artped. val_ven_art_artped -> from articuloxpedido join articulo join pedido -> on id_pedido = id_ped_artped and id_art = id_art_artped. nom_cli.

+----------------+-----------+----------------------------------------+----------------+ | id_art_artped | nom_cli | dir_cli | can_art_artped | +----------------+-----------+----------------------------------------+----------------+ | 2 | Catalina | Avenida el Libertador No. nom_cli. 30-14 | 10 | +----------------+-----------+----------------------------------------+----------------+ Empresas fundadas entre 1991 y 1998: mysql> select * from compañia -> where comañofun >= 1991 and comañofun <= 1998. 12-34 apto. can_art_artped -> from articuloxpedido join cliente join pedido join articulo -> on id_art = id_art_artped and id_art_artped = 2 group by id_art. número de pedido y cantidad: mysql> select id_art_artped. 14-45 | Santander | Abril | | 1098765789 | Catalina | Zapata | Avenida el Libertador No. dir_cli. 13-45 | Antioquia | Junio | | 63502718 | Maritza | Rojas | Calle 34 No. +----------------+-----------------------+--------------+--------------------------+ | comnit | comnombre | comañofun | comreplegal | +----------------+-----------------------+---------------+-------------------------+ | 800890890-2 | Seguros Atlantida | 1998 | Carlos López | | 899999999-1 | Aseguradora Rojas | 1991 | Luis Fernando Rojas | +----------------+-----------------------+---------------+-------------------------+ . 101 | Valle | Marzo | | 13890234 | Roger | Ariza | Carrera 30 No. dirección. 30-14 | Cauca | Marzo | +------------+----------------+---------+---------------------------------+-----------+-------------+ Todos los artículos por autor: mysql> select * from articulo order by aut_art. +------------+----------------+---------+---------------------------------+-----------+-------------+ | id_cli | nom_cli | ape_cli | dir_cli | dep_cli | mes_cum_cli | +------------+----------------+---------+---------------------------------+-----------+-------------+ | 77191956 | Juan Carlos | Arenas | Diagonal 23 No.Todos los clientes organizados por apellido: mysql> select * from cliente order by ape_cli. el listado debe mostrar nombre. Visualizar los pedidos que se han realizado para el artículo con id 2.

Si lo hago con septiembre obtengo el resultado: mysql> select autoplaca. incicantheridos. automarca. incilugar.Listado de automotores cuya póliza expira en octubre de 2013: Esa búsqueda da un resultado vacío porque no se ha registrado ningún vehículo que expire en octubre de 2013. incicantheridos -> from incidentes join aseguramientos -> on inciplaca = aseplaca and incicantheridos = 1. . inciplaca. automodelo. automodelo. Incidentes con el mínimo número de autos involucrados: mysql> select incicodigo. autonumchasis. incicantfatalidades. fecha de inicio. Empty set (0. autocilindraje. asefechainicio. asecodigo. incicanautosinvolucrados -> from aseguramientos join incidentes -> on incifecha = '2012-09-30'group by incifecha. asecosto. valor asegurado y valor póliza. incicantfatalidades. Todos los datos de la póliza más costosa: mysql> select * from aseguramientos order by asecosto desc limit 1. Datos de los incidentes con un herido: mysql> select incicodigo. incilugar. inciplaca. Visualizar incidentes del 30 de septiembre de 2012 con número de poliza. incicantheridos. mysql> select autoplaca. autonumpasajeros. autonumchasis. autonumpasajeros. asevalorasegurado. incicanautosinvolucrados. asefechainicio. autotipo.00 sec) Pero sí se han registrado dos que expiran en septiembre. incifecha. aseestado. mysql> select asecodigo. asecosto. asefechaexpiracion -> from automotores join aseguramientos -> on autoplaca = aseplaca and asefechaexpiracion > '2013-10-01' and asefechaexpiracion < '2013-10-31'. asevalorasegurado. autotipo. incifecha. autocilindraje. incicodigo. asefechaexpiracion -> from automotores join aseguramientos -> on autoplaca = aseplaca and asefechaexpiracion >= '2013-09-01' and asefechaexpiracion <= '2013-09-30'. inciplaca. asevalorasegurado -> from incidentes join aseguramientos -> on inciplaca = aseplaca order by incicanautosinvolucrados asc limit 1. automarca.

inciplaca. aseestado. asevalorasegurado -> from automotores join aseguramientos -> on aseplaca = autoplaca and autotipo = 1. incilugar. asefechaexpiracion. autotipo. .Visualizar los incidentes del vehículo FLL420: mysql> select incifecha. +----------------+------------------------+---------------+----------------------------+ | comnit | comnombre | comañofun | comreplegal | +----------------+------------------------+---------------+----------------------------+ | 899999999-5 | Seguros del Estadio | 2001 | Maria Margarita Pérez | +----------------+------------------------+---------------+----------------------------+ Datos de la póliza cuyo valor asegurado es el más costoso: mysql> select asecodigo. automodelo. aseestado. autocilindraje. autotipo. automodelo. Datos de pólizas de los automotores tipo 1: mysql> select autoplaca. autonumchasis -> from aseguramientos join automotores -> on aseplaca = autoplaca order by asevalorasegurado desc limit 1. asevalorasegurado -> from incidentes join aseguramientos -> on inciplaca = aseplaca and inciplaca = 'FLL420'. autocilindraje. automarca. incicantheridos. aseplaca. autonumpasajeros. asefechaexpiracion. autonumchasis. asefechaexpiracion. automarca. asefechainicio. asefechainicio. Datos de la compañía con nit 89999999-5: mysql> select * from compañia where comnit = '899999999-5'. asefechainicio. asevalorasegurado.

com www.com .Referencias Los ejercicios fueron obtenidos de los objetos de aprendizaje Sena. Para el desarrollo de la actividad se utilizó la aplicación MySQL 5.genbetadev.net www.7 command line client. Se obtuvo datos adicionales sobre la sintaxis SQL en los siguientes sitios web: www.forosdelweb.mysqlconclase.