w3resource

SQL SELECT statement

SELECT statement

SQL Select statement tells the database to fetch information from a table.

A query or SELECT statement is a command which gives instructions to a database to produce certain information(s) from the table in its memory.

The SELECT command starts with the keyword SELECT followed by a space and a list of comma separated columns. A * character can be used to select all the columns of a table.

The table name comes after the FROM keyword and a white-space.

Syntax:

SELECT *|{[DISTINCT] column|expression [alias]...}
FROM <table_name>;

Parameters:

Name Description
* Specifies all the columns of a table.
table_name Name of the table.
column Column names.

SQL select all columns

To retrieve all the columns from a table, * character is used with SQL SELECT statement.

Example:

The following query displays all the columns of agents table:

Sample table: agents


SQL Code:


SELECT * FROM agents;

Explanation:

  • SELECT *: This command retrieves all columns from the specified table.

  • FROM agents: This specifies the table from which to retrieve the data, in this case, the table named "agents".

To achieve the same result, you can use the following statement :

SQL Code:


SELECT agent_code, agent_name, working_area, commission, phone_no
-- Select specific columns: agent_code, agent_name, working_area, commission, phone_no
FROM agents;
-- From the table 'agents'

Explanation:

  • SELECT agent_code, agent_name, working_area, commission, phone_no: This line specifies the columns that you want to retrieve data from. It selects the columns 'agent_code', 'agent_name', 'working_area', 'commission', and 'phone_no'.

  • FROM agents: This line specifies the table from which you want to retrieve data. In this case, it's the 'agents' table.

Relational Algebra Expression:

Relational Algebra Expression: SQL select all columns.

Relational Algebra Tree:

Relational Algebra Tree: SQL select all columns.

Output:

AGENT_CODE AGENT_NAME                     WORKING_AREA          COMMISSION PHONE_NO
---------- ------------------------------ --------------------- ---------- -------------
A003       Alex                           London                       .13 075-12458969
A001       Subbarao                       Bangalore                    .14 077-12346674
A009       Benjamin                       Hampshair                    .11 008-22536178
A007       Ramasundar                     Bangalore                    .15 077-25814763
A008       Alford                         New York                     .12 044-25874365
A011       Ravi Kumar                     Bangalore                    .15 077-45625874
A010       Santakumar                     Chennai                      .14 007-22388644
A012       Lucida                         San Jose                     .12 044-52981425
A005       Anderson                       Brisban                      .13 045-21447739
A002       Mukesh                         Mumbai                       .11 029-12358964
A006       McDen                          London                       .15 078-22255588
A004       Ivan                           Torento                      .15 008-22544166

SQL SELECT: specific columns

The SELECT command can be used to fetch specific column(s) from a table.

Example:

To get all values of agent_name, working_area and commission columns from the agents table, the following SQL statement can be used :

Sample table: agents


SQL Code:


SELECT agent_name, working_area, commission
-- Select specific columns: agent_name, working_area, commission
FROM agents;
-- From the table 'agents'

Explanation:

  • SELECT agent_name, working_area, commission: This line specifies the columns that you want to retrieve data from. It selects the columns 'agent_name', 'working_area', and 'commission'.

  • FROM agents: This line specifies the table from which you want to retrieve data. In this case, it's the 'agents' table.

Relational Algebra Expression:

Relational Algebra Expression: SQL SELECT: specific columns.

Relational Algebra Tree:

Relational Algebra Tree: SQL SELECT: specific columns.

Output:

AGENT_NAME                               WORKING_AREA                        COMMISSION
---------------------------------------- ----------------------------------- ----------
Alex                                     London                                     .13
Subbarao                                 Bangalore                                  .14
Benjamin                                 Hampshair                                  .11
Ramasundar                               Bangalore                                  .15
Alford                                   New York                                   .12
Ravi Kumar                               Bangalore                                  .15
Santakumar                               Chennai                                    .14
Lucida                                   San Jose                                   .12
Anderson                                 Brisban                                    .13
Mukesh                                   Mumbai                                     .11
McDen                                    London                                     .15
Ivan                                     Torento                                    .15

SQL SELECT : Using Arithmetic Operators (+, -, *, /) with Employee Salary Calculation

Within SELECT statement you can create an expression with number and field value using arithmetic operators. Here is an example with output:


SQL Code:


SELECT first_name, last_name, salary, (12*salary + 400)
-- Select specific columns: first_name, last_name, salary, and a calculated expression (12*salary + 400)
FROM employees;
-- From the table 'employees'

Explanation:

  • SELECT first_name, last_name, salary, (12*salary + 400): This line specifies the columns that you want to retrieve data from. It selects the columns 'first_name', 'last_name', and 'salary' directly from the 'employees' table. Additionally, it calculates a new value using the expression (12*salary + 400). This expression multiplies the 'salary' by 12, adds 400 to the result, and returns the final value.

  • FROM employees: This line specifies the table from which you want to retrieve data. In this case, it's the 'employees' table.

Relational Algebra Expression:

Relational Algebra Expression: SQL SELECT Using Arithmetic Operators (+, -, *, /).

Relational Algebra Tree:

Relational Algebra Tree: SQL SELECT Using Arithmetic Operators (+, -, *, /).

Output:

FIRST_NAME           LAST_NAME                     SALARY (12*SALARY+400)
-------------------- ------------------------- ---------- ---------------
Steven               King                           24000          288400
Neena                Kochhar                        17000          204400
Lex                  De Haan                        17000          204400
Alexander            Hunold                          9000          108400
Bruce                Ernst                           6000           72400
David                Austin                          4800           58000
Valli                Pataballa                       4800           58000
Diana                Lorentz                         4200           50800
Nancy                Greenberg                      12008          144496
Daniel               Faviet                          9000          108400
John                 Chen                            8200           98800
Ismael               Sciarra                         7700           92800
..................................................

SQL SELECT: Using Column Aliases for Employee Details Retrieval

- To renames a column heading temporarily for a particular SQL query you can use column aliases.
- There can be an optional AS keyword between the column name and alias
- It requires double quotation marks if the column name string contains spaces or special characters or if it is case sensitive.

See the following examples using AS keyword and without AS Keyword.


SQL Code:


SELECT first_name AS "First Name", last_name AS "Last Name", salary AS "Salary"
-- Select specific columns: first_name, last_name, salary, with aliases for column names
FROM employees;
-- From the table 'employees'

Explanation:

  • SELECT first_name AS "First Name", last_name AS "Last Name", salary AS "Salary": This line specifies the columns that you want to retrieve data from. It selects the columns 'first_name', 'last_name', and 'salary' from the 'employees' table. Additionally, it uses the AS keyword to provide aliases for the column names. The aliases are "First Name" for 'first_name', "Last Name" for 'last_name', and "Salary" for 'salary'.

  • FROM employees: This line specifies the table from which you want to retrieve data. In this case, it's the 'employees' table.

Output:

First Name           Last Name                     Salary
-------------------- ------------------------- ----------
Steven               King                           24000
Neena                Kochhar                        17000
Lex                  De Haan                        17000
Alexander            Hunold                          9000
Bruce                Ernst                           6000
David                Austin                          4800
Valli                Pataballa                       4800
Diana                Lorentz                         4200
Nancy                Greenberg                      12008
Daniel               Faviet                          9000
John                 Chen                            8200
Ismael               Sciarra                         7700
Jose Manuel          Urman                           7800
Luis                 Popp                            6900
Den                  Raphaely                       11000
Alexander            Khoo                            3100
Shelli               Baida                           2900
Sigal                Tobias                          2800
...................................

SQL Code:


SELECT first_name "First Name", last_name "Last Name", salary "Salary"
-- Select specific columns: first_name, last_name, salary, without using the AS keyword for aliases
FROM employees;
-- From the table 'employees'

Explanation:

  • SELECT first_name "First Name", last_name "Last Name", salary "Salary": This line specifies the columns that you want to retrieve data from. It selects the columns 'first_name', 'last_name', and 'salary' from the 'employees' table. Additionally, it uses double quotes to provide aliases for the column names. The aliases are "First Name" for 'first_name', "Last Name" for 'last_name', and "Salary" for 'salary'.

  • FROM employees: This line specifies the table from which you want to retrieve data. In this case, it's the 'employees' table.

Output:

First Name           Last Name                     Salary
-------------------- ------------------------- ----------
Steven               King                           24000
Neena                Kochhar                        17000
Lex                  De Haan                        17000
Alexander            Hunold                          9000
Bruce                Ernst                           6000
David                Austin                          4800
Valli                Pataballa                       4800
Diana                Lorentz                         4200
Nancy                Greenberg                      12008
Daniel               Faviet                          9000
John                 Chen                            8200
Ismael               Sciarra                         7700
Jose Manuel          Urman                           7800
Luis                 Popp                            6900
Den                  Raphaely                       11000
Alexander            Khoo                            3100
Shelli               Baida                           2900
Sigal                Tobias                          2800
Guy                  Himuro                          2600
...........................................

SQL SELECT statement with NULL values

Before storing a value in any field of a table, a NULL value can be stored; later that NULL value can be replaced with the desired value. When a field value is NULL it means that the database assigned nothing (not even a zero "0" or blank " " ), in that field for that row.

Since the NULL represents an unknown or inapplicable value, it can’t be compared using the AND / OR logical operators. The special operator ‘IS’ is used with the keyword ‘NULL’ to locate ‘NULL’ values. NULL can be assigned to both types of fields i.e. numeric or character type.

Example:

Sample table: foods


To get data of all columns from the foods table with the following condition -

1. company_id column must contain NULL value,

the following SQL statement can be used:

SQL Code:


SELECT * FROM foods
-- Select all columns
WHERE company_id IS NULL;
-- Filter the results to only include rows where the company_id is NULL

Explanation:

  • SELECT * FROM foods: This line specifies the columns that you want to retrieve data from. The asterisk (*) is a wildcard symbol that represents all columns in the table. So, this query selects all columns from the 'foods' table.

  • WHERE company_id IS NULL: This line specifies a condition for filtering the results. It filters the results to only include rows where the value in the 'company_id' column is NULL.

Relational Algebra Expression:

Relational Algebra Expression: SQL SELECT statement with NULL values.

Relational Algebra Tree:

Relational Algebra Tree: SQL SELECT statement with NULL values.

Output:

ITEM_ID  ITEM_NAME                 ITEM_UNIT COMPANY_ID
-------- ------------------------- --------- ----------
7        Salt n Shake              Pcs

In the next session, we have discussed Select with distinct and SQL select with distinct on multiple columns in detail.

Check out our 1000+ SQL Exercises with solution and explanation to improve your skills.



Follow us on Facebook and Twitter for latest update.