Sei sulla pagina 1di 14

Bases de Datos 2

Lista de comandos MySql

CREATE DATABASE <nombreDataBase>;


Este comando crea una nueva base de datos sobre el manejador que se esta
utilizando

USE <nombreDataBase>
Cuando se ha creado una base de datos y se pretende trabajar sobre ella, es
necesario ejecutar este comando para asignarla al rea de trabajo, si se quiere
crear alguna tabla, ocurre un error debido a que no se ha establecido el rea de
trabajo, que en este caso sera la base de datos. Esta sentencia, es la unica que
se puede ejecutar sin un punto y coma para terminar.

SHOW [DATABASES | TABLES];


A veces es necesario verificar si aun no se ha creado una base de datos con
algn nombre especifico, o tal tal vez verificar que al crear una base de datos,
la operacin haya tenido xito, para esto, el comando show permite visualizar
las bases de datos sobre el manejador o las tablas sobre una BD en el rea de
trabajo.

CREATE TABLE <nombreTabla> ([atributos caractersticas] primary


key(atributo), foreign key(atributo) reference tabla)
Para crear las definiciones y/o esquemas de las entidades que van a formar
parte de la base de datos, se ejecuta este comando para crear una entidad o
tabla de la base de datos, en esta definicin se especifican tambin las llaves
tanto primaria como forneas.

Ejemplo:

create table persona (id int(3) not null auto_increment, nombres varchar(50)
not null, apellidos varchar(30) default ' ', primary key(id));

La instruccion anterior crea una tabla llamada persona, estableciendo como


llave primaria el atributo id que este es auto incrementable.

CREATE VIEW <nombreVista> as (tabla temporal);


Este comando se utliza para crear tablas virtuales en la base de datos, es decir,
se puede utlizar para crear espejos de tablas, las propiedades que tiene son
que cualquier operacion sobre los datos en esta tabla virtual, tienen efecto
sobre los datos originales, la tabla temporal puede ser una consulta simple
hasta un consulta compleja.

DROP [DATABASE | TABLE | VIEW] <nombreTabla | nombreDataBase |


nombreView>;
Este comando se utiliza para eliminar tanto bases de datos como tablas,
y vistas (tablas virtuales).

Ejemplo: si se quiere eliminar una tabla que tiene como nombre personas:
DROP TABLE personas;
Estos son los comandos basicos para la definicion de los datos, Algunos
comando marcan errores cuando se pretende crear tablas, bases de datos, y/o
vistas, cuando ya existen, para evitar este tipo de errores, el manejador de
bases de datos provee unas instrucciones condicionales para no cometer
errores.

IF EXISTS, IF NOT EXISTS: estos son las clausulas para verificar antes de crear
alguna entidad o DB, la manera en que se utilizan es la siguiente:

CREATE TABLE IF NOT EXIST <nombre table> (......) CREATE DATABASE IF NOT
EXISTS <nombreDataBAse>; CREATE VIEW IF NOT EXISTS <nombreVista>;

de la misma manera para crear nuevas entidades o DB's, se utiliza para


eliminar entidades yo DB's; DROP [VIEW | DATABASE | TABLE] IF
EXISTS <nombreVista | nombreBase |
nombreTabla>

Hasta el momento se han definido los comandos para la definicion de datos,


entonces los comandos de manipulacion de datos, son los que permiten
interactuar con la informacion de la BD, es decir, son los que permiten insertar,
actualizar, eliminar, etc. Los datos de la BD.

Comandos del Lenguaje de Manipulacin de Datos

El lenguaje de manipulacin de datos se puede clasificar en 2 tipos:

Lenguaje de consulta y lenguaje de manipulacin.

El lenguaje de consulta permite obtener la informacin requerida por el


usuario, y el comando utilizado para crear los reportes(tablas) para un
determinado uso es:

SELECT [atributos, ...] FROM [tabla1, tabla2 .....] WHERE [condiciones]


ORDER BY [atributos, atributos].

Este comando se utiliza de diferentes maneras, y se le conoce como sentencias


de consulta, obtener datos, y se usan de manera simple hasta de manera
compleja.

Simples con una sola tabla:

SELECT * FROM tabla;


Esta sentencia obtiene todos los atributos de todos los registros que existen en
tabla. SELECT atrib1, atrib2, ..., atribn FROM tabla;
Realiza la misma accion que la sentencia anterior, a diferencia de que en la
anterior se muestran todos los atributos, y en esta se muestran solo algunos
atributos especificados.

Cuando se requiere obtener solo los registros que cumplen alguna restriccion o
condicion en algunos de los atributos de una tabla, se utiliza la clausula WHERE
para especificar las condiciones que deben cumplir los registros que se desean.

SELECT * FROM tabla WHERE (Atributo='valor');

Cuando se tienen varias condiciones, se pueden utilizar los operadores logicos


en conjunto con los operadores de comparacion:

Operadores logicos: AND (&), OR ( | ) NOT.

Operadores de comparacion:
=

comparador de equidad

<

Menor que

>

Mayor que

>=

Mayor o igual que

<=

Menor o igual que

(<>, !=, not) Diferente de

Ejemplo de consulta:
SELECT * FROM tabla WHERE (a=1 AND (B>5 OR C='Mil'));

El comando de consulta tambin se puede utilizar con la clusula LIKE, que


permite manejar patrones, es decir, se especifica un patron para realizar las
comparaciones, y los registros que tengan ese patrn en el atributo
especificado se van a obtener independiente mente mayscula o minscula.

El uso de esta clusula es de la siguiente manera:

('%patron%'), este especifica que no importa en donde aparezca ese patrn,


incluso puede no existir, es decir no importa que tenga atras, ni que tenga
delante del patrn, se va a obtener el registro.

('patron%'), Este uso define que todos los registros que empiecen con el patrn
especificado se van a obtener.

(%patron), de la misma manera, que el anterior a diferencia que ente son los
que terminan. Ejemplo:
SELECT * FROM persona WHERE (Apellidos LIKE 'Perez%');

en este ejemplo se obtienen todos los registros de la tabla persona que


empiezan con Perez, no importa que tenga despus.

Cuando existen varias condiciones sobre un mismo atributo en una sentencia


es tedioso estar especificando cada condicin sobre el atributo, para eliminar
esta problemtica y que las sentencias no se tornen muy grandes, SELECT se
combina con la clusula IN que recibe un conjunto de valores en los cuales se
van a evaluar las condiciones

Ejemplo:

SELECT * FROM tabla WHERE (id [NOT] IN (valor1, valor2, valor3,....,valorn))

en el caso de que sean cadenas de caracteres se meten entre comillas.

En resumen el comando SELECT obtiene registros de una o mas tablas, y como


resultado entrega una tabla temporal.

El Lenguaje de Manipulacin de datos es el que permite como su nombre lo


indica manipular los datos existentes en la base de datos.

Insertar Registros.

INSERT INTO. Este comando permite insertar registros sobre una tabla en
especifico de la base de datos, y existen 3 maneras bsicas de insertar
registros.

1. INSER INTO <tabla> ('campo1', 'campo2') VALUES ('valor Campo1', 'valor


Campo2');
2. INSER INTO <tabla> VALUES ('valor Campo1', 'valor Campo2');
3. INSER INTO <tabla> SET campo1='valor Campo1', campo2='valor Campo2';

La manera en que se envan los datos en 1 y 2 es la misma, es decir, en el


orden en que se encuentran los campo en la tabla, de misma manera se le
envan los datos, a diferencia de la 3 no importa en que orden se le enven los
datos, ya que en esta ltima se le especifica el nombre el campo. As mismo,
cuando no se tienen datos para determinados campos con valores por default,
es necesario especificar el espacio del campo en 3 no solo se omite.

Actualizar datos de registros.

El comando para actualizar datos en una fila determinada se utiliza:

UPDATE <tabla> SET Campo='valor nuevo de Campo' WHERE (condiciones);

si se tienen que actualizar varios campos, se separan con comas, OJO, la


condicin de actualizacin es necesaria si solo se quiere actualizar en
determinadas filas, ya que si no se indica una condicin, se actualizan todas las
filas de la tabla, y esto puede resultar desagradable si no se pretenda eso,

MySQL no permite restaurar, a diferencia de otros Manejadores, que si se


equivocan, con solo escribir ROLLBACK, deshacen todas las operaciones que
han hecho sin causar daos en la BD, como es el caso de ORACLE, as que
mucho cuidado.

Eliminar Registros.

cuando existen registros innecesarios en las tablas y no se pretende llevar un


historial, o simplemente se equivocaron y quieren eliminar toda la fila, El
lenguaje SQL permite eliminar registros mediante el comando DELETE.

DELETE FROM [tabla1, tabla2] WHERE (condiciones tabla1 y tabla 2);

Este comando es muy importante su uso, de igual manera que UPDATE


necesariamente tiene que llevar las condiciones de eliminacin de filas, ya que
si no se especifica la condicin, elimina todos los registros de la tabla, y eso
puede ser muy desastroso para los Administradores de DB, as mucho cuidado
con este comando.

Si se quiere eliminar todos los registros de la tabla n, SQL permite hacerlo con
un comando muy simple
TRUNCATE, y se usa de la siguiente manera: TRUNCATE <tabla>;
Y el resultado es vaciar la tabla de registros, es muy parecido a la accin de
vaciar la papelera de reciclaje de Unix.

Hasta el momentos se han esta ejecutando sentencias sobre una sola tabla,
cuando s requiere acceder los datos de mas de una tabla relacionadas de
alguna manera y no relacionadas, existen las opciones avanzadas de los
comandos mencionados con anterioridad.

Comando SELECT con varias tablas:

SELECT tabla1.*, tabla2.* from tabla1, tabla2 WHERE (condiciones de relacin)

En este tipo de consultas es necesario especificar la condicin de relacin que


hay entre las tablas, esto debido a que si no se especifican se van a realiza
operaciones del algebra relacional que no se obtendrn resultados
satisfactorios.

Este comando permite utilizarse con una clusula que permite distinguir datos
de uno, y la clausula es:
DISTINCT, que permite obtener datos no duplicados, si y solo si todos los
atributos se parecen.
SELECT DSTINCT tabla1.*, tabla2.* FROM tabla1, tabla2 WHERE (Condiciones
de relacin) Anteriormente se indic que el comando SELECT da como
resultado otra tabla, por lo tanto, si se
quieren obtener solo algunas filas del resultado de una consulta, se puede
hacer de una manera muy simple, aqui se hace uso de los ALIAS, que permite
nombra ya sea una tabla, o un atributo y se usa de la siguiente manera:

SELECT * FROM (SELECT * FROM tabla WHERE id>20 and id<50) res WHERE
res.id=30;

Este tipo de consultas se le llama consultas recursivas, y se pueden hacer


tantas subconsultas como se requieran.

La manera en que se muestra los datos puede no ser la que se requiere, ya que
si se quieren obtener los datos ordenados, el manejador permite hacerlo

mediante la clusula de SELECT conocida como ORDER BY, y se usa de la


siguiente manera:
SELECT tabla1.*, tabla2.* FROM tabla1, tabla2 WHERE tabla1.id=tabla2.id
ORDER BY id; Esta clusula permite ordenar los registros de manera
descendente ASC o ascendente DESC, ejemplo:

DESC;

SELECT tabla1.*, tabla2.* FROM tabla1, tabla2 WHERE tabla1.id=tabla2.id


ORDER BY id

As como los comandos de consulta, el manejador tiene funciones de utilidad


para el administrador, y son trigonomtricas, aritmticas, etc..

MAX([campo]) obtiene valor maximo en el campo especificado. MIN([campo])


obtiene el minimo en el campo especificado. AVG([campo]) obtiene el promedio
en el campo especificados COUNT(*) obtiene el nmero de registros que tiene
un tabla PASSWORD('cadena') Encripta una cadena, muy util para contraseas

ejemplos:

SELECT [MAX() | MIN() | AVG() | COUNT(*)] from tabla WHERE (condiciones);

Comandos del algebra relacional UNION, MINUS, INERSECT, LEFT JOIN, RIGHT
JOIN, OUTER JOIN.

EL comando union obtiene la union de una o mas tablas, con los mismos
atributos.

SELECT * from tabla1 UNION [ALL] tabla2

El comando Intersect Obtiene la interseccin de 2 tablas, es decir los registros


que estn en tabla1 y que estn en tabla 2.
SELECT * FROM tabla1 INTERSECT tabla2

El comando MINUS obtiene los registros que no estan en la tabla 2


SELECT * FROM tabla1 MINUS tabla2;

Los comando de equijuntas por asociaciones ya sea a la izquierda o la derecha:


SELECT * from tabla1 JOIN tabla2 on C1=C2;
este tipo de comando entrega como resultado una unin de tablas, es decir, se
crea una tabla con los atributos de tabla1 y tabla2

El IDENTIFICADOR LEFT o RIGHT es por donde se hace la junta, El


IDENTIFICADOR OUTER, indica si se adhieren aun que no cumpla la condicin.

Ejemplos:

SELECT tabla1.*, tabla 2.* from tabla1 RIGHT JOIN tabla2 on C1=C2; SELECT
tabla1.*, tabla 2.* from tabla1 LEFT JOIN tabla2 on C1=C2;
SELECT tabla1.*, tabla 2.* from tabla1 LEFT OUTER JOIN tabla2 on C1=C2;
SELECT tabla1.*, tabla 2.* from tabla1 RIGHT OUTER JOIN tabla2 on C1=C2;
el resultado de las sentencias anteriores son diferentes, ya que la junta se hace
en una direccion y otra, de la misma manera que las clusulas del algebra
relacional, de la manera en que se especifican se obtienen resultados
diferentes.

El uso de los comandos del lenguaje de manipulacin de datos pueden ser de


muchas maneras, como por ejemplo, si se pretende insertar registros de una
tabla temporal a partir de los registros de una o ms tablas, se procede de la
siguiente manera.

INSERT INTO tabla AS (SELECT * FROM tablas WHERE (condiciones) ).

Ejercicios
1. Le contratan para hacer una BD que permita apoyar la gestin de un sistema
de ventas. La empresa necesita llevar un control de proveedores, clientes,
productos y ventas. Un proveedor tiene un RUT, nombre, direccin, telfono y
pgina web. Un cliente tambin tiene RUT, nombre, direccin, pero puede tener
varios telfonos de contacto. La direccin se entiende por calle, nmero,
comuna y ciudad. Un producto tiene un id nico, nombre, precio actual, stock y
nombre del proveedor. Adems se organizan en categoras, y cada producto va
slo en una categora. Una categora tiene id, nombre y descripcin. Por
razones de contabilidad, se debe registrar la informacin de cada venta con un
id, fecha, cliente, descuento y monto final. Adems se debe guardar el precio al
momento de la venta, la cantidad vendida y el monto total por el producto.

2. Una base de datos para una pequea empresa debe contener informacin
acerca de clientes, artculos y pedidos. Hasta el momento se registran los
siguientes datos en documentos varios: Para cada cliente: Nmero de cliente
(nico), Direcciones de envo (varias por cliente), Saldo, Lmite de crdito
(depende del cliente, pero en ningn caso debe superar los $3.000.000).

Para cada artculo: Nmero de artculo (nico), Fbricas que lo distribuyen,


Existencias de ese artculo en cada fbrica, Descripcin del artculo.

Para cada pedido: Cada pedido tiene una cabecera y el cuerpo del pedido. La
cabecera est formada por el nmero de cliente, direccin de envo y fecha del
pedido. El cuerpo del pedido son varias lneas, en cada lnea se especifican el
nmero del artculo pedido y la cantidad. Adems, se ha determinado que se
debe almacenar la informacin de las fbricas. Sin embargo, dado el uso de
distribuidores, se usar: Nmero de la fbrica (nico) y Telfono de contacto. Y
se desean ver cuntos artculos (en total) provee la fbrica. Tambin, por
informacin estratgica, se podra incluir informacin de fbricas alternativas
respecto de las que ya fabrican artculos para esta empresa. Nota: Una
direccin se entender como N, Calle, Comuna y Ciudad. Una fecha incluye
hora.

Potrebbero piacerti anche