Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
33
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. SISTEMAS GESTORES DE BASES DE DATOS  REALIZAR UNA BASE DE DATOS EN ACCESS Una base de datos es una herramienta para recopilar y organizar información  CONECTARLA CON EL SERVIDOR DE BASES DE DATOS MYSQL. MySQL es un sistema de administración de bases de datos (Database Management System, DBMS) para bases de datos relacionales. Así, MySQL no es más que una aplicación que permite gestionar archivos llamados de bases de datos.  REALIZACION DE CONSULTAS Algunos de los ejemplos emplean la tabla shop para contener el precio de cada artículo (número de item) para ciertos distribuidores (dealers). Suponiendo que cada distribuidor tiene un único precio fijo por cada artículo, entonces (article, dealer) es una clave primaria para los registros. Inicie la utilidad de línea de comandos mysql y seleccione una base de datos: shell> mysql base-de-datos (En la mayoría de las instalaciones de MySQL, podrá emplear la base de datos test).
  • 2. Puede crear e ingresar datos a la tabla del ejemplo utilizando estas sentencias: mysql> CREATE TABLE shop ( -> article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL, -> dealer CHAR(20) DEFAULT '' NOT NULL, -> price DOUBLE(16,2) DEFAULT '0.00' NOT NULL, -> PRIMARY KEY(article, dealer)); mysql> INSERT INTO shop VALUES -> (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45), -> (3,'C',1.69),(3,'D',1.25),(4,'D',19.95); Luego de ejecutar estas sentencias, la tabla debería tener el siguiente contenido: mysql> SELECT * FROM shop; +---------+--------+-------+ | article | dealer | price | +---------+--------+-------+ | 0001 | A | 3.45 | | 0001 | B | 3.99 | | 0002 | A | 10.99 | | 0003 | B | 1.45 | | 0003 | C | 1.69 | | 0003 | D | 1.25 | | 0004 | D | 19.95 | +---------+--------+-------+
  • 3. El valor máximo de una columna SELECT MAX(article) AS article FROM shop; +---------+ | article | +---------+ | 4 | +---------+ El registro que tiene el valor máximo de determinada columna En MySQL 5.0 (y en SQL estándar), esto se hace fácilmente con una subconsulta: SELECT article, dealer, price FROM shop WHERE price=(SELECT MAX(price) FROM shop); Otra solución es ordenar las columnas por precio, en forma descendente, y obtener solamente el primer registro utilizando la cláusula LIMIT, específica de MySQL: SELECT article, dealer, price FROM shop ORDER BY price DESC LIMIT 1; Nota: Si hubiera varios artículos que presenten el precio más alto, cada uno a 19.95, la solución LIMIT sólo mostraría el primero de ellos.
  • 4. Máximo de columna por grupo SELECT article, MAX(price) AS price FROM shop GROUP BY article +---------+-------+ | article | price | +---------+-------+ | 0001 | 3.99 | | 0002 | 10.99 | | 0003 | 1.69 | | 0004 | 19.95 | +---------+-------+ Los registros de un grupo que tienen el máximo valor en alguna columna En MySQL 5.0 (y en SQL estándar), este problema puede resolverse con una subconsulta como esta: SELECT article, dealer, price FROM shop s1 WHERE price=(SELECT MAX(s2.price) FROM shop s2 WHERE s1.article = s2.article);
  • 5. Usar claves foráneas (foreign keys) En MySQL, las tablas InnoDB soportan restricciones de claves foráneas. Consulte Capítulo 15, El motor de almacenamiento InnoDB. Consulte también Sección 1.7.5.5, “Claves foráneas (foreign keys)”. No se requiere una restricción de clave foránea para simplemente unir dos tablas. Para otros tipos de tabla que no sean InnoDB, es posible, al momento de definir una columna, utilizar una cláusula REFERENCEStbl_name(col_name), la cual no tiene efecto real y funciona solamente como un recordatorio o comentario de que la columna que se está definiendo está dirigida a hacer referencia a una columna en otra tabla. Al emplear esta sintaxis es muy importante comprender que: MySQL no efectúa ningún tipo de CHECK o comprobación para asegurarse de que col_name realmente existe entbl_name (o incluso que tbl_name existe). MySQL no realiza ningún tipo de acción sobre tbl_name tal como borrar filas en respuesta a acciones ejecutadas sobre filas en la tabla que se está definiendo; en otras palabras, esta sintaxis no produce por sí misma un comportamiento ON DELETE u ON UPDATE. (Inclusive cuando se puede escribir una cláusula ON DELETE u ON UPDATE como parte de la cláusula REFERENCES, estas son también ignoradas). Esta sintaxis crea una columna; no crea ninguna clase de índice o campo clave. Esta sintaxis causará un error si se la emplea durante la definición de una tabla InnoDB. Una columna creada de esta forma se puede utilizar como columna de unión, como se muestra aquí: CREATE TABLE person ( id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, name CHAR(60) NOT NULL, PRIMARY KEY (id) );
  • 6. CREATE TABLE shirt ( id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, style ENUM('t-shirt', 'polo', 'dress') NOT NULL, color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL, owner SMALLINT UNSIGNED NOT NULL REFERENCES person(id), PRIMARY KEY (id) ); INSERT INTO person VALUES (NULL, 'Antonio Paz'); SELECT @last := LAST_INSERT_ID(); INSERT INTO shirt VALUES (NULL, 'polo', 'blue', @last), (NULL, 'dress', 'white', @last), (NULL, 't-shirt', 'blue', @last); INSERT INTO person VALUES (NULL, 'Lilliana Angelovska'); SELECT @last := LAST_INSERT_ID(); INSERT INTO shirt VALUES (NULL, 'dress', 'orange', @last), (NULL, 'polo', 'red', @last), (NULL, 'dress', 'blue', @last),
  • 7. (NULL, 't-shirt', 'white', @last); SELECT * FROM person; +----+---------------------+ | id | name | +----+---------------------+ | 1 | Antonio Paz | | 2 | Lilliana Angelovska | +----+---------------------+ SELECT * FROM shirt; +----+---------+--------+-------+ | id | style | color | owner | +----+---------+--------+-------+ | 1 | polo | blue | 1 | | 2 | dress | white | 1 | | 3 | t-shirt | blue | 1 | | 4 | dress | orange | 2 | | 5 | polo | red | 2 | | 6 | dress | blue | 2 | | 7 | t-shirt | white | 2 | +----+---------+--------+-------+ SELECT s.* FROM person p, shirt s
  • 8. WHERE p.name LIKE 'Lilliana%' AND s.owner = p.id AND s.color <> 'white'; +----+-------+--------+-------+ | id | style | color | owner | +----+-------+--------+-------+ | 4 | dress | orange | 2 | | 5 | polo | red | 2 | | 6 | dress | blue | 2 | +----+-------+--------+-------+ Cuando se usa de esta manera, la cláusula REFERENCES no es mostrada en la salida de SHOW CREATE TABLE oDESCRIBE: SHOW CREATE TABLE shirtG *************************** 1. row *************************** Table: shirt Create Table: CREATE TABLE `shirt` ( `id` smallint(5) unsigned NOT NULL auto_increment, `style` enum('t-shirt','polo','dress') NOT NULL, `color` enum('red','blue','orange','white','black') NOT NULL, `owner` smallint(5) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1
  • 9. GENERAR UNA PAGINA EN PHP CON ESTILOS Podemos utilizar una hoja de estilos únicamente para estos datos que queramos cambiar. El truco está en crear el archivo en PHP y definimos el header, por ejemplo: estilo.php: Código : <?php $colors = 3; $random = rand(1,$color_txt); $color_txt = array(); $color_txt[1] = "blue"; $color_txt[2] = "red"; $color_txt[3] = "black"; header('Content-Type: text/css'); echo 'body{margin:0;background:'.$color_txt[array_rand ( $color_txt)].';}'; ?> En el html solo linkamos en el header: Código : <? echo '<link href="estilo.php" rel="stylesheet" type="text/css">'; ?> También podríamos enviar variables por POST en el link del html y
  • 10. funcionaria perfecto. El truco está en la línea: Código : header('Content-Type: text/css');