Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Base De Datos
Una base de datos, es una colección de archivos relacionado. Una base de
datos y el software que controla la base de datos, se denominado sistema de
administración de base de datos (DBMS).
“Supongamos que tenemos un archivo que contiene los pedidos de venta de
una tienda, existiría otro archivo de productos, en el que se incluyen los registros
sobre existencias. Para completar un pedido, necesitará buscar el producto en el
archivo de pedidos y los niveles de existencias relativos a dicho producto en el
archivo de productos, con la ayuda de un DBMS podrá llevar acabo esta tarea.”
La mayor parte de las bases de datos actuales son de tipo relacional. se
denomina así porque utiliza las tablas de datos relacionadas por un campo en
común.
Ejemplo: La relación entre las dos tablas se establece a partir del campo
stock_code. Dos tablas cualesquiera se pueden relacionar utilizando un
campo común.
La primera fila de la primera tabla es un registro el cual describe el producto A416,
que es una caja de clavos que cuesta $0.14.
Los datos de la columna Description de la primera tabla son campos.
mysql> create table nombre de la tabla (atributo tipo de dato(longitud del dato),
atributo2 tipo de dato(longitud), .,,.,.,., );
mysql> create table sales_rep(employee_number INT, surname
VARCHAR(50), first_name VARCHAR(30), comission TINYINT);
Nota: No olvide introducir el punto y coma al final de la línea. Todos los comandos
de MySQL deben terminar en un punto y coma;
SHOW TABLES
El comando SHOW TABLES muestra todas las tablas existentes en la base
de datos actual. Este comando cobra sentido cuando manejamos bases de
datos con grandes cantidades de tablas e inclusive cunado tenemos que
trabajar sobre una base de datos que no hayamos creado, este comando
resultará de gran valor.
DECRIBE
Es el comando que muestra la estructura de la tabla. Para comprobar que
MySQL ha creado la tabla correctamente.
INSERT
Para introducir datos en la tabla, se utiliza la instrucción SQL INSERT para
crear un registro, de la siguiente forma:
El formato del archivo de datos debe ser correcto, sin excepciones. En este
caso, en el que estamos utilizando los valores predeterminados, el archivo de
texto incluye cada registro en una nueva línea y cada campo se separa por
medio de un tabulador. Si asumimos que el carácter \t representa un
tabulador y que cada línea termina en un carácter de una nueva línea, el
archivo presentaría este aspecto:
1\tRive\tSol\t10
2\tGordimer\tCharlene\t15
3\tSerote\tMike\t10
Correspondencia de patrones
Examinaremos algunos elementos adicionales de la instrucción SELECT.
Imagine que queremos recuperar los datos de Mike Serote. Sencillo, ya que
bastara con utilizar la siguiente consulta:
ORDER BY - Ordenación
Existe otra clausula útil y de uso habitual que permite la ordenación de los
resultados. Una lista alfabética de empleados resulta de utilidad y puede
recurrir a cláusula ORDER BY para generarla.
De nuevo, puede ordenar los registros de los tres empleados que tienen
asignado un 10% de comisión. Para ello, puede utilizar la palabra clave ASC.
COUNT() - Contar
MySQL muestra el número de filas, como 4 rows inset. En ocasiones, sólo
necesitaremos saber el número de resultado y no los contenidos de los
registros. Para ello se utilizará la función COUNT().
mysql> UPDATE nombre de la tabla SET nombre del campo + condición WHERE
condición;
mysql> UPDATE sales-rep SET comisión=12 WHERE employee_number = 1;
Nota: Tenga cuidado de nuevo al aplicar una condición. Sin la cláusula WHERE.
actualizara la comisión de todos los registros a un 12%.
Nota: Tenga cuidado la tabla y todos sus datos desaparecerán sin ningún aviso ni
notificación, por lo tanto, tenga cuidado con esta instrucción.
mysql> ALTER TABLE nombre de la tabla ADD nombre del campo DATE (tipo de
dato del campo);
mysql> ALTER TABLE sales-rep ADD date_joined DATE;
También puede utilizar la cláusula MODIFY, sin que resulte necesario repetir
el nombre, de la siguiente forma:
Funciones de fecha
Para poder introducir los registros de un campo DATE hacemos uso de la
siguiente instrucción:
Consultas Avanzadas
La mayor parte de las consultas suelen ser bastantes simples, además
cuanto mejor estén diseñadas más sencillas resultara las consultas. Sin
embargo, existen situaciones en la que se necesitara más, el caso más
habitual es la unión de dos o más tablas, este tipo de consulta se denomina
combinación.
Aplicar un nuevo encabezado a una columna con AS
Las consultas anteriores no resultaban muy sencillas de leer o de entender.
Es por ello que, modificaremos la consulta anterior ordenando los valores
devueltos por los meses e incluyendo los nombres en los resultados.
También se introducen alias como palabra clave AS para asignar otro nombre
a una columna:
sales ->
customer ->
mysql> SELECT nombres de los campos FROM nombres de las tablas WHERE
condiciones de la relación;
mysql> SELECT sales_rep,customer,value,first_name,surname FROM
sales,sales_rep WHERE code=1 AND sales_rep.employee_number =
sales.sales_rep;
Sin utilizar los nombres de las tablas delante de los nombres de archivo
porque los campos de las diferentes tablas utilizan nombres exclusivos.
También podríamos haber escrito la consulta de la siguiente forma:
Su resultado puede que no coincidan con estos de manera exacta por el paso
del tiempo y es posible que esté utilizando una fecha posterior.
Nota: ¿Se le ocurre un caso en el que la consulta anterior sobre la edad no
funcione? Pues si el año actual coincide con el año de nacimiento, obtendrá -1 como
respuesta.
mysql> CREATE TABLE test4 (id INT(3) ZEROFILL, id2 INT ZEROFILL);
mysql> INSERT INTO test4 (id,id2) VALUES(22,22);
Por otro lado, la palabra clave NATIONAL solo se incluye por razones de
compatibilidad con SQL ANSI. (ANSI equivale a instituto americano de
normalización y han desarrollado un estándar para SQL). Esta indica al
DBMS que utilice el conjunto de caracteres predeterminados de MySQL.
Las columnas ENUM incluyen algunas funciones especiales. Si agrega un
valor no válido, se insertará una cadena vacía (“ ”).
Nota: Puede crear una columna de tipo CHAR(0). Resulta de utilidad al trabajar con
aplicaciones antiguas que dependan de la existencia de un campo, pero no que no
almacenen nada en él. También puede utilizarlas si necesita un campo que
contenga los dos valores, NULL y “ ”.
Tipos de columna de fecha y hora.
Se diseñaron con la exigencia de datos de tiempo temporal y se puede
utilizar para almacenar datos tales como la hora del día o fechas de
nacimiento.
Nota: Puede crear una columna de tipo CHAR(0). Resulta de utilidad al trabajar con
aplicaciones antiguas que dependan de la existencia de un campo, pero no que no
almacenen nada en él. También puede utilizarlas si necesita un campo que
contenga los dos valores, NULL y “ ”.
Opciones de MySQL.
La función de resignación automática permite pulsar la tecla TAB y completar
la tabla o el campo. Aunque si existen muchas tablas o campos esta
operación puede resultar lenta. Las opciones -A o - no - auto -rehash
desactiva esta función.
La opción -E imprime los resultados verticalmente. Puede obtener este tipo
de resultados, aunque no contenga establecida la conexión a MySQL con
esta opción activada si utiliza \G al final de la consulta.
Nota: Para hacer uso de las instrucciones anteriores basta con indicarlas antes de
hacer conexión con mysql, por ejemplo: usuario:~$ mysql -u root -p -i ( -i es una
instrucción que elimina los espacios evitando así errores de sintaxis en algunos
casos como lo podrían ser las consultas MAX).
Análisis de los distintos tipos de tablas.
Existen dos tipos de tablas de transacción segura (InnoDB y BDB). El resto
(ISAM, MyISAM, MERGE y HEAP) no son de transacción segura. La elección
del tipo de tabla adecuado puede afectar enormemente al rendimiento.
Tablas ISAM
Las tablas de tipo Método de acceso secuencia indexado (ISAM) era el
estándar antiguo de MySQL, hasta que fueron sustituidas por las tablas
MyISAM. Por lo tanto, es probable que sólo se tope con este tipo de tablas si
está trabajando con bases de datos antiguas. La principal diferencia entre las
dos es que el índice de las tablas MyISAM es mucho más pequeño que el de
las tablas ISAM, de manera que una instrucción SELECT con un índice sobre
una tabla MyISAM utilizara muchos menos recursos del sistema, en
contrapartida de las tablas de tipo MyISAM que necesitan mucha más
potencia de procesador para insertar un registro dentro de un índice más
comprimido.
Las tablas ISAM presentan las siguientes características:
1. ISAM almacena los archivos de datos con su extensión .ISD y el
archivo de índice con una extensión .ISM.
2. Las tablas no son archivos binarios portables entre diferentes equipos
o sistemas operativos. En otras palabras, no basta con copiar los
archivos ISD e ISM. Necesitará utilizar un método de volcado, como
mysqldump.
Si se topa con una tabla de tipo ISAM, debería convertirla a tipo MyISAM ya
que resultan más eficaces. Las tablas MyISAM permiten además utilizar un
mayor número de las funciones de MySQL. Utilice la siguiente secuencia
para convertir una tabla ISAM a una tabla MyISAM:
Tablas MyISAM
Los índices MyISAM son más pequeños que los índices ISAM. Debido a ello,
el sistema utiliza menos recursos al realizar una operación de selección
mediante un índice de una tabla MyISAM. Sin embargo, MyISAM requiere de
más potencia de procesador para insertar un registro dentro de un índice
mucho más comprimido.
Los archivos de datos MyISAM llevan asignada la extensión .MYD y la
extensión de los índices es .MYI. Además, bases de datos MyISAM se
almacenan en un directorio.
Existen tres subtipos de tablas MyISAM: Estáticas, dinamias y comprimidas.
Al crear las tablas, MySQL escoge entre el tipo dinámico el tipo estático. El
tipo predeterminado son las tablas estáticas y se crean si no incluyen
columnas VARCHAR, BLOB o TEXT. De lo contrario, la tabla se convierte en
tabla dinámica.
Tablas estáticas
Las tablas estáticas o tablas de longitud fija. En la figura inferior, se
muestra los caracteres almacenados en una mini tabla. El campo es un
nombre definido como CHAR(10).