[{"data":1,"prerenderedAt":219},["ShallowReactive",2],{"term-q\u002Fquery-builder":3,"related-q\u002Fquery-builder":203},{"id":4,"title":5,"acronym":6,"body":7,"category":184,"description":185,"difficulty":186,"extension":187,"letter":188,"meta":189,"navigation":190,"path":191,"related":192,"seo":197,"sitemap":198,"stem":201,"subcategory":6,"__hash__":202},"terms\u002Fterms\u002Fq\u002Fquery-builder.md","Query Builder",null,{"type":8,"value":9,"toc":178},"minimark",[10,15,31,35,38,42,167,171,174],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18,19,23,24,23,27,30],"p",{},"A query builder lets you build database queries by chaining methods instead of writing raw SQL. It's like assembling a sentence with Lego blocks — ",[20,21,22],"code",{},".where()",", ",[20,25,26],{},".orderBy()",[20,28,29],{},".limit()"," — instead of typing out the whole SQL sentence yourself.",[11,32,34],{"id":33},"real-talk","Real Talk",[16,36,37],{},"A query builder is a library or API that allows developers to construct database queries programmatically using method chaining. It provides SQL-like functionality with the safety of parameterized queries and cross-database compatibility, sitting between raw SQL and a full ORM.",[11,39,41],{"id":40},"show-me-the-code","Show Me The Code",[43,44,49],"pre",{"className":45,"code":46,"language":47,"meta":48,"style":48},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const users = await db('users')\n  .where('active', true)\n  .orderBy('created_at', 'desc')\n  .limit(10);\n","javascript","",[20,50,51,91,118,147],{"__ignoreMap":48},[52,53,56,60,64,68,72,76,79,82,86,88],"span",{"class":54,"line":55},"line",1,[52,57,59],{"class":58},"spNyl","const",[52,61,63],{"class":62},"sTEyZ"," users ",[52,65,67],{"class":66},"sMK4o","=",[52,69,71],{"class":70},"s7zQu"," await",[52,73,75],{"class":74},"s2Zo4"," db",[52,77,78],{"class":62},"(",[52,80,81],{"class":66},"'",[52,83,85],{"class":84},"sfazB","users",[52,87,81],{"class":66},[52,89,90],{"class":62},")\n",[52,92,94,97,100,102,104,107,109,112,116],{"class":54,"line":93},2,[52,95,96],{"class":66},"  .",[52,98,99],{"class":74},"where",[52,101,78],{"class":62},[52,103,81],{"class":66},[52,105,106],{"class":84},"active",[52,108,81],{"class":66},[52,110,111],{"class":66},",",[52,113,115],{"class":114},"sfNiH"," true",[52,117,90],{"class":62},[52,119,121,123,126,128,130,133,135,137,140,143,145],{"class":54,"line":120},3,[52,122,96],{"class":66},[52,124,125],{"class":74},"orderBy",[52,127,78],{"class":62},[52,129,81],{"class":66},[52,131,132],{"class":84},"created_at",[52,134,81],{"class":66},[52,136,111],{"class":66},[52,138,139],{"class":66}," '",[52,141,142],{"class":84},"desc",[52,144,81],{"class":66},[52,146,90],{"class":62},[52,148,150,152,155,157,161,164],{"class":54,"line":149},4,[52,151,96],{"class":66},[52,153,154],{"class":74},"limit",[52,156,78],{"class":62},[52,158,160],{"class":159},"sbssI","10",[52,162,163],{"class":62},")",[52,165,166],{"class":66},";\n",[11,168,170],{"id":169},"when-youll-hear-this","When You'll Hear This",[16,172,173],{},"\"Use the query builder instead of raw SQL for safety.\" \u002F \"Knex is a popular query builder for Node.js.\"",[175,176,177],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":48,"searchDepth":93,"depth":93,"links":179},[180,181,182,183],{"id":13,"depth":93,"text":14},{"id":33,"depth":93,"text":34},{"id":40,"depth":93,"text":41},{"id":169,"depth":93,"text":170},"backend","A query builder lets you build database queries by chaining methods instead of writing raw SQL. It's like assembling a sentence with Lego blocks — `.","intermediate","md","q",{},true,"\u002Fterms\u002Fq\u002Fquery-builder",[193,194,195,196],"ORM","Active Record","Migration","Schema",{"title":5,"description":185},{"changefreq":199,"priority":200},"weekly",0.7,"terms\u002Fq\u002Fquery-builder","jhPTLrJM7PdEZYOcgrUxE-TKKVknKT4V_7FJ544V1ws",[204,207,212,216],{"title":194,"path":205,"acronym":6,"category":184,"difficulty":186,"description":206},"\u002Fterms\u002Fa\u002Factive-record","Active Record is an ORM pattern where each database row becomes an object that knows how to save itself.",{"title":195,"path":208,"acronym":6,"category":209,"difficulty":210,"description":211},"\u002Fterms\u002Fm\u002Fmigration","database","beginner","A migration is a versioned script that modifies your database schema — adding a column, creating a table, changing a type.",{"title":193,"path":213,"acronym":214,"category":184,"difficulty":186,"description":215},"\u002Fterms\u002Fo\u002Form","Object-Relational Mapper","An ORM is like a translator between your code and your database. Instead of writing scary SQL, you just write normal code like `User.",{"title":196,"path":217,"acronym":6,"category":209,"difficulty":210,"description":218},"\u002Fterms\u002Fs\u002Fschema","A database schema is the blueprint of your database — which tables exist, what columns they have, what types they are, and how they relate to each other.",1776518305064]