1<!doctype html><html lang=en><head><meta name=generator content="Hugo 0.162.1"><meta charset=utf-8><title>The Art of PostgreSQL: a PostgreSQL book for developers in 2026</title><link rel=canonical href=https://theartofpostgresql.com/><meta name=description content="Learn SQL, performance, and data modeling with real-world techniques â not theory. Master PostgreSQL with a complete, practical system."><meta name=twitter:card content="summary"><meta name=twitter:site content="@tapoueh"><meta name=twitter:creator content="@tapoueh"><meta property="og:url" content="https://theartofpostgresql.com"><meta property="og:title" content="The Art of PostgreSQL: Master PostgreSQL for Real"><meta property="og:description" content="Learn SQL, performance, and data modeling with real-world techniques."><meta property="og:image" content="https://theartofpostgresql.com/img/TheArtOfPostgresUniversity.png"><meta name=viewport content="width=device-width,initial-scale=1,minimum-scale=1"><link href=/favicon.ico rel=icon type=image/x-icon><link href="https://fonts.googleapis.com/css?family=Lato:100,300,400,700" rel=stylesheet><link rel=stylesheet href=https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css><link rel=stylesheet href=/css/style.css><style>body.index .header{background:0 0;border-bottom-color:transparent}body.index .header.nav-solid{background:#372649;border-bottom-color:rgba(255,255,255,.3)}</style>
1<script src=https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js></script>
1<script src=/js/custom.js></script>
1</head><body class=index><header class=header><div class=wrapper><nav><ul><li><a href=/book/><i class="fa-solid fa-book-open"></i><span class=nav-text>BOOK</span></a></li><li class=divider></li><li><a class=logo href=/>The Art of PostgreSQL</a></li><li class=divider></li><li><a href=/course/><i class="fa-solid fa-graduation-cap"></i><span class=nav-text>COURSE</span></a></li><li class=divider></li><li><a href=/masterclass/><i class="fa-solid fa-microphone"></i><span class=nav-text>MASTERCLASS</span></a></li><li class=divider></li><li><a href=/login/><i class="fa-solid fa-arrow-right-to-bracket"></i><span class=nav-text>LOGIN</span></a></li><li class=divider></li><li><a class=logo href=/>The Art of PostgreSQL</a></li><li class=divider></li><li><a href=/yesql/><i class="fa-solid fa-pen-to-square"></i><span class=nav-text>YESQL</span></a></li></ul></nav><div class=sticky-cta-wrapper><a href=https://sales.theartofpostgresql.com/the-art-of-postgresql-book/ class="sticky-cta button button_purple">Get the Book â $89</a></div></div></header><style>.launch-bar{--launch-bar-h:44px;position:fixed;top:0;left:0;right:0;z-index:1000;background:#60b2d3;color:#12202b;font:14px/1.4 lato,sans-serif;padding:11px 44px 11px 20px;text-align:center}.launch-bar a{color:#12202b;font-weight:700;border-bottom:1px solid rgba(18,32,43,.45);white-space:nowrap}.launch-bar a:hover{border-bottom-color:#12202b}.launch-bar-dismiss{position:absolute;top:50%;right:10px;transform:translateY(-50%);width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:0 0;border:0;cursor:pointer;color:#12202b;opacity:.6;font-size:15px;line-height:1}.launch-bar-dismiss:hover{opacity:1}body.has-launch-bar .header{top:var(--launch-bar-h,44px)}@media(max-width:600px){.launch-bar{font-size:13px;padding:10px 40px 10px 14px}}</style><div class=launch-bar id=launch-bar hidden><strong>The 2026 edition is here</strong> â PostgreSQL 10â18, a new pgvector chapter, 56 new figures. 2<a href="/launch/?utm_source=site&utm_medium=announce-bar&utm_campaign=launch2026">See what's new â</a> 3<button type=button class=launch-bar-dismiss id=launch-bar-dismiss aria-label="Dismiss announcement">â</button></div>
3<script>(function(){var t,n="taop-launch2026-bar-dismissed",e=document.getElementById("launch-bar");if(!e)return;t=!1;try{t=window.localStorage.getItem(n)==="1"}catch{t=!1}if(t)return;function s(){document.body.style.setProperty("--launch-bar-h",e.offsetHeight+"px"),e.style.setProperty("--launch-bar-h",e.offsetHeight+"px")}e.hidden=!1,document.body.classList.add("has-launch-bar"),s(),window.addEventListener("resize",s),document.getElementById("launch-bar-dismiss").addEventListener("click",function(){e.hidden=!0,document.body.classList.remove("has-launch-bar");try{window.localStorage.setItem(n,"1")}catch{}})})()</script>
3<div class=welcome_slider><div class=hero-slide><img src=/images/demo/slide.jpg alt style=position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0><div class=hero-content><img src=/images/demo/welcome_logo.png alt="The Art of PostgreSQL" class=hero-logo><p class=hero-cta><a class="button button_large" href=https://sales.theartofpostgresql.com/the-art-of-postgresql-book/>Buy the Book 4</a><a class="button button_large" href=/book/updates/>See What's New</a></p></div></div></div><div class=container><div class=wrapper><header class=heading><h1>The Art of PostgreSQL</h1><h4>The book that teaches SQL to developers: Learn to replace thousands of lines of code with simple queries!</h4></header><ul class=services_list><li><p><span class=system_icon><i class="fa-solid fa-bolt"></i></span></p><p><strong>Write production-grade SQL</strong></p><p>Turn complex application logic into efficient, scalable SQL 5queries that run fast in real systems.</p></li><li><p><span class=system_icon><i class="fa-solid fa-tachometer-alt"></i></span></p><p><strong>Write efficient SQL by design</strong></p><p>Build queries that perform well naturally by leveraging proper 6schema design, relational modeling, and PostgreSQL advanced 7features.</p></li><li><p><span class=system_icon><i class="fa-solid fa-layer-group"></i></span></p><p><strong>Design schemas that scale</strong></p><p>Model data and relationships that hold up under growth, load, and 8real-world constraints.</p></li></ul><p style=text-align:center;margin-top:12px><a href=/book/contents/ style="font:300 .88rem/1 lato,sans-serif;color:#60b2d3;text-decoration:none">Browse the full table of contents â</a></p></div></div><div class=book_social_proof><div class=wrapper><header class=heading><h3>Trusted by developers</h3><p class=lightpurple>Used in real systems</p></header><div class=quote_slider><div class="quote-nav quote-prev"><i class="fa-solid fa-chevron-left"></i></div><ul><li class=active><blockquote><p>"This book is on a higher level than generic software books. It explains the how's and why's of using Postgres's many feature. It is an excellent companion to the official Postgres documentation."</p><cite>Bruce Momjian, PostgreSQL core team</cite></blockquote></li><li><blockquote><p>"At last the definitive Postgres book for app developers is out, and from the amazing @tapoueh no less. Go get it!"</p><cite>Peter van Hardenberg</cite></blockquote></li><li><blockquote><p>"Full edition of The Art of PostgreSQL is BRILLIANT! Not just best PG resource ever but best tech-learning package I've ever seen!"</p><cite>Derek Sivers</cite></blockquote></li><li><blockquote><p>"Thanks for your fantastic book. It's helped me immensely in my current job. Technical books can often be a bore and hard to digest, but The Art of PostgreSQL was a pleasure to read."</p><cite>Ben Davies</cite></blockquote></li></ul><div class="quote-nav quote-next"><i class="fa-solid fa-chevron-right"></i></div><div class=quote-dots></div></div><div class=section_cta><a href=https://sales.theartofpostgresql.com/ class="button button_purple">Get the Book</a></div></div></div><div class=book_hero><div class=wrapper><header class=heading><h1>Practical PostgreSQL for Developers</h1><p class=lightpurple>Start with the foundation</p></header><p class=hero_description>The book is your entry point to a complete PostgreSQL system. Learn 9the fundamentals, practice with real data, then apply advanced 10techniques in production.</p><ul class=price_list><li><div><div class=best>MOST POPULAR</div><h5>Digital Edition</h5><div class=price><sup>$</sup>89</div><p>You get the complete book with practical SQL techniques, 11real-world examples, and datasets to follow along and 12experiment.</p><p>Delivered through the companion app: read online, run every SQL 13query live against a real PostgreSQL 17 database, download as PDF 14and ePub, and use the Docker starter kit for a local dev 15environment. Your purchase email is your login â no separate 16account needed.</p><div class=book_cta><div class=money-back-guarantee><i class="fa-solid fa-shield-halved"></i><h4>Money-back guarantee</h4><p>No-questions-asked refund</p></div><a href=https://sales.theartofpostgresql.com/the-art-of-postgresql-book/ class="button button_purple button_large">Get the Book</a></div></div></li><li><div><div class=paperback>PAPERBACK</div><h5>Paperback Edition</h5><div class=price><sup>$</sup>129</div><p>Get a physical copy of the book to read, annotate, and keep at 17hand while you work. The paperback is designed to be a practical 18companionâsomething you can open next to your editor or database 19console as you apply the concepts.</p><p>It includes the full digital edition as well, so you can switch 20seamlessly between reading on screen and working through 21examples locally. Same content, different formatâchoose what 22fits your workflow best.</p><div class=book_cta><div class=money-back-guarantee><i class="fa-solid fa-shield-halved"></i><h4>Money-back guarantee</h4><p>No-questions-asked refund</p></div><a href=https://sales.theartofpostgresql.com/the-art-of-postgresql-book-paperback/ class="button button_purple button_large">Get the Paperback</a></div></div></li></ul><div><a href=/book/fair-pricing/ class="button button_outline">Fair Pricing Available</a></div></div></div><div class=index_authority><div class=wrapper><div class=authority_layout><img class=authority_photo src=/images/demo/author.jpg alt="Dimitri Fontaine"><div class=authority_content><p class=authority_text>Written by a PostgreSQL major contributorâauthor of CREATE EXTENSION 23and Event Triggersâand creator of tools such as pgloader, pgcopydb, 24and pg_auto_failover. With years of production consulting and 25international conference speaking experience, the content is built for 26developers who need practical, real-world skills, not theory.</p></div></div></div></div><div class=container><div class=wrapper><header class=heading><h1>
26Master PostgreSQL Through Principles That Stand the Test of Time</h1><h4>Build durable expertise in database design, performance, and SQL 27masteryâskills that remain relevant across PostgreSQL versions. 28The Second Edition, Updated (2026) covers PostgreSQL 10 through 18.</h4></header><ul class="services_list relevant-list"><li><p><span class=value_icon><i class="fa-solid fa-bolt"></i></span></p><p><strong>Practical Skills That Still Apply</strong></p><p>The Second Edition, Updated (2026) covers PostgreSQL 10 through 18 â 29the core architecture, query optimization strategies, indexing 30approaches, and data modeling practices are all current.</p><p>The course and masterclass cover current PostgreSQL releases.</p></li><li><p><span class=value_icon><i class="fa-solid fa-landmark"></i></span></p><p><strong>SQL Doesn't Expire</strong></p><p>The core of what you'll learn â window functions, CTEs, 31aggregates, indexing strategy, normalization, concurrency, 32extensions â is as relevant in PostgreSQL 17/18 as it was in 33PostgreSQL 11. SQL doesn't expire.</p><p>Where newer versions have introduced improvements (partitioning, 34logical replication, generated columns, improved EXPLAIN), the 35concepts taught here give you exactly the foundation needed to 36understand and use those features.</p><p>This is not a book about PostgreSQL version X â it's a book about 37thinking in SQL.</p></li><li><p><span class=value_icon><i class="fa-solid fa-hourglass-half"></i></span></p><p><strong>Always Up to Date</strong></p><p>The Second Edition, Updated (2026) is now available â covering 38PostgreSQL 10 through 18, with a new chapter on vector search with 39pgvector, 56 new figures, and a fully integrated companion lab. 40Everyone who purchases receives all future updates free of charge.</p></li></ul></div></div><div class=index_hero><div class=wrapper><h1>The Art of PostgreSQL: A Complete Learning System</h1><p class=hero_subtitle>Learn SQL, performance, and data modeling that works in production</p><p class=hero_description>The Art of PostgreSQL is a complete, practical system to move from 41writing queries to designing and operating real data systems. Start 42with the book to build solid foundations, run SQL live in your browser 43with the companion app, and go deeper with structured courses.</p><div class=hero_cta><a href=https://sales.theartofpostgresql.com/the-art-of-postgresql-book/ class="button button_purple button_large">Get the Book</a></div></div></div><div class=index_courses><div class=wrapper><header class=heading><h3>Continue after the book</h3><p class=lightpurple>A complete PostgreSQL course packaged in three tiers:<br>for 44different goals and experience levels.</p></header><div class=section_icons><span class=system_icon><i class="fa-solid fa-graduation-cap"></i></span></div><ul class=tier_preview><li><h5>Core</h5><p>Solid SQL foundations â correctness, clarity, essential patterns.</p></li><li><h5>Advanced</h5><p>Performance mastery â query plans, optimization, indexing.</p></li><li><h5>Architect</h5><p>System design â schemas, scaling, production decisions.</p></li></ul><div class=section_cta><a href=/course class="button button_transparent">Go Beyond the Book</a></div></div></div><div class=index_workshops><div class=wrapper><header class=heading><h3>Live Masterclass Sessions</h3><p class=lightpurple>Designed for advanced users, a focused 3-hour deep dives with 45real-time Q&A.</p></header><div class=section_icons><span class=system_icon><i class="fa-solid fa-microphone"></i></span></div><p class=workshop_desc>Masterclass sessions cover specific topics in depth â window functions, EXPLAIN plans, aggregation patterns, and more. 46Pick one session or the full curriculum, expert instruction, immediate application.</p><div class=section_cta><a href=/masterclass class="button button_purple">Join the Masterclass</a></div></div></div><div class=index_lab><div class=wrapper><header class=heading><h3>SQL in your browser â or locally</h3><p class=lightpurple>No install needed to start.</p></header><div class=section_icons><span class=system_icon><i class="fa-solid fa-terminal"></i></span></div><p class=lab_desc>Every free <a href=/yesql/>YeSQL lesson</a> runs live in your browser, 47powered by <a href=https://pglite.dev rel=noopener target=_blank>PGLite</a>. Open any 48lesson and every query runs against real datasets â F1 results, music 49charts, MoMA collection, and more. No account, no install, no cloud 50connection.</p><p class=lab_desc>Prefer a local environment? The <a href=https://github.com/dimitri/TheArtOfPostgreSQL rel=noopener>Docker starter kit</a> 51ships with the same datasets pre-loaded. One command to start, works 52with any SQL client.</p><div class=section_cta><a href=/app/ class="button button_transparent">Explore the App</a></div></div></div><div class=index_final_cta><div class=wrapper><h3>Ready to master PostgreSQL?</h3><p>The book is the foundation. Everything else builds on it.</p><div class=cta_buttons><a href=https://sales.theartofpostgresql.com/the-art-of-postgresql-book/ class="button button_purple button_large">Get the Book</a> 53<a href=/book/fair-pricing class="button button_purple button_large">Fair Pricing</a></div><p style=margin-top:2em>Already have the book? <a href=https://sales.theartofpostgresql.com/the-art-of-postgresql-courses/ style=color:#fff;font-weight:700>Take the Course</a></p><p style=margin-top:.75em;font-size:.9em>Not sure yet? <a href=/login/ style=color:#60b2d3;font-weight:700>Try free</a> â sample chapters and lessons, no credit card required.</p></div></div>
53<div class="index_workshops index_teams"><div class=wrapper><header class=heading><h3>PostgreSQL Expertise For Your Whole Team</h3><p class=lightpurple>One Architect course package, per-member pricing, and an 54Enterprise dashboard to manage it all.</p></header><div class=section_icons><span class=system_icon><i class="fa-solid fa-users"></i></span></div><p class=workshop_desc>License the Architect course for your team, add the Masterclass 55Curriculum for anyone who wants it, and manage members, seats, 56and progress from one dashboard â buy exactly as many seats as 57your team needs, starting at 5.</p><div class=section_cta><a href=/teams/ class="button button_purple">See Team Pricing</a></div></div></div><style>@media(min-width:769px){.system_flow{flex-wrap:nowrap;gap:8px}.system_item{padding:12px 8px;min-width:0}.system_icon{font-size:30px}.system_arrow{font-size:16px}.system_item h6{font-size:14px}.system_item p{font-size:12px}}</style><div class=index_system><div class=wrapper><header class=heading><h3>One System, One Learning Path</h3><p class=lightpurple>Learn â Practice â Apply â Master</p></header><div class=system_flow><div class=system_item><span class=system_icon><i class="fa-solid fa-book-open"></i></span><h6>Book</h6><p>Foundation & reference</p></div><span class=system_arrow><i class="fa-solid fa-arrow-right"></i></span><div class=system_item><span class=system_icon><i class="fa-solid fa-graduation-cap"></i></span><h6>Course</h6><p>Structured learning</p></div><span class=system_arrow><i class="fa-solid fa-arrow-right"></i></span><div class=system_item><span class=system_icon><i class="fa-solid fa-microphone"></i></span><h6>Masterclass</h6><p>Live sessions with the author</p></div><span class=system_arrow><i class="fa-solid fa-arrow-right"></i></span><div class=system_item><span class=system_icon><i class="fa-solid fa-flask"></i></span><h6>Lab</h6><p>SQL in your browser, built in</p></div></div><div class=system_cta><a href=https://sales.theartofpostgresql.com/the-art-of-postgresql-book/ class="button button_purple">Start with the Book</a></div><center style=margin-top:2em><h4>Most people continue with the course.</h4></center></div></div><div id=subscribe class=subscribe_block><div class=wrapper><p>Not convinced yet? Create a free account and connect to the app's dashboard â sample chapters, sample course modules, and the interactive book reader, free.</p><form method=get action=https://api.theartofpostgresql.com/login><input type=email name=email required [email protected] autocomplete=email> 58<button type=submit>Get Free Access</button></form></div></div><footer class=footer><div class=wrapper><div class=about_block><h6>about the author</h6><p>Hi! My name is Dimitri Fontaine and I have been using and contributing to Open Source Software for the best of the last 20 years. I am a PostgreSQL Major Contributor after having contributed Extensions and Event Triggers, among other things.</p><p>I have been writing code almost daily for a very long time now, both in a professional capacity and on my leisure time. I’ve also been a database architect and a DBA on-call. As a developer I enjoy using SQL. As a database architect, I like teaching advanced SQL techniques to my colleagues.</p><ul><li><a target=_blank href=mailto:[email protected]>email</a></li><li><a target=_blank href=https://github.com/dimitri/TheArtOfPostgreSQL>github</a></li><li><a target=_blank href=https://www.reddit.com/user/theartofpostgresql>reddit</a></li></ul></div><div class=footer_right_col><div class=faq_block><h6>FAQ</h6><dl><dt>What if the book isn’t what I expected it would be?</dt><dd>The Art of PostgreSQL is a book that teaches SQL to application developers. If it's not of any value to you, then just say so and I'll refund you, no questions asked.</dd><dt>I bought the book, and I'm confused. What now?</dt><dd>Go to <a href=https://app.theartofpostgresql.com/ rel=noopener>app.theartofpostgresql.com</a>, enter the email address you used to purchase, and click the sign-in link that arrives in your inbox. Your book and any courses you bought are waiting there. No password required.</dd><dt>I bought a previous edition. Do I get the 2026 update?</dt><dd>Yes â the update is free for all existing purchasers. Sign in at <a href=https://app.theartofpostgresql.com/ rel=noopener>app.theartofpostgresql.com</a> with your purchase email and the updated PDF, ePub, and online reading experience are there automatically. Questions? Email <a href=mailto:[email protected]>[email protected]</a>.</dd><dt>What does the book cover, and what do the courses cover?</dt><dd>The <a href=/book/contents/>book table of contents</a> lists all 8 parts and 53 chapters â from SQL foundations through advanced query patterns and data architecture. The <a href=/course/contents/>course curriculum</a> covers 6 courses and 48 modules across Core, Advanced, and Architect tiers, with hands-on SQL labs on real datasets.</dd><dt>Is SQL still relevant now that AI writes queries?</dt><dd>Yes â <a href=/sql-and-ai/>here is why understanding SQL matters more than ever</a>, even when AI generates the code.</dd><dt>Do you offer team or enterprise pricing?</dt><dd>Yes â <a href=/teams/>see the Team page</a> for per-member Architect course licensing, an optional Masterclass Curriculum add-on, and a dashboard to manage your whole team.</dd><dt>Is there any DRM?</dt><dd>No. There isn't even watermarking on the PDF. You own what you buy. The sources of data selected for the book are all available with Open Data types of licenses, and the book itself is copyright Dimitri Fontaine. All rights reserved.</dd><dt>Any other questions?</dt><dd>Email <a href=mailto:[email protected]>[email protected]</a> and just ask! I will do my best to answer you.</dd></dl></div><div class=whatsnew_block><h6>What's new</h6><ul><li><a href=/updates/#yesql>June 2026 â YeSQL hub, 24 free lessons</a></li><li><a href=/updates/#book>
58Aug 2019 â The Art of PostgreSQL</a></li><li><a href=/updates/>â View all updates</a></li></ul></div></div></div></footer><div class=copyright><div class=wrapper>Copyright 2019-2026 © Dimitri Fontaine. All rights reserved. Design by <a style=color:#fff;font-weight:700 target=_blank href=https://www.terrilowry.com>TerriLowry.com.</a></div></div>
58<script type=text/javascript>var subscribersSiteId="1296f531-7ba0-406f-89e1-bdca40a36208"</script>
58<script type=text/javascript src=https://cdn.subscribers.com/assets/subscribers.js></script>
58<script>!function(e,t,n,s,o,i){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments)},s.version="1.1",s.queue=[],o=t.createElement(n),o.async=!0,o.src="//static.ads-twitter.com/uwt.js",i=t.getElementsByTagName(n)[0],i.parentNode.insertBefore(o,i))}(window,document,"script"),twq("init","o0ial"),twq("track","PageView")</script>
58</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.