Join các bảng đúng

Ứng dụng SQL vào các bài toán thực tế

Dmitriy (Dima) Gorenshteyn

Lead Data Scientist, Memorial Sloan Kettering Cancer Center

Mọi bảng & cột

PostgreSQL:

SELECT * FROM information_schema.columns;

SQL Server - TSQL:

SELECT * FROM information_schema.columns;

MySQL:

SELECT * FROM information_schema.columns;

...

Ứng dụng SQL vào các bài toán thực tế

Mọi bảng & cột

PostgreSQL:

SELECT * 
FROM information_schema.columns
;
table_catalog    table_schema    table_name   column_name
pagilla          pg_catalog      pg_proc      proname    
pagilla          pg_catalog      pg_proc      pronamespace    
pagilla          pg_catalog      pg_proc      proowner    
pagilla          pg_catalog      pg_proc      prolang    
...              ...             ...          ...    
Ứng dụng SQL vào các bài toán thực tế

Mọi bảng & cột

PostgreSQL:

SELECT * 
FROM information_schema.columns
WHERE table_schema = 'public';
table_catalog    table_schema    table_name   column_name
pagilla          public          address      address_id    
pagilla          public          address      address    
pagilla          public          address      district    
pagilla          public          address      city        
...              ...             ...          ...    
Ứng dụng SQL vào các bài toán thực tế

Gộp các cột

SELECT table_name, 
       STRING_AGG(column_name, ', ') AS columns


;
Ứng dụng SQL vào các bài toán thực tế

Gộp các cột

SELECT table_name, 
       STRING_AGG(column_name, ', ') AS columns
FROM information_schema.columns

;
Ứng dụng SQL vào các bài toán thực tế

Gộp các cột

SELECT table_name, 
       STRING_AGG(column_name, ', ') AS columns
FROM information_schema.columns
WHERE table_schema = 'public'
GROUP BY table_name;
bảng          cột
rental         rental_id, rental_date, inventory_id, customer_id, return_date    
film_actor     actor_id, film_id    
film           film_id, title, description, release_year, language_id, ...
customer       customer_id, first_name, last_name, email, address_id, active    
...            ...
Ứng dụng SQL vào các bài toán thực tế

Một VIEW về bảng và cột

VIEW là một bảng ảo.

CREATE VIEW name_of_view AS
...
CREATE VIEW table_columns AS
SELECT table_name, 
       STRING_AGG(column_name, ', ') AS columns
FROM information_schema.columns
WHERE table_schema = 'public'
GROUP BY table_name;
Ứng dụng SQL vào các bài toán thực tế

table_columns

SELECT * 
FROM table_columns;
bảng          cột
rental         rental_id, rental_date, inventory_id, customer_id, return_date    
film_actor     actor_id, film_id    
film           film_id, title, description, release_year, language_id, rental_duration, rental_rate, length, replacement_cost, rating, special_features    
customer       customer_id, first_name, last_name, email, address_id, active    
actor          actor_id, first_name, last_name    
...            ...
Ứng dụng SQL vào các bài toán thực tế

Hãy tìm dữ liệu!

Ứng dụng SQL vào các bài toán thực tế

Preparing Video For Download...