Ayer recibí el libro de bases de datos. Parece que usa MySQL. Aunque realmente los ejercicios se tratan todos online en una consola.
No se complica por ahora con la instalación de un gestor de base de datos y la creación de una tabla. Que es lo que haría la mayoría
de los manuales.
Como no me gusta "exclusivamente" depender de la página online. Creo los ejemplos en Python, aunque no es difícil de hacerlo en Gambas.
Al final me voy a dedicar a estudiarlo para los dos.
Pues bien, aunque el libro supuestamente usa MySQL, estoy creando los ejemplos en Sqlite. Para las consultas aparentemente da igual.
Creando la tabla si he visto cosas que no había visto hasta ahora en el poco tiempo que llevo practicando.
He creado una tabla "empleados" de la siguiente forma: (No aparenta aun, todavía que use un campo de auto incremento para el campo clave.)
CREATE TABLE empleados(
ID_EMPLEADO int(10) NOT NULL,
NOMBRE varchar(30) NOT NULL,
APELLIDOS varchar(50) NOT NULL,
F_NACIMIENTO date NOT NULL,
SEXO varchar(1) NOT NULL,
CARGO varchar(30) NOT NULL,
SALARIO float NOT NULL,
PRIMARY KEY(ID_EMPLEADO))
ID_EMPLEADO int(10) NOT NULL,
NOMBRE varchar(30) NOT NULL,
APELLIDOS varchar(50) NOT NULL,
F_NACIMIENTO date NOT NULL,
SEXO varchar(1) NOT NULL,
CARGO varchar(30) NOT NULL,
SALARIO float NOT NULL,
PRIMARY KEY(ID_EMPLEADO))
Como veis ha usado mayúsculas para los nombres de los campos. La sintaxis que usa es comandos en minúsculas y nombre de campos en mayúsculas.
Bien, yo no había usado int(10) en Sqlite, parece algo de MySQL, tiene que ver con el formato del número y no con su tamaño.
De varchar nada que comentar. En cuanto al tipo fecha, date. Observo que va aaaammdd, que es una cadena de texto.
Eso me ha funcionado para Sqlite3. He creado varias consultas y perfecto. Aun así. Os voy a mostrar una captura de la tabla empleados
que se muestra en la web.
Con el comando "desc empleados" me muestra toda la tabla, de esta forma:
Ahora mirar, palabras como UNSIGNED (sin signo). Según el autor que esto permite aumentar el rango de los número positivos en detrimento de los negativos,
de modo que el valor mínimo es en el caso definido como UNSIGNED es cero y el número mayor posible a almacenar es el doble de grande que un campo
número con signo, que si permite números negativos. Al no necesitar números negativos se desplaza el rango de valores para tener más números positivos disponibles.
Parece que no puedo hacer esto en Sqlite3:
Ya que puede responder con error tal como este:
Citar:
(Ya veo, parece que va antes de int. ). Lo estaba escribiendo como lo veía en la tabla de la web.
Saludos