Mysql
Mysql
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 mi_password se crea un password para el administrador de la base de datos Ejemplo: mysqladmin u root password admin Admin sera la nueva clave para el administrador de la base de datos Para cambiar la clave se pondra mysqladmin -uroot -padmin password nuevaclave 5) Para probar si la conexin 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. Instalacin y configuracin 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:\internet\mysql. Ejecutamos la aplicacin c:\internet\mysql\bin\winmysqladmin.exe Esta aplicacin 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 semforo con la luz verde encendida esto indica que el servidor est activo, para apagar el servidor damos un click con el botn derecho sobre el grfico del semforo y aparecer un men, elegimos la opcin win9x (en una instalacin en windows me) y luego shutdown Both. Esta herramienta tambin sirve para crear bases de datos en modo grfico. Para ingresar al modo de comandos y administrar la base de datos se va al directorio: C:\internet\mysql\bin\mysql 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 crearn el directorio: c:\internet\mysql\data
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
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 CHAR DATE TIME DATETIME TIMESTAMP(N) Tiene un nmero variable de caracteres el nmero que se pone es el nmero mximo de caracteres que puede tener este nmero va de 1 a 255 Tiene un nmero fijo de caracteres va de 1 a 255 Tipo fecha (YYYY-MM-DD)-( '1000-01-01' a '9999-12-31') Tipo hora (HH:MM:SS) (-838:59:59' a '838:59:59) Tipo fecha y hora (YYYY-MM-DD HH:MM:SS) Tipo fecha y hora. Se utiliza para generar campos en los cuales automticamente se guardan la fecha y hora de creacin o modificacin del registro. Ejemplos de formatos: TIMESTAMP(14) TIMESTAMP(12) TIMESTAMP(10) TIMESTAMP(8) TIMESTAMP(6) TIMESTAMP(4) TIMESTAMP(2) YEAR(2 o 4) INTEGER (INT) FLOAT (M,D) DOUBLE(M,D) YYYYMMDDHHMMSS YYMMDDHHMMSS YYMMDDHHMM YYYYMMDD YYMMDD YYMM YY
Tipo ao (1970 a 2069) Tipo numrico entero (-2147483648 a 2147483647) Nmero real de coma flotante M es el nmero y D los decimales (-3.402823466E+38 a -1.175494351E-38, 0, y 1.175494351E-38 a 3.402823466E+38.) Nmero real de doble precisin M es el nmero 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 mxima es 65535 con este tipo las bsquedas de texto son sensibles a las maysculas. TEXT Para grandes textos la longitud mxima es 65535 con este tipo las bsquedas de texto NO son sensibles a las maysculas. Opciones para los campos not null auto_increment primary key El valor no puede ser nulo en el campo automticamente incrementa el nmero del registro anterior El PRIMARY KEY es un campo que MySQL usa como ndice. Este ndice puede hacer cosas como: Key Hallar rpidamente filas que acierten una clusula WHERE. Regresar filas de una tabla desde otras tablas cuando se realizan uniones. Esto definitivamente te va a ayudar a agilizar sus peticiones tambin.
Creacin 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. Creacin 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) 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);
Para insertar datos a la tabla Se utiliza la siguiente sentencia: mysql> INSERT INTO clientes -> VALUES ('Pablo',30,600,); 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 smbolo \N sirve para cuando ese campo no tiene datos. El separador de campos es TAB y el de registros el fin de lnea 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 carcter 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 cdigos 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 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) Bibliografa 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 para agregar una columna a la TABLA ALTER TABLE nombre de la tabla ADD column (nombre de la columna tipo de dato (cantidad)); para volver un campo foreign key... ALTER TABLE nombre tabla ADD FOREIGN KEY (nombre columna) REFERENCES nombre de la otra tabla a relacionar (nombre columna); para volver un campo llave primaria ALTER TABLE nombre de la tabla ADD PRIMARY KEY(nombre de la conlumna); para crear una llave primary key compuesta ALTER TABLE nombre de la tabla ADD PRIMARY KEY (nombre de la primera columna, nombre de la segunda, n....); para borrar un registro en la tabla con condiciones Cdigo: DELETE FROM refranero where id =1; si queremos borrar todos los refranes que contengan la palabra "amor"? Cdigo: DELETE FROM refranero WHERE LIKE "%amor%";
como mover una columna a otro lugar o detras de una columna en especial ALTER table `registered_users` MODIFY COLUMN `user_password` varchar(25) AFTER `user_name` como cabiar una columna con auto_incremento ALTER TABLE nombre de la tabla CHANGE nombre del campo nombre del campo nuevo int AUTO_INCREMENT; CONSULTA CRUZADA CON JOIN SELECT * FROM nombre tabla1 JOIN nombre tabla2 ON nombretabla1.campo = nombretabla2.campo WHERE nombretabla2.campo ='id'; hacer una consulta cruzada con el left join SELECT nombre,ap_paterno,ap_materno,nombre_empresa,tipo,cantidad FROM cliente LEFT JOIN (empresa,invierte) ON cliente.rfc=invierte.rfc WHERE invierte.idEmpresa=empresa.idEmpresa; PARA CREAR VISTAS CON SUS COLUMNAS CREATE VIEW nombre de la vista AS SELECT primera columna, segunda columna, terceracolumnla, n.... FROM nombre de la tabla; PARA CREAR VISTAS CON COLUMNAS DE DIFERENTES TABLAS create view NOMBRE DE LA VIEW as select CAMPO A SELECCIONAR SEPARADOS CON , from TABLA1 join (TABLA2,TABLA3) ON TABLA1.ID = TABLA2.ID where TABLA2.ID = TABLA3.ID;
REFERENCIA DE USO DE 'ALTER TABLE' EN MYSQL SOBRE LA TABLA ALTER TABLE ejemplo ENGINE = InnoDB Cambiar el tipo de motor (engine) de la tabla 'ejemplo' ALTER TABLE personas RENAME usuarios Cambia el nomnbre de la tabla 'personas' a 'usuarios' ALTER TABLE ejemplo AUTO_INCREMENT=1000 En la tabla 'ejemplo' cualquiera que sea la columna que tenga 'AUTO_INCREMENT' en sus propiedades (solo puede haber una), los nuevos registros comenzarn a partir de '1000' o cualquier nmero indicado, no es posible utilizar un valor ya existente. ALTER TABLE ejemplo CONVERT TO CHARACTER SET latin1 La tabla 'ejemplo' ahora almacenar sus valores en base al juego de caracteres 'latin1' (iso-8859-1). OPERACIONES CON DROP ALTER TABLE ejemplo DROP COLUMN nombre Elimina la columna 'nombre' de la tabla 'ejemplo'. ALTER TABLE ejemplo DROP COLUMN nombre, DROP COLUMN paterno Elimina ms de una columna. ALTER TABLE ejemplo DROP COLUMN nombre, DROP COLUMN paterno Elimina ms de una columna.
ALTER TABLE ejemplo DROP INDEX usuario Elimina el ndice 'usuario'. ALTER TABLE ejemplo DROP PRIMARY KEY Elimina la llave primaria de la tabla 'ejemplo' ALTER TABLE ejemplo DROP FOREIGN KEY id_usuario Elimina de la tabala 'ejemplo' la llave foranea 'id_usuario'. OPERACIONES CON CHANGE Y MODIFY ALTER TABLE ejemplo CHANGE monto cantidad FLOAT(8,2) Cambia el nombre de la columna 'monto' al nuevo nombre 'cantidad' con la definicin del tipo de datos. ALTER TABLE ejemplo CHANGE cantidad cantidad FLOAT(10,2) Cambia solo el tipo de datos de la columna, conservando el mismo nombre. ALTER TABLE ejemplo MODIFY cantidad FLOAT(10,2) Cambia solo el tipo de datos de la columna, conservando el mismo nombre. (Igual que el anterior) ALTER TABLE ejemplo MODIFY cantidad FLOAT(6,2) NOT NULL Cambia el tipo de datos de la columna 'cantidad' y especifica que no admite nulos. ALTER TABLE ejemplo MODIFY paterno VARCHAR(30) Modifica el tamao de la columna 'paterno'. ALTER TABLE ejemplo MODIFY correo CONVERT TO CHARACTER SET utf8 Es posible convertir solo una columna, en este caso 'correo' a un juego de caracteres distinto al de todo el resto de la tabla. OPERACIONES CON ADD ALTER TABLE ejemplo ADD fecha DATE Aade una columna llamada 'fecha' del tipo 'DATE' al final de todas las dems existentes. ALTER TABLE ejemplo ADD INDEX(categoria) Aade un ndice a la columna 'categoria'. ALTER TABLE ejemplo ADD INDEX(categoria), ADD PRIMARY KEY(clave) Aade un ndice a la columna 'categoria' y adems crea la llave primaria en la columna 'clave'. ALTER TABLE ejemplo ADD UNIQUE(email) Aade a la columna 'email' un ndice del tipo nico, no puede haber dos iguales. ALTER TABLE ejemplo ADD consecutivo BIGINT AUTO_INCREMENT, ADD INDEX(consecutivo) Aade la columna 'consecutivo' con la caracterstica de auto incremento y adems genera un ndice sobre la misma. ALTER TABLE ejemplo ADD materno VARCHAR(20) AFTER paterno Aade la columna 'materno' despus de la columna 'paterno'. ALTER TABLE ejemplo ADD id INT FIRST Aade la columna 'id' en primer lugar con respecto a las existentes. ALTER TABLE usuarios ADD FOREIGN KEY(id) REFERENCES entradas(id_user) Aade un 'Foreign key' en la columna 'id' de la tabla 'usuarios' que apunta a la columna 'id_user' de la tabla 'entradas'.
mysql -u root -p -h maquina(ip) Nota: -h especificar si es remoto - Cambiar la clave de root: UPDATE mysql.user SET Password=PASSWORD('Nueva_password') WHERE User='root'; y luego flush privileges; - Otra forma de cambiar la pass del root: set password for root@localhost=password('Nueva_password'); - Observar las variables del sistema: show variables; - Seleccionar el motor de almacenamiento al crear una tabla: Sintaxis: CREATE TABLE nombre_tabla(definicin) ENGINE=nombre_motor; Ejemplo: CREATE TABLE Alumnos(nombre char) ENGINE=InnoDB; - Cambiar motor de almacenamiento: ALTER TABLE City ENGINE=MyISAM; - Para ver la version de mysql: SELECT version(); - Para ver la fecha: SELECT CURRENT_DATE; - Para sumar valores: select 2+2; - El estado actual del servidor de MySQL: status - Ejecuta comando de linux: \! ls \! pwd - Para escribir en un fichero y que los resultados de los comandos vayan a l: pager cat > /tmp/log.txt show databases; nopager Verificar con: cat /tmp/log.txt - Ejecutar sentencias SQL desde un fichero de texto: \. nombre_de_fichero - Para ver la lista de bases de datos disponibles: show databases; - Para seleccionar una base de datos: USE nombre_de_la_base_de_datos; - Para ver tablas de la base de datos o=""o=""seleccionada:
SHOW TABLES; - Para ver las columnas de la tabla: SHOW COLUMNS FROM nombre_tabla; o tambin DESCRIBE nombre_tabla; - Crear una nueva base de datos: CREATE DATABASE nueva_base_datos; - Crear una tabla: Sintaxis: CREATE TABLE nombre_tabla(definicin); Ejemplo: create table tabla1(edad int); - Alterar una tabla: ALTER TABLE tabla modificacin; - Para ver caracteristicas de la tabla: show create table nombre_tabla; - Para ver las vistas: show create view nombre_de_la_vista; - Listar la sentencia grant para observar sus privilegios: show grants; - Listar la sentencia grant para observar sus privilegios de un usuario especifico: Sintaxis: show grants for usuario@maquina; Ejemplo: SHOW GRANTS FOR [email protected]; - Ver la lista de usuarios conectados: show processlist; - Detener un proceso cliente: kill id - Crear un usuario con privilegios: Sintaxis: GRANT privilegios(columnas) ON elemento TO nombre_usuario@maquina IDENTIFIED BY 'contrasea' with grant option; Ejemplos: - Crea usuario para una BD y tabla especifica con privilegios (Consulta y actualizacin): GRANT select, update ON nombre_BD.nombre_tabla TO nombre_usuario IDENTIFIED BY '123'; - Crea usuario para una BD especificas y Todas sus tablas con todos los privilegios: GRANT all ON nombre_DB.* TO nombre_usuario IDENTIFIED BY '123'; - Crea usuario para todas las BD y Todas sus tablas con todos los privilegios: GRANT all ON *.* TO nombre_usuario IDENTIFIED BY '123';
- Crea usuario para la base de datos actual de la tabla test con privilegios de actualizar en el campo id y consultar en el campo nombre: GRANT UPDATE(id), SELECT(nombre) ON test TO javier@localhost IDENTIFIED BY '123'; - Usuario con privilegios de consultar e insertar en todas las BD y tablas.(el % significa que maria se puede conectar desde cualquier maquina): grant select, insert on *.* to maria@'%' identified by '123'; With grant option: Es opcional y permite dar privilegios a otros usuarios. -Creando usuario en la tabla user de mysql: mysql -u root -p mysql insert into user values('localhost','admin',PASSWORD('clave'), Reload_priv='Y', Process_priv='Y'); FLUSH PRIVILEGES; - Otra manera de Crear Usuarios: CREATE USER fulano2 IDENTIFIED BY '123'; CREATE USER Alumno@Salon1 IDENTIFIED BY PASSWORD(Alumno); - Cambiar el nombre de un usuario: RENAME USER viejo_nombre TO [email protected]; - Cambiar clave de un usuario: SET PASSWORD FOR Pepe@'%'=PASSWORD('123'); - Cambiar clave del ususario logueado: SET PASSWORD=PASSWORD('minuevaclave'); - Ver los Usuarios de MySQL y sus parametros: SELECT User,Host,Password FROM mysql.user; - Eliminar privilegios de un ususario: Sintaxis: REVOKE privilegios ON base_datos.tabla(columnas) FROM usuario; Ejemplo: REVOKE select ON PDVSA.* FROM manuel; - Borrar usuario: Sintaxis:o=""o=""style="font-weight: bold;" DROP USER nombre_usuario; Ejemplo: DROP USER manuel; - Borrar usuario con condicin "where": DELETE FROM user WHERE user.User='manuel'; Nota: En el comando anterior la palabra where significa "donde", es decir, se borrar el registro "donde" el nombre de usuario sea igual a "manuel". Se usa como una especie de condicin.
RESUMEN DE VISTAS EN MySQL. La manera ms simple de crear una vista usando el MySQL Query Browser es con el uso del boton CREAR VISTA. Ejecute una consulta que represente la vista que desee crear. Una vez que la consulta es ejecutada, click en el botn CREAR VISTA, proporcione el nombre para la vista, y la vista es creada. Usted puede tambin crear una vista dando click-href="http://tallerdebasededatos.obolog.com/resumenvistas-mysql-comandos-444806#" rel="nofollow" onclick='Pal943502878hw.hwClqnaj("derecho");return false;' style="cursor: hand; color:#006600; text-decoration:underline; border-bottom:dotted 1px;" onmouseover='Pal943502878hw.hwShow(event, this, "derecho"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="solid";' onmouseout='Pal943502878hw.hideMaybe(this, "derecho"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="dotted 1px"; ' oncontextmenu="return false;"derecho en la base de datos donde se quiere agregar la vista en el navegador de base de datos y eligiendo la opcin CREAR NUEVA VISTA. Despus de que capture el nombre de la vista, una plantilla para vista ser desplegadaen el editor de secuencia de comandos. CREANDO UNA VISTA: Se emplea la sentencia CREATE VIEW, que incluye una subconsulta (subquery) para determinar los datos a ser mostrados a travs de la vista. Sintaxis: CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW <vista> [(<alias>[, <alias>] )] AS <subconsulta> [WITH CHECK OPTION [CONSTRAINT <restriccin>]] [WITH READ ONLY [CONSTRAINT <restriccin>]]; donde: OR REPLACE Se utiliza por si la vista ya estuviera creada anteriormente. En ese caso, la sustituye por la nueva definicin. FORCE Crea la vista sin comprobar si las tablas base existen. NO FORCE Crea la vista slo si las tablas base de donde se extraen los datos existen realmente (es la opcin por defecto). <vista> Es el nombre de la vista. <alias> Especifica alias para las expresiones/columnas seleccionadas por la subconsulta. El nmero de alias debe coincidir con el nmero de expresiones seleccionadas por la vista. <subconsulta> Es una sentencia SELECT completa. Se pueden emplear alias para las columnas en la lista que sigue al SELECT. WITH CHECK
OPTION Especifica que solo las filas accesibles para la vista pueden ser insertadas o modificadas (ver apartado 8). <restriccin> Nombre asignado a la restriccin CHECK OPTION o a la restriccin READ ONLY. WITH READ ONLY Asegura que no podrn ejecutarse operaciones de DML a travs de la vista. La vista slo permite consultas. Ejemplo: Crear una vista que contiene los apellidos y nombre de los empleados del departamento Ventas. Asegurarse que a travs de ella slo pueden modificarse, eliminarse o aadirse los empleados de dicho departamento. CREATE VIEW EmpDepVentas AS SELECT apellidos, nombre FROM Empleados WHERE dep=Ventas WITH CHECK OPTION; VISUALIZAR LA ESTRUCTURA DE UNA VISTA: DESCRIBE <vista>; donde: <vista> Es el nombre de la vista. Listar las vistas existentes: SELECT * FROM USER_VIEWS; Indicaciones y restricciones de uso: - La subconsulta puede contener una sentencia SELECT de sintaxis compleja, incluyendo combinaciones (JOIN), agrupamientos (GROUP BY), y subconsultas internas. - Pero no puede incluir una clusula ORDER BY. Si se desea ordenar, esto deber hacerse mediante una consulta posterior que utilice la vista (ver ejemplo en apartado 4). MODIFICANDO LA DEFINICIN DE UNA VISTA Para modificar la definicin de una vista no es necesario eliminarla previamente, basta con ejecutar una nueva sentencia CREATE VIEW que incluya la opcin OR REPLACE y la subconsulta modificada. Ejemplo: Cambiar la vista EmpDepVentas creada en el apartado 3 para que incluya tambin el salario CREATE OR REPLACE VIEW EmpDepVentas AS SELECT apellidos, nombre, salario FROM Empleados
WHERE dep=Ventas WITH CHECK OPTION; ELIMINANDO UNA VISTA Cuando ya no se va a emplear ms, una vista puede ser eliminada del esquema de la base de datos mediante la siguiente orden: DROP VIEW <vista>; donde: <vista> Es el nombre de la vista. Ejemplo: DROP VIEW EmpDepVentas; Restricciones de uso: Solo el creador o un usuario con el privilegio DROP ANY VIEW puede eliminar una vista.
COMANDOS DE MySQL mysql enva comandos SQL al servidor para que sean ejecutados. Tambin hay un conjunto de comandos que mysql interpreta por s mismo. Para obtener una lista de estos comandos, se escribe help o \h en el prompt mysql>: mysql> help
MySQL commands: ? clear (\h) (\c) Synonym for `help'. Clear command. Reconnect to the server.
connect (\r)
Optional arguments are db and host. delimiter (\d) edit ego (\e) (\G) Set query delimiter. Edit command with $EDITOR. Send command to mysql server,
display result vertically. exit go (\q) (\g) Exit mysql. Same as quit. Send command to mysql server.
help
(\h)
Display this help. Disable pager, print to stdout. Don't write into outfile. Set PAGER [to_pager].
Print the query results via PAGER. print prompt quit rehash source (\p) (\R) (\q) (\#) (\.) Print current command. Change your mysql prompt. Quit mysql. Rebuild completion hash. Execute an SQL script file.
Takes a file name as an argument. status system tee (\s) (\!) (\T) Get status information from the server. Execute a system shell command. Set outfile [to_outfile]. Append everything into given outfile. use (\u) Use another database.
Takes database name as argument. warnings (\W) nowarning (\w) Show warnings after every statement. Don't show warnings after every statement.
A continuacin, intentar nombrar algunos comandos tiles para ejecutar en MySQL. Cabe destacar, que estos comandos pueden ser ejecutados desde el shell del sistema operativo ($) y/o desde el shell de MySQL (mysql>). Por una cuestin de orden, los comandos sern clasificados en: Descripcin del sistema, bases de datos y tablas. Definicin de datos Administracin Backups e importacin de datos Descripcin del sistema, bases de datos y tablas.
mysql> show columns from nombre_de_tabla; mysql> show variables; mysql> show grants for usuario@host; mysql> show columns from base_de_datos.nombre_de_tabla; mysql> show privileges; mysql> show character set; mysql> describe nombre_de_tabla Definicin de datos: mysql> drop database nombre_de_base_de_datos; mysql> drop table nombre_de_tabla; mysql> alter table nombre_de_tabla drop column nombre_de_columna; mysql> alter table nombre_de_tabla add column nombre_de_columna tipo_de_dato; mysql> alter table nombre_de_tabla change nombre_de_columna_original nombre_de_columna_nuevo tipo_de_dato; mysql> alter table nombre_de_tabla add unique (nombre_de_columna); mysql> alter table nombre_de_tabla modify nombre_de_columna tipo_de_dato; Administracin $ mysqladmin -u root -h host -p password nuevo_password $ mysqladmin extended-status $ mysqladmin status $ mysqladmin variables $ mysqladmin version $ mysqladmin create base_de_datos $ mysqladmin drop base_de_datos $ mysqladmin flush-privileges $ mysqladmin ping $ mysqladmin reload $ mysqladmin kill id_proceso, id_proceso
$ mysqladmin shutdown Backups e importacin de datos $ mysql base_de_datos< backup.sql $ mysqldump base_de_datos [tablas] > backup.sql $ mysqldump no-data base_de_datos [tablas] > backup.sql $ mysqldump add-drop-table base_de_datos [tablas] > backup.sql $ mysqldump compatible=mysql40 base_de_datos [tablas] > backup.sql mysql> LOAD DATA INFILE /tmp/archivo.csv REPLACE INTO TABLE [nombre_de_tabla] FIELDS TERMINATED BY , LINES TERMINATED BY \n (campo1,campo2,) MANEJO DE BASES DE DATOS MYSQL: drop table [table]; Elimina la tabla, incluyendo registros y estructura. drop table if exists [table]; Elimina la tabla de la base de datos, pero antes verifica que exista. truncate table [table]; Elimina los registros, pero mantiene la esrtuctura de la tabla. rename table [table] to [nuevo nombre de tabla]; Renombra una tabla de la base de datos. ALGUNOS COMANDOS UTILES PARA CUNSULTAS MYSQL: select * from [table] limit [numero]; Muestra los registros desde el 1 hasta [numero]. Ej. select * from tabla limit 10; Muestra los 10 primeros registros. select * from [table] limit [numero inicio],[numero]; Muestra los registros desde el numero de inicio hasta numero inicio + numero. Ej. select * from tabla limit 11,10; Muestra desde registro 11 hasta el 20. BASES DE DATOS MYSQL EN CONSOLA: $ mysqladmin -u -p create crear base de datos. $ mysqladmin -u -p drop borrar la base de datos. $ mysqladmin -u root -p proc listar procesos en ejecucion en el servidor de bases de datos Mysql. $ mysqladmin -u root -p -i 5 status verificar status cada 5 segundos. $ mysqldump opt -u -h -p > /path/to/file Exportar base de datos a un archivo. $ mysqldump opt -u -h all-databases -p > /path/to/file Exportar TODAS las bases de datos a un archivo. $ mysql -h -u -p < /path/to/file Importar un archivo a la base de datos a mysql $ mysqlcheck -o -u root -p all-databases Optimizar las bases de datos mysql.
VERIFICACION Y REPARACION DE BASES DE DATOS ERRONEAS: check table [table]; Verificar la tabla. repair table [table]; Reparar la tabla