{"id":1119,"date":"2011-09-27T22:43:52","date_gmt":"2011-09-28T03:43:52","guid":{"rendered":"http:\/\/www.dpriver.com\/blog\/?p=1119"},"modified":"2011-09-28T21:52:27","modified_gmt":"2011-09-29T02:52:27","slug":"a-list-of-sql-best-practices","status":"publish","type":"post","link":"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/","title":{"rendered":"A list of SQL best practices"},"content":{"rendered":"<p>Here are some SQL programming guidelines and best practices we collected, keeping quality, performance and maintainability in mind. This list is not complete at this moment, and will be constantly updated.<\/p>\n<ul class=\"inp\">\n<li>\nDo not use SELECT * in your queries.\n<\/li>\n<li>\nAlways use table aliases when your SQL statement involves more than one source.\n<\/li>\n<li>\nUse the more readable ANSI-Standard Join clauses instead of the old style joins.\n<\/li>\n<li>\nDo not use column numbers in the ORDER BY clause.\n<\/li>\n<li>\nAlways use a column list in your INSERT statements.\n<\/li>\n<li>\nDon&#8217;t ever use double quotes in your T-SQL code.\n<\/li>\n<li>\nDo not prefix your stored procedure names with \u201csp_\u201d.\n<\/li>\n<li>\nAlways use a SQL formatter to format your sql like <a href=\"http:\/\/www.dpriver.com\/pp\/sqlformat.htm\">Instant SQL Formatter<\/a>(Free and Online)\n<\/li>\n<\/ul>\n<h3>\nDo not use SELECT * in your queries, write out the full syntax.<br \/>\n<\/h3>\n<p>Always write the required column names after the SELECT statement, like:\t\t<\/p>\n<pre>\r\nSELECT CustomerID, CustomerFirstName, City from Emp;\r\n<\/pre>\n<p>This technique results in reduced disk I\/O and better performance.<\/p>\n<h3>\n Always use table aliases when your SQL statement involves more than one source<br \/>\n<\/h3>\n<p>If more than one table is involved in a from clause, each column name must be qualified using either the complete table name or an alias. The alias is preferred.<br \/>\nIt is more human readable to use aliases instead of writing columns with no table information.<\/p>\n<h3>\nUse the more readable ANSI-Standard Join clauses instead of the old style joins<br \/>\n<\/h3>\n<p>With ANSI joins, the WHERE clause is used only for filtering data.<br \/>\nWhere as with older style joins, the WHERE clause handles both the join condition and filtering data. <\/p>\n<p>Furthermore ANSI join syntax supports the full outer join.<\/p>\n<p>The first of the following two queries shows the old style join,<br \/>\nwhile the second one shows the new ANSI join syntax:<\/p>\n<div><span style=\"font-family: Courier New; font-size: 10pt;\"><br \/>\n<span style=\"color: green; font-style: italic; \">&#45;&#45;&nbsp;old&nbsp;style&nbsp;join<\/span><br \/>\n<br \/><span style=\"color: blue; \">SELECT<\/span>&nbsp;<span style=\"color: maroon; \">a<\/span><span style=\"color: silver; \">.<\/span><span style=\"color: maroon; \">Au_id<\/span><span style=\"color: silver; \">,<\/span><br \/>\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: maroon; \">t<\/span><span style=\"color: silver; \">.<\/span><span style=\"color: maroon; \">Title<\/span><br \/>\n<br \/><span style=\"color: blue; \">FROM<\/span>&nbsp;&nbsp;&nbsp;<span style=\"color: maroon; \">TITLES<\/span>&nbsp;<span style=\"color: maroon; \">t<\/span><span style=\"color: silver; \">,<\/span><br \/>\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: maroon; \">AUTHORS<\/span>&nbsp;<span style=\"color: maroon; \">a<\/span><span style=\"color: silver; \">,<\/span><br \/>\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: maroon; \">TITLEAUTHOR<\/span>&nbsp;<span style=\"color: maroon; \">ta<\/span><br \/>\n<br \/><span style=\"color: blue; \">WHERE<\/span>&nbsp;&nbsp;<span style=\"color: maroon; \">a<\/span><span style=\"color: silver; \">.<\/span><span style=\"color: maroon; \">Au_id<\/span>&nbsp;<span style=\"color: silver; \">=<\/span>&nbsp;<span style=\"color: maroon; \">ta<\/span><span style=\"color: silver; \">.<\/span><span style=\"color: maroon; \">Au_id<\/span><br \/>\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: blue; \">AND<\/span>&nbsp;<span style=\"color: maroon; \">ta<\/span><span style=\"color: silver; \">.<\/span><span style=\"color: maroon; \">Title_id<\/span>&nbsp;<span style=\"color: silver; \">=<\/span>&nbsp;<span style=\"color: maroon; \">t<\/span><span style=\"color: silver; \">.<\/span><span style=\"color: maroon; \">Title_id<\/span><br \/>\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: blue; \">AND<\/span>&nbsp;<span style=\"color: maroon; \">t<\/span><span style=\"color: silver; \">.<\/span><span style=\"color: maroon; \">Title<\/span>&nbsp;<span style=\"color: blue; \">LIKE<\/span>&nbsp;<span style=\"color: maroon; \">\u2018<\/span><span style=\"color: silver; \">%<\/span><span style=\"color: maroon; \">Computer<\/span><span style=\"color: silver; \">%<\/span><span style=\"color: maroon; \">\u2019<\/span>&nbsp;<br \/>\n<\/span><\/div>\n<p>&nbsp;<\/p>\n<div><span style=\"font-family: Courier New; font-size: 10pt;\"><br \/>\n<span style=\"color: green; font-style: italic; \">&#45;&#45;ANSI&nbsp;join&nbsp;syntax<\/span><br \/>\n<br \/><span style=\"color: blue; \">SELECT<\/span>&nbsp;<span style=\"color: maroon; \">a<\/span><span style=\"color: silver; \">.<\/span><span style=\"color: maroon; \">Au_id<\/span><span style=\"color: silver; \">,<\/span><br \/>\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: maroon; \">t<\/span><span style=\"color: silver; \">.<\/span><span style=\"color: maroon; \">Title<\/span><br \/>\n<br \/><span style=\"color: blue; \">FROM<\/span>&nbsp;&nbsp;&nbsp;<span style=\"color: maroon; \">AUTHORS<\/span>&nbsp;<span style=\"color: maroon; \">a<\/span><br \/>\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: blue; \">INNER<\/span>&nbsp;<span style=\"color: blue; \">JOIN<\/span>&nbsp;<span style=\"color: maroon; \">TITLEAUTHOR<\/span>&nbsp;<span style=\"color: maroon; \">ta<\/span><br \/>\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: blue; \">ON<\/span>&nbsp;<span style=\"color: maroon; \">a<\/span><span style=\"color: silver; \">.<\/span><span style=\"color: maroon; \">Au_id<\/span>&nbsp;<span style=\"color: silver; \">=<\/span>&nbsp;<span style=\"color: maroon; \">ta<\/span><span style=\"color: silver; \">.<\/span><span style=\"color: maroon; \">Au_id<\/span><br \/>\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: blue; \">INNER<\/span>&nbsp;<span style=\"color: blue; \">JOIN<\/span>&nbsp;<span style=\"color: maroon; \">TITLES<\/span>&nbsp;<span style=\"color: maroon; \">t<\/span><br \/>\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: blue; \">ON<\/span>&nbsp;<span style=\"color: maroon; \">ta<\/span><span style=\"color: silver; \">.<\/span><span style=\"color: maroon; \">Title_id<\/span>&nbsp;<span style=\"color: silver; \">=<\/span>&nbsp;<span style=\"color: maroon; \">t<\/span><span style=\"color: silver; \">.<\/span><span style=\"color: maroon; \">Title_id<\/span><br \/>\n<br \/><span style=\"color: blue; \">WHERE<\/span>&nbsp;&nbsp;<span style=\"color: maroon; \">t<\/span><span style=\"color: silver; \">.<\/span><span style=\"color: maroon; \">Title<\/span>&nbsp;<span style=\"color: blue; \">LIKE<\/span>&nbsp;<span style=\"color: maroon; \">\u2018<\/span><span style=\"color: silver; \">%<\/span><span style=\"color: maroon; \">Computer<\/span><span style=\"color: silver; \">%<\/span><span style=\"color: maroon; \">\u2019<\/span>&nbsp;<br \/>\n<\/span><\/div>\n<h3>\nDo not use column numbers in the ORDER BY clause<br \/>\n<\/h3>\n<p>Always use column names in an order by clause. Avoid positional references. Consider the following example in which the second query is more readable than the first one:<\/p>\n<div><span style=\"font-family: Courier New; font-size: 10pt;\"><br \/>\n<font color = \"blue\">SELECT<\/font>&nbsp;<font color = \"maroon\">OrderID<\/font><font color = \"silver\">,<\/font>&nbsp;<font color = \"maroon\">OrderDate<\/font><br \/>\n<br \/><font color = \"blue\">FROM<\/font>&nbsp;<font color = \"maroon\">Orders<\/font><br \/>\n<br \/><font color = \"blue\">ORDER<\/font>&nbsp;<font color = \"blue\">BY<\/font>&nbsp;<font color = \"black\">2<\/font><\/p>\n<p><font color = \"blue\">SELECT<\/font>&nbsp;<font color = \"maroon\">OrderID<\/font><font color = \"silver\">,<\/font>&nbsp;<font color = \"maroon\">OrderDate<\/font><br \/>\n<br \/><font color = \"blue\">FROM<\/font>&nbsp;<font color = \"maroon\">Orders<\/font><br \/>\n<br \/><font color = \"blue\">ORDER<\/font>&nbsp;<font color = \"blue\">BY<\/font>&nbsp;<font color = \"maroon\">OrderDate<\/font><br \/>\n<br \/>\n<\/span><\/div>\n<h3>\nAlways use a column list in your INSERT statements<br \/>\n<\/h3>\n<p>Always specify the target columns when executing an insert command. This helps in avoiding problems when the table structure changes (like adding or dropping a column). <\/p>\n<p>Consider the following table:<\/p>\n<div><span style=\"font-family: Courier New; font-size: 10pt;\"><br \/>\n<span style=\"color: blue; \">CREATE<\/span>&nbsp;<span style=\"color: blue; \">TABLE<\/span>&nbsp;<span style=\"color: maroon; \">EUROPEANCOUNTRIES<\/span><br \/>\n<br \/>&nbsp;&nbsp;<span style=\"color: maroon; \">(<\/span><br \/>\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: maroon; \">Countryid<\/span>&nbsp;&nbsp;&nbsp;<span style=\"color: black; font-style: italic; \">INT<\/span>&nbsp;<span style=\"color: blue; \">PRIMARY<\/span>&nbsp;<span style=\"color: blue; \">KEY<\/span><span style=\"color: silver; \">,<\/span><br \/>\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: maroon; \">Countryname<\/span>&nbsp;<span style=\"color: black; font-style: italic; \">VARCHAR<\/span><span style=\"color: maroon; \">(<\/span><span style=\"color: black; \">25<\/span><span style=\"color: maroon; \">)<\/span><br \/>\n<br \/>&nbsp;&nbsp;<span style=\"color: maroon; \">)<\/span>&nbsp;<br \/>\n<\/span><\/div>\n<p>Here\u2019s an INSERT statement without a column list , that works perfectly:<\/p>\n<div><span style=\"font-family: Courier New; font-size: 10pt;\"><br \/>\n<font color = \"blue\">INSERT<\/font>&nbsp;<font color = \"blue\">INTO<\/font>&nbsp;<font color = \"maroon\">EuropeanCountries<\/font><br \/>\n<br \/><font color = \"blue\">VALUES<\/font>&nbsp;<font color = \"maroon\">(<\/font><font color = \"black\">1<\/font><font color = \"silver\">,<\/font>&nbsp;<font color = \"maroon\">\u2018Ireland\u2019<\/font><font color = \"maroon\">)<\/font><br \/>\n<br \/>\n<\/span><\/div>\n<p>Now, let\u2019s add a new column to this table:<\/p>\n<div><span style=\"font-family: Courier New; font-size: 10pt;\"><br \/>\n<font color = \"blue\">ALTER<\/font>&nbsp;<font color = \"blue\">TABLE<\/font>&nbsp;<font color = \"maroon\">EuropeanCountries<\/font><br \/>\n<br \/><font color = \"blue\">ADD<\/font>&nbsp;<font color = \"maroon\">EuroSupport<\/font>&nbsp;<font color = \"black\"><i>bit<\/i><\/font><br \/>\n<br \/>\n<\/span><\/div>\n<p>Now run the above INSERT statement. You get the following error from SQL Server:<\/p>\n<p>\tServer: Msg 213, Level 16, State 4, Line 1<\/p>\n<p>\tInsert Error: Column name or number of supplied values does not match table definition. <\/p>\n<p>This problem can be avoided by writing an INSERT statement with a column list as shown below:<\/p>\n<div><span style=\"font-family: Courier New; font-size: 10pt;\"><br \/>\n<font color = \"blue\">INSERT<\/font>&nbsp;<font color = \"blue\">INTO<\/font>&nbsp;<font color = \"maroon\">EuropeanCountries<\/font><br \/>\n<br \/><font color = \"maroon\">(<\/font><font color = \"maroon\">CountryID<\/font><font color = \"silver\">,<\/font>&nbsp;<font color = \"maroon\">CountryName<\/font><font color = \"maroon\">)<\/font><br \/>\n<br \/><font color = \"blue\">VALUES<\/font>&nbsp;<font color = \"maroon\">(<\/font><font color = \"black\">1<\/font><font color = \"silver\">,<\/font>&nbsp;<font color = \"maroon\">\u2018England\u2019<\/font><font color = \"maroon\">)<\/font><br \/>\n<br \/>\n<\/span><\/div>\n<h3>\nDon&#8217;t ever use double quotes in your T-SQL code<br \/>\n<\/h3>\n<p>Use single quotes for string constants. If it&#8217;s necessary to qualify an object name, use (non-ANSI SQL standard) brackets around the name, like table name: ORDER DETAILS in this SQL.<\/p>\n<div><span style=\"font-family: Courier New; font-size: 10pt;\"><br \/>\n<font color = \"blue\">SELECT<\/font>&nbsp;<font color = \"maroon\">od<\/font><font color = \"silver\">.<\/font><font color = \"maroon\">[Discount]<\/font><font color = \"silver\">,<\/font><br \/>\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color = \"maroon\">od<\/font><font color = \"silver\">.<\/font><font color = \"maroon\">[Quantity]<\/font><font color = \"silver\">,<\/font><br \/>\n<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color = \"maroon\">od<\/font><font color = \"silver\">.<\/font><font color = \"maroon\">[Unitprice]<\/font><br \/>\n<br \/><font color = \"blue\">FROM<\/font>&nbsp;&nbsp;&nbsp;<font color = \"maroon\">[northwind]<\/font><font color = \"silver\">.<\/font><font color = \"maroon\">[dbo]<\/font><font color = \"silver\">.<\/font><font color = \"maroon\">[ORDER&nbsp;DETAILS]<\/font>&nbsp;<font color = \"blue\">AS<\/font>&nbsp;<font color = \"maroon\">od<\/font><br \/>\n<br \/>\n<\/span><\/div>\n<h3>\nDo not prefix your stored procedure names with \u201csp_\u201d<br \/>\n<\/h3>\n<p>The prefix sp_ is reserved for system stored procedure that ship with SQL Server. Whenever SQL Server encounters a procedure name starting with sp_, it first tries to locate the procedure in the master database, then it looks for any qualifiers (database, owner) provided, then it tries dbo as the owner. <\/p>\n<p>So you can really save time in locating the stored procedure by avoiding the \u201csp_\u201d prefix.<\/p>\n<h3>\nAlways use a SQL formatter to format your sql like <a href=\"http:\/\/www.dpriver.com\/pp\/sqlformat.htm\">Instant SQL Formatter<\/a>(Free and Online)<br \/>\n<\/h3>\n<p>The formatting of SQL code may not seem that important,but consistent formatting makes it easier for others to scan and understand your code. <\/p>\n<p>SQL statements have a structure, and having that structure be visually evident makes it much easier to locate and verify various parts of the statements. <\/p>\n<p>Uniform formatting also makes it much easier to add sections to and remove them from complex T-SQL statements for debugging purposes.<\/p>\n<p><a href=\"http:\/\/www.dpriver.com\/pp\/sqlformat.htm\">Instant SQL Formatter<\/a> is a free online SQL tidy tool that makes your SQL script readable instantly.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here are some SQL programming guidelines and best practices we collected, keeping quality, performance and maintainability in mind. This list is not complete at this moment, and will be constantly updated. Do not use SELECT * in your queries. Always use table aliases when your SQL statement involves more than one source. Use the more readable ANSI-Standard Join clauses instead of the old style joins. Do not use column numbers in the ORDER BY clause. Always use a column list in your INSERT statements. Don&#8217;t ever use double quotes in your T-SQL code. Do not prefix your stored procedure names\u2026<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[19,25],"tags":[],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":5}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>sql coding best practices<\/title>\n<meta name=\"description\" content=\"SQL programming guidelines and best practices, keeping quality, performance and maintainability in mind\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"sql coding best practices\" \/>\n<meta property=\"og:description\" content=\"SQL programming guidelines and best practices, keeping quality, performance and maintainability in mind\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/\" \/>\n<meta property=\"og:site_name\" content=\"SQL and Data Blog\" \/>\n<meta property=\"article:published_time\" content=\"2011-09-28T03:43:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2011-09-29T02:52:27+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#organization\",\"name\":\"SQL and Data Blog\",\"url\":\"https:\/\/www.dpriver.com\/blog\/\",\"sameAs\":[],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/07\/sqlpp-character.png\",\"contentUrl\":\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/07\/sqlpp-character.png\",\"width\":251,\"height\":72,\"caption\":\"SQL and Data Blog\"},\"image\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#website\",\"url\":\"https:\/\/www.dpriver.com\/blog\/\",\"name\":\"SQL and Data Blog\",\"description\":\"SQL related blog for database professional\",\"publisher\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dpriver.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/\",\"url\":\"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/\",\"name\":\"sql coding best practices\",\"isPartOf\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#website\"},\"datePublished\":\"2011-09-28T03:43:52+00:00\",\"dateModified\":\"2011-09-29T02:52:27+00:00\",\"description\":\"SQL programming guidelines and best practices, keeping quality, performance and maintainability in mind\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.dpriver.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A list of SQL best practices\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/fd33d9e572b65788a80dc4bac2b4e5a7\"},\"headline\":\"A list of SQL best practices\",\"datePublished\":\"2011-09-28T03:43:52+00:00\",\"dateModified\":\"2011-09-29T02:52:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/\"},\"wordCount\":973,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#organization\"},\"articleSection\":[\"best practices\",\"sql\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/fd33d9e572b65788a80dc4bac2b4e5a7\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/61d4e409068502b7e4960eb89efb79f8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/61d4e409068502b7e4960eb89efb79f8?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"url\":\"https:\/\/www.dpriver.com\/blog\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"sql coding best practices","description":"SQL programming guidelines and best practices, keeping quality, performance and maintainability in mind","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/","og_locale":"en_US","og_type":"article","og_title":"sql coding best practices","og_description":"SQL programming guidelines and best practices, keeping quality, performance and maintainability in mind","og_url":"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/","og_site_name":"SQL and Data Blog","article_published_time":"2011-09-28T03:43:52+00:00","article_modified_time":"2011-09-29T02:52:27+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/www.dpriver.com\/blog\/#organization","name":"SQL and Data Blog","url":"https:\/\/www.dpriver.com\/blog\/","sameAs":[],"logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/07\/sqlpp-character.png","contentUrl":"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/07\/sqlpp-character.png","width":251,"height":72,"caption":"SQL and Data Blog"},"image":{"@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"WebSite","@id":"https:\/\/www.dpriver.com\/blog\/#website","url":"https:\/\/www.dpriver.com\/blog\/","name":"SQL and Data Blog","description":"SQL related blog for database professional","publisher":{"@id":"https:\/\/www.dpriver.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dpriver.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/","url":"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/","name":"sql coding best practices","isPartOf":{"@id":"https:\/\/www.dpriver.com\/blog\/#website"},"datePublished":"2011-09-28T03:43:52+00:00","dateModified":"2011-09-29T02:52:27+00:00","description":"SQL programming guidelines and best practices, keeping quality, performance and maintainability in mind","breadcrumb":{"@id":"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dpriver.com\/blog\/"},{"@type":"ListItem","position":2,"name":"A list of SQL best practices"}]},{"@type":"Article","@id":"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/#article","isPartOf":{"@id":"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/"},"author":{"name":"admin","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/fd33d9e572b65788a80dc4bac2b4e5a7"},"headline":"A list of SQL best practices","datePublished":"2011-09-28T03:43:52+00:00","dateModified":"2011-09-29T02:52:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/"},"wordCount":973,"commentCount":0,"publisher":{"@id":"https:\/\/www.dpriver.com\/blog\/#organization"},"articleSection":["best practices","sql"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dpriver.com\/blog\/a-list-of-sql-best-practices\/#respond"]}]},{"@type":"Person","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/fd33d9e572b65788a80dc4bac2b4e5a7","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/61d4e409068502b7e4960eb89efb79f8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/61d4e409068502b7e4960eb89efb79f8?s=96&d=mm&r=g","caption":"admin"},"url":"https:\/\/www.dpriver.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts\/1119"}],"collection":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/comments?post=1119"}],"version-history":[{"count":35,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts\/1119\/revisions"}],"predecessor-version":[{"id":1161,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts\/1119\/revisions\/1161"}],"wp:attachment":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/media?parent=1119"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/categories?post=1119"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/tags?post=1119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}