Learning SQL Master SQL Fundamentals Alan Beaulieu download
Learning SQL Master SQL Fundamentals Alan Beaulieu download
https://textbookfull.com/product/learning-sql-master-sql-
fundamentals-alan-beaulieu/
https://textbookfull.com/product/t-sql-fundamentals-itzik-ben-
gan/
https://textbookfull.com/product/sql-easy-sql-programming-
database-management-for-beginners-your-step-by-step-guide-to-
learning-the-sql-database-felix-alvaro/
https://textbookfull.com/product/sql-primer-an-accelerated-
introduction-to-sql-basics-rahul-batra/
https://textbookfull.com/product/sql-server-execution-plans-for-
sql-server-2008-through-to-2017-and-azure-sql-database-3rd-
edition-grant-fritchey/
Practical guide to Oracle SQL, T-SQL and MySQL 1st
Edition Preston Zhang
https://textbookfull.com/product/practical-guide-to-oracle-sql-t-
sql-and-mysql-1st-edition-preston-zhang/
https://textbookfull.com/product/azure-sql-revealed-a-guide-to-
the-cloud-for-sql-server-professionals-bob-ward/
https://textbookfull.com/product/sql-cookbook-query-solutions-
and-techniques-for-all-sql-users-2nd-edition-anthony-molinaro/
https://textbookfull.com/product/sql-server-2019-revealed-
including-big-data-clusters-and-machine-learning-bob-ward/
https://textbookfull.com/product/expert-sql-server-transactions-
and-locking-concurrency-internals-for-sql-server-
practitioners-1st-edition-dmitri-korotkevitch/
1. Preface
a. Why Learn SQL?
b. Why Use This Book to Do It?
c. Structure of This Book
d. Conventions Used in This Book
e. Using Code Examples
f. O’Reilly Online Learning
g. How to Contact Us
2. 1. A Little Background
a. Introduction to Databases
c. What Is MySQL?
d. SQL Unplugged
e. What’s in Store
i. Step 1: Design
ii. Step 2: Refinement
iii. Step 3: Building SQL Schema
Statements
e. Populating and Modifying Tables
i. Inserting Data
ii. Updating Data
iii. Deleting Data
f. When Good Statements Go Bad
i. Column Aliases
ii. Removing Duplicates
i. Tables
ii. Table Links
iii. Defining Table Aliases
i. Equality Conditions
ii. Range Conditions
iii. Membership Conditions
iv. Matching Conditions
d. Null: That Four-Letter Word
e. Test Your Knowledge
i. Exercise 4-1
ii. Exercise 4-2
iii. Exercise 4-3
iv. Exercise 4-4
6. 5. Querying Multiple Tables
a. What Is a Join?
i. Cartesian Product
ii. Inner Joins
iii. The ANSI Join Syntax
i. Exercise 6-1
ii. Exercise 6-2
iii. Exercise 6-3
8. 7. Data Generation, Manipulation, and Conversion
d. Conversion Functions
e. Test Your Knowledge
i. Exercise 7-1
ii. Exercise 7-2
iii. Exercise 7-3
9. 8. Grouping and Aggregates
a. Grouping Concepts
b. Aggregate Functions
c. Generating Groups
i. Single-Column Grouping
ii. Multicolumn Grouping
iii. Grouping via Expressions
iv. Generating Rollups
d. Group Filter Conditions
e. Test Your Knowledge
i. Exercise 8-1
ii. Exercise 8-2
iii. Exercise 8-3
10. 9. Subqueries
a. What Is a Subquery?
b. Subquery Types
c. Noncorrelated Subqueries
i. Multiple-Row, Single-Column
Subqueries
ii. Multicolumn Subqueries
d. Correlated Subqueries
i. Exercise 9-1
ii. Exercise 9-2
iii. Exercise 9-3
11. 10. Joins Revisited
a. Outer Joins
i. Exercise 11-1
ii. Exercise 11-2
13. 12. Transactions
a. Multiuser Databases
i. Locking
ii. Lock Granularities
b. What Is a Transaction?
i. Starting a Transaction
ii. Ending a Transaction
iii. Transaction Savepoints
a. Indexes
i. Index Creation
ii. Types of Indexes
iii. How Indexes Are Used
iv. The Downside of Indexes
b. Constraints
i. Constraint Creation
i. Exercise 13-1
ii. Exercise 13-2
15. 14. Views
a. What Are Views?
b. Why Use Views?
i. Data Security
ii. Data Aggregation
iii. Hiding Complexity
iv. Joining Partitioned Data
c. Updatable Views
i. Exercise 15-1
ii. Exercise 15-2
17. 16. Analytic Functions
i. Data Windows
ii. Localized Sorting
b. Ranking
i. Ranking Functions
ii. Generating Multiple Rankings
c. Reporting Functions
i. Window Frames
ii. Lag and Lead
i. Partitioning Concepts
ii. Table Partitioning
iii. Index Partitioning
iv. Partitioning Methods
v. Partitioning Benefits
b. Sharding
c. Big Data
i. Hadoop
ii. NoSQL and Document Databases
iii. Cloud Computing
iv. Future of SQL
19. 18. SQL and Big Data
a. Apache Drill
b. Drill and MySQL
c. Drill and MongoDB
d. Drill with Multiple Data Sources
Learning SQL
THIRD EDITION
With Early Release ebooks, you get books in their earliest form—the author’s
raw and unedited content as they write—so you can take advantage of these
technologies long before the official release of these titles.
Alan Beaulieu
Learning SQL
by Alan Beaulieu
See http://oreilly.com/catalog/errata.csp?isbn=9781492057611
for release details.
The views expressed in this work are those of the author, and
do not represent the publisher’s views. While the publisher and
the author have used good faith efforts to ensure that the
information and instructions contained in this work are
accurate, the publisher and the author disclaim all
responsibility for errors or omissions, including without
limitation responsibility for damages resulting from the use of
or reliance on this work. Use of the information and
instructions contained in this work is at your own risk. If any
code samples or other technology this work contains or
describes is subject to open source licenses or the intellectual
property rights of others, it is your responsibility to ensure that
your use thereof complies with such licenses and/or rights.
978-1-492-05754-3
[LSI]
Preface
Programming languages come and go constantly, and very few
languages in use today have roots going back more than a
decade or so. Some examples are Cobol, which is still used
quite heavily in mainframe environments, and C, which is still
quite popular for operating system and server development
and for embedded systems. In the database arena, we have
SQL, whose roots go all the way back to the 1970s.
Italic
Constant width
plainUPPERCASE
Used to indicate SQL keywords within example code.
NOTE
Indicates a tip, suggestion, or general note. For example, I use notes to
point you to useful new features in Oracle9i.
WARNING
Indicates a warning or caution. For example, I’ll tell you if a certain SQL
clause might have unintended consequences if not used carefully.
If you feel your use of code examples falls outside fair use or
the permission given above, feel free to contact us at
[email protected].
NOTE
For more than 40 years, O’Reilly has provided technology and business
training, knowledge, and insight to help companies succeed.
How to Contact Us
Please address comments and questions concerning this book
to the publisher:
Sebastopol, CA 95472
707-829-0104 (fax)
NOTE
For those readers anxious to start writing queries, feel free to skip ahead
to Chapter 3, but I recommend returning later to the first two chapters in
order to better understand the history and utility of the SQL language.
Introduction to Databases
A database is nothing more than a set of related information. A
telephone book, for example, is a database of the names,
phone numbers, and addresses of all people living in a
particular region. While a telephone book is certainly a
ubiquitous and frequently used database, it suffers from the
following:
Finding a person’s telephone number can be time-
consuming, especially if the telephone book contains a
large number of entries.
"If there is one thing I like more than all the other things about a
long railway journey," said Judith, as they alighted at the great
Metropolis terminal, "it is the end. I love to get off."
"I rather agree with you," Jane almost sighed, for the trip from
Montana, while pleasantly varied with incidents of interest, was
really all tuned and keyed up to the actual pleasure of reaching New
York.
"How good it is to be back, after all," pursued Judith. "I hope we
will have no trouble in finding Mrs. Weatherbee. She is so eminently
systematic, as our train was on time, she ought to be in sight now."
"Oh, I am sure she will be here," Jane added, as they edged
along with the throng, threading their way out into the open space
under the great glass canopy of the New York Central. The
magnitude of the building seemed to dwarf the lines and group of
persons, filing in and out, and coming and going--as the old man
said, like people without any homes.
"There she is!" exclaimed Jane as she caught sight of the
dignified Mrs. Weatherbee, director of Wellington. "And she has a
young girl with her."
"Our Helka!" exclaimed Judith, jamming into a haughty woman
with the perpetual poodle under her arm. "Oh, I am sure that is our
little artist," as the slight young girl, in very dark costume advanced
with Mrs. Weatherbee.
There was no time for a reply from Jane, for the smiling
Wellington lady and her companion now caught sight of the girls,
and were advancing quickly.
"Just in time," Mrs. Weatherbee exclaimed with more precision
than originality. "How splendidly you both look!"
Then the usual hand shaking, and exchange of courtesies
included the introduction to Miss Helka Podonsky.
So the girls at last beheld the object of their long outstanding
guesses and conjectures!
Yes, Helka was pretty--she was different, and she was surely
attractive. Her hair tangled around her ears and made the most
adorable little puffs. Its shade was dark, not black, but more dark
than brown. All of these details were easily observed, and the girls
absorbed them, but the color of her eyes--Jane thought they blue,
Judith thought them brown, and neither knew how to classify the
flashes and "volts" the little stranger shot out from under the long
curly lashes. But that she was lovely each silently agreed.
"This is our friend who is coming with us to Wellington," Mrs.
Weatherbee explained, in that formal way "the faculty" always take
to say unnecessary things. "She is delighted with the prospect,"
another superfluous banality.
"Oh, yes, it will be very--nice," spoke Helka, and her accent
betrayed the slightest foreign tinge. Her words seemed carefully
chosen, but she did not hiss her "s" nor choke her "e." Jane was
glad the voice and accent would not excite undue prejudice.
"I am sure it will be perfectly jolly," Judith hurried to add, and in
her effort to speak clearly she chose the very word a stranger might
not understand. "Jolly" was not included in the usual English phrases
given in foreign school text books.
"Yes?" Helka ventured to answer, and her rising inflection might
easily span a sea of doubt.
"Oh, it will be--delightful," Jane took great pains to qualify. She
had no intention of confusing Helka, and wished above all things to
impress her with a sense of companionship.
Yet there was a certain strain apparent. Helka did not "fall on her
knees, or neck" after the manner of the proteges in children's books,
neither did "her eyes fill with tears of silent appreciation."
Nevertheless the three girls, with their college director, were going
through that process of self consciousness bordering on
embarrassment.
"Can't we go to the rest room for a few moments?" asked Jane.
"I think we will have a better chance to get acquainted sitting
down," she declared.
Quick to catch the possible humor of this remark Helka smiled
broadly, and the set of teeth she exposed caused the girls again to
exchange knowing glances. Now, Judith had wonderful teeth. In
fact, she might claim championship in the tooth beauty contest, did
Wellington carry such a sport, but Helka's! They were so small, so
even and so white, matched pearls indeed. Thoughts of the pure
grain foods of Poland filtered through Jane's mind, while Judith
wondered about Polish dentifrice.
All this time it never occurred to either of the Wellington girls,
that the stranger might be having an equally interesting time
analyzing and cataloging them, and their characteristics. Egotism
has various methods of taking care of her own.
In the big, leathered rest room, a comfortable corner was
available, and here our quartette soon ensconced themselves. Mrs.
Weatherbee really looked quite human, Judith was deciding, her
Oxford tailored suit being sufficiently de luxe to be spelled "tailleur."
It was nobby, to take up a word from the English allies, and not give
all the credit to the French.
"Now, my dears," spoke the model, "I have a plan to unfold to
you. Helka wishes to stay in some private place, that is, she does
not wish to get into any very public place."
She stopped, for Helka was silently inferring so much that her
attitude demanded attention. She was sort of shaking her head and
biting her red lips and flashing her unclassified eyes.
"Not a lovely hotel?" asked Jane in surprise. She had really
counted on showing this little stranger life in a big New York hotel.
"Oh, no, please not. No hotel. I would not like that. There are so
many--men and women." Helka was almost shuddering, and Judith
instantly sensed the mystery promised about the Polish girl's
antecedents. Jane, acting in the capacity of hostess, immediately
agreed to shun all hotels.
"I wanted to tell you," said Mrs. Weatherbee, "that for the
present I have arranged with a former member of the staff of
Wellington, a retired chaperon, to take you young ladies in her
charge in New York. As Miss Allen had informed me she wished to
stay in the city for some days, I thought it my duty to see that you
were all safely--chaperoned." She smiled humanly, Judith admitted,
but visions of a retired chaperon did not exactly forecast a very jolly
good time. Even a working "nurse maid," as the attendants were
sometimes facetiously styled, would be better than one who was old
enough to be retired. Jane was struggling with similar fears.
"She has quite an apartment," went on the matron. "In fact, she
has been entertaining some social service students who take care of
themselves in her apartment, and I thought that would be just the
thing for you three little girls."
"I am sure it will be!" Jane exclaimed, now seeing light through
the clouds. "I have always longed to try housekeeping as the college
settlement girls do, and it may give us valuable experience."
"Oh, glorious!" exclaimed Judith. "I vote to be--parlor maid."
"It would be very nice," ventured Helka, "if we could have a very
small house and our own--piano."
"Oh, of course, Helka, dear," Mrs. Weatherbee hurried to inject.
"You must have access to a piano. You cannot be deprived of your
music."
The luminous eyes flashed their appreciation at this, and Jane
felt as if even a rest room was quite inadequately furnished, with no
piano, at that moment, in sight. This little artist should have some
sort of pocket edition to carry around with her. She was different and
artistic and her moods should be humored. Of a certainty they would
go at once to the apartment with the home cured piano, as Judith
called any instrument not installed in a school room.
"Miss Jordan expects us," said Mrs. Weatherbee, "I was sure a
good cup of real tea would refresh you both after your journey." She
picked up the flat brief case Judith always carried in lieu of a suit
case. Jane adjusted her own club bag, preparatory for the start.
Helka insisted on taking the brace of umbrellas. So the little party
wended their way to the surface car, Jane naturally falling in step
with Helka and Judith trotting along with Mrs. Weatherbee.
"Adorable!" Judith at last had a chance to exclaim.
"I knew you would like her," smiled Mrs. Weatherbee. "She is a
wonderful girl. And she has such an interesting history."
Just as it had all been planned!
"Jane's luck," commented Judith. "Mrs. Weatherbee, we are
going to make Jane Allen, Center, this year. And we are going to
make our team known all over the college circuit. Basketball is an
American sport, and we are back from the war now with
reconstruction energy."
"I believe you," assented the matron, and her tone implied
satisfaction.
Jane was meanwhile becoming agreeably acquainted with Helka.
CHAPTER IX--GIRLS' LIFE A LA MODE
"Pray tell me, pretty maiden, are there any more at home like you?"
This came from the spreading oak, while from the group of young
pines, in a remote corner of the campus the answer wafted in
vigorous girlish voices:
"There are a few, and pretty too-to-too, to-oo-oo-oo."
It was the call to the incoming horde, on their first day at
Wellington.
Over in the hollow, known as the Lair, another contingent from
the upper classes called out, rather than sang:
This was the signal for the real carrying off, for as the freshmen
complied with the order "to bow" each was blindfolded, and carried
off by a pair, or more, of strong arms, and quickly deposited in the
gym.
With that dexterity for which such pranks are chiefly remarkable,
the stunt was accomplished, to the sophs being assigned the task.
The pledge of college sorority restricts the publication of the actual
happenings in the sacred confines of the gym on this Initiation Day,
but facts not on the program may be honorably recounted.
When Helen was ordered to sit down, she did so with such
unexpected alacrity that she sat on the college cat--Minerva by
name.
No one regretted this accident more than did the cat. The howl
from the girls, and the protests from Minerva fully substantiating this
statement. But following this incident no one else could be induced
to sit down. All feared cats, fiercer cats and bigger cats. As usual
with the simple sitting down order a merry time followed. The
blinded girls always feel they are in some unseen danger and refuse
to be seated. Visions of cold lakes, high hills, soapy tubs, and even
sequestered cats, seem to possess the aspirants. Of course, when
they do unbend, they always find themselves sitting comfortably in a
perfectly good seat. But Helen sat down with a bang, and this
promptness won her first goal.
"She's a good sport!"
"A regular scout!"
"That's the sort of do-it-tive-ness!"
"Three cheers for Helen, Helena, Nellie and Nell!"
"All in favor of Nell shout!"
"Nell, Nell, ding, dong, ding!"
"She's with the Wellington's! Her hat's in the ring!" shouted,
cheered and yelled the sororities.
Thus winning the first goal at initiation, Helen, thereafter to be
known as Nell, found herself in unsought favor. The shouts and
cheers of her new companions pleased none better than Jane Allen,
although Jane had done nothing to provoke the sentiment. No one
in Wellington knew, or would know, about the scholarship. When the
announcement was made to schools in the spring, that such an
opportunity was open to them, there was expressed keen interest,
but in Wellington little or nothing was said or done to attract
attention to the fact of a free scholarship. This was obviously good
taste, as otherwise the winner would undoubtedly suffer social
hardships.
As a prelude to other good times Train Day sports were carried
on auspiciously. The fairness of putting the freshies "through" at
once was apparent, as any delay, however trivial, served to develop
for the newcomers--friends or enemies. Thus it was that the up-to-
date plan of efficiency included these initial sports.
Also, it was better for the freshmen. They did not then have to
go about for days fearing accidents, either planned or spontaneous.
They were thus saved from the horror of fasting, fearing mustard or
soap; they might now look on the lake without dreading a
mysterious hand in the ducking process, and they might go to bed
without special precautions suggesting accidental insurance policies.
After a few simple stunts, such as singing in three foreign
languages, answering ten questions truthfully and reciting Mother
Goose from Tucker to Horner, the new students were considered
qualified to take their places as freshmen.
The treat of the day was the Free Lunch Spread. This consisted
of a typical lunch-wagon meal. In fact, the wagons, relics of the
good old days when college raised its own supplies, had been fitted
up, and from this portable delicatessen, coffee, rolls, hamburger and
franks were distributed. Golden rod and iron weed, the gold and
purple blending royally notwithstanding franks and hamburgers,
were bunched at the oilcloth supports, and in the middle of each
wagon covering, with a right artistic hole jaggedly punched, the
"counter" could be both seen and heard from the outside.
"Oh, how glorious!" exclaimed Dorothy Ripple, otherwise known
as Dick. "I never hoped to find college like this."
"And to get our first feed in the open without all the formalities
of good manners," supplied Weasis Blair, who had, according to her
own statement put into cold storage her burdensome title "Marie
Louise."
"Perfectly all right to be freshie to-day," commented Grazia St.
Clair (she pronounced her name like "Grawcia"). It might have been
Latin-Italian, and did not seem to euphonize with the British St. Clair.
However, Grazia was a very attractive girl. She had hair that curled
up and down, hiding the fact that it was bobbed, and she looked out
of a pair of the most wonderful topaz eyes! Everyone loved Grazia at
sight. She, Weasie and Dick, formed a combine immediately, and a
happier little trio of freshmen could not be found on the campus. All
over the spacious grounds girls flitted to and fro, winding in and out
of the autumn sunshine in the very best of their late summer
glorious gowns. It was a patch of summer weather always welcome
to school girls, who are loath to give up pretty togs without affording
school friends an opportunity of getting a glimpse of them. The
voiles, from green of the daintiest, to geranium of the gayest, blazed
everywhere in a riot of tropical warmth and splendor.
Jane and Judith were very busy. As juniors they carried
considerable responsibility of the day's function, and to Jane, Right
Guard of soph year, descended the special honor of playing hostess
to the sophs and freshmen.
"I like our new plan immensely," Judith declared to Jane as the
latter gathered up cups and saucers, and rescued spoons from leafy
graves. "What a wonderful class!"
Helen sidled up to the big rustic bench from which Jane was
frantically trying to gather up all kinds of paper dishes and
incorrigible china.
"Oh, Jane dear," she exclaimed, "isn't it beautiful!"
"Do you like it, Nell?" asked Jane, caressing the little word "Nell"
with a ring like the old-time pretty little song, "Nellie Was a Lady."
"Oh, I adore it!" enthused Helen. "And I like the American Nell. It
has a tone like the bell," and she tossed her curly head in rhythmatic
sway of a silent, human song.
"We shall have to call you the girl of many names," Jane said
with a bright smile. "But what is movable is curable, we say in
English, so perhaps some day you will have a name so famous----"
"Oh, la, la, la!" and Helen ran off to the beckoning throng of
freshmen, which included Dick and Weasie. She had thus acquired
more freedom in a few hours on the campus than many would have
gained in days, under more formal circumstances.
Small wonder seniors commented favorably on the "Jane Allen
Plan," as the new arrangements had been styled. That Jane had
suffered tortures on her own initiation no one guessed, but that she
was instrumental in saving others embarrassment was too obvious
to disregard. As was expected, many of the old class failed to return.
The close of the World's War had spent its baneful influence on
many homes, where happy school girls were suddenly thrust into
premature womanhood, and where girls, hitherto closely guarded
from the most trivial hardship, now occupied the boys' places, and
willingly offered sturdy young arms to prop crushed parents under
the blows dealt by Humanizing Fate.
But Marian Seaton--she whom Jane and Judith and their faction,
had struggled so valiantly to subdue--she was back--like the
proverbial bad penny.
Her hair was no longer any relation to yellow, but glowed a rich
golden brown like early chestnuts. How do the heads stand the
changes! And her white skin, pale to the edge of chemistry, was now
pale in spots and tinted in detail. Her deep uncertain eyes, now blue
and then yellow, movie eyes, as Meta Noon called them, were surely
changing tone. Every experimenter knows hair dye afflicts the blood
in color changes, affecting the eyes disastrously. Also, but it seems
unkind to suggest such a catastrophe, hair-dye has an immediate
action on the sight. Cicily Weldon could not tell time last year after
one trip to New York when her hair was "fixed up!"
"Oh, how do you do, Jane?" lisped the same Marian, coming up
the path as Jane was hurrying down. "Wasn't it perfectly
wonderful?"
"Delightful," replied Jane with a show of good nature she
intended to make infectious. "Did you have a pleasant summer?"
"Yes, and no. I was on at Camp Hillton helping mamma with
some war work left unfinished. I met some lovely non-coms."
"Oh, at Camp Hillton! Only the sick are there, are they not?"
"Not all really very sick," replied Marian. "Some are merely ailing.
But of course, they had been wounded," she felt patriotically obliged
to qualify.
"Poor fellows," sighed Jane.
"Awfully jolly chaps," replied Marian.
Even at this early date Jane and Marian disagreed--and about
wounded soldiers!
"Dazzling little foreigner our--Nellie," too sweetly remarked
Marian. "Hasn't she the loveliest accent?"
"Do you think so?" almost gasped Jane. There! In spite of all
precautions that word "foreigner." What was there so perfectly
fiendish about Marian Seaton? Why should she always sing out the
falsetto?
"Oh, yes, I was wondering what was her province?" she
persisted.
But Jane was now hurrying down the path, scattering recalcitrant
dishes as she went.
Plague that old Marian Seaton and her sneers!
"Oh, hello, Janie," called out Dozia Dalton, otherwise Theodosia.
"How's the Wild and Wooly?"
"Almost ready to shear," replied Jane, in as jovial a tone as Dozia
had betrayed. "There are whiskers on the moon, and the sun has a
pompadour. How's little Beantown?"
"Browning nicely, thank you!" in an invisible pun. "I had a pan
just before I left."
Good old Dozia, always ready for a lark. No doubt she did have
what might be taken for a "panning" previous to leaving home if she
perpetrated any of her famous jokes physically. Dozia was regarded
"an awful joker" and she usually preferred the illustrated brand of
funnies.
"Welcome to our city," yelled Minette Brocton. "Someone said you
had made your debut--saw you in New York."
"Oh, hello, Nettie," called back Jane. She liked Minette, and
wondered if she had seen the "housekeepers" while that squad was
on duty in New York.
"What are squashes fetching to-day? And have you any very nice
La France onions?" asked Minette in a tone full of good humor. "I
wonder, Jane, you did not buy a pushcart."
"Oh, Nettie Brocton! Don't you dare tell me you saw us in New
York and never came to see us," reproached Jane.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
textbookfull.com