Documente Academic
Documente Profesional
Documente Cultură
Instituto Universitario de
Tecnologa de Administracin
Programacin IV
Semestre V
Docente: Ing Omar A. Radaelli C.
(oradaelli60)
Si todo funciona bien, se ver una informacin de ingreso seguida por el prompt mysql>:
shell> mysql -h host -u user -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.46-community-nt-log MySQL Community Edition (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Despus de haberse conectado, se puede desconectar en cualquier momento escribiendo
QUIT (o \q) en el prompt mysql>:
mysql> QUIT
Bye
No es necesario que un comando sea ingresado en una sola lnea, de ese modo, comandos
extensos que requieren varias lneas no son un problema. mysql acepta un formato libre para
las entradas: recolecta lneas pero no las ejecuta hasta que encuentra el punto y coma.)
Esto es una sentencia de mltiples lneas:
mysql> SELECT
-> USER()
-> ,
-> CURRENT_DATE;
+----------------+--------------+
| USER()
| CURRENT_DATE |
+----------------+--------------+
| root@localhost | 2008-12-20
|
+----------------+--------------+
1 row in set (0.02 sec)
El prompt cambia de mysql> a -> despus que se ha ingresado la primera lnea de una
consulta de mltiples lneas. Esta es la forma en que mysql advierte que no se ha completado
la sentencia y an espera por el resto.
Durante el ingreso de un comando se puede decidir que no quiere ejecutarlo, se cancela
tipeando \c:
mysql> SELECT
-> USER()
-> \c
mysql>
Una vez ms observe el prompt. Cambia a mysql> despus de que ingresa \c, informndole
que mysql est listo para un nuevo comando.
Es frecuente que se origine una sentencia de mltiples lneas cuando accidentalmente le da
entrada a un comando de una sola lnea pero olvida terminarlo con punto y coma. En ese caso,
mysql aguarda por ms caracteres:
mysql> SELECT USER()
->
Si esto le ocurre (considera que ha ingresado una sentencia completa pero solamente obtiene
un prompt ->), mysql est esperando por el punto y coma. Ingrese un punto y coma para
completar la sentencia, y mysql la ejecutar:
mysql> SELECT USER()
-> ;
+----------------+
| USER()
|
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
4
Los prompts '> y "> aparecen durante el ingreso de cadenas. Puede escribir cadenas
delimitadas por ''' o '"' (por ejemplo, 'hola' o "adios"), y mysql le permite ingresar
cadenas divididas en mltiples lneas. Cuando ve un prompt '> o "> significa que ha
comenzado a ingresar una cadena comenzando con ''' o '"' pero no ha ingresado el
correspondiente caracter de terminacin. A menudo esto significa que inadvertidamente omiti
este carcter. Por ejemplo:
mysql> SELECT * FROM tb_empleados WHERE name = 'pedro AND edad < 30;
'>
Si ingresa esta sentencia SELECT, presiona ENTER y espera por el resultado, nada ocurrir.
En lugar de asombrarse por el tiempo que consume la consulta, note lo que el prompt '> le
est diciendo. Indica que mysql espera por el final de una cadena inconclusa. (Ve el error en
la sentencia? La cadena 'Smith no tiene el apstrofe de cierre.)
Qu hacer llegado a este punto? Lo ms simple es cancelar el comando. No obstante, no
puede simplemente tipear \c en este caso, porque mysql interpretar que es parte de la
cadena que est ingresando!. En lugar de eso, tipee el caracter de cierre que falta y entonces
ingrese \c.>:
mysql> SELECT * FROM tb_empleados WHERE name = 'pedro AND edad < 30;
'> '\c
mysql>
El prompt cambia de nuevo a mysql>, informando que mysql est listo para un nuevo
comando.
El prompt `> es similar a '> y "> , pero informa que est pendiente de completar un
identificador delimitado por tildes.
Database changad
Se verifica que la Base de Datos personal ha sido seleccionada para su uso
mysql> SELECT DATABASE();
+------------------+
| DATABASE()
|
+------------------+
| personal
|
+------------------+
Cod_Cargo
Cargo
Abg
Abogado
Acc
Accionista
Adm
Administrador
Cont
Contador
Emp
Empleado
Ger
Gerente
Ing
Ingeniero
Jefe
Jefe Departamento
Obr
Obrero
Sec
Secretaria
Vend
Vendedor
Como se est comenzando con una tabla vaca, una forma fcil de completarla es creando un
fichero de texto que contenga una lnea por cada registro y luego insertar el contenido del
fichero en la tabla mediante una sola sentencia.
Para esto, debera crear un fichero de texto llamado tb_cargo.txt conteniendo un registro
por linea, con cada valor separado por un carcter de tabulacin, y dispuestos en el orden en el
cual se especificaron las columnas en la sentencia CREATE TABLE. Para valores ausentes se
puede usar valores NULL. Para representar estos valores en el archivo de texto, se utiliza \N
(barra diagonal y N mayscula).
Se crea un archivo de texto llamado tb_cargo.txt con los siguientes datos:
abg
acc
adm
cont
emp
ger
ing
jefe
obr
sec
vend
Abogado
Accionsta
Administrador
Contador
Empleado
Gerente
Ingeniero
Jefe Departamento
Obrero
Secretaria
Vendedor
Para cargar el fichero tb_cargo.txt dentro de la tabla tb_cargo utilice este comando:
mysql> LOAD DATA INFILE tb_cargo.txt INTO TABLE tb_cargo;
Si trabaja en Windows, con un editor que emplea \r\n (retorno de carro + nueva linea) como
caracteres de fin de lnea, debera usar:
8
Si despus de haber cargado la tabla nos damos cuenta de un error en algn dato.
Para verificar que la tabla ha sido creada en la forma esperada, utilice la sentencia DESCRIBE:
mysql> DESCRIBE tb_dep;
+-----------------+-----------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------------+-----------+------+-----+---------+-------+
| Cod_Dep
| char(20) | NO
| PRI |
|
|
| Departamento
| char(30) | NO
| UNI |
|
|
+-----------------+-----------+------+-----+---------+-------+
2 row in set (0.00 sec)
Administracin
conta
Contabilidad
infor
Informtica
pers
Personal
prod
Produccin
vent
Ventas
Procediendo de la misma forma que para la tabla tb_cargo se crea un fichero tb_dep.txt
con los siguientes datos:
admin Administracin
conta Contabilidad
infor Informtica
pers Personal
prod Produccin
vent Ventas
Para cargar el fichero tb_dep.txt dentro de la tabla tb_dep utilice este comando:
mysql> LOAD DATA INFILE tb_dep.txt INTO TABLE tb_dep;
Si trabaja en Windows, con un editor que emplea \r\n (retorno de carro + nueva linea) como
caracteres de fin de lnea, debera usar:
11
12
13
Si trabaja en Windows, con un editor que emplea \r\n (retorno de carro + nueva linea) como
caracteres de fin de lnea, debera usar:
mysql> LOAD DATA INFILE tb_empleados.txt INTO TABLE tb_empleados
-> LINES TERMINATED BY '\r\n';
Y se produce la siguiente salida:
mysql> LOAD DATA INFILE tb_empleados.txt INTO TABLE tb_empleados
-> LINES TERMINATED BY '\r\n';
Query OK, 49 rows affected (0.02 sec)
Record:49
Deleted:0
Skipped:0
Warning:0
SELECT Cod_E,Cedula,Nombre,Apellido,
tb_cargo.Cargo,tb_dep.Departamento
FROM tb_empleados, tb_cargo, tb_dep
WHERE tb_empleados.Cod_Cargo_E=tb_cargo.Cod_Cargo
AND tb_empleados.Cod_Dep_E=tb_dep.Cod_Dep
ORDER BY Cod_E;
+-----+-----------+----------+----------+-------------+--------------+
|Cod_E| Cedula
| Nombre
| Apellido | Cargo
| Departamento |
+-----+-----------+----------+----------+-------------+--------------+
| 1 | 15741451 |petra
|ramos
|Ingeniero
|Ventas
|
| 2 | 13714452 |maria
|perez
|Abogado
|Administracin|
| 3 | 13714453 |jose
|ramirez
|Administrador|Administracin|
| 4 | 13714454 |ramon
|rodriguez |Contador
|Administracin|
| 5 | 13714455 |luis
|ostos
|Empleado
|Administracin|
| 6 | 13714456 |pedro
|contreras |Secretaria
|Administracin|
| 7 | 12456987 |ana
|gutierrez |Obrero
|Administracin|
| 8 | 14258369 |maria
|perez
|Jefe Dep
|Contabilidad |
| 9 | 15123654 |alicia
|acosta
|Abogado
|Contabilidad |
| 10 | 18963852 |teresa
|espitia
|Administrador|Contabilidad |
| 11 | 12587241 |daniela
|radaelli |Contador
|Contabilidad |
| 12 | 13714457 |ricardo
|radaelli |Empleado
|Contabilidad |
| 13 | 17896321 |augusto
|Acosta
|Secretaria
|Contabilidad |
| 14 | 17456328 |camila
|perez
|Obrero
|Contabilidad |
| 15 | 18963214 |teresa
|caliman
|Jefe Dep
|Personal
|
15
| 16 | 14569852 |eleazar
|palma
|Administrador|Personal
|
| 17 | 14563391 |leopoldo |almandoz |Empleado
|Personal
|
| 18 | 17852321 |carolina |perez
|Secretaria
|Personal
|
| 19 | 17159632 |Alejandro |martinez |Obrero
|Personal
|
| 20 | 14523654 |edgar
|calderon |Jefe Dep
|Produccin
|
| 21 | 17456321 |Ingrid
|herrera
|Ingeniero
|Produccin
|
| 22 | 15321478 |Alexander |cabrera
|Secretaria
|Produccin
|
| 23 | 14563321 |jesus
|calderon |Obrero
|Produccin
|
| 25 | 14789632 |karen
|palma
|Jefe Dep
|Ventas
|
| 26 | 14652321 |yudesky
|tirado
|Secretaria
|Ventas
|
| 27 | 15632147 |eugenia
|marin
|Obrero
|Ventas
|
| 28 | 18663254 |angelica |rodriguez |Vendedor
|Ventas
|
| 29 | 17963333 |luis
|torres
|Obrero
|Produccin
|
| 30 | 17963258 |ricardo
|radaelli |Vendedor
|Ventas
|
| 31 | 17963357 |luis
|marin
|Abogado
|Personal
|
| 32 | 17963329 |aimaris
|medina
|Contador
|Contabilidad |
| 33 | 13714460 |augusto
|caliman
|Ingeniero
|Produccin
|
| 34 | 17896325 |antonio
|torres
|Empleado
|Produccin
|
| 35 | 17456357 |yosmar
|salcedo
|Ingeniero
|Produccin
|
| 36 | 17896452 |adrian
|medina
|Administrador|Produccin
|
| 37 | 17896523 |jesus
|perez
|Empleado
|Ventas
|
| 38 | 12456789 |yudesky
|orellana |Ingeniero
|Informtica
|
+-----+-----------+----------+----------+-------------+--------------+
38 row in set (0.02 sec)
SELECT Cod_E,Cedula,Nombre,Apellido,
tb_cargo.Cargo,tb_dep.Departamento
FROM tb_empleados, tb_cargo, tb_dep
WHERE tb_empleados.Cod_Cargo_E=tb_cargo.Cod_Cargo
AND tb_empleados.Cod_Dep_E=tb_dep.Cod_Dep
AND Cedula=13714453
ORDER BY Cod_E;
mysql>
->
->
->
->
->
->
SELECT Cod_E,Cedula,Nombre,Apellido,
tb_cargo.Cargo,tb_dep.Departamento
FROM tb_empleados, tb_cargo, tb_dep
WHERE tb_empleados.Cod_Cargo_E=tb_cargo.Cod_Cargo
AND tb_empleados.Cod_Dep_E=tb_dep.Cod_Dep
AND Nombre='omar
ORDER BY Cod_E;
Alter Table
Una vez que se crea la tabla en la base de datos, hay ocasiones donde se puede cambiar la
estructura de la tabla. Los casos tpicos incluyen los siguientes:
- Agregar una columna
- Eliminar una columna
16
Drop Table
Si se necesita eliminar una tabla en la base de datos por alguna razn.
La sintaxis para DROP TABLE es
DROP TABLE "nombre_base_datos.nombre_tabla"
Truncate Table
Si se necesita eliminar solo los datos de una tabla en la base de datos por alguna razn
La sintaxis para TRUNCATE TABLE es
TRUNCATE TABLE "nombre_tabla"
Update
Una vez que hay datos en la tabla, podramos tener la necesidad de modificar los mismos. Para
hacerlo, utilizamos el comando UPDATE. La sintaxis para esto es,
UPDATE "nombre_tabla"
SET "columna_1" = [nuevo valor]
WHERE {condicin}
Por ejemplo, digamos que actualmente tenemos la tabla a continuacin: y notamos que las ventas
para Los Angeles el 08/01/1999 es realmente de 500 en vez de 300 dlares estadounidenses, y
que esa entrada en particular necesita actualizarse. Para hacerlo, utilizamos el siguiente SQL:
UPDATE Store_Information
SET Sales = 500
WHERE store_name = "Los Angeles"
AND Date = "08-Jan-1999"
Si hay mltiples filas que satisfacen la condicin, todas ellas se modificarn.
Tambin es posible UPDATE mltiples columnas al mismo tiempo. La sintaxis en este caso se
17
Delete From
A veces podemos desear deshacernos de los registros de una tabla. Para ello, utilizamos el
comando DELETE FROM. La sintaxis para esto es,
DELETE FROM "nombre_tabla"
WHERE {condicin}
Es ms fcil utilizar un ejemplo. Por ejemplo, digamos que actualmente tenemos la siguiente
tabla: y decidimos no mantener ninguna informacin sobre Los ngeles en esta tabla. Para
lograrlo, ingresamos el siguiente SQL:
DELETE FROM Store_Information
WHERE store_name = "Los Angeles"
Ahora el contenido de la tabla se vera,
18