Está en la página 1de 25

Base de Datos

Mg. Prof. Carlos DESMARAS

Base de datos
Clase 1 SQL Structured Query Language = Lenguaje de Consultas Estructuradas. En ingls la gente lo llama sicuel. SQL es un conjunto establecido de instrucciones que se utilizan para gestionar la informacin que hay almacenada en una base de datos. Con estas instrucciones, los usuarios pueden aadir, suprimir o actualizar la informacin de una tabla, solicitar informacin mediante una consulta y visualizar los resultados de un informe. El lenguaje SQL para acceder a bases de datos relacionales, fue desarrollado por IBM en la dcada del 70 y en 1983, despus de varios aos de desarrollo puso a la venta DB2. El American National Standart Institute (ANSI) adopt el SQL como estndar para el acceso a bases de datos relacionales, y luego se convirti en un estndar ISO. Hay muchos programas que son administradores, llamados Sistemaa de Gestion de Base de Datos (SGBD) basados en SQL, como por ejemplo: MySQL, DB2, SQL Server, Oracle, SyBase, etc. Access tambin usa SQL.

MySQL Es un SGBDs basado en SQL. Su principal objetivo de diseo fue la velocidad, por ello se suprimieron algunas caractersticas de los dems SGBDs, como las transacciones y las subselects.

Ventajas de MySQL Mayor rendimiento Consume pocos recursos


BD Clase 1 - Pgina 1

Base de Datos
Mg. Prof. Carlos DESMARAS

Multiplataforma Licencia GPL (General Public Licence) Integracin perfecta con PHP Sin lmites en los tamaos de los registros Mejor control de acceso de usuarios

BD Clase 1 - Pgina 2

Base de Datos
Mg. Prof. Carlos DESMARAS

WampServer En este curso, para el manejo de MySQL usaremos el WampServer, que se puede bajar gratuitamente desde http://www.wampserver.com/en/download.php haciendo click en el sector Download.

BD Clase 1 - Pgina 3

Base de Datos
Mg. Prof. Carlos DESMARAS

Activacin del WampServer Una vez bajado de internet se ejecuta el archivo de instalacin bajado, y que se llama en el momento de la confeccin de este apunte: WampServer2.0h.exe

Ejecutamos este programa y el WampServer nos queda instalado en el tray de Windows (abajo a la derecha de la pantalla).

A su vez, ejecutamos este programa instalado haciendo click en el icono del tray... ...y nos aparece un men contextual en el que seleccionamos MySQL y luego... MySQL console.

Finalmente, nos aparece la consola de MySQL.

BD Clase 1 - Pgina 4

Base de Datos
Mg. Prof. Carlos DESMARAS

Como seguramente no pusimos contrasea, presionamos la tecla Enter para continuar. Y nos aparece el prompt de MySQL, que es mysql>.

Nota: las dos ultimas ventanas que tratan sobre la consola de MySQL fueron deliberadamente puestas de color gris en vez de negro, para gastar menos tinta negra.

BD Clase 1 - Pgina 5

Base de Datos
Mg. Prof. Carlos DESMARAS

Primer ejemplo Escribiremos en el prompt mysql>, la instruccin SELECT CURDATE(); Luego, presionamos la tecla Enter. mysql> SELECT CURDATE(); +------------+ | CURDATE() | +------------+ | 2009-06-10 | +------------+ 1 row in set (0.01 sec) mysql> Vemos la salida y una vez terminada, nuevamente el prompt como para una nueva instruccin. A partir de ahora, en general mostraremos la instruccin y su salida.

Caractersticas de las instrucciones MySQL En la gran mayora de las instrucciones terminan con un punto y coma o con \g. Algunas excepciones a esta regla son USE, QUIT y EXIT, instrucciones que deben ir solas en una linea, o ser las ultimas de una instruccin multilinea. Sin embargo, igualmente se les puede poner opcionalmente un punto y coma o \g. Son independientes del tipo de caracteres (no case sensitive). Por lo tanto, es lo mismo: SELECT CURDATE(); Select CurDate(); SeLeCt CuRDaTe(); En una misma lnea podemos escribir varias instrucciones SQL. Por eso, es lo mismo escribir: Select CurDate() ; Select Now() ;
BD Clase 1 - Pgina 6

Base de Datos
Mg. Prof. Carlos DESMARAS

La salida ser: +--------------+ | curdate() | +--------------+ | 2009-06-10 | +--------------+ +----------------------+ | now() | +----------------------+ | 2009-06-10 12:20:20 | +----------------------+ Una instruccin puede ser escrita en varia lneas. Por ejemplo: mysql> SELECT -> now() -> ; es lo mismo que: mysql> SELECT now(); Los prompts son: E l p r o m p t . .
BD Clase 1 - Pgina 7

Significa...

Base de Datos
Mg. Prof. Carlos DESMARAS

. m y s q l > > ' > " > Listo para una nueva consulta.

Queda pendiente una instruccin multilnea. Queda pendiente un string debido a un apstrofe ('). Queda pendiente un string debido a comillas (").

Ejemplo: mysql> SELECT "Hola "> Esto sucede porque las comillas no haban sido cerradas. Para interrumpir una instruccin podemos hacerlo con \c. Por ejemplo: mysql> SELECT now() \c mysql> Este interruptor no surte efecto si est pendiente un apstrofe o comillas porque considera que es parte del string a cerrar. En tal caso, hay que terminar con las comillas, y luego colocamos el interruptor \c.

Creacin y uso de base de datos Create DataBase MiBase; Hemos creado una base de datos llamada MiBase. Use MiBase; Para acceder a esta base de datos. Si es correcto, nos da el siguiente mensaje: Database changed
BD Clase 1 - Pgina 8

Base de Datos
Mg. Prof. Carlos DESMARAS

Bajo algunos sistemas operativos, como Unix, los nombres de las bases de datos son sensibles a si estn escritos con maysculas o con minsculas. No es as el caso de Windows. Creacin de tablas Las bases de datos pueden contener tablas, las que tienen filas y columnas. Crearemos una tabla llamada Tabla1: CREATE TABLE Tabla1 ( nombre sexo nacimiento VarChar(20) , Char(1) , Date ) ;

Bajo algunos sistemas operativos, como Unix, los nombres de las bases de datos son sensibles a si estn escritas con maysculas o minsculas. Observacin de la estructura de una tabla DESCRIBE Tabla1; Nos muestra el contenido de la tabla: +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | KEY | DEFAULT | Extra | +------------+-------------+------+-----+---------+-------+ | nombre | varchar(20) | YES | | | | | sexo | char(1) | YES | | | | | nacimiento | date | YES | | | | +------------+-------------+------+-----+---------+-------+ Bajas de tablas: DROP TABLE DROP TABLE AUTORES; Eliminamos la tabla llamada AUTORES.
BD Clase 1 - Pgina 9

Base de Datos
Mg. Prof. Carlos DESMARAS

Modificacin de tablas: ALTER TABLE ALTER TABLE AUTORES ADD Salario INT; Agregamos una nueva columna entera llamada Salario. ALTER TABLE AUTORES ADD Comentario CHAR(15); Agregamos una nueva columna de 15 caracteres alfanumricos llamada Comentario. ALTER TABLE AUTORES DROP COLUMN Grupo; Eliminamos una columna llamada Grupo. Agregado de filas (altas) usando INSERT INTO ... VALUES ... INSERT INTO Tabla1 (nombre, sexo , nacimiento ) VALUES (Juan Perez, M, 1952-12-25 ) ; Podemos verificar el contenido ingresado con la siguiente instruccin: SELECT * FROM Tabla1; La salida es: +------------+------+------------+ | nombre | sexo | nacimiento | +------------+------+------------+ | Juan Perez | M | 1952-12-25 | +------------+------+------------+ Si cada dato se corresponde con la columna en el mismo orden en que fue creada la estructura de la tabla, podemos simplificar esta instruccin como:
BD Clase 1 - Pgina 10

Base de Datos
Mg. Prof. Carlos DESMARAS

INSERT INTO Tabla1 (nombre, sexo , nacimiento ) VALUES ( Juan Perez, M, 1952-12-25 ) ; Agregado de filas (altas) usando LOAD DATA LOCAL INFILE ... INTO TABLE ... Creamos un archivo usando el block de notas llamado C:\POO\Datos.Txt. Los datos, los separamos entre s por la tecla tabuladora (representada por ), y las filas presionando la tecla Enter. Luis GomezM1966-12-19 Rosa HernandezF1973-06-09 Alfredo Fernandez1967-01-29 Entonces, la instruccin en MySQL para importar estos datos es: LOAD DATA LOCAL INFILE C:\\POO\\Datos.Txt; Advierta que en vez de usar una \, usamos dos de ellas \\. Vemos el contenido de la tabla: SELECT * FROM Tabla1; La salida es: +-------------------+------+------------+ | nombre | sexo | nacimiento | +-------------------+------+------------+ | Juan Perez | M | 1952-12-25 | | Luis Gomez | M | 1966-12-19 | | Rosa Hernandez | F | 1973-12-09 | | Alfredo Fernandez | | 1967-12-29 | +-------------------+------+------------+ Agregado de filas (altas) usando INSERT INTO ... SELECT ...
BD Clase 1 - Pgina 11

Base de Datos
Mg. Prof. Carlos DESMARAS

Creamos una nueva tabla llamada Tabla2, pero con la misma estructura de Tabla1 (podemos usar como base una previa instruccin, usando la tecla flecha para arriba): CREATE TABLE Tabla2 ( nombre sexo nacimiento VarChar(20) , Char(1) , Date ) ;

Ahora, a esta tabla le agregaremos la otra tabla: INSERT INTO Tabla2 (nombre ,sexo, nacimiento ) SELECT * FROM Tabla1; Pero ambas tablas como tienen la misma estructura, tambin pudimos haberlo hecho simplificadamente como: INSERT INTO Tabla2 (nombre ,sexo, nacimiento ) SELECT * FROM Tabla1;

Borrado de filas (bajas): DELETE DELETE FROM herram WHERE item = martillo; Eliminamos todos los registros con el tem martillo.

Modificacin de filas (modificaciones): UPDATE UPDATE herram SET item = martillo WHERE item = mart; Asignamos la leyenda martillo a la columna item cuando esta tiene el texto mart. UPDATE herram SET item = incompleto WHERE item IS NULL; Asignamos a la columna item la leyenda incompleto en el caso en que esta columna est vaca. UPDATE herram SET precio = precio*1.10 WHERE empresa IN (Perez SRL, Ferretera XX);
BD Clase 1 - Pgina 12

Base de Datos
Mg. Prof. Carlos DESMARAS

En el ltimo ejemplo, aumentamos un 10% al precio de los productos de dos empresas mencionadas. UPDATE herram SET precio = precio*1.10, bonifica = 5 WHERE empresa = Gomez SRL; En este caso, actualizamos dos campos de la tabla herram.

Seleccin de columnas SELECT * FROM Tabla2; Mostramos todas las filas y columnas de la tabla personal. SELECT nombre, nacimiento FROM tabla2; Vemos todas las filas, pero solo las columnas nombre y nacimiento.

BD Clase 1 - Pgina 13

Base de Datos
Mg. Prof. Carlos DESMARAS

Seleccin de filas usando WHERE SELECT * FROM Tabla2 WHERE sexo = M; Me muestra todas las filas que cumplen la restriccin especificada por WHERE, que es que sean varones. Importante: en algunas versiones de SQL se usan como delimitadores a las comillas, y en otros a los apstrofes. En MySQL se pueden usar ambos. SELECT * FROM Tabla2 WHERE nombre = Juan Perez; Me muestra la fila correspondiente a Juan Perez. El texto debe estar completo para que se produzca la seleccin. Los apstrofes y comillas pueden ser delimitadores de texto. El delimitador que abre es el que debe cerrar el texto a especificar.

Seleccin de filas usando BETWEEN SELECT * FROM Tabla1 WHERE nombre >= c And nombre <= m; Se puede escribir tambin: SELECT * FROM Tabla1 WHERE nombre BETWEEN c And m; Podemos ver las restantes filas usando la la negacin lgica: SELECT * FROM Tabla1 WHERE NOT nombre >= c And nombre <= m; Se puede escribir tambin: SELECT * FROM Tabla1 WHERE nombre NOT BETWEEN c And m;

BD Clase 1 - Pgina 14

Base de Datos
Mg. Prof. Carlos DESMARAS

Seleccin de filas usando LIKE Usando el opcional LIKE, no existen diferencias entre las letras maysculas y minsculas. Los comodines son: % _ para varios caracteres. para un caracter. Model o b%b %a% b_b Coinciden (devuelven verdadero) Bb, bBb, bBBb Gonzalo, Aldo Bab, b3b, bBb No coinciden (devuelven Falso) BC, CB Perez, $12 bBBBbb

Ejemplos: Tipo de coincidencia Varios caracteres Un solo carcter

SELECT * FROM TABLA2 WHEN nombre LIKE J%R_Z ; SELECT * FROM TABLA2 WHEN nombre NOT LIKE J%R_Z ; En el 1 ejemplo, Juan Perez es vlido, no as en el segundo. Seleccin de filas usando IN Usando el opcional IN, no existen diferencias entre las letras maysculas y minsculas. SELECT * FROM PER4 WHERE nombre IN ('Juan','Luis','Pedro'); SELECT * FROM PER4 WHERE codigo NOT IN (1,17,23,200); En el 1 ejemplo, Juan, Luis y Pedro son vlidos. En el 2 ejemplo, 1, 17, 23 y 200 no son vlidos.

Uso de expresiones para calcular valores: Vamos a hacer una nueva tabla: CREATE TABLE Precios ( Codigo Char(3), Precio Int ) ;
BD Clase 1 - Pgina 15

Base de Datos
Mg. Prof. Carlos DESMARAS

Y le ingresaremos valores: INSERT INTO Precios VALUES ( Destornillador, 3 ) ; INSERT INTO Precios VALUES ( Escuadra, 10 ) ; Podemos mostrar los codigos, sus precios y operando, el valor del IVA: SELECT Codigo, Precio, Precio*0.21 AS IVA FROM Precios; Los operadores vlidos para todas las versiones de SQL, son: + - * / Adems, se pueden usar funciones y parntesis. Estos ltimos dan jerarqua de operacin (esto significa, en otras palabras, que primero se ejecutar el parntesis ms interno). En el prximo ejemplo, redondearemos a un decimal. SELECT Codigo, Precio, Round( Precio*0.21, 1) AS IVA FROM Precios;

Ttulos de columnas: SELECT nombre AS Nombre del trabajador, nacimiento AS Fecha FROM tabla1; Como Nombre del trabajador tiene espacios en blanco, lo encerramos entre apstrofes o entre comillas. De hecho, Fecha tambin podra estarlo, pero como consta de una sola palabra, no es necesario. Como AS es un opcional, tambin pudo haber sido escrito como: SELECT nombre AS Nombre del trabajador, nacimiento AS Fecha FROM tabla1; La salida, en estos casos ser: +-----------------------+------------+
BD Clase 1 - Pgina 16

Base de Datos
Mg. Prof. Carlos DESMARAS

| Nombre del trabajador | Fecha | +-----------------------+------------+ | Juan Perez | 1952-12-25 | | Luis Gomez | 1966-12-19 | | Rosa Hernandez | 1973-12-09 | | Alfredo Fernandez | 1967-12-29 | +-----------------------+------------+ Valores nulos NULL La funcin NULL se refiere a los valores de las columnas que no han sido completadas, o sea, que estn vacas. SELECT Nombre,Saldo FROM Clientes WHERE Saldo IS NOT NULL; Listamos los Nombres de los Clientes y sus Saldos, siempre que los Saldos no sean nulos. SELECT Nombre,Saldo FROM Clientes WHERE Saldo IS NULL; Ahora, listamos los Nombres de los Clientes y sus Saldos, siempre que los Saldos sean nulos.

Algunas funciones provistas por SQL: Veremos algunas: SUM AVG COUNT MAX MIN Suma Promedio (AVeraGe) Contador Valor mximo Valor mnimo

SELECT SUM(sueldo) AS Sueldo total, AVG(sueldo) AS Promedio del depto, COUNT(sueldo) AS Cantidad de casos, MAX(sueldo) AS Mayor sueldo, MIN(sueldo) AS Menor sueldo, FROM personal WHERE depto = Finanzas;
BD Clase 1 - Pgina 17

Base de Datos
Mg. Prof. Carlos DESMARAS

En el ejemplo anterior, obtengo como resultado una sola fila, referida al Departamento Finanzas, con la suma de todos los sueldos, el sueldo promedio, la cantidad de casos considerados, el sueldo mayor, y el menor. La funcin EXISTS, la cual luego veremos, en el SELECT no puede ser usada de esta manera, sino despus del WHERE

Ordenacin de filas SELECT nombre, nacimiento FROM Tabla2 WHERE nombre >= R and nombre <= RZZZZ ORDER BY nombre; En este ejemplo veremos las columnas nombre y nacimiento ordenados por nombre, con la condicin que nombre comience con la letra R. SELECT nombre, nacimiento FROM Tabla2 WHERE nombre >= R and nombre <= RZZZZ ORDER BY nombre ASC, nacimiento DESC ; Las columnas que se usan en esta instruccin deben estar en la lista de la seleccin. ASC y DESC especifican que el orden es ascendente o descendente, respectivamente. Si se omiten, se asume que es ASC. Lo que significa esta instruccin es que si hay dos nombres iguales, desempatan en forma descendente por la fecha de nacimiento. Tambin se pudo haber escrito de esta manera, siendo 1 la primer columna especificada, y 2, la segunda: SELECT nombre, nacimiento FROM Tabla2 WHERE nombre >= R and nombre <= RZZZZ ORDER BY 1 ASC, 2 DESC ;
BD Clase 1 - Pgina 18

Base de Datos
Mg. Prof. Carlos DESMARAS

BD Clase 1 - Pgina 19

Base de Datos
Mg. Prof. Carlos DESMARAS

Comenzando con MySQL


Antes de seguir con PHP, vamos a preparar la base de datos(BD) que vamos a utilizar como ejemplo. Como servidor de BD, usaremos MySQL un pequeo y compacto servidor de BD, ideal para pequeas y medianas aplicaciones. MySQL soporta el estndar SQL (ANSI), y adems est disponible para distintas plataformas, incluido las "windows". Una vez instalado MySQL (dejemos esta explicacin para ms tarde), vamos a crear nuestra BD ejemplo. MySQL utiliza una tabla de permisos de usuarios, por defecto, en la instalacin crea el usuario root sin password. Debes crear distintos usuarios con distintos permisos. Entre ellos, el usuario administrador de MySQL, con todos los permisos, y como recomendacin de seguridad, el usuario nobody slo con el permiso de ver (SELECT), que es el que utilizaremos para conectarnos al servidor de BD en nuestros script. Para crear nuestra BD, debemos ser el administrador de MySQL o el root,para ello haremos lo siguiente:

mysqladmin create mybd


Ya hemos creado una BD, ahora le aadiremos una tabla y algunos registros, para lo cual copia el siguiente texto y slvalo en un archivo, que podramos llamar mybd.dump. Crear tabla mybd

CREATE TABLE agenda (id INT NOT NULL AUTO_INCREMENT, nombre CHAR(50), direccion CHAR(50), telefono CHAR(15), email CHAR(30), KEY (id) )\g INSERT INTO agenda VALUES (0, 'Juan Prez', 'C/ Laguna, 15. Sevilla', '95.455.55.55', 'juan@agenda.com' )\g INSERT INTO agenda VALUES (1, 'Luis Garca', 'C/ Betis, 22. Cdiz', '95.655.66.33', 'luis@agenda.com' )\g INSERT INTO agenda VALUES (2, 'Carlos Rodrguez', 'C/ Sevilla, 6. Huelva', '95.113.22.77', 'carlos@agenda.com' )\g
Debemos tener en cuenta que los comandos de arriba debe escribirse cada uno en una sola lnea. Se han separado para aumentar la legibilidad del cdigo. Ahora desde la lnea de comandos ejecuta:

cat mybd.dump | mysql mybd


Cabe destacar el campo id, que no puede estar vacio, y adems es autoincrementable, lo cul deberemos tener en cuenta a la hora de actualizar y aadir registros. Si no hemos cometido ningn error, ya tenemos nuestra base de datos de ejemplo en el servidor MySQL.

BD Clase 1 - Pgina 20

Base de Datos
Mg. Prof. Carlos DESMARAS

Pasamos a describir los tipos de sentencias sql que podemos encontrarnos y sus componentes sintcticos.
Por Sara Alvarez
Atencin: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

En SQL tenemos bastantes sentencias que se pueden utilizar para realizar diversas tareas. Dependiendo de las tareas, estas sentencias se pueden clasificar en tres grupos principales (DML, DDL,DCL), aunque nos quedara otro grupo que a mi entender no est dentro del lenguaje SQL sino del PLSQL.
SENTENCIA DESCRIPCIN

DML

Manipulacin de datos SELECT INSERT DELETE UPDATE

Recupera datos de la base de datos. Aade nuevas filas de datos a la base de datos. Suprime filas de datos de la base de datos. Modifica datos existentes en la base de datos.

DDL

Definicin de datos CREATE TABLE DROP TABLE ALTER TABLE CREATE VIEW DROP VIEW CREATE INDEX DROP INDEX CREATE SYNOYM DROP SYNONYM

Aade una nueva tabla a la base de datos. Suprime una tabla de la base de datos. Modifica la estructura de una tabla existente. Aade una nueva vista a la base de datos. Suprime una vista de la base de datos. Construye un ndice para una columna. Suprime el ndice para una columna. Define un alias para un nombre de tabla. Suprime un alias para un nombre de tabla.

DCL

Control de acceso GRANT REVOKE Control de transacciones COMMIT ROLLBACK

Concede privilegios de acceso a usuarios. Suprime privilegios de acceso a usuarios Finaliza la transaccin actual. Aborata la transaccin actual.

PLSQL

SQL Programtico DECLARE OPEN FETCH CLOSE

Define un cursor para una consulta. Abre un cursor para recuperar resultados de consulta. Recupera una fila de resultados de consulta. Cierra un cursor.

BD Clase 1 - Pgina 21

Base de Datos
Mg. Prof. Carlos DESMARAS

Componentes sintcticos
La mayora de sentencias SQL tienen la misma estructura. Todas comienzan por un verbo (select, insert, update, create), a continuacin le sigue una o ms clausulas que nos dicen los datos con los que vamos a operar (from, where), algunas de estas son opcionales y otras obligatorias como es el caso del from.

Explicamos la manera de crear tablas a partir de sentencias SQL. Definimos los tipo de campos principales y la forma de especificar los ndices.
Por Rubn Alvarez
Atencin: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

En general, la mayora de las bases de datos poseen potentes editores de bases que permiten la creacin rpida y sencilla de cualquier tipo de tabla con cualquier tipo de formato. Sin embargo, una vez la base de datos est alojada en el servidor, puede darse el caso de que queramos introducir una nueva tabla ya sea con carcter temporal (para gestionar un carrito de compra por ejemplo) o bien permanente por necesidades concretas de nuestra aplicacin. En estos casos, podemos, a partir de una sentencia SQL, crear la tabla con el formato que deseemos lo cual nos puede ahorrar ms de un quebradero de cabeza. Este tipo de sentencias son especialmente tiles para bases de datos como Mysql, las cuales trabajan directamente con comandos SQL y no por medio de editores.

BD Clase 1 - Pgina 22

Base de Datos
Mg. Prof. Carlos DESMARAS
Para crear una tabla debemos especificar diversos datos: El nombre que le queremos asignar, los nombres de los campos y sus caractersticas. Adems, puede ser necesario especificar cules de estos campos van a ser ndices y de qu tipo van a serlo. La sintaxis de creacin puede variar ligeramente de una base de datos a otra ya que los tipos de campo aceptados no estn completamente estandarizados. A continuacin os explicamos someramente la sintaxis de esta sentencia y os proponemos una serie de ejemplos prcticos:

Sintaxis
Create Table nombre_tabla ( nombre_campo_1 tipo_1 nombre_campo_2 tipo_2 nombre_campo_n tipo_n Key(campo_x,...) )

Pongamos ahora como ejemplo la creacin de la tabla pedidos que hemos empleado en captulos previos:

Create Table pedidos ( id_pedido INT(4) NOT NULL AUTO_INCREMENT, id_cliente INT(4) NOT NULL, id_articulo INT(4)NOT NULL, fecha DATE, cantidad INT(4), total INT(4), KEY(id_pedido,id_cliente,id_articulo) )

BD Clase 1 - Pgina 23

Base de Datos
Mg. Prof. Carlos DESMARAS
En este caso creamos los campos id los cuales son considerados de tipo entero de una longitud especificada por el nmero entre parntesis. Para id_pedido requerimos que dicho campo se incremente automticamente (AUTO_INCREMENT) de una unidad a cada introduccin de un nuevo registro para, de esta forma, automatizar su creacin. Por otra parte, para evitar un mensaje de error, es necesario requerir que los campos que van a ser definidos como ndices no puedan ser nulos (NOT NULL). El campo fecha es almacenado con formato de fecha (DATE) para permitir su correcta explotacin a partir de las funciones previstas a tal efecto. Finalmente, definimos los ndices enumerndolos entre parntesis precedidos de la palabra KEY o INDEX. Del mismo modo podramos crear la tabla de artculos con una sentencia como sta:

Create Table articulos ( id_articulo INT(4) NOT NULL AUTO_INCREMENT, titulo VARCHAR(50), autor VARCHAR(25), editorial VARCHAR(25), precio REAL, KEY(id_articulo) )

En este caso puede verse que los campos alfanumricos son introducidos de la misma forma que los numricos. Volvemos a recordar que en tablas que tienen campos comunes es de vital importancia definir estos campos de la misma forma para el buen funcionamiento de la base. Muchas son las opciones que se ofrecen al generar tablas. No vamos a tratarlas detalladamente pues sale de lo estrictamente prctico. Tan slo mostraremos algunos de los tipos de campos que pueden ser empleados en la creacin de tablas con sus caractersticas:

BD Clase 1 - Pgina 24

Base de Datos
Mg. Prof. Carlos DESMARAS

Tipo INT o INTEGER DOUBLE o REAL CHAR VARCHAR DATE BLOB BIT o BOOLEAN

Bytes 4 8 1/caracter

Descripcin Nmeros enteros. Existen otros tipos de mayor o menor longitud especficos de cada base de datos. Nmeros reales (grandes y con decimales). Permiten almacenar todo tipo de nmero no entero. Alfanumricos de longitud fija predefinida Fechas, existen multiples formatos especficos de cada base de datos Almacenan un bit de informacin (verdadero o falso)

1/caracter+1 Alfanumricos de longitud variable 3

1/caracter+2 Grandes textos no indexables 1

BD Clase 1 - Pgina 25

También podría gustarte