SQL Queries, JOINs and Aggregations

Queries

  1. DDL (Data Definition Language)
    • CREATE
    • ALTER
    • DROP
  2. DML (Data Manipulation Language)
    • SELECT
    • INSERT
    • UPDATE
    • DELETE
  3. SubQueries & Co-related Queries
  4. JOINs
  5. Aggregations
  6. GROUP BY

Create Table

CREATE TABLE user (
    id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,

    name VARCHAR(30)
);

- data type

 

-constraints

Alter Table

ALTER TABLE usre

        RENAME TO user; 

ALTER TABLE user

        ADD COLUMN age INTEGER; 

OR

Drop Table

DROP TABLE user;

Create data (Crud)

INSERT INTO user (name, age)

        VALUES ('ioana', 22);

Read data (cRud)

SELECT name as "Full name", age

        FROM user;

Update data (crUd)

UPDATE user

        SET name = 'Another name'

        WHERE id=1;

Delete data (cruD)

DELETE FROM user

        WHERE id=1;

SubQueries

SELECT column(s)

FROM table(s)

WHERE some_column operator ( SELECT columns(s)

                                                             FROM table(s)

                                                             WHERE some_column operator some_value)

Където:

  • Резултатът от вътрешната(Inner) заявка се подава на външната(Outer) заявка
  • Двете заявки можем да ги смятаме за независими една от друга

Inner Query(Вътрешна заявка)

Outer Query(Външна заявка)

Inner query

Outer query

1

2

Co-related Queries

SELECT column(s)

FROM table T1

WHERE some_column operator ( SELECT columns(s)

                                                             FROM table T2

                                                             WHERE T2.some_column operator T1.some_column)

Където:

  • Всеки запис от външната заявка заявка се подава на вътрешната, изпълнява се вътрешната и резултатът от нея се подава отново на въшната.
  • Двете заявки можем да ги смятаме за зависими една от друга

Inner Query(Вътрешна заявка)

Outer Query(Външна заявка)

Inner query

Outer query

2

1

JOINS

LEFT

RIGHT

INNER

OUTER

INNER JOIN

SELECT *

FROM table1

INNER JOIN table2

ON clause;

Връща сечението между две или повече таблици. Резултатът е нова таблица с всички редове, който отговарят на условието след ON.

OUTER JOIN

SELECT columns

FROM table1

FULL OUTER JOIN table2

ON clause;

Резултатът е обединението между таблиците.

LEFT (OUTER) JOIN

SELECT columns

FROM table1

LEFT JOIN table2

ON clause;

Резултатът е нова таблица с всички редове от лявата таблица заедно с редовете от дясната таблица, които отговарят на условието след ON. На редовете, където няма match между таблиците се записват null стойности.

RIGHT (OUTER) JOIN

SELECT columns

FROM table1

RIGHT JOIN table2

ON clause;

Резултатът е нова таблица с всички редове от дясната таблица заедно с редовете от лявата таблица, които отговарят на условието след ON. На редовете, където няма match между таблиците се записват null стойности.

JOINS

LEFT

RIGHT

INNER

OUTER

- All rows from inner join

- All rows from the main(left) table (with `null` values for all fields from the joined table)

- All rows from inner join

- All rows from the joined(right) table (with `null` values for all fields from the main table)

AGGREGATIONS

 

  • SUM
  • MAX
  • MIN
  • AVG
  • COUNT

GROUP BY

SELECT COUNT(ID), AGE

  FROM PROGRAMMER

  GROUP BY  AGE;

  • COUNT - името на агрегацията
  • GROUP BY - колоната според която искаме да групираме

 

GROUP BY ще раздели резултата на групи според AGE, и ще покаже COUNT-а на ID-тата във всяка група.

Заявката ще покаже по колко програмисти имаме в таблицата(COUNT) от всяка възраст(AGE).

HAVING

SELECT COUNT(ID), AGE

  FROM PROGRAMMER

  GROUP BY  AGE

    HAVING ID > 2;

  • HAVING - филтрира резултатите във всяка група

     

Заявката ще покаже по колко програмисти имаме в таблицата(COUNT) от всяка възраст(AGE) където ID-то във всяка възрастова група е над 2.

SQL Queries and JOIN - 2018

By Hack Bulgaria

SQL Queries and JOIN - 2018

  • 1,304