Professional Documents
Culture Documents
49)
Instalacin y configuracin por primera vez en linux:
1) Para activar mysql en redhat 7.3 con el comando ntsys se seala mysqld para activarlo cada vez que se
reinicie linux.
2) Las bases de datos de mysql se crearn en el directorio /var/lib/mysql/ . Cada base de datos es un
directorio diferente y cada tabla es un archivo dentro del directorio las dos bases que se crean cuando se
instala mysql es mysql y test.
3) Se corre el comando mysql_install_db para crear las bases que guardarn los permisos de los usuarios.
4) Con el comando mysqladmin -u root password
administrador de la base de datos Ejemplo:
Operaciones Bsicas
Se entra a la base de datos con:
mysql -u root p
y
como clave se pone admin. En la lnea de comandos se pone:
mysql> SELECT VERSION(), CURRENT_DATE();
lo cual mostrara:
+-----------+----------------+
| version() | current_date() |
+-----------+----------------+
| 3.23.49 | 2002-06-06 |
+-----------+----------------+
1 row in set (0.00 sec)
se pueden hacer pequeas operaciones como:
mysql> SELECT SIN(PI()/4), (4+1)*5;
+-------------+---------+
| SIN(PI()/4) | (4+1)*5 |
+-------------+---------+
| 0.707107 |
25 |
+-------------+---------+
1 row in set (0.00 sec)
mysql> select user();
+----------------+
| user()
|
+----------------+
| root@localhost |
+----------------+
1 row in set (0.04 sec)
Para ver las bases de datos existentes se pone:
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 rows in set (0.00 sec)
Creacin de usuarios y permisos para las tablas
Una vez creada la base de datos se le puede dar permisos para que solo un usuario determinado pueda
usar dicha base de datos la forma de hacerlo es la siguiente:
mysql u root p se ingresa con el usuario de administrador
grant all on pruebas.* to ua033333@localhost identified by clave
flush privileges;
donde pruebas es la base de datos y ua033333 es el usuario al que se quiere dar acceso y clave la clave
del usuario.
Para ingresar a la base se pone mysql -u ua033333 p y se introduce la clave
Para cambiar de clave se pone
YEAR(2 o 4)
INTEGER (INT)
FLOAT (M,D)
DOUBLE(M,D)
YYYYMMDDHHMMSS
YYMMDDHHMMSS
YYMMDDHHMM
YYYYMMDD
YYMMDD
YYMM
YY
BLOB
TEXT
Para grandes textos la longitud mxima es 65535 con este tipo las bsquedas
de texto son sensibles a las maysculas.
Para grandes textos la longitud mxima es 65535 con este tipo las bsquedas
de texto NO son sensibles a las maysculas.
Key
+----+-------------------+------------------------------------------+
2 rows in set (0.00 sec)
Para ver todas las tablas de la base:
mysql> show tables;
+------------------+
| Tables_in_prueba |
+------------------+
| clientes
|
+------------------+
1 row in set (0.00 sec)
Para ver la estructura de la tabla se pone:
mysql> DESCRIBE clientes;
+--------+-------------+------+-----+---------+-------+
| Field | Type
| Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| nombre | varchar(20) | YES | | NULL |
|
| edad
| int(2)
| YES | | NULL |
|
| sueldo | float(9,2) | YES | | NULL |
|
| memo | text
| YES | | NULL |
|
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
Modificacin de la Estructura de una Tabla
Cambia los atributos de una columna que ya existe
ALTER TABLE [nombre_de_la_tabla] CHANGE [nombre_columna] [nombre_columna opciones_de _columna];
ALTER TABLE clientes CHANGE nombre nombreapellido varchar(10);
Si el archivo de texto tiene separado los campos por medio de comas y a su vez cada campo encerrado
por comillas la sentencia que se utiliza es:
mysql> LOAD DATA INFILE 'datos.txt' INTO TABLE clientes
->
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
->
LINES TERMINATED BY '\n';
Ejemplo de archivo datos.txt
Pabo,30,600,\N
Juan,25,500,\N
Mostrar los datos de una tabla
Para los datos de una tabla se utiliza la sentencia :
SELECT [campos que se quiere mostrar]
FROM [nombre de la tabla de la cual se extraen datos]
WHERE [condiciones para extraer datos]
Ejemplo:
mysql> SELECT * FROM clientes;
+--------+------+--------+------+
| nombre | edad | sueldo | memo |
+--------+------+--------+------+
| pablo | 30 | 600.00 | NULL |
| pablo | NULL | NULL | NULL |
+--------+------+--------+------+
2 rows in set (0.00 sec)
Enviar la consulta a un archivo
mysql> select * from empresas into outfile '/prueba/hola2.txt' fields terminated by '@@'
->
lines terminated by \n;
consulta con condiciones:
mysql> SELECT * FROM clientes WHERE nombre="pablo" and sueldo="500";
mysql> SELECT * FROM clientes WHERE edad >= "30";
mysql> SELECT nombre, edad FROM clientes WHERE edad >= "30";
mysql> SELECT distinct nombre FROM clientes;
distinct sirve para que saque solo los registros nicos no los repetidos en el campo nombre
Modificar un Registro
mysql> UPDATE clientes SET sueldo="500" WHERE nombre="pablo";
mysql> UPDATE clientes set sueldo="600" where edad=30;
Borrar todos los registros de la tabla
mysql> DELETE from clientes;
Borrar una Tabla y su estructura
mysql> drop table clientes;
Borrar una base de datos
mysql> drop database datos;
Relaciones entre las Tablas
Se crean dos tablas con un campo que se llama factura de tipo int(1), este va ha ser la llave de las tablas
por la cual se van ha relacionar.Para poder mostrar tablas con datos que las relacionan podemos hacerlo
mediante el siguiente comando select:
mysql> select cabecera.nombre,detalle.remedio from cabecera,detalle where
-> cabecera.factura=1 and detalle.factura=1;
+--------+------------+
| nombre | remedio |
+--------+------------+
| pablo | mejoral |
| pablo | aspirina |
| pablo | vitamina c |
| pablo | cebion |
+--------+------------+
los campos que relacionan estas tablas son el nmero de la factura
Otra forma puede ser:
select cabecera.nombre,detalle.remedio from cabecera,detalle where
-> cabecera.factura=detalle.factura;
esto mostrara todos los campos en orden de relacin.
+--------+------------+
| nombre | remedio |
+--------+------------+
| pablo | mejoral |
| pablo | aspirina |
| pablo | vitamina c |
| pablo | cebion |
| juan | complejo B |
| juan | contrex |
| juan | mentol |
+--------+------------+
7 rows in set (0.00 sec)