Chapter 5 – The Basics of SQL

“As I would not be a slave, so I would not be a master.”

- Abraham Lincoln

Introduction

image

The Student_Table above will be used
in our early SQL Examples

This is a pictorial of the Student_Table which we will use to present some basic examples of SQL and get some hands-on experience with querying this table. This book attempts to show you the table, show you the query and show you the result set.

Setting your Path

image

The example above shows you how to set your path to include a database where your tables can be queried directly.

Setting Your Default Database

image

Vertica allows you to set your default database. Above, we have set our default database to SQL_Class. If we run a query without specifying the database, then Vertica will assume the database is SQL_Class.

SELECT * (All Columns) in a Table

image

Most every SQL statement will consist of a SELECT and a FROM. You SELECT the columns you want to see on your report and an Asterisk (*) means you want to see all columns in the table on the returning answer set!

Fully Qualifying a Database, Schema and Table

image

To refer to objects in other databases on Vertica, you must use three-level naming, which consists of the database, the schema (which is the name of the database owner) and the object (table or view etc.). The last example (SQL_Class..Dept) is a convenient way of specifying a fully qualified object name. The system supplies the schema name by internally inserting the current schema name.

SELECT Specific Columns in a Table

SELECT  First_Name

,Last_Name

,Class_Code

,Grade_Pt

FROM     Student_Table ;

image

This is a great way to show the columns you are selecting from the Table_Name.

Commas in the Front or Back?

image

Why is the example on the left better even though they are functionally equivalent? Errors are easier to spot and comments won't cause errors.

Place your Commas in front for better Debugging Capabilities

image

"A life filled with love may have some thorns,
but a life empty of love will have no roses."

Anonymous

Having commas in front to separate column names makes it easier to debug. Remember our quote above. "A query filled with commas at the end just might fill you with thorns, but a query filled with commas in the front will allow you to always come up smelling like roses."

Sort the Data with the ORDER BY Keyword

image

Rows typically come back to the report in random order. To order the result set, you must use an ORDER BY. When you order by a column, it will order in ASCENDING order. This is called the Major Sort!

ORDER BY Defaults to Ascending

image

Rows typically come back to the report in random order, but we decided to use the ORDER BY statement. Now, the data comes back ordered by Last_Name.

Use the Name or the Number in your ORDER BY Statement

image

The ORDER BY can use a number to represent the sort column. The number 2 represents the second column on the report.

Two Examples of ORDER BY using Different Techniques

image

Notice that the answer set is sorted in ascending order based on the column Grade_Pt. Also, notice that Grade_Pt is the fifth column coming back on the report. That is why the SQL in both statements is ordering by Grade_Pt. Did you notice that the null value came back first? Nulls sort first in ascending order and last in descending order.

Changing the ORDER BY to Descending Order

image

Notice that the answer set is sorted in descending order based on the column Last_Name. Also, notice that Last_Name is the second column coming back on the report. We could have done an Order By 2. If you spell out the word DESCENDING the query will fail, so you must remember to just use DESC.

NULL Values sort First in Ascending Mode (Default)

image

Did you notice that the null value came back first? Nulls sort first in ascending order and last in descending order.

NULL Values sort Last in Descending Mode (DESC)

image

You can ORDER BY in descending order by putting a DESC after the column name or its corresponding number. Null Values will sort Last in DESC order.

Major Sort vs. Minor Sorts

image

Major sort is the first sort. There can only be one major sort. A minor sort kicks in if there are Major Sort ties. There can be zero or more minor sorts.

Multiple Sort Keys using Names vs. Numbers

image

In the example above, the Dept_No is the major sort and we have two minor sorts. The minor sorts are on the Salary and the Last_Name columns. Both Queries above have an equivalent Order by statement and sort exactly the same.

Sorts are Alphabetical, NOT Logical

SELECT * FROM Student_Table

ORDER BY Class_Code ;

image

This sorts alphabetically. Can you change the sort so the Freshman come first, followed by the Sophomores, Juniors, Seniors and then the Null?

Can you change the query to Order BY Class_Code logically (FR, SO, JR, SR, ?)?

Using A CASE Statement to Sort Logically

image

This is the way the pros do it.

How to ALIAS a Column Name

image

When you ALIAS a column, you give it a new name for the report header. You should always reference the column using the ALIAS everywhere else in the query. You never need Double Quotes in SQL unless you are Aliasing.

A Missing Comma can by Mistake become an Alias

image

Column names must be separated by commas. Notice in this example, there is a comma missing between Class_Code and Grade_Pt. What this will result in is only three columns appearing on your report with one being aliased wrong.

Aliasing a Column Name with Spaces or Reserved Words

image

When you ALIAS a column, you give it a new name for the report header. If your alias is a reserved word or has a space in it you can still use it, but you must use either double quotes or single quotes.

Comments using Double Dashes are Single Line Comments

image

Double dashes make a single line comment that will be ignored by the system.

Comments for Multi-Lines

image

Slash Asterisk starts a multi-line comment and Asterisk Slash ends the comment.

Comments for Multi-Lines as Double Dashes per Line

image

Double Dashes in front of both lines comments both lines out and they’re ignored.

Formatting Number

9 - Value with the specified number of digits

0 - Value with leading zeros

. (period) - Decimal point

, (comma) - Group (thousand) separator

PR - Negative value in angle brackets

S - Sign anchored to number (uses locale)

L - Currency symbol (uses locale)

D - Decimal point (uses locale)

G - Group separator (uses locale)

MI - Minus sign in specified position (if number < 0)

PL - Plus sign in specified position (if number > 0)

SG - Plus/minus sign in specified position

RN - Roman numeral (input between 1 and 3999)

TH or th - Ordinal number suffix

V - Shift specified number of digits (see notes)

Vertica gives you many options for formatting numbers. The next page will show an example.

Formatting Number Examples

SELECT

Salary

,TO_CHAR(Salary , 'L999,999.99') AS Dollarsign

,TO_CHAR(Salary , 'SL999999') AS Anchored

,TO_CHAR(Salary , '0000000') AS LeadingZ

,TO_CHAR(Salary , '99999999999.99') AS Float9

,TO_CHAR(Salary , '999,999,999.99') AS Commas

FROM        Employee_Table

WHERE Dept_No = 200 ;

image

Above you can see an example of formatted numbers using the TO_CHAR command.

Formatting Dates

image

Vertica gives you many options for formatting dates. The next page will show an example.

Formatting Date Example

SELECT Order_Date

,TO_CHAR(Order_Date , 'YY-MM-DD') AS YMD

,TO_CHAR(Order_Date , 'MON, DD, YYYY') AS Month

,TO_CHAR(Order_Date , 'D, Mon DD, YY') AS DayofWeek

,Current_Time as Time

,TO_CHAR(Current_Time , 'HH24:MI:SS:MS') AS Micro

FROM        Order_Table

WHERE EXTRACT(Year from Order_Date) = 1998 ;

image

Above you can see an example of formatted dates using the TO_CHAR command.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset