Mysql

Learn Pure Insanity
Learn Pure InsanityWeb Developer en Learn Pure Insanity
Manual de MySQL (3.23.49)
Instalación y configuración por primera vez en linux:

1) Para activar mysql en redhat 7.3 con el comando ntsys se señala mysqld para activarlo cada vez que se
reinicie linux.

2) Las bases de datos de mysql se crearán 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 guardarán los permisos de los usuarios.

4) Con el comando mysqladmin -u root password               mi_password se crea un password para el
administrador de la base de datos Ejemplo:

mysqladmin –u root password admin

Admin sería la nueva clave para el administrador de la base de datos

Para cambiar la clave se pondría
mysqladmin -uroot -padmin password nuevaclave

5) Para probar si la conexión esta bien y se puede entrar a la base de datos se pone

mysql -u root –p

aquí ahora va ha pedir un password el password en este caso es admin el cual definimos en el paso 4. Para
salir se pone quit.

Instalación y configuración por primera vez en windows:

Para instalar mysql en windows se baja el archivo mysql-max-3.23.48-win.zip y se desempaqueta en
cualquier directorio, luego se ejecuta el archivo setup.exe, cuando se instala pedirá un directorio en donde
instalar en este caso pondremos c:internetmysql.

Ejecutamos la aplicación c:internetmysqlbinwinmysqladmin.exe

Esta aplicación nos permitirá administrar la base de datos. La primera vez que se ejecuta nos va a pedir un
usuario y una clave en este caso vamos a poner root y admin. En la parte inferior derecha de la pantalla
aparecerá un semáforo con la luz verde encendida esto indica que el servidor está activo, para apagar el
servidor damos un click con el botón derecho sobre el gráfico del semáforo y aparecerá un menú,
elegimos la opción win9x (en una instalación en windows me) y luego shutdown Both. Esta herramienta
también sirve para crear bases de datos en modo gráfico.

Para ingresar al modo de comandos y administrar la base de datos se va al directorio:

C:internetmysqlbinmysql –u root –p

Como password se pone admin, esto hará que salga el prompt de mysql:

mysql>

Para salir se pone exit o quit
Las bases de datos se crearán el directorio:

c:internetmysqldata
Operaciones Básicas
Se entra a la base de datos con:
mysql -u root –p        y      como clave se pone admin. En la línea 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 pequeñas 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)


Creación 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
SET PASSWORD FOR 'ua033333@localhost' = PASSWORD( '**********' )

Otra forma de crear usuarios es ingresar con la clave de root a la base de datos y poner las siguientes
sentencias:

use mysql;

insert into user values("localhost", "nombredeusuario", password("clavedeusuario"), "Y", "Y", "Y", "Y",
"Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y");

insert into db values ("localhost", "basededatosconcreta", "nombredeusuario", "Y", "Y", "Y", "Y", "Y",
"Y", "Y", "Y", "Y", "Y");

exit;

Pasos para crear bases de datos

El comando para crear la base de datos es:

mysql> CREATE DATABASE prueba;

esto hará que se cree el directorio prueba en /var/lib/mysql/prueba.

Para crear las tablas de la base de datos se pone:

mysql> use prueba;
para elegir la tabla en la que se va ha trabajar


mysql> create table clientes (nombre varchar(20), edad int(2),
 -> sueldo float(9,2), memo text);

Tipos posibles de campos

VARCHAR                     Tiene un número variable de caracteres el número que se pone es el número
                            máximo de caracteres que puede tener este número va de 1 a 255
CHAR                        Tiene un número fijo de caracteres va de 1 a 255
DATE                        Tipo fecha (YYYY-MM-DD)-( '1000-01-01' a '9999-12-31')
TIME                        Tipo hora (HH:MM:SS) – (-838:59:59' a '838:59:59)
DATETIME                    Tipo fecha y hora (YYYY-MM-DD HH:MM:SS)
TIMESTAMP(N)                Tipo fecha y hora. Se utiliza para generar campos en los cuales
                             automáticamente se guardan la fecha y hora de creación
                            o modificación del registro. Ejemplos de formatos:

                            TIMESTAMP(14)             YYYYMMDDHHMMSS
                            TIMESTAMP(12)             YYMMDDHHMMSS
                            TIMESTAMP(10)             YYMMDDHHMM
                            TIMESTAMP(8)              YYYYMMDD
                            TIMESTAMP(6)              YYMMDD
                            TIMESTAMP(4)              YYMM
                            TIMESTAMP(2)              YY

YEAR(2 o 4)                 Tipo año (1970 a 2069)
INTEGER (INT)               Tipo numérico entero (-2147483648 a 2147483647)
FLOAT (M,D)                 Número real de coma flotante M es el número y D los decimales
                            (-3.402823466E+38 a -1.175494351E-38, 0, y
                             1.175494351E-38 a 3.402823466E+38.)
DOUBLE(M,D)                 Número real de doble precisión M es el número y D los decimales
                            (- 1.7976931348623157E+308 a -2.2250738585072014E-308, 0, y
                              2.2250738585072014E-308 a 1.7976931348623157E+308)
BLOB                       Para grandes textos la longitud máxima es 65535 con este tipo las búsquedas
                           de texto son sensibles a las mayúsculas.
TEXT                       Para grandes textos la longitud máxima es 65535 con este tipo las búsquedas
                           de texto NO son sensibles a las mayúsculas.


Opciones para los campos

not null                   El valor no puede ser nulo en el campo
auto_increment             automáticamente incrementa el número del registro anterior
primary key                El PRIMARY KEY es un campo que MySQL usa como índice. Este índice
                           puede hacer cosas como:

                           •   Hallar rápidamente filas que acierten una cláusula WHERE.
                           •   Regresar filas de una tabla desde otras tablas cuando se realizan uniones.

                           •   Esto definitivamente te va a ayudar a agilizar sus peticiones también.

Key                        Crea una llave secundaria




Creación de una tabla con índices o llaves:

Mysql> create table prueba4 (llave1 int(1) not null, llave2 int(1), primary key(llave1),key(llave2));

Toda llave primaria debe ser de tipo not null para que pueda indexar correctamente. En este ejemplo el
campo llave1 es la llave primaria y el campo llave2 es la llave secundaria.


Creación de campos para buscar textos en estos:

mysql> CREATE TABLE articles (
  -> id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
  -> title VARCHAR(200),
  -> body TEXT,
  -> FULLTEXT (title,body)
  -> );
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO articles VALUES
  -> (0,'MySQL Tutorial', 'DBMS stands for DataBase ...'),
  -> (0,'How To Use MySQL Efficiently', 'After you went through a ...'),
  -> (0,'Optimising MySQL','In this tutorial we will show ...'),
  -> (0,'1001 MySQL Trick','1. Never run mysqld as root. 2. ...'),
  -> (0,'MySQL vs. YourSQL', 'In the following database comparison ...'),
  -> (0,'MySQL Security', 'When configured properly, MySQL ...');
Query OK, 6 rows affected (0.00 sec)
Records: 6 Duplicates: 0 Warnings: 0

mysql> SELECT * FROM articles
    ->       WHERE MATCH (title,body) AGAINST ('database');
+----+-------------------+------------------------------------------+
| id | title       | body                            |
+----+-------------------+------------------------------------------+
| 5 | MySQL vs. YourSQL | In the following database comparison ... |
| 1 | MySQL Tutorial | DBMS stands for DataBase ...                   |
+----+-------------------+------------------------------------------+
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)
Modificación 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);

Colocar una columna al final de la tabla
ALTER TABLE [nombre_de_la_tabla] ADD [columna_nueva opciones];
ALTER TABLE clientes ADD cedula varchar(10);

Si se desea crear una columna al inicio de una tabla:
ALTER TABLE [nombre_de_la_tabla] ADD [columna_nueva opciones] FIRST;
ALTER TABLE clientes ADD cedula varchar(10) FIRST;

Y si se trata de colocarla después de una columna dada, es:
ALTER TABLE [nombre_de_la_tabla] ADD [columna_nueva opciones] AFTER [nombre_de_columna];
ALTER TABLE clientes ADD cedula varchar(10) AFTER nombre;

Para eliminarla, se utiliza este comando:
ALTER TABLE [nombre_de_la_tabla] DROP [nombre_columna];
ALTER TABLE clientes DROP cedula;

Para insertar datos a la tabla
Se utiliza la siguiente sentencia:
mysql> INSERT INTO clientes
  -> VALUES ('Pablo','30','600',NULL);

Nota: La comilla es obligatorio para el ingreso de datos

Otra forma de ingresar datos es:

mysql> insert into clientes
 -> (nombre)
 -> values
 -> ('pablo');

con esta forma se ingresa el nombre pablo en el campo nombre únicamente
Para insertar datos a la tabla desde un archivo de textos la sentencia es:
mysql> LOAD DATA LOCAL INFILE "datos.txt" INTO TABLE clientes;

el archivo debe tener el siguiente formato:
Pablo 30 600 N
Juan 20 N          bueno

El símbolo N sirve para cuando ese campo no tiene datos. El separador de campos es TAB y el de
registros el fin de línea LF (o Enter)




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
mysql> SELECT * FROM clientes ORDER BY edad;
         para que el resultado se ordene por edad
mysql> SELECT * FROM clientes ORDER BY edad DESC;
         para que el resultado se ordene en forma descendente
mysql> SELECT * FROM clientes GROUP BY edad;
mysql> SELECT nombre, sueldo/100 from clientes;
         para que muestre la columna sueldo dividido para 100
mysql> select * from clientes where edad is NULL;
mysql> select * from clientes where edad is NOT NULL;
mysql> SELECT * FROM clientes WHERE nombre LIKE "P%";
         para buscar nombres que comienzan con P
mysql> SELECT * FROM clientes WHERE nombre LIKE "%P";
         para buscar nombres que terminan con P
mysql> SELECT * FROM clientes WHERE nombre LIKE "%P%";
         para buscar nombres que tengan P en cualquier posicion
mysql> SELECT * FROM clientes WHERE nombre LIKE "_";
         para buscar nombres que tengan un carácter
mysql> SELECT nombre, COUNT(*) FROM clientes
mysql> SELECT DISTINCT nombre FROM clientes saca los nombres sin repetidos
mysql> SELECT * from tabla1 where not exists
               (SELECT * from tabla2 where tabla1.codigo = tabla2.codigo); muestra los códigos de la
tabla1 que no existan en la tabla2




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 número 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 relación.

+--------+------------+
| 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)


Bibliografía

http://www.sorgonet.com/linux/mysql/index_es.php
http://www.arrakis.es/~chessy/docs/teoria/instalacion-mysql.html
http://www.arrakis.es/~chessy/docs/teoria/Tutorial-MySQL.html
http://www.mysql.com/documentation/mysql/bychapter/
http://otri.us.es/recursosPHP/manual/index.htm
http://www.elguruprogramador.com.ar/tutoriales/tutorial_php.asp
http://www.mysql.com/doc/F/u/Fulltext_Search.html
http://www.mysql.com/doc/I/n/Indexes.html
http://www.mysql.com/doc/C/R/CREATE_TABLE.html

Recomendados

MANUAL por
MANUALMANUAL
MANUALEMRA197344
345 vistas8 diapositivas
Parte 08 my sql por
Parte 08 my sqlParte 08 my sql
Parte 08 my sqlrosmeriramos
601 vistas10 diapositivas
Transact+Sql+2005 por
Transact+Sql+2005Transact+Sql+2005
Transact+Sql+2005Fernando Chaves
533 vistas8 diapositivas
Kruskal por
KruskalKruskal
KruskalAlhe' Wero
360 vistas18 diapositivas
Kruskal por
KruskalKruskal
KruskalAlhe' Wero
208 vistas18 diapositivas
Punteros4 por
Punteros4Punteros4
Punteros4Aldo Hernán Zanabria Gálvez
274 vistas3 diapositivas

Más contenido relacionado

La actualidad más candente

Textos sqli_mssql por
 Textos sqli_mssql Textos sqli_mssql
Textos sqli_mssqlSegundo Puerto
43 vistas5 diapositivas
SQLite3 por
SQLite3SQLite3
SQLite3Andrés Ignacio Martínez Soto
4.4K vistas37 diapositivas
Bdii 04 sql por
Bdii 04 sqlBdii 04 sql
Bdii 04 sqlRody Paredes
91 vistas33 diapositivas
Práctica+.. por
Práctica+..Práctica+..
Práctica+..Blankita Cruz Ramos
130 vistas3 diapositivas
(In) seguridad web por
(In) seguridad web(In) seguridad web
(In) seguridad webEventos Creativos
823 vistas36 diapositivas
Modulo de programacion sql unidad II por
Modulo de programacion sql   unidad IIModulo de programacion sql   unidad II
Modulo de programacion sql unidad IIfiremas
486 vistas10 diapositivas

Destacado

Yderligere lempelse af revisionspligten og udvidet gennemgang som alternativ ... por
Yderligere lempelse af revisionspligten og udvidet gennemgang som alternativ ...Yderligere lempelse af revisionspligten og udvidet gennemgang som alternativ ...
Yderligere lempelse af revisionspligten og udvidet gennemgang som alternativ ...Jesper Seehausen
1.8K vistas24 diapositivas
PDS Overview por
PDS Overview PDS Overview
PDS Overview nanouks71
387 vistas13 diapositivas
Pdf muerte celular programada por
Pdf muerte celular programadaPdf muerte celular programada
Pdf muerte celular programadaBryan Monjarrez Herrera
1.8K vistas23 diapositivas
Andruchak Muralista Brasileiro Murais por
Andruchak Muralista Brasileiro   MuraisAndruchak Muralista Brasileiro   Murais
Andruchak Muralista Brasileiro Muraisarteworld
1.1K vistas51 diapositivas
The Power of Email Marketing - Constant Contact por
The Power of Email Marketing - Constant ContactThe Power of Email Marketing - Constant Contact
The Power of Email Marketing - Constant ContactYour Virtual Business
5.6K vistas50 diapositivas
SEMINARIO DE ACTUALIZACIÓN INFORMÁTICA por
SEMINARIO DE ACTUALIZACIÓN INFORMÁTICASEMINARIO DE ACTUALIZACIÓN INFORMÁTICA
SEMINARIO DE ACTUALIZACIÓN INFORMÁTICAtivi1991
438 vistas18 diapositivas

Destacado(20)

Yderligere lempelse af revisionspligten og udvidet gennemgang som alternativ ... por Jesper Seehausen
Yderligere lempelse af revisionspligten og udvidet gennemgang som alternativ ...Yderligere lempelse af revisionspligten og udvidet gennemgang som alternativ ...
Yderligere lempelse af revisionspligten og udvidet gennemgang som alternativ ...
Jesper Seehausen1.8K vistas
PDS Overview por nanouks71
PDS Overview PDS Overview
PDS Overview
nanouks71387 vistas
Andruchak Muralista Brasileiro Murais por arteworld
Andruchak Muralista Brasileiro   MuraisAndruchak Muralista Brasileiro   Murais
Andruchak Muralista Brasileiro Murais
arteworld1.1K vistas
SEMINARIO DE ACTUALIZACIÓN INFORMÁTICA por tivi1991
SEMINARIO DE ACTUALIZACIÓN INFORMÁTICASEMINARIO DE ACTUALIZACIÓN INFORMÁTICA
SEMINARIO DE ACTUALIZACIÓN INFORMÁTICA
tivi1991438 vistas
2ºBACH Tema 1 Las primeras manifestaciones artísticas por Geohistoria23
2ºBACH Tema 1 Las primeras manifestaciones artísticas2ºBACH Tema 1 Las primeras manifestaciones artísticas
2ºBACH Tema 1 Las primeras manifestaciones artísticas
Geohistoria234.4K vistas
Cyber bullying el acoso escolar en la era digital por Maricielo Flores
Cyber bullying el acoso escolar en la era digitalCyber bullying el acoso escolar en la era digital
Cyber bullying el acoso escolar en la era digital
Maricielo Flores20.7K vistas
Machine Learning com Python e Scikit-learn por Christian Perone
Machine Learning com Python e Scikit-learnMachine Learning com Python e Scikit-learn
Machine Learning com Python e Scikit-learn
Christian Perone6.5K vistas
Active living concept por Simon Stevens
Active living conceptActive living concept
Active living concept
Simon Stevens1.5K vistas
Statsautoriserede (og registrerede) revisorer (1) – uddannelse, godkendelse o... por Jesper Seehausen
Statsautoriserede (og registrerede) revisorer (1) – uddannelse, godkendelse o...Statsautoriserede (og registrerede) revisorer (1) – uddannelse, godkendelse o...
Statsautoriserede (og registrerede) revisorer (1) – uddannelse, godkendelse o...
Jesper Seehausen1.8K vistas
Buying & Selling a Business: Tax Considerations por Paige Rasid
Buying & Selling a Business: Tax ConsiderationsBuying & Selling a Business: Tax Considerations
Buying & Selling a Business: Tax Considerations
Paige Rasid3.7K vistas
Resourcd File por Resourcd
Resourcd FileResourcd File
Resourcd File
Resourcd522 vistas
Relato Digital 2007 por Lady13Hawke
Relato Digital 2007Relato Digital 2007
Relato Digital 2007
Lady13Hawke15.8K vistas

Similar a Mysql

Mysql por
MysqlMysql
MysqlManuel Velesaca
84 vistas8 diapositivas
Material Clase BDD: Diseño de una Base de Datos por
Material Clase BDD: Diseño de una Base de DatosMaterial Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de Datosliras loca
3.9K vistas36 diapositivas
MySQL - SQL.pdf por
MySQL - SQL.pdfMySQL - SQL.pdf
MySQL - SQL.pdfkabern
4 vistas13 diapositivas
MySQL.pdf por
MySQL.pdfMySQL.pdf
MySQL.pdfkabern
5 vistas13 diapositivas
Tutorial mysql por
Tutorial mysqlTutorial mysql
Tutorial mysqloskrsolis
309 vistas17 diapositivas
Tutorial mysql por
Tutorial mysqlTutorial mysql
Tutorial mysqloskrsolis
284 vistas17 diapositivas

Similar a Mysql(20)

Material Clase BDD: Diseño de una Base de Datos por liras loca
Material Clase BDD: Diseño de una Base de DatosMaterial Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de Datos
liras loca3.9K vistas
MySQL - SQL.pdf por kabern
MySQL - SQL.pdfMySQL - SQL.pdf
MySQL - SQL.pdf
kabern4 vistas
MySQL.pdf por kabern
MySQL.pdfMySQL.pdf
MySQL.pdf
kabern5 vistas
Tutorial mysql por oskrsolis
Tutorial mysqlTutorial mysql
Tutorial mysql
oskrsolis309 vistas
Tutorial mysql por oskrsolis
Tutorial mysqlTutorial mysql
Tutorial mysql
oskrsolis284 vistas
Sql desde cero por shochino
Sql desde ceroSql desde cero
Sql desde cero
shochino336 vistas
Tutorial mysql-basico por Guiro Lin
Tutorial mysql-basicoTutorial mysql-basico
Tutorial mysql-basico
Guiro Lin660 vistas
Tutorial mysql por kyaalena
Tutorial mysqlTutorial mysql
Tutorial mysql
kyaalena 288 vistas
Manualmysql por mi casa
ManualmysqlManualmysql
Manualmysql
mi casa285 vistas
Tutorial básico de my sql por Guiro Lin
Tutorial básico de my sqlTutorial básico de my sql
Tutorial básico de my sql
Guiro Lin886 vistas
Funciones de sql server por Emily_Fdez
Funciones de sql serverFunciones de sql server
Funciones de sql server
Emily_Fdez16.4K vistas
Bases De Datos My Sql por Arnulfo Gomez
Bases De Datos My SqlBases De Datos My Sql
Bases De Datos My Sql
Arnulfo Gomez6.4K vistas

Más de Learn Pure Insanity

Tarea1_luis jimenezramirez por
Tarea1_luis jimenezramirezTarea1_luis jimenezramirez
Tarea1_luis jimenezramirezLearn Pure Insanity
340 vistas16 diapositivas
Bitácora de comandos montar un sitio en un server por
Bitácora de comandos montar un sitio en un serverBitácora de comandos montar un sitio en un server
Bitácora de comandos montar un sitio en un serverLearn Pure Insanity
362 vistas2 diapositivas
Usuarios grupospermisos por
Usuarios grupospermisosUsuarios grupospermisos
Usuarios grupospermisosLearn Pure Insanity
360 vistas4 diapositivas
Django book-es-1.0-0.1-r789 por
Django book-es-1.0-0.1-r789Django book-es-1.0-0.1-r789
Django book-es-1.0-0.1-r789Learn Pure Insanity
5.4K vistas381 diapositivas
Git por
GitGit
GitLearn Pure Insanity
909 vistas53 diapositivas
Procedimiento de incorporaciвn por
Procedimiento de incorporaciвnProcedimiento de incorporaciвn
Procedimiento de incorporaciвnLearn Pure Insanity
265 vistas4 diapositivas

Mysql

  • 1. Manual de MySQL (3.23.49) Instalación y configuración por primera vez en linux: 1) Para activar mysql en redhat 7.3 con el comando ntsys se señala mysqld para activarlo cada vez que se reinicie linux. 2) Las bases de datos de mysql se crearán 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 guardarán los permisos de los usuarios. 4) Con el comando mysqladmin -u root password mi_password se crea un password para el administrador de la base de datos Ejemplo: mysqladmin –u root password admin Admin sería la nueva clave para el administrador de la base de datos Para cambiar la clave se pondría mysqladmin -uroot -padmin password nuevaclave 5) Para probar si la conexión esta bien y se puede entrar a la base de datos se pone mysql -u root –p aquí ahora va ha pedir un password el password en este caso es admin el cual definimos en el paso 4. Para salir se pone quit. Instalación y configuración por primera vez en windows: Para instalar mysql en windows se baja el archivo mysql-max-3.23.48-win.zip y se desempaqueta en cualquier directorio, luego se ejecuta el archivo setup.exe, cuando se instala pedirá un directorio en donde instalar en este caso pondremos c:internetmysql. Ejecutamos la aplicación c:internetmysqlbinwinmysqladmin.exe Esta aplicación nos permitirá administrar la base de datos. La primera vez que se ejecuta nos va a pedir un usuario y una clave en este caso vamos a poner root y admin. En la parte inferior derecha de la pantalla aparecerá un semáforo con la luz verde encendida esto indica que el servidor está activo, para apagar el servidor damos un click con el botón derecho sobre el gráfico del semáforo y aparecerá un menú, elegimos la opción win9x (en una instalación en windows me) y luego shutdown Both. Esta herramienta también sirve para crear bases de datos en modo gráfico. Para ingresar al modo de comandos y administrar la base de datos se va al directorio: C:internetmysqlbinmysql –u root –p Como password se pone admin, esto hará que salga el prompt de mysql: mysql> Para salir se pone exit o quit Las bases de datos se crearán el directorio: c:internetmysqldata
  • 2. Operaciones Básicas Se entra a la base de datos con: mysql -u root –p y como clave se pone admin. En la línea 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 pequeñas 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) Creación 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
  • 3. SET PASSWORD FOR 'ua033333@localhost' = PASSWORD( '**********' ) Otra forma de crear usuarios es ingresar con la clave de root a la base de datos y poner las siguientes sentencias: use mysql; insert into user values("localhost", "nombredeusuario", password("clavedeusuario"), "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y"); insert into db values ("localhost", "basededatosconcreta", "nombredeusuario", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y"); exit; Pasos para crear bases de datos El comando para crear la base de datos es: mysql> CREATE DATABASE prueba; esto hará que se cree el directorio prueba en /var/lib/mysql/prueba. Para crear las tablas de la base de datos se pone: mysql> use prueba; para elegir la tabla en la que se va ha trabajar mysql> create table clientes (nombre varchar(20), edad int(2), -> sueldo float(9,2), memo text); Tipos posibles de campos VARCHAR Tiene un número variable de caracteres el número que se pone es el número máximo de caracteres que puede tener este número va de 1 a 255 CHAR Tiene un número fijo de caracteres va de 1 a 255 DATE Tipo fecha (YYYY-MM-DD)-( '1000-01-01' a '9999-12-31') TIME Tipo hora (HH:MM:SS) – (-838:59:59' a '838:59:59) DATETIME Tipo fecha y hora (YYYY-MM-DD HH:MM:SS) TIMESTAMP(N) Tipo fecha y hora. Se utiliza para generar campos en los cuales automáticamente se guardan la fecha y hora de creación o modificación del registro. Ejemplos de formatos: TIMESTAMP(14) YYYYMMDDHHMMSS TIMESTAMP(12) YYMMDDHHMMSS TIMESTAMP(10) YYMMDDHHMM TIMESTAMP(8) YYYYMMDD TIMESTAMP(6) YYMMDD TIMESTAMP(4) YYMM TIMESTAMP(2) YY YEAR(2 o 4) Tipo año (1970 a 2069) INTEGER (INT) Tipo numérico entero (-2147483648 a 2147483647) FLOAT (M,D) Número real de coma flotante M es el número y D los decimales (-3.402823466E+38 a -1.175494351E-38, 0, y 1.175494351E-38 a 3.402823466E+38.) DOUBLE(M,D) Número real de doble precisión M es el número y D los decimales (- 1.7976931348623157E+308 a -2.2250738585072014E-308, 0, y 2.2250738585072014E-308 a 1.7976931348623157E+308)
  • 4. BLOB Para grandes textos la longitud máxima es 65535 con este tipo las búsquedas de texto son sensibles a las mayúsculas. TEXT Para grandes textos la longitud máxima es 65535 con este tipo las búsquedas de texto NO son sensibles a las mayúsculas. Opciones para los campos not null El valor no puede ser nulo en el campo auto_increment automáticamente incrementa el número del registro anterior primary key El PRIMARY KEY es un campo que MySQL usa como índice. Este índice puede hacer cosas como: • Hallar rápidamente filas que acierten una cláusula WHERE. • Regresar filas de una tabla desde otras tablas cuando se realizan uniones. • Esto definitivamente te va a ayudar a agilizar sus peticiones también. Key Crea una llave secundaria Creación de una tabla con índices o llaves: Mysql> create table prueba4 (llave1 int(1) not null, llave2 int(1), primary key(llave1),key(llave2)); Toda llave primaria debe ser de tipo not null para que pueda indexar correctamente. En este ejemplo el campo llave1 es la llave primaria y el campo llave2 es la llave secundaria. Creación de campos para buscar textos en estos: mysql> CREATE TABLE articles ( -> id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, -> title VARCHAR(200), -> body TEXT, -> FULLTEXT (title,body) -> ); Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO articles VALUES -> (0,'MySQL Tutorial', 'DBMS stands for DataBase ...'), -> (0,'How To Use MySQL Efficiently', 'After you went through a ...'), -> (0,'Optimising MySQL','In this tutorial we will show ...'), -> (0,'1001 MySQL Trick','1. Never run mysqld as root. 2. ...'), -> (0,'MySQL vs. YourSQL', 'In the following database comparison ...'), -> (0,'MySQL Security', 'When configured properly, MySQL ...'); Query OK, 6 rows affected (0.00 sec) Records: 6 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM articles -> WHERE MATCH (title,body) AGAINST ('database'); +----+-------------------+------------------------------------------+ | id | title | body | +----+-------------------+------------------------------------------+ | 5 | MySQL vs. YourSQL | In the following database comparison ... | | 1 | MySQL Tutorial | DBMS stands for DataBase ... |
  • 5. +----+-------------------+------------------------------------------+ 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) Modificación 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); Colocar una columna al final de la tabla ALTER TABLE [nombre_de_la_tabla] ADD [columna_nueva opciones]; ALTER TABLE clientes ADD cedula varchar(10); Si se desea crear una columna al inicio de una tabla: ALTER TABLE [nombre_de_la_tabla] ADD [columna_nueva opciones] FIRST; ALTER TABLE clientes ADD cedula varchar(10) FIRST; Y si se trata de colocarla después de una columna dada, es: ALTER TABLE [nombre_de_la_tabla] ADD [columna_nueva opciones] AFTER [nombre_de_columna]; ALTER TABLE clientes ADD cedula varchar(10) AFTER nombre; Para eliminarla, se utiliza este comando: ALTER TABLE [nombre_de_la_tabla] DROP [nombre_columna]; ALTER TABLE clientes DROP cedula; Para insertar datos a la tabla Se utiliza la siguiente sentencia: mysql> INSERT INTO clientes -> VALUES ('Pablo','30','600',NULL); Nota: La comilla es obligatorio para el ingreso de datos Otra forma de ingresar datos es: mysql> insert into clientes -> (nombre) -> values -> ('pablo'); con esta forma se ingresa el nombre pablo en el campo nombre únicamente
  • 6. Para insertar datos a la tabla desde un archivo de textos la sentencia es: mysql> LOAD DATA LOCAL INFILE "datos.txt" INTO TABLE clientes; el archivo debe tener el siguiente formato: Pablo 30 600 N Juan 20 N bueno El símbolo N sirve para cuando ese campo no tiene datos. El separador de campos es TAB y el de registros el fin de línea LF (o Enter) 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
  • 7. mysql> SELECT * FROM clientes ORDER BY edad; para que el resultado se ordene por edad mysql> SELECT * FROM clientes ORDER BY edad DESC; para que el resultado se ordene en forma descendente mysql> SELECT * FROM clientes GROUP BY edad; mysql> SELECT nombre, sueldo/100 from clientes; para que muestre la columna sueldo dividido para 100 mysql> select * from clientes where edad is NULL; mysql> select * from clientes where edad is NOT NULL; mysql> SELECT * FROM clientes WHERE nombre LIKE "P%"; para buscar nombres que comienzan con P mysql> SELECT * FROM clientes WHERE nombre LIKE "%P"; para buscar nombres que terminan con P mysql> SELECT * FROM clientes WHERE nombre LIKE "%P%"; para buscar nombres que tengan P en cualquier posicion mysql> SELECT * FROM clientes WHERE nombre LIKE "_"; para buscar nombres que tengan un carácter mysql> SELECT nombre, COUNT(*) FROM clientes mysql> SELECT DISTINCT nombre FROM clientes saca los nombres sin repetidos mysql> SELECT * from tabla1 where not exists (SELECT * from tabla2 where tabla1.codigo = tabla2.codigo); muestra los códigos de la tabla1 que no existan en la tabla2 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 |
  • 8. | pablo | vitamina c | | pablo | cebion | +--------+------------+ los campos que relacionan estas tablas son el número 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 relación. +--------+------------+ | 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) Bibliografía http://www.sorgonet.com/linux/mysql/index_es.php http://www.arrakis.es/~chessy/docs/teoria/instalacion-mysql.html http://www.arrakis.es/~chessy/docs/teoria/Tutorial-MySQL.html http://www.mysql.com/documentation/mysql/bychapter/ http://otri.us.es/recursosPHP/manual/index.htm http://www.elguruprogramador.com.ar/tutoriales/tutorial_php.asp http://www.mysql.com/doc/F/u/Fulltext_Search.html http://www.mysql.com/doc/I/n/Indexes.html http://www.mysql.com/doc/C/R/CREATE_TABLE.html