Download mysql - Grid Morelos

Document related concepts

MySQL Workbench wikipedia , lookup

MySQL wikipedia , lookup

Mecanismos de almacenamiento (MySQL) wikipedia , lookup

HeidiSQL wikipedia , lookup

PhpMyAdmin wikipedia , lookup

Transcript
MySQL
Elideth Uribe
Mónica Paredes
Dirigido a...
Personas que estén interesadas en aprender a utilizar el
servidor MySQL en una plataforma Linux.
✔
Se recomienda que se tengan conocimientos básicos de bases de
datos relacionales y del lenguaje SQL.
Temas que serán tratados
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
Definición y características de MySQL
Versiones disponibles
Instalación de MySQL en Linux
Conexión a MySQL
Creación de bases de datos
Ejecución de consultas
Creación de respaldos
Sistema de privilegios
Eliminación de bases de datos
APIs de programación
Clientes gráficos
¿ Qué es MySQL ?
Para definir qué es MySQL se puede usar cualquiera de las
siguientes opciones:
✔
Es un servidor de bases de datos.
✔
Es un sistema de administración de bases de datos.
✔
Es un manejador de bases de datos.
MySQL fué adquirido por el grupo informático Sun Microsystems en Enero 2008,
dicho grupo clientes de la talla de Google, Facebox, Nokia, Baidú ó China Mobile.
Características de MySQL
✔
Rápido.
✔
Seguro.
✔
Fácil de usar.
✔
Estable.
✔
Disponible en muchas plataformas.
*
Dichas características hacen que MySQL sea bastante apropiado
en el desarrollo de aplicaciones web.
Versiones de MySQL
✔
Anterior versión estable, 4.0
( 4.0.26 )
✔
Actual versión estable, 4.1
( 4.1.14 )
✔
Futura versión estable, 5.0
( 5.0.13rc )
* Actualmente las versiones más usadas de MySQL, son la 4.0 y la
4.1.
Obtener MySQL para Linux
A través de MySQL AB
✔
Archivos binarios independientes de la distribución de Linux.
✔
Paquetes que utilizan el manejador de paquetes de RedHat.
✔
Código fuente que se tiene que compilar.
A través de la distribución de Linux
✔
RedHat, Debian, SuSE, etc... etc...
Instalación de MySQL en Linux
Versión a instalar: 4.1.14 estándar independiente de la
distribución.
# groupadd mysql
# useradd -g mysql mysql
# cd /usr/local
# tar zxf /tmp/mysql-standard-4.1.14-pc-linux-gnu-i686.tar.gz
# mv mysql-standard-4.1.14-pc-linux-gnu-i686 mysql4
# cd mysql4
# chown -R root.root .
# ./scripts/mysql_install_db
# chown -R mysql.mysql data
Programas hechos en MySQL
•
Magic Help Desk – Estafeta Mexicana Sa de CV
•
BackOffice merkalink.com
•
OSR Terra Networks México
•
Trouble Tickett Terra Networks México
•
OpenBiblio
Conectarse a MySQL
Uso del monitor mysql
mysql es un programa que se ejecuta desde el prompt del
sistema, que permite conectarse a un servidor MySQL para
enviarle consultas y comandos, y ver los resultados.
Este comando permite:
✔
✔
✔
✔
✔
Consultar información de las bases de datos y tablas
Crear bases de datos y tablas
Eliminar bases de datos y tablas.
Asignar y revocar privilegios.
Consultar, insertar, actualizar y eliminar registros de una tabla.
Conectarse a MySQL - ejemplo
✔
Sintaxis del comando mysql
$shell> mysql [-h hostname] [-u usuario] [-p] [base de datos]
✔
Para una conexión a un host local como usuario root, las
siguientes líneas son equivalentes.
# mysql
# mysql -u root
# mysql -h localhost -u root
Conectarse a MySQL
Si se puede establecer la conexión a MySQL, se obtiene un
mensaje de bienvenida, y se cambia el prompt, indicando que se
pueden enviar consultas al servidor.
# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 25 to server version: 3.23.41
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Ver las bases de datos
✔
El programa mysql permite ver las bases de datos existentes.
mysql> SHOW DATABASES ;
//Ejemplo
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql
|
| test
|
+----------+
2 rows in set (0.00 sec)
Crear una base de datos
✔
El programa mysql permite crear bases de datos
mysql> CREATE DATABASE nombreBaseDatos ;
//Ejemplo
mysql> CREATE DATABASE agendita;
Query OK, 1 row affected (0.00 sec)
Usar una base de datos
✔
Con el cliente mysql se puede seleccionar la base de datos sobre
la que se va a trabajar.
mysql> USE nombreBaseDatos ;
//Ejemplo
mysql> USE agendita;
Database changed
Crear una tabla
Al seleccionar una base de datos, se pueden crear las tablas
necesarias.
Se utiliza la sentencia SQL CREATE TABLE.
//Ejemplo
mysql>
CREATE TABLE contactos (
-> id INT NOT NULL AUTO_INCREMENT ,
-> nombre VARCHAR(50) NOT NULL ,
-> email VARCHAR(50) NOT NULL ,
-> telefono VARCHAR(20) NOT NUL ,
-> PRIMARY KEY (id) );
Query OK, 0 rows affected (0.02 sec)
Ver las tablas de una base datos
✔
El programa mysql permite ver las tablas de una base de datos.
mysql> SHOW TABLES ;
//Ejemplo
mysql> SHOW TABLES;
+--------------------+
| Tables_in_agendita |
+--------------------+
| contactos
|
+--------------------+
1 row in set (0.00 sec)
Ver las columnas de una tabla
✔
Con el cliente mysql se puede examinar la estructura de una
tabla.
mysql> DESC nombreTabla ;
//Ejemplo
mysql> DESC contactos;
+----------+-------------+------+-----+---------+
| Field
| Type
| Null | Key | Default |
+----------+-------------+------+-----+---------+
| id
| int(11)
|
| PRI | NULL
|
| nombre
| varchar(50) | YES |
| NULL
|
| email
| varchar(50) | YES |
| NULL
|
| telefono | varchar(50) | YES |
| NULL
|
+----------+-------------+------+-----+---------+
4 rows in set (0.00 sec)
Insertar registros en una tabla
Uso de la sentencia INSERT
mysql> INSERT INTO contactos VALUES
-> (0, 'Juan Penas', '[email protected]', '5675 -7383' );
mysql> INSERT INTO contactos VALUES
-> (0, 'Bety la fea', '[email protected]', '6373 -3459' );
mysql> INSERT INTO contactos VALUES
-> (0, 'Pepe pecas', '[email protected]', '7282 -2728' );
mysql> INSERT INTO contactos VALUES
-> (0, 'Mary B.', '[email protected]', '3459 -2339');
Consultar registros
Uso de la sentencia SELECT
mysql> SELECT * FROM contactos;
mysql> SELECT nombre, email FROM contactos;
mysql> SELECT nombre, email, telefono FROM contactos
-> WHERE id = 3;
mysql> SELECT * FROM contactos WHERE nombre
-> LIKE 'Pepe%';
mysql> SELECT COUNT(*) AS num FROM contactos;
Actualizar registros
Uso de la sentencia UPDATE
mysql> UPDATE contactos SET telefono='6373 -3459'
-> WHERE id = 1;
mysql> UPDATE contactos SET
-> nombre = 'Mary Boquitas' WHERE id = 2;
mysql> UPDATE contactos SET email='[email protected]',
-> telefono = '7383 -3489' WHERE id = 3;
mysql> SELECT * FROM contactos;
Eliminar registros
Uso de la sentencia DELETE
mysql> SELECT * FROM contactos WHERE
-> nombre LIKE 'Bety%';
mysql> DELETE FROM contactos WHERE
-> nombre LIKE 'Bety%';
mysql> SELECT * FROM contactos WHERE id >= 3;
mysql> DELETE FROM contactos WHERE id >= 3;
mysql> SELECT * FROM contactos;
Sistema de privilegios
Asignación del password al administrador de MySQL
# mysqladmin -u root password 'holahola'
A partir de asignar un password al administrador de MySQL
(el usuario root) se tiene que proporcionar dicho password cada
vez que se quiera realizar alguna operación sobre las bases de
datos.
Para que MySQL pregunte por el password, se usa la opción -p
# mysql -p
# mysqlshow -p
# mysqladmin -p
Sistema de privilegios
Con la sentencia GRANT se otorgan privilegios.
// Ejemplo
mysql> GRANT SELECT, INSERT, UPDATE ON agendita.*
TO pepito@localhost IDENTIFIED BY 'holahola' ;
Con la sentencia REVOKE se quitan privilegios.
// Ejemplo
mysql> REVOKE ALL PRIVILEGES
pepito@localhost;
ON
agendita.*
FROM
Eliminar una base de datos
✔
Desde el monitor mysql se pueden eliminar bases de datos.
mysql> DROP DATABASE nombreBaseDatos ;
//Ejemplo
mysql> DROP DATABASE agendita;
Query OK, 0 rows affected (0.00 sec)
APIs de progración
✔
✔
✔
✔
✔
✔
✔
C y C++
Perl
Python
Java
PHP
Delphi
C#
Clientes gráficos para MySQL
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
Navicat
EMS MySQL Manager
Squirrel SQL
ISQL Viewer
Database Manager Profesional
SQLyog
Aqua Data Studio
MyDB Studio
MySQL Front
SQLion
MySQL Maestro
MySQL Administrator
MySQL Query Browser
Sitios de interés
✔
Sitio oficial de MySQL
http://www.mysql.com
✔
Sitio para desarrolladores de MySQL
http://dev.mysql.com
✔
Sitio en español con información de MySQL
http://www.mysql-hispano.org
Sitios de interés
MySQL /
PostgreSQL
Preguntas
The question is not, ‘What is the answer?’
The question is, ‘What is the question?’
Henri Poincaré