Обновление базы данных при изменении структуры

Введение в реляционные базы данных в SQL

Timo Grossenbacher

Data Journalist

Текущая модель базы данных

Введение в реляционные базы данных в SQL

Текущая модель базы данных

Введение в реляционные базы данных в SQL

Сохраняйте только уникальные данные в новых таблицах

SELECT COUNT(*)
FROM university_professors;
 count
 -----
 1377
SELECT COUNT(DISTINCT organization) 
FROM university_professors;
 count
 -----
 1287
Введение в реляционные базы данных в SQL

INSERT DISTINCT записей INTO новых таблиц

INSERT INTO organizations 
SELECT DISTINCT organization, 
    organization_sector
FROM university_professors;
Output: INSERT 0 1287
INSERT INTO organizations 
SELECT organization, 
    organization_sector
FROM university_professors;
Output: INSERT 0 1377
Введение в реляционные базы данных в SQL

Оператор INSERT INTO

INSERT INTO table_name (column_a, column_b)
VALUES ("value_a", "value_b");
Введение в реляционные базы данных в SQL

RENAME столбца в таблице affiliations

CREATE TABLE affiliations (
 firstname text,
 lastname text,
 university_shortname text,
 function text,
 organisation text
);
ALTER TABLE table_name
RENAME COLUMN old_name TO new_name;
Введение в реляционные базы данных в SQL

DROP столбца в таблице affiliations

CREATE TABLE affiliations (
 firstname text,
 lastname text,
 university_shortname text,
 function text,
 organization text
);
ALTER TABLE table_name
DROP COLUMN column_name;
Введение в реляционные базы данных в SQL
SELECT DISTINCT firstname, lastname, 
    university_shortname 
FROM university_professors
ORDER BY lastname;
-[ RECORD 1 ]--------+-------------
firstname            | Karl
lastname             | Aberer
university_shortname | EPF
-[ RECORD 2 ]--------+-------------
firstname            | Reza Shokrollah
lastname             | Abhari
university_shortname | ETH
-[ RECORD 3 ]--------+-------------
firstname            | Georges
lastname             | Abou Jaoudé
university_shortname | EPF
(truncated)

(551 records)
SELECT DISTINCT firstname, lastname 
FROM university_professors
ORDER BY lastname;
-[ RECORD 1 ]----------------------
firstname | Karl
lastname  | Aberer
-[ RECORD 2 ]----------------------
firstname | Reza Shokrollah
lastname  | Abhari
-[ RECORD 3 ]----------------------
firstname | Georges
lastname  | Abou Jaoudé
(truncated)

(551 records)
Введение в реляционные базы данных в SQL

Профессор однозначно идентифицируется только по имени и фамилии

Введение в реляционные базы данных в SQL

Давайте потренируемся!

Введение в реляционные базы данных в SQL

Preparing Video For Download...