{"id":90162,"date":"2021-03-01T14:33:07","date_gmt":"2021-03-01T14:33:07","guid":{"rendered":"https:\/\/www.red-gate.com\/simple-talk\/?p=90162"},"modified":"2021-03-01T14:33:07","modified_gmt":"2021-03-01T14:33:07","slug":"how-can-sql-server-developers-get-started-with-postgre-sql","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/blogs\/how-can-sql-server-developers-get-started-with-postgre-sql\/","title":{"rendered":"HOW CAN SQL SERVER DEVELOPERS GET STARTED WITH POSTGRE SQL?"},"content":{"rendered":"<p><strong>WHAT IS SQL SERVER?<\/strong><\/p>\n<p>SQL server is a relational database management system. It is offered by Microsoft and is one of the most popular relational database management systems which are being utilized by several companies for their database requirements. There are numerous USPs of Microsoft SQL Server which makes it a popular choice. Some of them include: online analytical processing, data mining, interactive GUI and database performance enhancers and analyzers.<\/p>\n<p><strong>WHAT IS POSTGRE SQL?<\/strong><\/p>\n<p>PostgreSQL on the other hand is not offered by one specific company but is rather an open-source tool. When a piece of technology falls into the open-source category, it suggests that the code is being read and reviewed by numerous developers around the world. The worldwide developer community is capable of making significant contributions to the open-source projects which automatically increases the chances of quick bug fixes and more enhancements. PostgreSQL is extremely popular in terms of open-source relational database management systems. Developers are attracted to PostgreSQL because there is no fee to use PostgreSQL in its full capacity, it can be integrated with several other languages like C++ and Java and performs all the functionalities that are offered by any paid modern relational database management system.<\/p>\n<p><strong>WHAT CHANGES CAN YOU EXPECT WITH THE GUI?<\/strong><\/p>\n<p>In SQL server, the views and schemas are displayed in the <strong><em>Microsoft SQL Server Management Studio<\/em><\/strong> where the developer is able to see the connections between the relations, observe the structure of the table, write queries and see the output of those queries. In addition to this, SQL Server developers are also used to proper indenting and colored syntax highlighting while running their SQL queries in the studio, getting readymade templates for basic SQL functionalities and statistics regarding the time and the resources utilized when their queries are run.<\/p>\n<p>On the other hand, in PostgreSQL, the views and schemas are displayed in the <strong><em>Data Architect <\/em><\/strong>which is the GUI offered by PostgreSQL for developers to visualize the structure and relationship of the entities and relations in their database. The number of tools available in Data Architect might overwhelm a SQL Server developer first but since the basic structure \u2013 visualization of schema, query running console, query output window etc. is similar, it won\u2019t be long when the developer starts getting comfortable with PostgreSQL\u2019s GUI.<\/p>\n<p><strong>WHAT VARIATIONS WILL YOU OBSERVE WITH COMMAND LINE UTILITIES?<\/strong><\/p>\n<p>For SQL Server developers <strong><em>sqlcmd<\/em><\/strong> utility is no brainer. Similarly, in PostgreSQL <strong>psql<\/strong> is the command line utility. Below mentioned are few examples and commands which the developer can perform in PostgreSQL using the psql utility:<\/p>\n<ol>\n<li>Variable Substitutions\n<ol>\n<li>Set a variable: <br \/>\n<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"600\" class=\"wp-image-90163\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-138.png\" \/><\/li>\n<li>Create a list of variables: <br \/>\n<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"600\" class=\"wp-image-90164\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-139.png\" \/><\/li>\n<li>Using the defined variables as data to be inserted in the table:<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"600\" class=\"wp-image-90165\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-140.png\" \/><\/p>\n<ol>\n<li>SQL Interpolation<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"600\" class=\"wp-image-90166\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/word-image-141.png\" \/><\/p>\n<p><strong>WHAT CHANGES YOU SHOULD EXPECT IN THE SYNTAX OF SQL QUERIES? <\/strong><\/p>\n<p>Microsoft SQL Server utilises T-SQL or Transact SQL. T-SQL has all the features and functionalities of a language required for managing databases. It contains DDL, DML, user defined variables, functions and procedures. However, developers are also used to using several relational operators and table expressions while using the SQL Server. PostgreSQL supports all the basic functionalities of entry-level SQL. It was PostgreSQL which contributed in the development of several object-relational features. While PostgreSQL does not have inbuilt OLAP features, being open source, it can easily be connected with external OLAP offering servers.<\/p>\n<p><strong>WHAT VARIATIONS WILL YOU OBSERVE FROM SQL SERVER TO POSTGRESQL TAKING DATATYPES INTO CONSIDERATION? <\/strong><\/p>\n<p>SQL Server supports the following datatypes:<\/p>\n<ol>\n<li>Basic Datatypes: character, binary string, text, images.<\/li>\n<li>XML Type: This is used to store XML data.<\/li>\n<li>Sql_variant Type: It contains information about SQL scalar types with filter, join and sort functionalities being offered for columns which are of sql_variant datatypes.<\/li>\n<li>Table Type: This is a type which cannot be assigned to a column. This can only be assigned to variables which are being used in the structure. While creating functions and procedures, it is not advisable to use the table directly and hence a table type variable is used for performing various tasks related to a function or a procedure.<\/li>\n<li>Cursor Type: Cursor Type, like Table Type is a datatype which cannot be assigned to columns and can only be assigned to variables. It is used to refer to cursor objects.<\/li>\n<\/ol>\n<p>On the other hand, you will observe some more advanced (or different) data types when you are starting with PostgreSQL. Make sure you have familiarized yourself with the use cases of these data types to work with them smoothy.<\/p>\n<ol>\n<li>Base Types: These are abstract data types which include basic data types like int, complex etc.<\/li>\n<li>Composite Types: These datatypes are created automatically by PostgreSQL whenever a new table is created. It contains information about the rows of the table. They can be declared by the developer as well.<\/li>\n<li>Domains: Domains are another kind of base types.<\/li>\n<li>Pseudo Types: Pseudo types are data types which cannot be assigned to a column. They can be used either as arguments or function return types.<\/li>\n<li>Polymorphic Types: <em>anyelement<\/em> and <em>anyarray<\/em> are two pseudo types which are known as polymorphic types.<\/li>\n<li>Geometric Data Type: This datatype is used to represent 2D shapes on which different in-built geometric functions can be performed.<\/li>\n<li>Storage of network addresses: PostgreSQL also offers a datatype wherein network addresses can be stored. Pretty handy if you are making an application which requires geo-tracking and geolocation services and also has support to perform operations on these addresses.<\/li>\n<li>Bit type: For storage of data in binary and perform operations on it.<\/li>\n<\/ol>\n<p><strong>TABULAR COMPARISON BETWEEN THE SYNTAX AND FEATURES OF POSTGRE SQL AND MS SQL SERVER FOR REFERENCE<\/strong><\/p>\n<p>Given below are some common parameters which have been used to draw a comparison between the structural query languages used by both PostgreSQL and MS SQL Server. The rows highlighted in green indicate that there is no difference between the SQL syntax of PostgreSQL and MS SQL Server.<\/p>\n<table border=\"1\">\n<tbody>\n<tr bgcolor=\"#FBE4D5\">\n<td>\n<p><strong>Parameter<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>PostgreSQL<\/strong><\/p>\n<\/td>\n<td>\n<p><strong>MS SQL Server<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">\n<p>NATURAL JOIN<\/p>\n<\/td>\n<td>\n<p>select firstname from scientist natural left join not_scientist;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-90193\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/Image15.png\" alt=\"\" width=\"221\" height=\"88\" \/><\/p>\n<\/td>\n<td>\n<p>No support.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">\n<p>USING keyword<\/p>\n<\/td>\n<td>\n<p>select * from scientist inner join not_scientist using(id);<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-90200\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image2.png\" alt=\"\" width=\"268\" height=\"67\" \/><\/p>\n<\/td>\n<td>\n<p>No support.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">\n<p>FULL JOIN<\/p>\n<\/td>\n<td>\n<p>select * from scientist full join not_scientist on scientist.id = not_scientist.id;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-90201\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image3.png\" alt=\"\" width=\"262\" height=\"61\" \/><\/p>\n<\/td>\n<td>\n<p>select firstname from scientist full outer join not_scientist on scientist.id=not_scientist.id;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-90202\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image4.png\" alt=\"\" width=\"172\" height=\"68\" \/><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">\n<p>CROSS JOIN \/ CARTESIAN PRODUCT<\/p>\n<\/td>\n<td bgcolor=\"#C5E0B3\">\n<p>select * from scientist cross join not_scientist;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-90203\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image5.png\" alt=\"\" width=\"260\" height=\"125\" \/><\/p>\n<\/td>\n<td bgcolor=\"#C5E0B3\">\n<p>SELECT item_name FROM items CROSS JOIN market;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">\n<p>COPY TABLE<\/p>\n<\/td>\n<td>\n<p>create table copycat_scientist as select * from scientist where false;<\/p>\n<p>insert into copycat_scientist (id, firstname, lastname) values (1, &#8216;albert&#8217;, &#8216;einstein&#8217;);<\/p>\n<p>insert into copycat_scientist (id, firstname, lastname) values (2, &#8216;isaac&#8217;, &#8216;newton&#8217;);<\/p>\n<p>insert into copycat_scientist (id, firstname, lastname) values (3, &#8216;marie&#8217;, &#8216;curie&#8217;);<\/p>\n<p>select * from copycat_scientist;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-90204\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image6.png\" alt=\"\" width=\"211\" height=\"86\" \/><\/p>\n<\/td>\n<td>\n<p>select * into copy_scientist from scientist where 1&lt;&gt;1;<\/p>\n<p>insert into copy_scientist (id, firstname, lastname) values (1, &#8216;albert&#8217;, &#8216;einstein&#8217;);<\/p>\n<p>insert into copy_scientist (id, firstname, lastname) values (2, &#8216;isaac&#8217;, &#8216;newton&#8217;);<\/p>\n<p>insert into copy_scientist (id, firstname, lastname) values (3, &#8216;marie&#8217;, &#8216;curie&#8217;);<\/p>\n<p>select * from copy_scientist;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-90205\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image7.png\" alt=\"\" width=\"169\" height=\"80\" \/><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">\n<p>ORDERING OUTPUT<\/p>\n<\/td>\n<td bgcolor=\"#C5E0B3\">\n<p>select firstname from scientist order by firstname;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-90206\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image8.png\" alt=\"\" width=\"133\" height=\"89\" \/><\/p>\n<\/td>\n<td bgcolor=\"#C5E0B3\">\n<p>select firstname from not_scientist order by firstname;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-90207\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image9.png\" alt=\"\" width=\"146\" height=\"122\" \/><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">\n<p>LIMIT<\/p>\n<\/td>\n<td>\n<p>select firstname from scientist order by firstname limit 2;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-90208\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image10.png\" alt=\"\" width=\"134\" height=\"80\" \/><\/p>\n<\/td>\n<td>\n<p>SELECT TOP 5 item_name FROM items ORDER BY item_id ASC;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-90209\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image11.png\" alt=\"\" width=\"99\" height=\"69\" \/><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">\n<p>INSERT<\/p>\n<\/td>\n<td bgcolor=\"#C5E0B3\">\n<p>insert into not_scientist (id, firstname, lastname) values (3, &#8216;marie&#8217;, &#8216;curie&#8217;);<\/p>\n<p>&nbsp;<\/p>\n<\/td>\n<td bgcolor=\"#C5E0B3\">\n<p>insert into not_scientist (id, firstname, lastname) values (3, &#8216;marie&#8217;, &#8216;curie&#8217;);<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">\n<p>BOOLEAN DATATYPE<\/p>\n<\/td>\n<td bgcolor=\"#C5E0B3\">\n<p>Supports.<\/p>\n<\/td>\n<td bgcolor=\"#C5E0B3\">\n<p>Supports as BIT Datatype<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">\n<p>CHAR DATATYPE<\/p>\n<\/td>\n<td bgcolor=\"#C5E0B3\">\n<p>Supports.<\/p>\n<\/td>\n<td bgcolor=\"#C5E0B3\">\n<p>Supports.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">\n<p>TIMESTAMP<\/p>\n<\/td>\n<td>\n<p>Supports.<\/p>\n<\/td>\n<td>\n<p>Supports but not exactly timestamp, it supports datetime.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">\n<p>CHARACTER_LENGTH FUNCTION<\/p>\n<\/td>\n<td>\n<p>select char_length(&#8216;albert&#8217;);<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-90190\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image12.png\" alt=\"\" width=\"176\" height=\"74\" \/><\/p>\n<\/td>\n<td>\n<p>Does not support character length. <br \/>\nInstead: <br \/>\nLen(\u2018Dior\u2019) and DATALENGTH(\u2018Dior\u2019s Handbag\u2019) are used.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">\n<p>SUBSTRING<\/p>\n<\/td>\n<td>\n<p>select substring(&#8216;the horse and the grass and the stable&#8217; from 10 for 20);<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-90191\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image13.png\" alt=\"\" width=\"205\" height=\"54\" \/><\/p>\n<\/td>\n<td>\n<p>select substring(&#8216;the horse and the grass and the stable&#8217;, 0, 10);<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-90192\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image14.png\" alt=\"\" width=\"156\" height=\"60\" \/><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">\n<p>REPLACE<\/p>\n<\/td>\n<td bgcolor=\"#C5E0B3\">\n<p>update scientist set firstname = replace(firstname,&#8217;albert&#8217;,&#8217;not_albert&#8217;);<\/p>\n<p>select * from scientist;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-90193\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/Image15.png\" alt=\"\" width=\"221\" height=\"88\" \/><\/p>\n<\/td>\n<td bgcolor=\"#C5E0B3\">\n<p>select REPLACE(&#8216;Merry Christmas&#8217;,&#8217;rr&#8217;,&#8217;bb&#8217;);<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-90194\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image16.png\" alt=\"\" width=\"174\" height=\"68\" \/><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">\n<p>TRIM<\/p>\n<\/td>\n<td>\n<p>select trim(trailing &#8216;y&#8217; from &#8216;monkey&#8217;);<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-90195\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image17.png\" alt=\"\" width=\"137\" height=\"76\" \/><\/p>\n<\/td>\n<td>\n<p>select LTRIM(&#8216; Merry&#8217;);<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-90196\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image18.png\" alt=\"\" width=\"164\" height=\"59\" \/><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">CONCATENATION<\/td>\n<td>\n<p>select concat(&#8216;goofy&#8217;,&#8217; &#8216;,&#8217;monkey&#8217;);<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-90197\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image19.png\" alt=\"\" width=\"157\" height=\"62\" \/><\/p>\n<\/td>\n<td>\n<p>select concat(&#8216;The Goofy&#8217;, &#8216;Monkey&#8217;) as nickname;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-90198\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2021\/02\/image20.png\" alt=\"\" width=\"143\" height=\"59\" \/><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">\n<p>UNIQUE CONSTRAINT<\/p>\n<\/td>\n<td>\n<p>CREATE TABLE nicknames ( nickname_no integer UNIQUE,<\/p>\n<p>Nickname text<\/p>\n<p>);<\/p>\n<\/td>\n<td>\n<p>CREATE TABLE nicknames ( nickname_no INT UNIQUE,<\/p>\n<p>Nickname VARCHAR(50)<\/p>\n<p>);<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td bgcolor=\"#FBE4D5\">\n<p>TRUNCATE TABLE<\/p>\n<\/td>\n<td>\n<p>TRUNCATE nicknames;<\/p>\n<\/td>\n<td>\n<p>TRUNCATE TABLE nicknames;<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>CONCLUSION<\/strong><\/p>\n<p>As a MS SQL Server developer, you already understand the intricacies of databases, relational databases, database management systems and their use cases. The only milestone you have to achieve now is to get familiarized with the GUI of PostgreSQL and practice the commands a bit. Start with a blank slate in your mind keeping in consideration the syntax of the language and since you already are well versed with the conceptual aspect of SQL and RDBMS, you will be able to draw an analogy between both the tools and hence, you will start using PostgreSQL for your applications in no time!<\/p>\n<p>Here are some resources for you to kickstart your journey in learning PostgreSQL:<\/p>\n<ol>\n<li><strong>\u201cThe Complete Python\/PostgreSQL Course 2.0 by Codestars by Rob Percival, Jose Salvatierra, Teclado by Jose Salvatierra available at Udemy\u201d<\/strong> <br \/>\nDescription: This course will not only walk you through the syntax of PostgreSQL but also guide you in creating 9 real-world projects. <br \/>\nLanguage: English <br \/>\nLink: <a href=\"https:\/\/www.udemy.com\/course\/complete-python-postgresql-database-course\/?altsc=781502\">https:\/\/www.udemy.com\/course\/complete-python-postgresql-database-course\/?altsc=781502<\/a><\/li>\n<li><strong>\u201cPostgreSQL by FreeCodeCamp\u201d<br \/>\n<\/strong> Description: FreeCodeCamp is well known for their free and amazingly curated content. This course is a 4 hour, no break, no Ad course which will take you from the basics to advanced with tonnes of examples and practice queries. <br \/>\nLanguage: English <br \/>\nLink: <a href=\"https:\/\/www.youtube.com\/watch?reload=9&amp;v=qw--VYLpxG4\">https:\/\/www.youtube.com\/watch?reload=9&amp;v=qw&#8211;VYLpxG4<\/a><\/li>\n<li><strong>\u201cPostgreSQL: Advanced SQL Queries by Pinal Dave Available at PluralSight\u201d<\/strong> <br \/>\nDescription: This course contains advanced concepts of PostgreSQL, perfectly suitable for a developer well versed in MS SQL Server. <br \/>\nLanguage: English <br \/>\nLink: <a href=\"https:\/\/www.pluralsight.com\/courses\/postgresql-advanced-sql-queries?clickid=WsGxLk1WsxyLW7fwUx0Mo3QBUkEUMJy9%3AWyb1s0&amp;irgwc=1&amp;mpid=1193463&amp;aid=7010a000001xAKZAA2&amp;utm_medium=digital_affiliate&amp;utm_campaign=1193463&amp;utm_source=impactradius\">https:\/\/www.pluralsight.com\/courses\/postgresql-advanced-sql-queries?clickid=WsGxLk1WsxyLW7fwUx0Mo3QBUkEUMJy9%3AWyb1s0&amp;irgwc=1&amp;mpid=1193463&amp;aid=7010a000001xAKZAA2&amp;utm_medium=digital_affiliate&amp;utm_campaign=1193463&amp;utm_source=impactradius<\/a><\/li>\n<li><strong>PostgreSQL Tutorial<br \/>\n<\/strong> This is an online bible for the explanation of all the commands, concepts and queries. <br \/>\nHere is the link: <a href=\"https:\/\/www.postgresqltutorial.com\/\">https:\/\/www.postgresqltutorial.com\/<\/a><\/li>\n<li><strong>Books<\/strong>\n<ol>\n<li>Practical PostgreSQL by O\u2019Reilly<\/li>\n<li>PostgreSQL Up and Running by O\u2019Reilly<\/li>\n<li>Mastering PostgreSQL 12: Advanced Techniques to Build and Administer Scalable and Reliable PostgreSQL Database Applications, 3rd Edition<\/li>\n<\/ol>\n<\/li>\n<li><strong>Official Documentation of PostgreSQL <br \/>\n<\/strong> There is nothing better than the official documentation to learn about a new piece of technology. It can be hard to go through sometimes, but one thing that is certain is that you will get all the information you need under one hood. <br \/>\nLink: <a href=\"https:\/\/www.postgresql.org\/docs\/\">https:\/\/www.postgresql.org\/docs\/<\/a><\/li>\n<\/ol>\n<p>Happy Learning!<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WHAT IS SQL SERVER? SQL server is a relational database management system. It is offered by Microsoft and is one of the most popular relational database management systems which are being utilized by several companies for their database requirements. There are numerous USPs of Microsoft SQL Server which makes it a popular choice. Some of&#8230;&hellip;<\/p>\n","protected":false},"author":332829,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2],"tags":[],"coauthors":[136362],"class_list":["post-90162","post","type-post","status-publish","format-standard","hentry","category-blogs"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/90162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/332829"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=90162"}],"version-history":[{"count":5,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/90162\/revisions"}],"predecessor-version":[{"id":90214,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/90162\/revisions\/90214"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=90162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=90162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=90162"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=90162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}