Database
 sql >> база данни >  >> RDS >> Database

Как да създадете таблица от SQL заявка

Проблем:

Бихте искали да създадете нова таблица в база данни с данни, дефинирани чрез SQL заявка.

Пример:

Бихме искали да създадем таблицата gamer въз основа на SQL заявка. В тази заявка избираме данни от друга таблица с име championship представени по-долу.

id геймър резултат championship_date
1 Алиса 14 10.08.2020
2 Надзирател 10 28.09.2020
3 щастлив човек 0 10.08.2020
4 лукас 6 10.08.2020
5 оли 12 10.08.2020
6 биггеймър 7 12.09.2020

В базата данни нека създадем нова таблица с име gamer който ще съхранява данни във всички колони, дефинирани в таблицата championship (id , gamer , score и championship_date ).

Решение 1:

CREATE TABLE gamer 
AS  
SELECT
  *
FROM championship;

Дискусия:

Ако искате да създадете нова таблица, първата стъпка е да използвате CREATE TABLE клауза и името на новата таблица (в нашия пример:gamer ). След това използвайте AS ключова дума и посочете SELECT оператор, който избира данни за новата таблица. В нашия пример избрахме всички колони от таблицата championship като използвате звездичката (*). Резултатът показва всички записи в таблицата championship .

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

Решение 2:

CREATE TABLE gamer 
AS  
SELECT
  gamer, score, championship_date
FROM championship 
WHERE championship_date <= 2020-08-10;

Ето набора от резултати:

геймър резултат championship_date
алиса 14 10.08.2020
щастлив човек 0 10.08.2020
lukas 6 10.08.2020
оли 12 10.08.2020

SELECT заявката извлича само записите с championship_date дата, равна или по-стара от 2020-08-10 (WHERE championship_date <= 2020-08-10 ). Новата таблица съхранява по-малко колони, отколкото в предишния пример (SELECT gamer, score, championship_date ) без колоната id .

Подобно решение на този проблем е да използвате SELECT INTO клауза за създаване на нова таблица и копиране на данни от друга таблица. Разгледайте кода:

Решение 3:

SELECT
  gamer, score, championship_date
INTO gamer
FROM championship 
WHERE championship_date <= 2020-08-10;

Получената таблица е същата. Имайте предвид, че тази конструкция не присъства в стандарта SQL. В тази SQL команда първо пишем SELECT , след това списъкът с колони, следваща ключовата дума INTO , и накрая името на новата таблица, която искаме да създадем. След това можете да добавите WHERE и други SQL клаузи като GROUP BY или HAVING за филтриране на записи за новата таблица.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. VLDBs при 20-тийнейджърите:Ще ви трябва по-голям...

  2. Друга причина да използвате NOEXPAND съвети в Enterprise Edition

  3. Нивото на изолация на МОМЕНТАЛНА СНИМКА

  4. ReadyCloud ReadyShipper X

  5. Съображения около реда на колоните в индекси и сортове