Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: General Dmitry Vergadoski en 24 Julio 2013, 17:37 pm



Título: ayuda con base datos mysql
Publicado por: General Dmitry Vergadoski en 24 Julio 2013, 17:37 pm
hola amigos me mandaron a hacer una base de datos en MySQL que se llame "calificacionfinal" y tiene que ser por consola de comandos ms-dos osea "mysql>" la base de datos tiene que hacer lo siguiente:

-base de datos: calificacionfinal
tabla 1 ->alumno
-nombre del alumno,apellido,direccion,codigo
tabla 2 ->nota
-codigo
-primer lapso
-segundo lapso
-tercer lapso
-calificacion final

muchas gracias de antemano.

espero me digan por favor si tengo algun error ya que estoy
acostumbrado a usar access y me equivoco:

aqui mi codigo MySQL

Código:
base de datos y tabla 1:

mysql> CREATE DATABASE calificacionfinal;
mysql> USE calificacionfinal;
mysql> CREATE TABLE alumno (nombre CHAR(20) NOT NULL, apellido CHAR(20) NOT  NULL, direccion CHAR(20) NOT  NULL, codigo INT(15) NOT  NULL PRIMARY KEY) ;

tabla 2:

mysql> CREATE TABLE nota; (codigo INT(15) NOT  NULL PRIMARY KEY, primer lapso INT(2) NOT NULL, segundo lapso INT(2) NOT  NULL, tercer lapso INT(2) NOT  NULL, calificacion final INT(2) NOT  NULL);


insertacion de los datos:

mysql> INSERT INTO nombre del alumno VALUES ('Pedro');
mysql> INSERT INTO apellido VALUES ('Perez');
mysql> INSERT INTO direccion VALUES ('los cocos');
mysql> INSERT INTO codigo VALUES ('24123663');
mysql> INSERT INTO primer lapso VALUES ('10');
mysql> INSERT INTO segundo lapso VALUES ('10');
mysql> INSERT INTO tercer lapso VALUES ('10');
mysql> INSERT INTO calificacion final VALUES ('10');

consulta:

mysql> SELECT alumno 'nombre del alumno', 'apellido' , 'direccion', 'codigo', nota 'primer corte', 'segundo corte', 'tercer corte', 'calificacion final' FROM alumno INNER JOIN nota ON 'codigo' = 'codigo';



Título: Re: ayuda con base datos mysql
Publicado por: 1mpuls0 en 24 Julio 2013, 18:10 pm
1. Qué onda con ese ";"?
Código
  1. CREATE TABLE nota; (cod
  2.  

2. Las llaves se especifican al final.
Código
  1. codigo INT(15) NOT  NULL PRIMARY KEY
  2.  
es decir...
Código
  1. ... calificacion final INT(2) NOT  NULL, PRIMARY KEY (codigo));
  2.  


3. La sentencia "INSERT INTO" simple tiene la siguiente estructura:
Código
  1. INSERT INTO tabla(nombre_campo1, nombre_campo2, nombre_n) VALUES (valor1, 'valor2', valor3);

4. El select está mal.

5. Más que un error solo como sugerencia, no utilices espacios en los nombres de los campos, tablas o base. Mejor utiliza: "_"

Saludos.



Título: Re: ayuda con base datos mysql
Publicado por: General Dmitry Vergadoski en 24 Julio 2013, 18:33 pm
1. Qué onda con ese ";"?
Código
  1. CREATE TABLE nota; (cod
  2.  

2. Las llaves se especifican al final.
Código
  1. codigo INT(15) NOT  NULL PRIMARY KEY
  2.  
es decir...
Código
  1. ... calificacion final INT(2) NOT  NULL, PRIMARY KEY (codigo));
  2.  


3. La sentencia "INSERT INTO" simple tiene la siguiente estructura:
Código
  1. INSERT INTO tabla(nombre_campo1, nombre_campo2, nombre_n) VALUES (valor1, 'valor2', valor3);

4. El select está mal.

5. Más que un error solo como sugerencia, no utilices espacios en los nombres de los campos, tablas o base. Mejor utiliza: "_"

Saludos.




revisala de nuevo y por favor dime como puedo hacer la consulta
Código:
mysql> CREATE DATABASE calificacionfinal;
mysql> USE calificacionfinal;
mysql> CREATE TABLE alumno (nombre CHAR(20) NOT NULL, apellido CHAR(20) NOT  NULL, direccion CHAR(20) NOT  NULL, codigo INT(15)) ;

tabla 2:

mysql> CREATE TABLE nota (codigo INT(15) NOT  NULL PRIMARY KEY, primer lapso INT(2) NOT NULL, segundo lapso INT(2) NOT  NULL, tercer lapso INT(2) NOT  NULL, calificacion final INT(2) NOT  NULL, PRIMARY KEY (codigo));


insertacion de los datos:

mysql> INSERT INTO TABLE alumno (nombre del alumno, apellido, direccion, codigo) VALUES ('Pedro', 'Perez', 'los cocos', '24123663');
mysql> INSERT INTO TABLE nota (primer lapso, segundo lapso, tercer lapso, calificacion final) VALUES ('10','10','10','10');

consulta:

mysql> SELECT alumno 'nombre del alumno', 'apellido' , 'direccion', 'codigo', nota 'primer corte', 'segundo corte', 'tercer corte', 'calificacion final' FROM alumno INNER JOIN nota ON 'codigo' = 'codigo';


Título: Re: ayuda con base datos mysql
Publicado por: 1mpuls0 en 24 Julio 2013, 18:39 pm
Lee un poco sobre SQL hay mucha información.

Vamos por pasos, al decirte que la llave se especifica al final, no debes declararla cuando escribes el nombre del campo.
Es decir
QUITA
CREATE TABLE nota (codigo INT(15) NOT  NULL PRIMARY KEY, ....

En que momento creaste el campo nombre del alumno para usarlo en el insert?
INSERT INTO TABLE alumno (nombre del alumno,...

El select sigue con errores.

Por qué no lo pruebas tu mismo? :P
Instalate mysql.

Saludos.


Título: Re: ayuda con base datos mysql
Publicado por: General Dmitry Vergadoski en 24 Julio 2013, 19:29 pm
haber amigo revisa ahora:

Código:
mysql> CREATE DATABASE calificacionfinal;
mysql> USE calificacionfinal;
mysql> CREATE TABLE alumno (nombre del alumno CHAR(20) NOT NULL, apellido CHAR(20) NOT  NULL, direccion CHAR(20) NOT  NULL, codigo INT(15)) ;

tabla 2:

mysql> CREATE TABLE nota (codigo INT(15) NOT  NULL, primer lapso INT(2) NOT NULL, segundo lapso INT(2) NOT  NULL, tercer lapso INT(2) NOT  NULL, calificacion final INT(2) NOT  NULL, PRIMARY KEY (codigo));


insertacion de los datos:

mysql> INSERT INTO TABLE alumno (nombre del alumno, apellido, direccion, codigo) VALUES ('Pedro', 'Perez', 'los cocos', '24123663');
mysql> INSERT INTO TABLE nota (primer lapso, segundo lapso, tercer lapso, calificacion final) VALUES ('10','10','10','10');

consulta:

mysql> SELECT alumno 'nombre del alumno', 'apellido' , 'direccion', 'codigo', nota 'primer lapso', 'segundo lapso', 'tercer lapso', 'calificacion final' FROM alumno INNER JOIN nota ON codigo;


Título: Re: ayuda con base datos mysql
Publicado por: armandex293 en 25 Julio 2013, 00:07 am
tienes varios errores que hay que corregir:

1. Trata de no usar espacios en los nombres de las columnas
2. una consulta INSERT no lleva la palabra TABLE
3. entre nota y alumno la relación es "codigo" pero según tus filas ingresadas no corresponden.

Tus dql quedarían de esta manera:
Código
  1. CREATE TABLE alumno (nombre_del_alumno CHAR(20) NOT NULL, apellido CHAR(20) NOT  NULL, direccion CHAR(20) NOT  NULL, codigo INT(15)) ;
  2.  
  3. CREATE TABLE nota (codigo INT(15) NOT  NULL, primer_lapso INT(2) NOT NULL, segundo_lapso INT(2) NOT  NULL, tercer_lapso INT(2) NOT  NULL, calificacion_final INT(2) NOT  NULL, PRIMARY KEY (codigo));
  4.  
  5. INSERT INTO alumno (nombre_del_alumno, apellido, direccion, codigo) VALUES ('Pedro', 'Perez', 'los cocos', '24123663');
  6. INSERT INTO nota (codigo,primer_lapso, segundo_lapso, tercer_lapso, calificacion_final) VALUES ('24123663','10','10','10','10');
  7.  
  8. SELECT nombre_del_alumno AS 'alumno', apellido , direccion, a.codigo, primer_lapso, segundo_lapso, tercer_lapso, calificacion_final FROM alumno a INNER JOIN nota n ON (n.codigo = a.codigo);
  9.