Ранее мы обсуждали, что в каждой таблице нужен столбец с идентификатором, чтобы можно было различать строки между собой. Столбец или набор столбцов, используемых для различения строк между собой, и называется первичным ключом (Primary Key). То есть, почти всегда первичный ключ - это колонка id. Но бывают и сложные случаи. Например, в таблице оценок ограничение уникальности (предмет, ученик, дата урока) можно было бы сделать первичным ключом, а колонку id убрать. Однако на практике лучше всегда делать дополнительный столбец id, чтобы во всех таблицах было единообразие...
"Мы"-Прогер
Изменение таблиц на SQL
Для создания таблиц мы использовали команду "CREATE TABLE": CREATE TABLE имя_схемы.имя_таблицы ( колонка1 тип_данных1, колонка2 тип_данных2, ... ); Для удаления таблиц есть команда "DROP TABLE": DROP TABLE имя_схемы.имя_таблицы; А для изменения таблицы есть команда "ALTER TABLE". Её сейчас и рассмотрим. ALTER TABLE имя_схемы.имя_таблицы ADD COLUMN имя_новой_колонки тип_данных; Например, добавим в таблицу education.students2 колонку "new_column", которая может хранить текст...
Нормализация баз данных - Изучаем SQL на примере Postgres
Итак, мы научились создавать и изменять таблицы. Однако в реальных базах данных, где десятки таблиц, не всё так просто. Нужно уметь правильно спроектировать архитектуру - какие будут таблицы, какие колонки в каждой из них и какие будут связи между таблицами. Рассмотрим таблицу оценок: Здесь первичным ключом является комбинация (предмет, студент, дата занятия). За одно занятие один студент может получить несколько оценок, поэтому колонка "values" ("значения") имеет тип smallint[] (массив из маленьких целых чисел)...
Ограничения в SQL. Ограничение уникальности
Допустим, у нас есть таблица учеников. Пусть мы хотим добавить к ней столбец "email" с электронной почтой. Этот столбец всегда должен иметь значение, то есть, должен быть NOT NULL. Однако здесь можно добавить ещё одно ограничение - у каждого ученика своя уникальная почта, то есть, значение в колонке почты не может повторяться. Такое ограничение называется ограничением уникальности (UNIQUE). Мы ещё это не изучали, но ограничения бывают разными: уникальности UNIQUE, первичного ключа PRIMARY KEY, внешнего...
Идентификаторы в таблицах SQL - на примере Postgres
Строки в таблицах баз данных не упорядочены, то есть, нет первой и второй строк. Например, если мы отредактируем первую строку в таблице и сохраним изменения, то она может оказаться последней: Итак, строки не упорядочены. Теперь представим обычную ситуацию: приложение на другом языке программирования, например, на C#, использует нашу базу данных. Пользователь открыл в приложении определённую строку, отредактировал её и хочет сохранить изменения. Но, так как строки не упорядочены, то при сохранении изменений приложение не может сказать базе данных: "отредактируй строку номер такую-то"...
