MySQL SELECT Statement

The SELECT statement in MySQL is used to fetch data from one or more tables. We can retrieve records of all fields or specified fields that match specified criteria using this statement. It can also work with various scripting languages such as PHPRuby, and many more.

SELECT Statement Syntax

It is the most commonly used SQL query. The general syntax of this statement to fetch data from tables are as follows:

SELECT field_name1, field_name 2,... field_nameN   

FROM table_name1, table_name2...  

[WHERE condition]  

[GROUP BY field_name(s)]  

[HAVING condition]   

[ORDER BY field_name(s)]  

[OFFSET M ][LIMIT N];

Syntax for all fields:

SELECT * FROM tables [WHERE conditions]  

[GROUP BY fieldName(s)]  

[HAVING condition]   

[ORDER BY fieldName(s)]  

[OFFSET M ][LIMIT N];

Parameter Explanation

The SELECT statement uses the following parameters:

Parameter NameDescriptions
field_name(s) or *It is used to specify one or more columns to returns in the result set. The asterisk (*) returns all fields of a table.
table_name(s)It is the name of tables from which we want to fetch data.
WHEREIt is an optional clause. It specifies the condition that returned the matched records in the result set.
GROUP BYIt is optional. It collects data from multiple records and grouped them by one or more columns.
HAVINGIt is optional. It works with the GROUP BY clause and returns only those rows whose condition is TRUE.
ORDER BYIt is optional. It is used for sorting the records in the result set.
OFFSETIt is optional. It specifies to which row returns first. By default, It starts with zero.
LIMITIt is optional. It is used to limit the number of returned records in the result set.

NOTE: It is to note that MySQL always evaluates the FROM clause first, and then the SELECT clause will be evaluated.

MySQL SELECT Statement Example:

Let us understand how SELECT command works in MySQL with the help of various examples. Suppose we have a table named employee_detail that contains the following data:

MySQL SELECT Statement

1. If we want to retrieve a single column from the table, we need to execute the below query:

mysql> SELECT Name FROM employee_detail;  

We will get the below output where we can see only one column records.

MySQL SELECT Statement

2. If we want to query multiple columns from the table, we need to execute the below query:

mysql> SELECT Name, Email, City FROM employee_detail;  

We will get the below output where we can see the name, email, and city of employees.

MySQL SELECT Statement

3. If we want to fetch data from all columns of the table, we need to use all column’s names with the select statement. Specifying all column names is not convenient to the user, so MySQL uses an asterisk (*) to retrieve all column data as follows:

mysql> SELECT * FROM employee_detail;  

We will get the below output where we can see all columns of the table.

MySQL SELECT Statement

4. Here, we use the SUM function with the HAVING clause in the SELECT command to get the employee name, city, and total working hours. Also, it uses the GROUP BY clause to group them by the Name column.

SELECT Name, City, SUM(working_hours) AS "Total working hours"    

FROM employee_detail    

GROUP BY Name    

HAVING SUM(working_hours) > 5;

It will give the below output:

MySQL SELECT Statement

5. MySQL SELECT statement can also be used to retrieve records from multiple tables by using a JOIN statement. Suppose we have a table named “customer” and “orders” that contains the following data:

Table: customer

MySQL SELECT Statement

Table: orders

MySQL SELECT Statement

Execute the following SQL statement that returns the matching records from both tables using the INNER JOIN query:

SELECT cust_name, city, order_num, order_date  

FROM customer INNER JOIN orders   

ON customer.cust_id = orders.order_id  

WHERE order_date < '2020-04-30'  

ORDER BY cust_name;

After successful execution of the query, we will get the output as follows:

MySQL SELECT Statement

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *