SQL Foundation uses Select to retrieve data

Source: Internet
Author: User
Tags aliases

SELECT
[distinct| ALL]
Select_list
From Table_list
[Where+clause]
[Group_by_clause]
[Having CONDITION]
[Order_by_clause]

Use aliases instead of field names in the database (as can be removed with spaces, but not for reading)

SELECT Colimn_name1 as alias 1,... column_name2 | | ' * ' | | 1.23 | | ' = ' | | Column_name2 * 1.23 as Alias 2
from table_name;

field of query using function action

SELECT Colimn_name1 as Alias 1,substr (colimn_name1,1,6) as Alias 2,... column_name2 | | ' * ' | | 1.23 | | ' = ' | | Column_name2 * 1.23 as Alias 2
from table_name;

Remove duplicate records from the retrieved data
SELECT DISTINCT (column_name) from table_name;

Sort the retrieved data
ORDER by
{EXPR | POSITION | C_alias}
[ASC | DESC]
[NULLS First | NULLS last]
[, {EXPR | POSITION | C_alias}
[ASC | DESC]
[NULLS First | NULLS last]
]...

SELECT column_name1,... Column_name2 fromtable_name ORDER by Column_name3;

SELECT column_name1,... Column_name2 fromtable_name ORDER BY column_name3 Desc; (Default is ascending ASC, descending must declare desc)

Handling of NULL values when sorting (the default is ascending when the null value is the lowest, and the first in descending order)

Place null values in the first place in ascending order

SELECT column_name1,... Column_name2 fromtable_name ORDER by Column_name3 NULLS first;

Place null values at the bottom of the row when descending
SELECT column_name1,... COLUMN_NAME2 from table_name ORDER by Column_name3 Nullslast;

Aliases can be used

SELECT column_name1,... Column_name2 Fromtable_name ORDER by alias NULLS last;

Use an expression as a sort field

SELECT column_name1,... Column_name2 fromtable_name ORDER by EXPR NULLS last;

Use the position of the field as the Sort field (convenient, and prevent errors when using union)

SELECT column_name1,... Column_name2 fromtable_name ORDER by 3 ASC;

Sorting using multiple fields

SELECT column_name1,... Column_name2 fromtable_name ORDER by column_name2 asc,3 DESC;

To set a search condition using the WHEHE clause

Relational operators include:<, <=, >, >=, =,! =, <>

Comparison operators include:

Is null if the operand is null returns True

Like blur comparison string value

Between ... And ... Verify that the value is within range

In verifies that the operand is in a set number of values

Logical comparators include:

and two conditions must be met

OR as long as one of the two conditions is met

Not is reversed from a logical value

Single condition limit used in queries

SELECT column_name1,... Column_name2 fromtable_name WHERE CONDITION ORDER by column_name;

Using functions in query conditions

SELECT column_name1,... Column_name2 fromtable_name WHERE SUBSTR (condition,1,2) = ' 123456 ';

Multiple criteria restrictions are used in a query

SELECT column_name1,... Column_name2 fromtable_name WHERE CONDITION1 and CONDITION2;

Query criteria using between ... And ...

SELECT column_name1,... Column_name2 fromtable_name WHERE column_name1 between ' 12344 ' and ' 12334 ';

Query criteria use or

SELECT column_name1,... Column_name2 fromtable_name WHERE CONDITION1 or CONDITION2;

Fuzzy query data

SELECT column_name1,... Column_name2 fromtable_name WHERE column_name1 like '%condition% ';

Query criteria are limited to a list range

SELECT column_name1,... Column_name2 fromtable_name WHERE column_name1 in (' CONDITION1 ', ' CONDITION2 ');

Queries that are specifically for null values

SELECT column_name1,... Column_name2 fromtable_name WHERE column_name1 is NULL;

Specifically for non-null value scrub

SELECT column_name1,... COLUMN_NAME2 from table_name wherecolumn_name1 are not NULL;

GROUP by clause syntax and usage

GROUP by
{EXPR
| {Rollop | CUBE} ({expr [, expr] ...})
}

Expr usually refers to the database column name

Rollop | CUBE GROUP By clause extension returns subtotals and grand totals records

Used with a grouping function to group by a column, or to group by a few columns

SELECTCOLUMN_NAME1...,COLUMN_NAME2 from table_name [WHERE CONDITION] GROUP bycolumn_name4...,column_name5;

Use of having clauses

The HAVING clause is usually used with the GROUP BY clause, which restricts the search condition, which is different from the WHERE clause. A HAVING clause is related to a group, not to a single group, and in a GROUP BY clause, he acts on the groups created by GroupBy

Selectcolumn_name1 from Table_namegroup to Column_name2 having CONDITION;

Working with sub-queries

Single conditional subquery

SELECTCOLUMN_NAME1...,COLUMN_NAME2 from table_name WHERE column_name codition (SELECT column_name from table_name WHERECON dition);

Multi-Conditional subquery

SELECTCOLUMN_NAME1...,COLUMN_NAME2 from table_name WHERE column_name codition (SELECT column_name from table_name WHERECON dition) and column_name codition (SELECT column_name from table_name wherecondition);

Subquery returns multiple rows

In (subquery statement);

Any (subquery statement), any one that satisfies the subquery result, and <,<= mate, which represents the maximum value in less than or equal to the list, and the >,>= mate represents the maximum value greater than or equal to the list

SOME (subquery statement); can be considered to be the same as any

All (sub-query statement); Represents all results that satisfy the subquery result, and the <,<= mate, which represents the maximum value in the less than equals list, and the >,>= mate represents the maximum value greater than or equal to the list L

Count function

SELECT COUNT (*) from table_name [WHERE CONDITION];

Connection Query

Internal connection query (multiple tables connected to query bar number I n*m ...)

Selecrcolumn_name1,... Column_name2 from Table_name1,... table_name2 [WHERE CONDITION];

Equivalent connection

SELECTA. Column_name1,... A.column_name2,b.column_name1,... B.column_name2 from Table_name1a,... Table2_name B WHERE A.column_name3=b.column_name3 and A.column_name4=b.column_name4;

SELECTA. Column_name1,... A.column_name2,b.column_name1,... B.column_name2 from Table_name1a INNER joins Table_name2 B on A.column_name3=b.column_name3 ANDA. Column_name4=b.column_name4;

INNER JOIN ... Equivalent to the above

No equivalent connection

A non-equivalent connection means using the ' > ' >= ' < ' <= ' = ' <> ' between in the join condition ... Connect to two conditions list, but this usually needs to be used in conjunction with other equivalent calculations, otherwise the retrieved data may have no practical meaning

SELECTA. Column_name1,... A.column_name2,b.column_name1,... B.column_name2 from Table_name1a INNER joins Table_name2 B on A.column_name3 CONDITION b.column_name3 ANDA. Column_name4 CONDITION b.column_name4;

INNER join can be written directly into the JOIN keyword on cannot save

Self-connect

SELECTA. Column_name1,... A.column_name2,b.column_name1,... B.column_name2 from Table_namea,... table_name B WHERE A.column_name3=b.column_name3 ANDA. Column_name4=b.column_name4;

External connection

Left outer connection

SELECTA. Column_name1,... A.column_name2,b.column_name1,... B.column_name2 from table_name1a left joins Table_name2 B on A.column_name3 CONDITION b.column_name3 ANDA. Column_name4 CONDITION b.column_name4;

Right outer connection

SELECTA. Column_name1,... A.column_name2,b.column_name1,... B.column_name2 from table_name1a right joins Table_name2 B on A.column_name3 CONDITION b.column_name3 ANDA. Column_name4 CONDITION b.column_name4;

Full outer connection

SELECTA. Column_name1,... A.column_name2,b.column_name1,... B.column_name2 from table_name1a full JOIN table_name2 B on A.column_name3 CONDITION b.column_name3 ANDA. Column_name4 CONDITION b.column_name4;

Use of outer joins (+)

Left connection

SELECTA. Column_name1,... A.column_name2,b.column_name1,... B.column_name2 from Table_name1a,... Table_name2 B WHERE A.column_name3=b.column_name3 (+);

Right connection

SELECTA. Column_name1,... A.column_name2,b.column_name1,... B.column_name2 from Table_name1a,... Table_name2 B WHERE A.column_name3 (+) =b.column_name3;

SQL Foundation uses Select to retrieve data

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.