Está en la página 1de 6

Clausula order by select

Explicación

Podemos ordenar el resultado de un "select" para que los registros se muestren ordenados
por algún campo, para ello usamos la cláusula "order by".

Por ejemplo, recuperamos los registros de la tabla "libros" ordenados por el título:

select codigo,titulo,autor,editorial,precio from libros order by titulo;

Aparecen los registros ordenados alfabéticamente por el campo especificado.

También podemos colocar el número de orden del campo por el que queremos que se
ordene en lugar de su nombre. Por ejemplo, queremos el resultado del "select" ordenado
por "precio":

select codigo,titulo,autor,editorial,precio from libros order by 5;

Por defecto, si no aclaramos en la sentencia, los ordena de manera ascendente (de menor a
mayor). Podemos ordenarlos de mayor a menor, para ello agregamos la palabra clave
"desc":

select codigo,titulo,autor,editorial,precio from libros order by


editorial desc;

También podemos ordenar por varios campos, por ejemplo, por "titulo" y "editorial":

select codigo,titulo,autor,editorial,precio from libros order by titulo,


editorial;

Incluso, podemos ordenar en distintos sentidos, por ejemplo, por "titulo" en sentido
ascendente y "editorial" en sentido descendente:

select codigo,titulo,autor,editorial,precio
from libros order by titulo asc, editorial desc;

Debe aclararse al lado de cada campo, pues estas palabras claves afectan al campo
inmediatamente anterior.

Actividad
Ingresa los siguientes query en mysql en el símbolo del sistema, tomando capturas de pantalla de
cada uno de los querys para verificar sus resultados. Puedes usar la misma base de datos de la
actividad anterior.

drop table if exists libros;

create table libros(


codigo int unsigned auto_increment,
titulo varchar(40),
autor varchar(30),
editorial varchar(15),
precio decimal (5,2) unsigned,
primary key (codigo)
);

insert into libros (titulo,autor,editorial,precio)


values('El aleph','Borges','Planeta',15.50);
insert into libros (titulo,autor,editorial,precio)
values('Martin Fierro','Jose Hernandez','Emece',22.90);
insert into libros (titulo,autor,editorial,precio)
values('Martin Fierro','Jose Hernandez','Planeta',39);
insert into libros (titulo,autor,editorial,precio)
values('Aprenda PHP','Mario Molina','Emece',19.50);
insert into libros (titulo,autor,editorial,precio)
values('Cervantes y el quijote','Borges','Paidos',35.40);
insert into libros (titulo,autor,editorial,precio)
values('Matematica estas ahi', 'Paenza', 'Paidos',19);

select codigo,titulo,autor,editorial,precio
from libros
order by titulo;

select codigo,titulo,autor,editorial,precio
from libros
order by 5;

select codigo,titulo,autor,editorial,precio
from libros
order by titulo, editorial;

select codigo,titulo,autor,editorial,precio
from libros
order by titulo asc, editorial desc;

Llaves foráneas
Explicación

Chavos y chavas este tema lo quería ver de manera especifica y presencial en el aula para que
entendieran la importancia de las llaves primarias, pero no se va a poder por las circunstancias que
estamos viviendo, pero bueno espero le entienda a esta explicación que les daré.
Recordemos que dentro de una tabla de base de datos podemos tener una llave primaria que es
un valor que no se puede repetir ya que la mayoría de las llaves primarias son auto incrementables
pero estas llaves nos sirven para relacionar los datos con diferentes tablas ya que las bases de
datos que manejamos son llaves relacionales de ahí la importancia de la generación de modelos
entidad relación que trabajamos en clase.

Como podemos recordar vimos una manera de crear una llave primaria desde la creación de la
tabla con el comando primary key.

create table usuarios (


nombre varchar(20),
clave varchar(10),
primary key (nombre)
);

Aunque también cuando ya esta generada una tabla se puede agregar una llave primaria o
características a una tabla con el comando alter table y agregamos el nuevo valor en este caso
seria con el comando:

Alter table usuarios add primary key (nombre)

Lo que tenemos en color amarillo es el nombre de la tabla que vamos a modificar y lo que esta en
azul es la columna que va a ser la llave primaria es muy común que una llave primaria sea en
números enteros, aunque no siempre es así puede ser cualquier tipo de datos ya que lo
importante en esta es la referencia pero deben de tener cuidado y siempre recordar que tipo de
dato están usando ya que en el siguiente tema veremos el porqué de esto.

La imagen anterior muestra dos tablas como pueden observar la tabla producto tiene una llave
primaria (id) esta nos permite generar una relación con la tabla venta en la tabla venta la llave
foránea es producto. En el párrafo anterior hice hincapié en que siempre deben recordar el tipo de
dato y longitud al momento de crear una llave primaria y/o foránea ya que deben ser iguales tanto
la primaria como la foránea.
Ahora también para esto se pueden crear las llaves foráneas al momento de que se genera una
tabla o más bien las dos tablas para esto deberíamos de crear primero la tabla que contendrá la
llave primaria

Create table productos(

id int(11) auto_increment primary key,

cantidad int(10) not null,

descripcion varchar(50) not null,

precio float not null) ;

ahora crearemos la tabla que contendrá la llave foránea a la que haremos referencia con la llave
primaria.

create table venta (id_venta int(10) PRIMARY key auto_increment,

cliente varchar(50) not null,

producto int(11) not null REFERENCES productos (id) ON DELETE CASCADE ON UPDATE CASCADE,

cantidad int(11) not null,

total float not null);

Lo que esta subrayado es la parte que hace referencia a la creación de la llave foránea cuando se
esta creando la tabla en la columna producto se agrega la palabra REFERENCES que hace alusión a
que haremos una referencia seguida del nombre de la tabla donde se encuentra la clave primaria
dentro de los paréntesis debemos colocar la columna que haremos referencia para poder llamar la
clave.

La definición incluye las tareas a realizar en el caso de que se elimine una fila en la tabla
'productos'.

ON DELETE <opción>, indica que acciones se deben realizar en la tabla actual si se borra una fila en
la tabla referenciada.

ON UPDATE <opción>, es análogo pero para modificaciones de claves.

Existen cinco opciones diferentes. Veamos lo que hace cada una de ellas:

• RESTRICT: esta opción impide eliminar o modificar filas en la tabla referenciada si existen
filas con el mismo valor de clave foránea.
• CASCADE: borrar o modificar una clave en una fila en la tabla referenciada con un valor
determinado de clave, implica borrar las filas con el mismo valor de clave foránea o
modificar los valores de esas claves foráneas.
• SET NULL: borrar o modificar una clave en una fila en la tabla referenciada con un valor
determinado de clave, implica asignar el valor NULL a las claves foráneas con el mismo
valor.
• NO ACTION: las claves foráneas no se modifican, ni se eliminan filas en la tabla que las
contiene.
• SET DEFAULT: borrar o modificar una clave en una fila en la tabla referenciada con un
valor determinado implica asignar el valor por defecto a las claves foráneas con el mismo
valor.

Ahora también podemos crearla de otra manera que es la manera mas segura ya que siempre
deberemos asignarle un nombre a la relación para no exista duplicidad.

create table venta (id_venta int(10) PRIMARY key auto_increment,

cliente varchar(50) not null,

producto int(11) not null,

cantidad int(11) not null,

total float not null,

CONSTRAINT FK_producto FOREIGN key (producto) REFERENCES productos (id) ON DELETE


CASCADE on UPDATE CASCADE

);

Para este caso también podemos observar todo lo que este subrayado es lo que hace referencia a
la llave foránea con la palabra CONSTRAINT genera la referencia de la creación de una llave
foránea lo que vemos de color azul es el nombre de la referencia pueden colocar cualquier
nombre pero siempre van a encontrar con el prefijo FK_que significa Foreign Key y después el
nombre de la referencia, lo de amarillo es lo que nos va a permitir señalar cual va a ser la llave
foránea en este caso se pone entre paréntesis la columna de la tabla que estamos creando
“producto” de la tabla venta y después de la palabra REFERENCE hacemos lo mismo que en el
query pasado llamamos a la tabla donde se encuentra la llave primaria.

Les agrego la referencia de un video para que tengan mejor entendimiento de este tema:

https://www.youtube.com/watch?v=GEIr0kX4FeY

También podemos modificar una tabla ya creada para poder implementarle una llave foránea con
los comandos de siempre.
ALTER TABLE venta ADD CONSTRAINT FK_producto FOREIGN KEY (producto) REFERENCES
productos (id);

Una vez creadas las llaves foráneas cuando describen una tabla con el query describe les deberá
salir la palabra MUL al momento de describir la tabla venta en el apartado Key.

Espero que con esto quede claro la parte de llaves primarias y llaves foráneas. Cualquier duda
pueden enviarme un mensaje por Messenger por correo

Actividad

https://www.youtube.com/watch?v=BNA-WXf8fTM

les dejo un tutorial de como exportar su base de datos.

Ahora la siguiente actividad a realizar es una base de datos para la lavandería “los crisantemos”
con esto deberán entregar un modelo entidad relación y el script de la base de datos.

La lavanderia “los crisantemos” esta en constante expansión y quiere implementar una base de
datos para administrar mejor sus servicios ellos tienen varios clientes a los cuales les trabajan
después tiene varios tipos de ropa para lavar y entregar deberán de normalizar estos servicios y
los clientes a modo de saber que cliente dejor que prendas y a que servicio.

Nota: esto lo deberán enviar a mas tardar el día Domingo a las 00:00 para su evaluación al correo

Necross_celda@hotmail.com con asunto Actividad 3 Fundamentos de base de datos adjuntando


su script de base de datos para su posterior evaluación y un reporte de elaboración del trabajo

También podría gustarte