Você está na página 1de 4

Universidad Nacional del Altiplano Puno

Escuela Profesional de Ingeniera de Sistemas


CURSO: TECNOLOGA DE DESARROLLO DE APLICACIONES

GUA ACADMICA Nro. 20

TEMA: MANIPULACION EN EL MYSQL III

Apellidos y Nombres: Nro. Matrcula: .

OBJETIVOS:

Utilizar el MySQL.
Comprender el Funcionamiento de las Bases de datos.

REQUERIMIENTOS:

PC con Windows.
Appserv.
Mysql-gui-tools

PROCEDIMIENTO

PARTE 4: ACCEDIENDO A DATOS DE MLTIPLES TABLAS

4.1 CONSULTAS UTILIZANDO LA CLAUSULA: JOIN

A continuacin se detalla la sintaxis para hacer consultas a varias tablas usando Join.
<select statement>::=
SELECT
[<select option> [<select option>...]]
{* | <select list>}
[
FROM {<table reference> | <join definition>}
[WHERE <expression> [{<operator> <expression>}...]]
[GROUP BY <group by definition>]
[HAVING <expression> [{<operator> <expression>}...]]
[ORDER BY <order by definition>]
[LIMIT [<offset>,] <row count>]
]

<join definition>::=
{<table reference>, <table reference> [{, <table reference>}...]}
| {<table reference> [INNER | CROSS ] JOIN <table reference> [<join condition>]}
| {<table reference> STRAIGHT_JOIN <table reference>}
| {<table reference> LEFT [OUTER] JOIN <table reference> [<join condition>]}
| {<table reference> RIGHT [OUTER] JOIN <table reference> [<join condition>]}
| {<table reference> NATURAL [{LEFT | RIGHT} [OUTER]] JOIN <table reference>}

<table reference>::=
<table name> [[AS] <alias>]
[{USE | IGNORE | FORCE} INDEX <index name> [{, <index name>}...]]
<join condition>::=
ON <expression> [{<operator> <expression>}...]
| USING (<column> [{, <column>}...])

<join condition>::=
ON <expression> [{<operator> <expression>}...]
| USING (<column> [{, <column>}...])

Ing. Juan Antonio Flores Moroco 1


Universidad Nacional del Altiplano Puno
Escuela Profesional de Ingeniera de Sistemas
CURSO: TECNOLOGA DE DESARROLLO DE APLICACIONES

a. Copie y ejecute las siguientes sentencias SQL, e indique los resultados obtenidos:
CREATE TABLE Books
(
BookID SMALLINT NOT NULL PRIMARY KEY,
BookTitle VARCHAR(60) NOT NULL,
Copyright YEAR NOT NULL
)
ENGINE=INNODB;

INSERT INTO Books


VALUES (12786, 'Letters to a Young Poet', 1934),
(13331, 'Winesburg, Ohio', 1919), (14356, 'Hell\'s Angels', 1966),
(15729, 'Black Elk Speaks', 1932), (16284, 'Noncomformity', 1996),
(17695, 'A Confederacy of Dunces', 1980), (19264, 'Postcards', 1992),
(19354, 'The Shipping News', 1993);

Resultados:

b. Copie y ejecute las siguientes sentencias SQL, e indique los resultados obtenidos:
CREATE TABLE Authors
(
AuthID SMALLINT NOT NULL PRIMARY KEY,
AuthFN VARCHAR(20),
AuthMN VARCHAR(20),
AuthLN VARCHAR(20)
)
ENGINE=INNODB;

INSERT INTO Authors


VALUES (1006, 'Hunter', 'S.', 'Thompson'),
(1007, 'Joyce', 'Carol', 'Oates'),
(1008, 'Black', NULL, 'Elk'),
(1009, 'Rainer', 'Maria', 'Rilke'),
(1010, 'John', 'Kennedy', 'Toole'),
(1011, 'John', 'G.', 'Neihardt'),
(1012, 'Annie', NULL, 'Proulx'),
(1013, 'Alan', NULL, 'Watts'),
(1014, 'Nelson', NULL, 'Algren');

Resultados:

c. Copie y ejecute las siguientes sentencias SQL, e indique los resultados obtenidos:
CREATE TABLE AuthorBook
(
AuthID SMALLINT NOT NULL,
BookID SMALLINT NOT NULL,
PRIMARY KEY (AuthID, BookID),
FOREIGN KEY (AuthID) REFERENCES Authors (AuthID),
FOREIGN KEY (BookID) REFERENCES Books (BookID)
)
ENGINE=INNODB;

INSERT INTO AuthorBook


VALUES (1006, 14356), (1008, 15729), (1009, 12786), (1010, 17695),
(1011, 15729), (1012, 19264), (1012, 19354), (1014, 16284);

Resultados:

Ing. Juan Antonio Flores Moroco 2


Universidad Nacional del Altiplano Puno
Escuela Profesional de Ingeniera de Sistemas
CURSO: TECNOLOGA DE DESARROLLO DE APLICACIONES

CONSULTAS BSICAS

a. Copie y ejecute las siguientes sentencias SQL, e indique los resultados obtenidos:
SELECT BookTitle, Copyright, AuthID FROM Books, AuthorBook ORDER BY BookTitle;

Resultados:

b. Copie y ejecute las siguientes sentencias SQL, e indique los resultados obtenidos:
SELECT BookTitle, Copyright, AuthID
FROM Books AS b, AuthorBook AS ab WHERE b.BookID=ab.BookID ORDER BY BookTitle;

Resultados:

c. Copie y ejecute las siguientes sentencias SQL, e indique los resultados obtenidos:
SELECT BookTitle, Copyright, ab.AuthID
FROM Books AS b, AuthorBook AS ab
WHERE b.BookID=ab.BookID AND Copyright<1980 ORDER BY BookTitle;

Resultados:

d. Copie y ejecute las siguientes sentencias SQL, e indique los resultados obtenidos:
SELECT BookTitle, Copyright, CONCAT_WS(' ', AuthFN, AuthMN, AuthLN) AS Author
FROM Books AS b, AuthorBook AS ab, Authors AS a
WHERE b.BookID=ab.BookID AND ab.AuthID=a.AuthID AND Copyright<1980
ORDER BY BookTitle;

Resultados:

CONSULTAS CON: INNER JOINs Y CROSS JOINs

a. Copie y ejecute las siguientes sentencias SQL, e indique los resultados obtenidos:
SELECT BookTitle, AuthID FROM Books, AuthorBook;

Resultados:

b. Copie y ejecute las siguientes sentencias SQL, e indique los resultados obtenidos:
SELECT BookTitle, AuthID FROM Books JOIN AuthorBook;

Resultados:

c. Copie y ejecute las siguientes sentencias SQL, e indique los resultados obtenidos:
SELECT BookTitle, AuthID FROM Books INNER JOIN AuthorBook;

Resultados:

d. Copie y ejecute las siguientes sentencias SQL, e indique los resultados obtenidos:
SELECT BookTitle, AuthID FROM Books CROSS JOIN AuthorBook;

Ing. Juan Antonio Flores Moroco 3


Universidad Nacional del Altiplano Puno
Escuela Profesional de Ingeniera de Sistemas
CURSO: TECNOLOGA DE DESARROLLO DE APLICACIONES
Resultados:

e. Copie y ejecute las siguientes sentencias SQL, e indique los resultados obtenidos:
SELECT BookTitle, Copyright, ab.AuthID
FROM Books AS b JOIN AuthorBook AS ab ON b.BookID=ab.BookID
ORDER BY BookTitle;

Resultados:

f. Copie y ejecute las siguientes sentencias SQL, e indique los resultados obtenidos:
SELECT BookTitle, Copyright, ab.AuthID
FROM Books JOIN AuthorBook AS ab USING (BookID) ORDER BY BookTitle;

Resultados:

g. Copie y ejecute las siguientes sentencias SQL, e indique los resultados obtenidos:
SELECT BookTitle, Copyright, ab.AuthID
FROM Books AS b JOIN AuthorBook AS ab ON b.BookID=ab.BookID
WHERE Copyright<1980 ORDER BY BookTitle;

Resultados:

h. Copie y ejecute las siguientes sentencias SQL, e indique los resultados obtenidos:
SELECT BookTitle, Copyright, CONCAT_WS(' ', AuthFN, AuthMN, AuthLN) AS Author
FROM Books AS b CROSS JOIN AuthorBook AS ab ON b.BookID=ab.BookID
CROSS JOIN Authors AS a ON ab.AuthID=a.AuthID
WHERE Copyright<1980 ORDER BY BookTitle;

Resultados:

i. Copie y ejecute las siguientes sentencias SQL, e indique los resultados obtenidos:
SELECT BookTitle, Copyright, CONCAT_WS(' ', AuthFN, AuthMN, AuthLN) AS Author
FROM Books JOIN AuthorBook USING (BookID) JOIN Authors USING (AuthID)
WHERE Copyright<1980 ORDER BY BookTitle;

Resultados:

Ing. Juan Antonio Flores Moroco 4

Você também pode gostar