Sunteți pe pagina 1din 18

Guia MySQL Server

Instituto Universitario de
Tecnologa de Administracin
Programacin IV
Semestre V
Docente: Ing Omar A. Radaelli C.

Conectarse y desconectarse del servidor


Para conectarse al servidor, generalmente se le nombre de host (host), usuario (user) y
contrasea (********) que debe emplear. Parmetros definidos en la instalacin. Una vez
que conozca los parmetros apropiados, debera poder conectarse de este modo:
shell> mysql -h host -u user -p
Enter password: ******** ---------

(oradaelli60)

host representa el nombre del ordenador donde se est ejecutando el servidor de


bases de datos MySQL
user el nombre de usuario de la cuenta que se usar para conectarse. Reemplcelos
por los valores apropiados para el caso
Los asteriscos (********) representan la contrasea, debe ingresarse cuando mysql
muestra Enter password:

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

Mostrar el numero de la Version y la fecha actual


Para mostrar nmero de la versin y la fecha actual. Ingrselo a continuacin del prompt
mysql> y presione Enter:

mysql> SELECT VERSION(), CURRENT_DATE;


+--------------------------+--------------+
| VERSION()
| CURRENT_DATE |
+--------------------------+--------------+
| 5.0.46-community-nt-log | 2008-12-20
|
+--------------------------+--------------+
1 row in set (0.01 sec)
mysql>
Para mostrar solo nmero de la versin fecha actual
mysql> SELECT VERSION();
+--------------------------+
| VERSION()
|
+--------------------------+
| 5.0.46-community-nt-log |
+--------------------------+
1 row in set (0.00 sec)
mysql>
Para mostrar solo la fecha actual
mysql> SELECT CURRENT_DATE;
+--------------+
| CURRENT_DATE |
+--------------+
| 2008-12-20
|
+--------------+
1 row in set (0.00 sec)
mysql>
Para mostrar solo la fecha actual y la hora
mysql> SELECT NOW();
+-----------------------+
| NOW()
|
+-----------------------+
| 2008-12-20
02:59:36 |
+-----------------------+
1 row in set (0.00 sec)
Esta consulta le muestra varias cosas acerca de mysql:

Un comando normalmente consiste en una sentencia SQL seguida de punto y coma.


(Hay excepciones donde el punto y coma puede omitirse. QUIT, mencionado
anteriormente, es una de ellas.)
Cuando ingresa un comando, mysql lo enva al servidor para ser ejecutado e imprime
los resultados. A continuacin muestra de nuevo el prompt mysql> para informarle que
est listo para otro comando.
mysql imprime los resultados de la consulta en forma tabulada (filas y columnas). La
primera fila contiene etiquetas para las columnas. Las filas siguientes son los resultados

de la consulta. Generalmente, el nombre de cada columna es el nombre del campo que


trae desde la base de datos.
mysql informa cuntas filas fueron devueltas y cunto tiempo le tom ejecutarse a la
consulta, lo cual da una idea aproximada del rendimiento del servidor.
al pulsar F7 aparece una ventana con las ultimas instrucciones escritas, en caso de
querer repetir alguna ya realizada

Las palabras clave pueden ingresarse en cualquier combinacin de minsculas y maysculas.


Las siguientes consultas son equivalentes:
mysql> SELECT VERSION(), CURRENT_DATE;
mysql> select version(), current_date;
mysql> SeLeCt vErSiOn(), current_DATE;
Aqui tiene otra consulta que demuestra que mysql puede usarse como calculadora:
mysql> SELECT SIN(PI()/4), (4+1)*5;
+------------------+---------+
| SIN(PI()/4)
| (4+1)*5 |
+------------------+---------+
| 0.70710678118655 |
25 |
+------------------+---------+
1 row in set (0.02 sec)
mysql> select 2*pi()*14, 14*2;
+-----------+-----+
| 2*pi()*14 | 14*2|
+-----------+-----+
| 87.964594 | 28 |
+-----------+-----+
1 row in set (0.00 sec)
Se puede ingresar mltiples sentencias en una misma lnea. Solamente deben separarse con
punto y coma:
mysql> SELECT VERSION(); SELECT NOW();
+--------------------------+
| VERSION()
|
+--------------------------+
| 5.0.46-community-nt-log |
+--------------------------+
1 row in set (0.00 sec)
mysql> SELECT NOW();
+-----------------------+
| NOW()
|
+-----------------------+
| 2008-12-20
02:59:36 |
+-----------------------+
1 row in set (0.00 sec)

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.

Crear una Base de Datos


Mediante la sentencia SHOW DATABASES se encuentran las bases de datos que existen
actualmente en el servidor:
mysql> SHOW DATABASES;
+------------------------+
| Database
|
+------------------------+
| information_shena
|
| mysql
|
| test
|
| phpmyadmin
|
+------------------------+
4 row in set (0.02 sec)
La base de datos mysql es necesaria porque es la que describe los privilegios de acceso de
los usuarios. La base de datos test se provee para que los usuarios hagan pruebas y si no
tiene el privilegio SHOW DATABASES, no podr ver todas las bases de datos que hay en el
servidor.
5

Si la Base de Datos no existe, se crea con la siguiente instruccin


mysql> CREATE DATABASE personal;
Query OK, 1 row affected (0.03 sec)
Esto indica que la Base de Datos personal ha sido creada
Si la Base de Datos personal existe, se puede acceder a ella:
mysql> USE personal
Database changed
Para verificar si fue creada la base de datos personal, se debe visualizar:
mysql> SHOW DATABASES;
+------------------------+
| Database
|
+------------------------+
| information_shena
|
| mysql
|
| personal
|
| test
|
| phpmyadmin
|
+------------------------+
5 row in set (0.02 sec)

Eliminar una Base de Datos


Si se necesita eliminar una base de datos por alguna razn.
La sintaxis para DROP DATABASE es
mysql> DROP DATABASE nombre_base_datos;
Query OK, 0 row affected (0.00 sec)
Para verificar si fue eliminada la base de datos personal, se debe visualizar:
mysql> SHOW DATABASES;
+------------------------+
| Database
|
+------------------------+
| information_shena
|
| mysql
|
| test
|
| phpmyadmin
|
+------------------------+
4 row in set (0.00 sec)

Seleccionar una Base de Datos para trabajar con ella


Se selecciona la base de datos personal para trabajar con ella
mysql> USE personal
6

Database changad
Se verifica que la Base de Datos personal ha sido seleccionada para su uso
mysql> SELECT DATABASE();
+------------------+
| DATABASE()
|
+------------------+
| personal
|
+------------------+

Crear tabla tb_cargo


Debe usar la sentencia CREATE TABLE para especificar la estructura de una tabla:
mysql> CREATE TABLE personal.tb_cargo
-> (
-> Cod_Cargo char(20),
-> Cargo char(30) Unique NOT NULL,
-> PRIMARY KEY (Cod_Cargo)
-> );
Query OK, 0 row affected (0.06 sec)
Luego de crear una tabla, SHOW TABLES debera producir una salida:
mysql> SHOW TABLES;
+---------------------+
| Tables_in_personal |
+---------------------+
| tb_cargo
|
+---------------------+
1 row in set (0.00 sec)
Para verificar que la tabla ha sido creada en la forma esperada, utilice la sentencia DESCRIBE:
mysql> DESCRIBE tb_cargo;
+-----------+-----------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+-----------+-----------+------+-----+---------+-------+
| Cod_Cargo | char(20) | NO
| PRI |
|
|
| Cargo
| char(30) | NO
| UNI |
|
|
+---------+-------------+------+-----+---------+-------+
2 row in set (0.00 sec)

Ingresar datos en la tabla tb_cargo


Luego de crear la tabla, necesitar completarla con datos. Para esto, le sern de utilidad las
sentencias LOAD DATA e INSERT.
Los registros de la tabla tb_cargo son como los mostrados a continuacin.
7

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

mysql> LOAD DATA INFILE tb_cargo.txt INTO TABLE tb_cargo


-> LINES TERMINATED BY '\r\n';

Y se produce la siguiente salida:


mysql> LOAD DATA INFILE tb_cargo.txt INTO TABLE tb_cargo
-> LINES TERMINATED BY '\r\n';
Query OK, 11 rows affected, I warning (0.00 sec)
Record:11 Deleted:0
Skipped:0
Warning:0
Cuando se quiere agregar nuevos registros de a uno por vez, la sentencia INSERT resulta de
utilidad. De esta sencilla manera, se suministran valores para cada columna, dispuestos en el
orden en el cual se especificaron las columnas en la sentencia CREATE TABLE statement.
Se puede agregar un nuevo registro, usando la sentencia INSERT de este modo:
mysql> INSERT INTO tb_cargo
-> VALUES ('abg','Abogado');
Las cadenas alfanumricas y las fechas son representados como cadenas delimitadas por
apstrofes. Tambin, con INSERT, se pueden insertar valores NULL directamente, para indicar
un valor ausente. No se debe utilizar \N como se hace con LOAD DATA, se debe indicar NULL
sin apstrofes.
Lleva mucho ms trabajo realizar una carga inicial de registros empleando varias sentencias
INSERT que si se hace mediante la sentencia LOAD DATA.

Seleccionar todos los datos de la tabla tb_cargo


La forma ms simple de SELECT recupera todos los datos que hay en la tabla para revisar la
tabla completa:
mysql> SELECT * tb_cargo;
+------------+-------------------+
|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
|
+------------+-------------------+
11 row in set (0.00 sec)
9

Si despus de haber cargado la tabla nos damos cuenta de un error en algn dato.

Existen dos formas de solucionarlo:

Editando el fichero tb_cargo.txt para corregir el error, vaciando la tabla y volviendola


a llenar con los datos. Para esto se usan las sentencias DELETE y LOAD DATA:
mysql> DELETE FROM tb_cargo;
mysql> LOAD DATA INFILE tb_cargo.txt INTO TABLE tb_cargo
-> LINES TERMINATED BY '\r\n';
Se debe cargar de nuevo todo el registro del archivo de texto.

Se corrige nicamente el registro errneo y se la sentencia UPDATE:


mysql> UPDATE tb_cargo SET Cargo= 'Abogado_1' WHERE Cod_Cargo =
'abg';
UPDATE modifica solo el registro en cuestin y no se requiere que se vuelva a llenar la
tabla.
mysql> SELECT * tb_cargo;
+------------+-------------------+
|Cod_Cargo
| Cargo
|
+------------+-------------------+
| abg
| Abogado_1
|
| acc
| Accionista
|
| adm
| Administrador
|
| cont
| Contador
|
| emp
| Empleado
|
| ger
| Gerente
|
| ing
| Ingeniero
|
| jefe
| Jefe Departamento |
| obr
| Obrero
|
| sec
| Secretaria
|
| vend
| Vendedor
|
+------------+-------------------+
11 row in set (0.00 sec)

Crear tabla tb_dep


Debe usar la sentencia CREATE TABLE para especificar la estructura de una tabla:
mysql> CREATE TABLE personal.tb_dep
-> (
-> Cod_Dep char(20),
-> Departamento char(30) Unique NOT NULL,
-> PRIMARY KEY (Cod_Dep)
->);
Query OK, 0 row affected (0.02 sec)
10

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)

Ingresar datos en la tabla tb_dep


Luego de crear la tabla, necesitar completarla con datos. Para esto, le sern de utilidad las
sentencias LOAD DATA e INSERT.
Los registros de la tabla tb_dep son como los mostrados a continuacin.
Cod_Dep Departamento
admin

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

mysql> LOAD DATA INFILE tb_dep.txt INTO TABLE tb_dep


-> LINES TERMINATED BY '\r\n';

Y se produce la siguiente salida:


mysql> LOAD DATA INFILE tb_dep.txt INTO TABLE tb_dep
-> LINES TERMINATED BY '\r\n';
Query OK, 6 rows affected, 3 warning (0.01 sec)
Record:6
Deleted:0
Skipped:0
Warning:0

Seleccionar todos los datos de la tabla tb_


La forma ms simple de SELECT recupera todos los datos que hay en la tabla para revisar la
tabla completa:
mysql> SELECT * tb_dep;
+------------+------------------+
| Cod_Dep
| Departamento
|
+------------+------------------+
| admin.
| Administracin
|
| conta
| Contabilidad
|
| info.
| Informtica
|
| pers
| Personal
|
| prod
| Produccin
|
| vent
| Ventas
|
+------------+------------------+
6 row in set (0.00 sec)
Si despus de haber cargado la tabla nos damos cuenta de un error en algn dato.
Existen dos formas de solucionarlo:

Editando el fichero tb_dep.txt para corregir el error, vaciando la tabla y volvindola a


llenar con los datos. Para esto se usan las sentencias DELETE y LOAD DATA:
mysql> DELETE FROM tb_dep;
mysql> LOAD DATA INFILE tb_dep.txt INTO TABLE tb_dep
-> LINES TERMINATED BY '\r\n';
Se debe cargar de nuevo todo el registro del archivo de texto.

Se corrige nicamente el registro errneo y se la sentencia UPDATE:


mysql> UPDATE tb_cargo SET Cargo= 'Abogado_1' WHERE Cod_Cargo =
'abg';
UPDATE modifica solo el registro en cuestin y no se requiere que se vuelva a llenar la
tabla.

12

Crear tabla tb_empleados


Debe usar la sentencia CREATE TABLE para especificar la estructura de una tabla:
mysql> CREATE TABLE personal.tb_empleados
-> (
-> Cod_E INT AUTO_INCREMENT,
-> Cedula double Unique NOT NULL,
-> Nombre char(30),
-> Apellido char(30),
-> Cod_Cargo_E char(20),
-> Cod_Dep_E char(20),
-> PRIMARY KEY (Cod_E),
-> FOREIGN KEY (Cod_Cargo_E) REFERENCES tb_cargo(Cod_Cargo),
-> FOREIGN KEY (Cod_Dep_E) REFERENCES tb_dep(Cod_Dep)
-> );
Query OK, 0 row affected (0.01 sec)
Para verificar que la tabla ha sido creada en la forma esperada, utilice la sentencia DESCRIBE:
mysql> DESCRIBE tb_empleados;
+--------------+----------+------+----+--------+---------------+
| Field
| Type
| Null |Key |Default | Extra
|
+--------------+----------+------+----+--------+---------------+
| Cod_E
| int(11) | NO
|PRI | NULL
|auto_increment |
| Cedula
| double
| NO
|UNI |
|
|
| Nombre
| char(30) | YES |
| NULL
|
|
| Apellido
| char(30) | YES |
| NULL
|
|
| Cod_Cargo_E | char(20) | YES |NULL| NULL
|
|
| Cod_Dep_E
| char(20) | YES |NULL| NULL
|
|
+--------------+----------+------+----+--------+---------------+
6 row in set (0.00 sec)

Ingresar datos en la tabla tb_empleados


Para cargar el fichero tb_empleados dentro de la tabla tb_empleados utilice este
comando:
mysql> LOAD DATA INFILE tb_empleados.txt INTO TABLE tb_empleados;

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

Verificar que todas las tablas estn creadas


Luego de crear una tabla, SHOW TABLES debera producir una salida:
mysql> SHOW TABLES;
+---------------------+
| Tables_in_personal |
+---------------------+
| tb_cargo
|
| tb_dep
|
| tb_personal
+---------------------+
1 row in set (0.00 sec)

Seleccionar todos los datos de la tabla tb_empleados


La forma ms simple de SELECT recupera todos los datos que hay en la tabla para revisar la
tabla completa:
mysql> SELECT * tb_empleados;
+-----+-----------+-----------+-----------+-----------+----------+
|Cod_E| Cedula
| Nombre
| Apellido | Cod_Cargo | Cod_Dep |
+-----+-----------+-----------+-----------+-----------+----------+
| 1 | 15741451 | petra
| ramos
| ing
| vent
|
| 2 | 13714452 | maria
| perez
| abg
| admin
|
| 3 | 13714453 | jose
| ramirez
| adm
| admin
|
| 4 | 13714454 | ramon
| rodriguez | cont
| admin
|
| 5 | 13714455 | luis
| ostos
| emp
| admin
|
| 6 | 13714456 | pedro
| contreras | sec
| admin
|
| 7 | 12456987 | ana
| gutierrez | obr
| admin
|
| 8 | 14258369 | maria
| perez
| jefe
| conta
|
| 9 | 15123654 | alicia
| acosta
| abg
| conta
|
| 10 | 18963852 | teresa
| espitia
| adm
| conta
|
| 11 | 12587241 | daniela
| radaelli | cont
| conta
|
| 12 | 13714457 | ricardo
| radaelli | emp
| conta
|
| 13 | 17896321 | augusto
| Acosta
| sec
| conta
|
| 14 | 17456328 | camila
| perez
| obr
| conta
|
| 15 | 18963214 | teresa
| caliman
| jefe
| pers
|
| 16 | 14569852 | eleazar
| palma
| adm
| pers
|
14

| 17 | 14563391 | leopoldo | almandoz | emp


| pers
|
| 18 | 17852321 | carolina | perez
| sec
| pers
|
| 19 | 17159632 | Alejandro | martinez | obr
| pers
|
| 20 | 14523654 | edgar
| calderon | jefe
| prod
|
| 21 | 17456321 | Ingrid
| herrera
| ing
| prod
|
| 22 | 15321478 | Alexander | cabrera
| sec
| prod
|
| 23 | 14563321 | jesus
| calderon | obr
| prod
|
| 25 | 14789632 | karen
| palma
| jefe
| vent
|
| 26 | 14652321 | yudesky
| tirado
| sec
| vent
|
| 27 | 15632147 | eugenia
| marin
| obr
| vent
|
| 28 | 18663254 | angelica | rodriguez | vend
| vent
|
| 29 | 17963333 | luis
| torres
| obr
| prod
|
| 30 | 17963258 | ricardo
| radaelli | vend
| vent
|
| 31 | 17963357 | luis
| marin
| abg
| pers
|
| 32 | 17963329 | aimaris
| medina
| cont
| conta
|
| 33 | 13714460 | augusto
| caliman
| ing
| prod
|
| 34 | 17896325 | antonio
| torres
| emp
| prod
|
| 35 | 17456357 | yosmar
| salcedo
| ing
| prod
|
| 36 | 17896452 | adrian
| medina
| adm
| prod
|
| 37 | 17896523 | jesus
| perez
| emp
| vent
|
| 38 | 12456789 | yudesky
| orellana | ing
| info
|
+-----+-----------+-----------+-----------+-----------+----------+
38 row in set (0.02 sec)

Seleccionar todos los datos ordenados


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

Filtrar datos de una tabla por cedula o por nombre


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

- Cambiar el nombre de una columna


- Cambiar el tipo de datos para una columna
La sintaxis SQL para ALTER TABLE es
ALTER TABLE "nombre_tabla" [modificar especificacin]
[modificar especificacin] depende del tipo de modificacin que se desee realizar
[ADD | DROP | CHANGE | MODIFY]
ADD - agregar una columna
Ingresamos:
ALTER TABLE tabla_1 ADD campo_1 char(1)
CHANGE - cambiar nombre del campo
Ingresamos:
ALTER TABLE tabla_1 CHANGE campo_1 campo_cambiar char(50)
MODIFY modificar el tipo de dato a 30 caracteres
Ingresamos:
ALTER TABLE tabla_1 MODIFY campo_1char(30)
DROP - eliminar la columna
Ingresamos:
ALTER TABLE tabla_1 DROP campo_1

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

vera como la siguiente:


UPDATE "nombre_tabla"
SET colonne 1 = [[valor1], colonne 2 = [valor2]
WHERE {condicin}

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,

Indice de Sentencias SQL


http://www.conclase.net/c/mysql/index.php?tab=Sentencias

18

S-ar putea să vă placă și