MySQL

Anuncio
Bases de Datos
Una de las principales ventajas de trabajar con páginas dinámicas es poder almacenar los contenidos en
bases de datos. De esta forma, podemos organizarlos, actualizarlos y buscarlos más fácilmente.
Como sabemos, una base de datos es un archivo que en su interior contiene información relacionada y
organizada en tablas, donde cada fila guarda datos pertenecientes al mismo item (misma persona, mismo
producto, etc.), y cada columna guarda uno solo de esos datos (apellido, precio, etc).
Ejemplo:
BASE DE DATOS MERCADO
TABLA ARTÍCULOS
TABLA PROVEEDORES
precio stock cod_prov
cod_prov empresa
cod_articulo
descripcion
10
Manteca
3.40
40
25
25
20
Mermelada
2.30
20
45
45
30
Yogur
1.20
60
25
direccion
tel
Sancor
Velez 456
48796210
Arcor
La Plata 456
44587985
Entonces, la base de datos (BD), contiene tablas; cada tabla posee una estructura de filas y columnas,
donde cada fila se llama registro (record) y cada columna se llama campo (field). De esos campos,
podemos tener uno que va a permitir recuperar un solo registro, por lo tanto su contenido no debe
repetirse. Ese campo especial,se llama campo clave, o simplemente clave. En ciertas tablas, la clave está
compuesta por más de un campo. La clave también permite crear las relaciones entre las tablas.
Una base de datos por lo general contiene varias tablas, todas ellas relacionadas a través de un campo en
común. En el ejemplo anterior, la tabla Articulos se relaciona con la tabla Proveedores por medio del
campo cod_prov, o sea por el código de proveedor, el campo clave de la tabla Proveedores.
TABLA PROVEEDORES
Filas -> Registros
cod_prov empresa
direccion
25
Sancor Velez 456
45
Campo Clave
Arcor
La Plata 456
tel
48796210
44587985
Columnas -> Campos
PHP ofrece interfaces para el acceso a la mayoría de las bases de datos comerciales, y por ODBC a todas
las de Microsoft. Esto se realiza a partir de funciones para cada tipo de base de datos, y tambien, usando un
idioma universal: SQL (Structured Query Language) que es común a todas las bases de datos. Es muy
potente y fácil de aprender.
La base de datos más usada con PHP es MySQL. Es gratuita, eficiente y simple.
Una vez instalado el MySQL podemos ejecutar nuestras ordenes en modo MS-DOS. Según la versión del
programa, accedemos de formas diferentes; la que veremos nosotros es MySql Server 5.0. Para entrar al
mismo se debe hacer:
Inicio – Programas – MySQL – MYSQL Server 5.0 - MySQL Command Line Client
Llegados a este punto veremos cómo un mensaje de bienvenida aparece en nuestra pantalla. En estos
momentos nos encontramos dentro de la base de datos. A partir de ahí podemos realizar todo tipo de
operaciones por sentencias SQL:
Operaciones con Bases de Datos

Creación: Para crear la BD, o sea, el contenedor de tablas, se ejecutará el comando create database
desde el prompt de MySQL. Ejemplo:
mysql> create database mercado;
Si el mensaje es Query Ok, en c:\Mysql\data se creó una carpeta llamada mercado, que va a
contener las tablas cuando sean creadas.

Borrado: Se ejecuta el comando drop database:
mysql> drop database mercado;
Si el mensaje es Query Ok, en c:\Mysql\data la carpeta llamada mercado, desapareció.

Apertura: Para usar una base de datos que ya fue creada, se la debe abrir, con el comando use. Si
creamos nuevamente la base mercado y cerramos el mysql, cuando queramos volver a usarla
debemos escribir:
mysql> use mercado;

Listado de las BD del servidor: se usa el comand show databases:
mysql> show databases;
Tipos de datos
Una vez que se crea la BD, es necesario crear las tablas correspondientes dentro de la misma. Para cada
campo de las tablas, es necesario determinar el tipo de datos que va a contener. Los tipos de datos más
usados son:
Tipo de Dato
BIT / BOOLEAN /
LOGICAL / YESNO
BYTE
COUNTER /
AUTOINCREMENT
DATETIME / DATE /
TIME
Longitud
DOUBLE / FLOAT
8 bytes
INTEGER / INT
LONG
2 bytes
4 bytes
SINGLE / REAL
4 bytes
Descripción
1 byte
Valores Sí/No, o True/False
1 byte
Valor entero entre 0 y 255.
4 bytes
Número incrementado automáticamente (de tipo Long).
8 bytes
Valor de fecha u hora entre los años 100 y 9999.
CHAR(N)
1 byte por
caracter
VARCHAR(N)
1 byte por
carácter
TEXT / STRING
1 byte por
caracter
Valor real de doble precisión con un rango de –1.79769313486...
a –4.94065645841... para valores negativos, 4.94065645841... a
1.7976313448623... para valores positivos, y 0.
Entero corto entre –32768 y 32767.
Entero largo entre –2147483648 y 2147483647.
Valor real de simple precisión con un rango de –3.402823... a –
1.401298... para valores negativos , 1.401298... a 3.402823...
para valores positivos, y 0.
Cadena de longitud fija. Podrá contener desde 0 a 255
caracteres. Ejemplo: Si se escribe char(4) y la cadena solo tiene
2 caracteres, llena con espacios los otros dos.
Cadena de longitud variable. Podrá contener desde 0 a 255
caracteres. Ejemplo: Si se escribe VarChar(4) y la cadena solo
tiene 2 caracteres, almacena esos dos.
De 0 a 255 caracteres.
Operaciones con tablas

Creación: Se usa el comando create table, con el siguiente formato:
CREATE TABLE tabla (
campo1 tipo (tamaño) índice1,
campo2 tipo (tamaño) índice2,
)
Ejemplo: Creamos en la BD mercado, las tablas Artículos y Proveedores:
CREATE TABLE articulos (
cod_articulo integer primary key,
descripción text (40),
precio float,
stock float,
cod_prov integer
);
CREATE TABLE proveedores (
cod_prov integer primary key,
empresa text (40),
direccion text (40),
tel text (15),
);
Primary Key significa que esos campos son las claves primarias de cada tabla.
Si queremos ver qué tablas creamos en la BD, ejecutamos:
mysql> show tables;

Borrado: Para borrar una tabla usamos por ejemplo:
mysql> drop table proveedores;

Visualización de la estructura de una tabla: Si queremos ver qué campos contiene la tabla, de qué
tipo son y demás info, ejecutamos el comando describe:
mysql> describe articulos;

Modificación de la estructura de la tabla: Para agregar o quitar campos se usa la instrucción alter
table:
Para agregar un campo: alter table tabla add column camponuevo tipo (tamaño);
alter table proveedores add column ciudad text (20);
Para borrar un campo: en vez de add column, se coloca drop column, y se saca todo lo referente al
tipo de datos:
alter table proveedores drop column ciudad;
Manipulación de datos

Ingreso de registros: se utiliza el comando insert.
insert into tabla (campo1, campo2,...) values (valor_campo1, valor_campo2...);
Ejemplo:
insert into articulos (cod_articulo, descripcion, precio, stock,cod_prov) values (10, “Manteca”,
3.40,40,25);

Consulta de registros: Si quisiéramos ver qué registros tiene la tabla, usaríamos el comando select:
select * from articulos;
Muestra todos los campos, por eso el asterisco. Si queremos ver sólo algunos, los debemos especificar
separados por comas:
select descripcion, precio from articulos;

Modificación de registros: Para editar el contenido de uno o más campos, usamos el comando
update:
update tabla set campo1 = valor_campo1, campo2 = valor_campo2,...
Ejemplo:
update articulos set descripcion=”Margarina”, precio=4.50

Borrado de registros: se usa el comando delete:
delete from articulos;
Tener cuidado porque borra TODO el contenido de la tabla.
Cláusula where
Para consultar, modificar o borrar ciertos registros de una tabla, o sea, los que cumplen con una o más
condiciones, se agrega al final de cada comando visto la cláusula where condición:
Ejemplo, se quiere borrar sólo los registros de la tabla cuyo precio sea mayor a $4:
delete from articulos where precio > 4;
Se quiere listar todos los registros cuyos proveedor sea Arcor:
select * from proveedores where empresa=”Arcor”;
Se quiere modificar el precio de la margarina a 4.70:
update articulos set precio=4.70 where descripcion=”Margarina”;
Si se desea trabajar con más de una condición, se utilizan los operadores lógicos and, or y not:
select * from articulos where precio>5 and stock >10;
Operadores relacionales:
>
Mayor que
<
Menor que
>= Mayor o igual que
<= Menor o igual que
<>
Distinto
=
Igual
Otros operadores:
Like
In y Not In
Selecciona los registros cuyo valor de campo se asemeje, no teniendo en cuenta
mayúsculas y minúsculas.
Da un conjunto de valores para un campo para los cuales la condición de selección es (o
no) valida
Is Null y Is Not
Null
Selecciona aquellos registros donde el campo especificado esta (o no) vacío.
Between...And
Selecciona los registros comprendidos en un intervalo
Distinct
Selecciona los registros no coincidentes
Desc
Clasifica los registros por orden inverso
Comodines:
* Sustituye a todos los campos
% Sustituye a cualquier cosa o nada dentro de una cadena
_ Sustituye un solo carácter dentro de una cadena
Ejemplos:
Suponiendo que tenemos una tabla llamada clientes: En esta sentencia seleccionamos todos los
clientes de Madrid cuyo nombre no es Pepe. Como puede verse, usamos like en lugar de = para evitar
inconvenientes debido al uso o no de mayúsculas.
select * from clientes where ciudad like “rosario” and not nombre like “Pepe”;
Si quisiéramos consultar a los clientes cuyo apellido empieza con A y cuya cantidad de pedidos está
entre 20 y 40:
select * from clientes where apellido like “A%” and pedidos between 20 and 40;
Para consultar a aquellos clientes que vivan en Buenos Aires, Rosario y Córdoba, usamos el operador
in:
select * from clientes where ciudad In (“Buenos Aires”, “Rosario”,”Córdoba”);
Descargar