martes, 24 de abril de 2012

MySQL


Listado y descripción de los distintos tipos de datos de MySQL.



Después de la fase de diseño de una base de datos, y una vez se ha realizado el paso a tablas del mismo, en necesario crear las tablas correspondientes dentro de la base de datos. Para cada campo de cada una de las tablas, es necesario determinar el tipo de datos que contiene, para de esa forma ajustar el diseño de la base de datos, y conseguir un almacenamiento óptimo con la menor utilización de espacio. El presente artículo describe cada uno de los tipos de datos que puede tener un campo en Mysql, para la versión 4.xx.xx.

Los tipos de datos que puede haber en un campo, se pueden agrupar en tres grandes grupos:

Tipos numéricos


Tipos de Fecha


Tipos de Cadena

1 Tipos numéricos:

Existen tipos de datos numéricos, que se pueden dividir en dos grandes grupos, los que están en coma flotante (con decimales) y los que no.

TinyInt: es un número entero con o sin signo. Con signo el rango de valores válidos va desde -128 a 127. Sin signo, el rango de valores es de 0 a 255

Bit ó Bool: un número entero que puede ser 0 ó 1

SmallInt: número entero con o sin signo. Con signo el rango de valores va desde -32768 a 32767. Sin signo, el rango de valores es de 0 a 65535.

MediumInt: número entero con o sin signo. Con signo el rango de valores va desde -8.388.608 a 8.388.607. Sin signo el rango va desde 0 a16777215.

Integer, Int: número entero con o sin signo. Con signo el rango de valores va desde -2147483648 a 2147483647. Sin signo el rango va desde 0 a 429.4967.295

BigInt: número entero con o sin signo. Con signo el rango de valores va desde -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. Sin signo el rango va desde 0 a 18.446.744.073.709.551.615.

Float: número pequeño en coma flotante de precisión simple. Los valores válidos van desde -3.402823466E+38 a -1.175494351E-38, 0 y desde 1.175494351E-38 a 3.402823466E+38.

xReal, Double: número en coma flotante de precisión doble. Los valores permitidos van desde -1.7976931348623157E+308 a -2.2250738585072014E-308, 0 y desde 2.2250738585072014E-308 a 1.7976931348623157E+308

Decimal, Dec, Numeric: Número en coma flotante desempaquetado. El número se almacena como una cadena



Tipo de Campo

Tamaño de Almacenamiento

TINYINT

1 byte

SMALLINT

2 bytes

MEDIUMINT

3 bytes

INT

4 bytes

INTEGER

4 bytes

BIGINT

8 bytes

FLOAT(X)

4 ú 8 bytes

FLOAT

4 bytes

DOUBLE

8 bytes

DOUBLE PRECISION

8 bytes

REAL

8 bytes

M+2 bytes sí D > 0, M+1 bytes sí D = 0

DECIMAL(M,D

M+2 bytes if D > 0, M+1 bytes if D = 0

NUMERIC(M,D)



2 Tipos fecha:

A la hora de almacenar fechas, hay que tener en cuenta que Mysql no comprueba de una manera estricta si una fecha es válida o no. Simplemente comprueba que el mes esta comprendido entre 0 y 12 y que el día esta comprendido entre 0 y 31.
Date: tipo fecha, almacena una fecha. El rango de valores va desde el 1 de enero del 1001 al 31 de diciembre de 9999. El formato de almacenamiento es de año-mes-dia

DateTime: Combinación de fecha y hora. El rango de valores va desde el 1 de enero del 1001 a las 0 horas, 0 minutos y 0 segundos al 31 de diciembre del 9999 a las 23 horas, 59 minutos y 59 segundos. El formato de almacenamiento es de año-mes-dia horas:minutos:segundos

TimeStamp: Combinación de fecha y hora. El rango va desde el 1 de enero de 1970 al año 2037. El formato de almacenamiento depende del tamaño del campo:



Tamaño

Formato

AñoMesDiaHoraMinutoSegundo aaaammddhhmmss

14

AñoMesDiaHoraMinutoSegundo aammddhhmmss

12

8

ñoMesDia aaaammdd

6

AñoMesDia aammdd

4

AñoMes aamm

2

Año aa



Time: almacena una hora. El rango de horas va desde -838 horas, 59 minutos y 59 segundos a 838, 59 minutos y 59 segundos. El formato de almacenamiento es de 'HH:MM:SS'

Year: almacena un año. El rango de valores permitidos va desde el año 1901 al año 2155. El campo puede tener tamaño dos o tamaño 4 dependiendo de si queremos almacenar el año con dos o cuatro dígitos.



Tipo de Campo

Tamaño de Almacenamiento

DATE

3 bytes

DATETIME

8 bytes

TIMESTAMP

4 bytes

TIME

3 bytes

YEAR

1 byte



3 Tipos de cadena:

Char(n): almacena una cadena de longitud fija. La cadena podrá contener desde 0 a 255 caracteres.

VarChar(n): almacena una cadena de longitud variable. La cadena podrá contener desde 0 a 255 caracteres.

Dentro de los tipos de cadena se pueden distinguir otros dos subtipos, los tipo Test y los tipo BLOB (Binary large Object)

La diferencia entre un tipo y otro es el tratamiento que reciben a la hora de realizar ordenamientos y comparaciones. Mientras que el tipo test se ordena sin tener en cuenta las Mayúsculas y las minúsculas, el tipo BLOB se ordena teniéndolas en cuenta.

Los tipos BLOB se utilizan para almacenar datos binarios como pueden ser ficheros.

TinyText y TinyBlob: Columna con una longitud máxima de 255 caracteres.

Blob y Text: un texto con un máximo de 65535 caracteres.

MediumBlob y MediumText: un texto con un máximo de 16.777.215 caracteres.

LongBlob y LongText: un texto con un máximo de caracteres 4.294.967.295. Hay que tener en cuenta que debido a los protocolos de comunicación los paquetes pueden tener un máximo de 16 Mb.

Enum: campo que puede tener un único valor de una lista que se especifica. El tipo Enum acepta hasta 65535 valores distintos

Set: un campo que puede contener ninguno, uno ó varios valores de una lista. La lista puede tener un máximo de 64 valores.



Tipo de campo

Tamaño de Almacenamiento

CHAR(n)

n bytes

VARCHAR(n)

n +1 bytes

TINYBLOB, TINYTEXT

Longitud+1 bytes

BLOB, TEXT

Longitud +2 bytes

MEDIUMBLOB, MEDIUMTEXT

Longitud +3 bytes

LONGBLOB, LONGTEXT

Longitud +4 bytes

ENUM('value1','value2',...)

1 ó dos bytes dependiendo del número de valores

SET('value1','value2',...)

1, 2, 3, 4 ó 8 bytes, dependiendo del número de valores



Diferencia de almacenamiento entre los tipos Char y VarChar



Almace
namiento

Almace
namiento

Valor

CHAR(4)

VARCHAR(4)

''

''

4 bytes

"

1 byte

'ab'

'ab '

4 bytes

'ab'

3 bytes

'abcd'

'abcd'

4 bytes

'abcd'



'abcdefgh'

'abcd'

4 bytes

'abcd'

5 bytes



Sintaxis de sentencias SQL

Tabla de contenidos

13.1. Sentencias de definición de datos (Data Definition Statements)     [+/-]
Sentencias de definición de datos (Data Definition Statements)

[+/-]

13.1.1. Sintaxis de ALTER DATABASE

13.1.2. Sintaxis de ALTER TABLE

13.1.3. Sintaxis de CREATE DATABASE

13.1.4. Sintaxis de CREATE INDEX

13.1.5. Sintaxis de CREATE TABLE

13.1.6. Sintaxis de DROP DATABASE

13.1.7. Sintaxis de DROP INDEX

13.1.8. Sintaxis de DROP TABLE

13.1.9. Sintaxis de RENAME TABLE

13.2. Sentencias de manipulación de datos (Data Manipulation Statements)     [+/-]
Sentencias de manipulación de datos (Data Manipulation Statements)

[+/-]

13.2.1. Sintaxis de DELETE

13.2.2. Sintaxis de DO

13.2.3. Sintaxis de HANDLER

13.2.4. Sintaxis de INSERT

13.2.5. Sintaxis de LOAD DATA INFILE

13.2.6. Sintaxis de REPLACE

13.2.7. Sintaxis de SELECT

13.2.8. Sintaxis de subconsultas

13.2.9. Sintaxis de TRUNCATE

13.2.10. Sintaxis de UPDATE

13.3. Sentencias útiles de MySQL     [+/-]
Sentencias útiles de MySQL [+/-]
Sentencias útiles de MySQL

[+/-]

13.3.1. Sintaxis de DESCRIBE (Información acerca de las columnas)

13.3.2. Sintaxis de USE


13.4. Comandos transaccionales y de bloqueo de MySQL     [+/-]
Comandos transaccionales y de bloqueo de MySQL

[+/-]

13.4.1. Sintaxis de START TRANSACTION, COMMIT y ROLLBACK

13.4.2. Sentencias que no se pueden deshacer

13.4.3. Sentencias que causan una ejecución (commit) implícita

13.4.4. Sintaxis de SAVEPOINT y ROLLBACK TO SAVEPOINT

13.4.5. Sintaxis de LOCK TABLES y UNLOCK TABLES

13.4.6. Sintaxis de SET TRANSACTION

13.5. Sentencias de administración de base de datos     [+/-]
Sentencias de administración de base de datos

[+/-]

13.5.1. Sentencias para la gestión de cuentas

13.5.2. Sentencias para el mantenimiento de tablas

13.5.3. Sintaxis de SET

13.5.4. Sintaxis de SHOW

13.5.5. Otras sentencias para la administración

13.6. Sentencias de replicación     [+/-]
Sentencias de replicación

[+/-]

13.6.1. Sentencias SQL para el control de servidores maestros

13.6.2. Sentencias SQL para el control de servidores esclavos


13.7. Sintaxis SQL de sentencias preparadas

Sintaxis SQL de sentencias preparadas

MySQL 5.0 proporciona soporte para comandos preparados en la parte del servidor. Este soporte aprovecha del protocolo binario cliente-servidor implementado en MySQL 4.1, dado que use una interfaz de programación cliente apropiada. Las interfaces candidatas incluyen la biblioteca de la API de C de MySQL y MySQL Connector/NET. Por ejemplo, la API C proporciona un conjunto de llamadas de funciones que prepararn su API de comandos preparados. Consulte Sección 24.2.4, Sentencias preparadas de la API C. Otras interfaces de lenguajes pueden proporcionar soporte para comandos preparados que usen el protocolo binario enlazando la biblioteca cliente C, un ejemplo es la extensión mysqli extension in PHP 5.0.

Una interfaz SQL alternativa para comandos preparados está disponible Su intefaz no es tan eficiente como usar el protocolo binario mediante una API de comandos preparados, pero no necesita programación porque está disponible directamente a nivel SQL:

Puede usarlo cuando no haya interfaz programable diponible

Puede usarlo desde cualquier programa que le permita enviar comandos SQL al servidor, tales como el programa cliente mysql .

Puede usarlo incluso si el cliente está usando una antigua versión de la biblioteca cliente. El único requerimiento es que sea capaz de conectar a un servidor lo suficientemente reciente para soporta sintaxis SQL para comandos preparados.

La sintaxis SQL para comandos preparados está pensada para usar en situaciones como la siguiente:

Puede querer testear cómo fucionan los comandos preparados en su aplicación antes de codificar la aplicación. O quizás una aplicación tenga un problema ejecutando comandos preparados y quiera determinar interactivamente cuál es el problema.

Quiere crear un test de uso que describa un problema que está teniendo con comandos preparados, así que puede perparar un reporte de error.

Necesita usar comandos preparados pero no tiene acceso a la API de programación que los soporta.

La sintaxis SQL para comandos preparados se abasa en tres comandos SQL:

PREPARE stmt_name FROM preparable_stmt;

EXECUTE stmt_name [USING @var_name [, @var_name] ...];

{DEALLOCATE | DROP} PREPARE stmt_name;


El comando PREPARE prepara un comando y le asigna un nombre, stmt_name, con el que referirse al comando posteriormente. Los nombres de comando no son sensibles a mayúsculas. preparable_stmt es una cadena literal o una variable de usuario que contenga el texto del comando. El texto debe representar un comando SQL único, no varios. Dentro del comando, pueden usarse caracteres '?' como marcadores de parámetros para indicar dónde estarán los valores en la consulta posterior cuando la ejecute. Los caracteres '?' no deben delimitarse con comillas, incluso si pretende ligarlos con valores de cadenas.

Si un comando preparado con ese nombre existe, se elimina implícitamente antes que se prepare el nuevo comando. Esto significa que si el nuevo comando contiene un error y no puede preparase, se retorna un error y no existe un comando con el nombre dado.

El alcance de los comandos preparados es la sesión de cliente dentro de la que se crea. Otros clintes no pueden verlos.

Tras preparar un comando, lo ejecuta con un comando EXECUTE que se refiere al nombre de comando preparado. Si el comando preparado contiene cualquier marcador de parámetro, debe añadir una cláusula USING que liste las variables de usuario conteniendo los valores a ligar con los parámetros. Los valores de parámetros pueden proporcionarse sólo por variables de usuario, y la cláusula USING debe nombrar exactamente tantas variables como el número de marcadores de parámetros en el comando.

Puede ejecutar un comando preparado dado varias veces, pasando distintas variables al mismo o configurando las variables con distintos valores para cada ejecución.

Para eliminar un comando preparado, use el comando DEALLOCATE PREPARE . Tratar de ejecutar un comando preparado tras borrarlo provoca un error.

Si termina una sesión de cliente sin borrar un comando preparado préviamente, el servidor lo borra automáticamente.

Los siguientes comandos SQL pueden usarse en comandos preparados: CREATE TABLE, DELETE, DO, INSERT, REPLACE, SELECT, SET, UPDATE, y la mayoría de comandos SHOW . Otros comandos no se soportan todavía.

Los siguientes ejemplos muestran dos formas equivalentes de preparar un comando que calcula la hipotenusa de un triángulo dadas las longitudes de los dos catetos.

El primer ejemplo muestra cómo crear un comando preparado usando una cadena literal para proporcionar el texto del comando:

mysql> PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
mysql> SET @a = 3;
mysql> SET @b = 4;
mysql> EXECUTE stmt1 USING @a, @b;
+------------+
| hypotenuse |
+------------+
|          5 |
+------------+
mysql> DEALLOCATE PREPARE stmt1;

El segundo ejemplo es similar, pero proporciona el texto del comando como variable de usuario:

mysql> SET @s = 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
mysql> PREPARE stmt2 FROM @s;
mysql> SET @a = 6;
mysql> SET @b = 8;
mysql> EXECUTE stmt2 USING @a, @b;
+------------+
| hypotenuse |
+------------+
|         10 |
+------------+
mysql> DEALLOCATE PREPARE stmt2;

La sintaxis SQL para comandos preparados no puede usarse anidada. Esto es, un comando pasado a PREPARE no puede ser el mismo un comando PREPARE, EXECUTE, o DEALLOCATE PREPARE .

Además, la sintaxis SQL para comandos preparados es distinta de la usada en llamadas a la API de comandos preparados. Por ejemplo, use la función mysql_stmt_prepare() de la API C para preparar un comando PREPARE, EXECUTE, o DEALLOCATE PREPARE .

La sintaxis SQL para comandos preparados no puede usarse dentro de procedimientos almacenados y funciones.

Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original.
Este capítulo describe la sintaxis para los comandos SQL soportados en MySQL.

Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original.
Restricciones de las tablas InnoDB

Una tabla no puede contener más de 1000 columnas.

La longitud máxima interna de una clave es 3500 bytes, pero MySQL la restringe a 1024 bytes.

La longitud máxima de fila, excepto para columnas VARCHAR, BLOB y TEXT, es ligeramente inferior a la mitad de una página de base de datos. Es decir, cerca de 8000 bytes. Las columnas LONGBLOB y LONGTEXT deben ser de menos de 4GB, y la longitud total de la fila, incluyendo las columnas BLOB y TEXT, debe ser de menos de 4GB. InnoDB almacena los primeros 768 bytes de una columna VARCHAR, BLOB, o TEXT en la fila, y el resto, en páginas separadas.

En algunos sistemas operativos antiguos, los ficheros de datos deben ser de menos de 2GB.

El tamaño combinado de los ficheros de log de InnoDB debe ser inferior a 4GB.

El tamaño mínimo del espacio de tablas es de 10MB. El tamaño máximo es de cuatrocientos mil millones de páginas de base de datos (64TB). Este es también el tamaño máximo para una tabla.

Las tablas InnoDB no admiten índices FULLTEXT.

Las tablas InnoDB no admiten tipos de columna espaciales.

ANALYZE TABLE determina la cardinalidad efectuando 10 accesos al azar en cada uno de los árboles de índices y actualizando la cardinalidad del índice con una estimación acorde. Dado que son solamente estimaciones, distintas ejecuciones de ANALYZE TABLE pueden producir resultados diferentes. Esto convierte a ANALYZE TABLE en una herramienta rápida sobre tablas InnoDB, pero no con el mismo nivel de exactitud que si considerara todas las filas al hacer el recuento.

MySQL emplea las estimaciones de cardinalidad de los índices solamente para la optimización de uniones. Si una unión no se optimiza en la manera adecuada, se puede intentar el uso de ANALYZE TABLE. En los pocos casso en que ANALYZE TABLE no produce valores suficientemente buenos para las tablas, se puede emplear FORCE INDEX en las consultas para forzar el uso de un índice en particular, o establecer el valor de max_seeks_for_key para asegurarse de que MySQL dará preferencia a las búsquedas en índices por sobre el examen de las tablas. Consulte Sección 5.3.3, Variables de sistema del servidor. Consulte Sección A.6, Cuestiones relacionadas con el optimizador.

En Windows, InnoDB siempre almacena internamente en minúsculas los nombres de tablas y bases de datos. Para mover bases de datos en formato binario desde Unix a Windows o a la inversa, se deberán haber escrito en minúsculas todos los nombres de tablas y bases de datos.

Advertencia: ¡No deben convertirse las tablas de sistema de MySQL de la base de datos mysql desde su formato original MyISAM a InnoDB! Esta es una operación no admitida. Si se lleva a cabo, MySQL no se podrá ejecutar hasta que se recuperen las tablas de sistema anteriores desde una copia de respaldo o se las regenere con el script mysql_install_db.

InnoDB no lleva una cuenta interna de las filas en una tabla. (Esto sería realmente complicado a causa de la multiversión). Para procesar una sentencia SELECT COUNT(*) FROM T, InnoDB debe examinar un índice de la tabla, lo cual lleva algún tiempo si el índice no está completamente dentro del pool de buffer. Para disponer de un recuento más rápido, se debe crear una tabla de recuento y hacer que la aplicación la actualice a medida que se producen inserciones y eliminaciones. Si una tabla no se modifica a menudo, utilizar el cache de consultas (query cache) de MySQL es una buena solución. También puede emplearse SHOW TABLE STATUS si es suficiente un recuento aproximado de filas. Consulte Sección 15.11, Consejos de afinamiento del rendimiento de InnoDB.

Para una columna AUTO_INCREMENT, siempre se debe definir un índice para la tabla, el cual debe contener solamente a la columna AUTO_INCREMENT. En tablas MyISAM, la columna AUTO_INCREMENT puede formar parte de un índice junto a otras columnas.

InnoDB no admite la opción AUTO_INCREMENT en sentencias CREATE TABLE o ALTER TABLE, la cual sirve para establecer el valor inicial de la secuencia. Para especificar este valor en InnoDB, debe insertarse una fila con un valor que sea uno menos que el deseado, y luego borrarla, o insertar la primera fila especificando un valor determinado.

Luego de reiniciar el servidor MySQL, InnoDB puede reutilizar un valor antiguo para una columna AUTO_INCREMENT (esto es, un valor que se hubiese asignado a una transacción finalmente cancelada).

Cuando una columna AUTO_INCREMENT sobrepasa el máximo valor que es capaz de almacenar, InnoDB coloca la columna en -9223372036854775808 (si es BIGINT) o en 1 (si es BIGINT UNSIGNED). Sin embargo, como los valores BIGINT tienen 64 bits, hay que notar que si se insertara un millón de filas por segundo, se demoraría cerca de trescientos mil años en agotar los números disponibles. Con otros tipos de columnas enteros, ocurre un error de clave duplicada. Esto es similar al funcionamiento de MyISAM, ya que es en mayor medida el comportamiento general de MySQL y no pertenece a ningún motor de almacenamiento en particular.

DELETE FROM nom_tabla no regenera la tabla sino que elimina todas sus filas, una por una.

TRUNCATE tbl_name se implementa en InnoDB como DELETE FROM tbl_name y no inicializa el contador de AUTO_INCREMENT.

SHOW TABLE STATUS no proporciona estadísticas precisas en tablas InnoDB, excepto para el tamaño físico reservado por la tabla. El recuento de filas es solamente una estimación utilizada para la optimización SQL.

En MySQL 5.0, la operación LOCK TABLES establece dos bloqueos en cada tabla si innodb_table_locks=1, que es el valor por defecto. Adicionalmente al bloqueo de tabla en la capa MySQL, también se establece un bloqueo de tabla en InnoDB. En versiones antiguas de MySQL no se establecía el bloqueo en InnoDB, para volver a este comportamiento debe especificarse innodb_table_locks=0. Si no se establece el bloqueo InnoDB, LOCK TABLES se completa aún cuando algunos registros de las tablas estén bloqueados por otras transacciones.

Todos los bloqueos InnoDB efectuados por una transacción se liberan cuando la transacción se confirma o se cancela. Por lo tanto, no tiene mucho sentido invocar LOCK TABLES en tablas InnoDB cuando se está en el modoAUTOCOMMIT=1, porque los bloqueos establecidos sobre una tabla InnoDB se liberarán inmediatamente.

Algunas veces sería útil bloquear tablas extensas en el curso de una trasacción. Desafortunadamente, LOCK TABLES, en MySQL, emite implícitamente un COMMIT y un UNLOCK TABLES. Está planeada una variante para InnoDB de LOCK TABLES que puede ejecutarse dentro de una transacción.

La sentencia LOAD TABLE FROM MASTER empleada para la replicación de servidores esclavos no funciona aún con tablas InnoDB. Una solución temporal es cambiar a MyISAMla tabla en el servidor amo (master), efectuar la carga, y volver a cambiar la tabla en el amo (master) a su motor original InnoDB.

El tamaño por defecto de cada página de base de datos en InnoDB es de 16KB. Se puede establecer en valores entre 8KB y 64KB recompilando el código. Se deben modificar los valores de UNIV_PAGE_SIZE y UNIV_PAGE_SIZE_SHIFT en el fichero fuente univ.i.

En MySQL 5.0, los disparadores (triggers) aún no son activados por modificaciones efectuadas en cascada a través de claves foráneas.

lunes, 16 de abril de 2012

MySQL

MySQL

MySQL es un sistema de administración de bases de datos.
Una base de datos es una colección estructurada de tablas que contienen datos.
Esta puede ser desde una simple lista de compras a una galería de pinturas o
el vasto volumen de información en una red corporativa. Para agregar, acceder
a y procesar datos guardados en una computadora

Caracteristicas
este es un programa q tiene diversas caracteristicas como el ser
un software libre, se puede ajustar el codigo de alguna base de datos
ya realizada a como el usuario mas le convenga puede modificar parcial
o totalmente el codigo y si desea modificar alguna base q es comercial
compra la licencia de privacidad y asi puede adaptar y mejorar ese codigo
para su futura venta como una base de datos, a mas de q es facil de manejar
y entender.

Comandos
Los mas basicos acontinuación.
Servidor Windows:
Mysqld
Arranque como usuario:
mysql –u usuario –p clave
En el caso  en el que el servidor no se encuentre en el ordenador que estamos trabajando la
orden de  uso será:
mysql –h nombre_host –u usuario –p clave
•Consultas generales sobre las bases de datos
Mostrar las bases de datos:
show databases;
Mostrar las bases de datos seleccionadas:
select databases();
Mostrar las tablas que contiene una base de datos:
show tables;
Seleccionar una base de datos:
use nombre_base;
Describir la estructura de campos de una tabla:
describe nombre_tabla;
•Creación de bases de datos, tablas y registros
Crear una base de datos:
create database nombre_base;
Creación de una tabla:
create [temporary] table [if no exists] nombre_tabla (


[último campo]  );
[temporary] --> la tabla existirá mientras exista la conexión con el cliente actual o hasta que se
emita la instrucción drop table.
[if no exist] --> si existe la tabla no se crea una nueva.



Definicion

MySQL es un sistema de gestión de bases de datos (SGBD) multiusuario, multiplataforma y de código abierto.
MySQL pertenece a la compañía sueca MySQL AB, a la que le pertenece casi todos los derechos del código fuente.
La compañía desarrolla y mantiene el sistema, vendiendo soporte y servicios, como también las licencias para usar MySQ


Uso
El objetivo de este tutorial es mostrar el uso del programa cliente mysql para crear y
usar una sencilla base de datos. mysql (algunas veces referido como "monitor mysql") es un programa
interactivo que permite conectarnos a un servidor MySQL, ejecutar algunas consultas, y ver los resultados,
 mysql puede ser usado también en modo batch: es decir, se pueden colocar toda una serie de consultas en
un archivo, y posteriormente decirle a mysql que ejecute dichas consultas.

viernes, 9 de marzo de 2012

Tarea 1: Base de datos

Bases de datos
Las bases de datos son grandes fuentes de información ya sean textos o  imágenes son muy útiles siempre y cuando sean estas alimentadas de manera correcta.
Las características de las bases de datos pueden ser muchas eso depende del programador y los permisos que les brinde o que necesiten los usuarios de estas bases de datos, dependiendo del usuario el programador puede habilitar las opción de ingresar, eliminar y modificar registros, así como los de imprimir, las bases pueden ser estáticas o dinámicas.
Bases de datos estáticas
Son las que mantienen datos que  no serán modificados como por ejemplo la pagina de  los periódicos, esa información una vez publicada no se debería modificar (a no ser que haya algún error en la información) ya que las noticias de ese día no van a variar sino hasta que en otro día ocurra algo diferente.
Bases de datos dinámicas
Estas bases de datos almacenan información que deberá ser cambiada en cierto momento como por ejemplo la base de clientes de alguna tienda o de un supermercado, ellos necesitan actualizar su base para saber siempre quien compra seguido, quien dejo de comprar y cuantos clientes nuevos tienen.
Las bases de datos mas utilizadas SQL Server, Oracle y Microsft Access


MODELO DE BASE DE DATOS
Un modelo de base de datos es el formato de una base de datos que se usa conjuntamente con un sistema de gestión de base de datos.
CARACTERISTICAS
·         Permite únicamente acceder a ver los registros de la base de datos cuando el usuario  ha ingresado una determinada cantidad de registros en ella.
·         Se puede limitar el número de entradas por cada usuario
·         Independencia de los datos
·         Se es accesible a ella a través de lenguajes de programación
·         Consultas complejas
·         Contiene datos integros
FUNCION
Para poder  definir su función cabe recalcar que en el proceso intervienen: el administrador de la base de datos,  el desarrollador de aplicaciones y los usuarios.  En si la función de la base de datos es doble pues tiene que responder a consultas de datos que contieney ejecutar actividades con la información.
MODELOS COMUNES
  • Modelo jerárquico: Es aquel donde los datos son organizados como un árbol,relacionándose a un eslabon.
  • Modelo de red: El modelo red se caracteriza porque organiza datos que usan dos fundamentales construcciones, registros llamados conjuntos
  • Modelo relacional: Es aquel  modelo de datos que se basa en la lógica de predicados y en la teoría de conjuntos.
  • Modelo de objeto: Las bases de datos de objeto introducen las ideas claves de programa de objeto, como encapsulation y polimorfismo, en el mundo de las bases de datos
EJEMPLO

Base de datos de ejemplo: Verduleros.mdb

Una base de datos de ejemplo en formato MS Access que permitirá efectuar prácticas de consultas multitabla.
Verduleros.mdb se presenta comprimido en formato .zip y muestra las siguientes tablas con su correspondiente diseño de relaciones:
  • Vendedores
  • Productos
  • Grupos de productos
  • Ventas
La base de datos ya viene precargada con algunas consultas de ejemplo (de selección simple, de totales, con campos calculados y con parámetros)
El gran número de registros que tiene en su tabla de Ventas (¡casi 5.000 registros!) la hacen ideal para prácticas intensivas de consultas.

AdjuntoTamaño
VERDULEROS.zip2.77 MB