§ 31. Работа с базой данных

Какие типы данных есть в SQL?

В современном мире информационных технологий умение работать с базами данных является ключевым навыком для многих специалистов.

Одним из важнейших аспектов работы с SQL является понимание типов данных. Например в PostgreSQL, как и в других системах управления базами данных, существует широкий спектр типов данных, позволяющих эффективно хранить и обрабатывать различную информацию.

Основные типы данных включают:
INTEGER или BIGINT – для целых чисел
NUMERIC или DECIMAL – для чисел с плавающей точкой
VARCHAR или TEXT – для текстовых строк
DATE – для дат
TIMESTAMP – для времени
BOOLEAN – для логических значений (истина/ложь)
Как создать таблицу в SQL?

Создание таблицы – это фундаментальная операция при работе с базами данных. В PostgreSQL для создания таблицы используется команда CREATE TABLE. Синтаксис этой команды включает имя таблицы и список столбцов с их типами данных. Вот пример создания простой таблицы:

CREATE TABLE students (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    age INTEGER,
    is_active BOOLEAN DEFAULT TRUE
);

В этом примере создается таблица students с различными типами данных. SERIAL используется для автоматического увеличения значения id, PRIMARY KEY обозначает первичный ключ, NOT NULL указывает, что поле не может быть пустым, а DEFAULT устанавливает значение по умолчанию.

Другим примером может быть таблица для хранения информации о книгах в библиотеке:

CREATE TABLE books (
    book_id INTEGER PRIMARY KEY,
    title VARCHAR(200) NOT NULL,
    author VARCHAR(100),    
    is_available BOOLEAN DEFAULT TRUE,
    added_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Эта таблица демонстрирует использование различных возможностей SQL, таких как UNIQUE для уникальных значений и DEFAULT CURRENT_TIMESTAMP для автоматического добавления текущей даты и времени при вставке новой записи.

Как создавать таблицы с внешними ключами?

Изменим таблицу students, добавив в нее урок ученика. Для этого потребуется таблица с занятиями:

CREATE TABLE classes (
    class_id SERIAL PRIMARY KEY,
    class_name VARCHAR(50) NOT NULL,
    teacher_name VARCHAR(100),
    room_number INTEGER
);

Теперь создадим таблицу students с внешним ключом, ссылающимся на таблицу classes:

CREATE TABLE students (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    age INTEGER,
    is_active BOOLEAN DEFAULT TRUE
    class_id INTEGER,
    FOREIGN KEY (class_id) REFERENCES classes(class_id)
);
В этом примере:
Таблица сlasses имеет первичный ключ class_id.
Таблица students имеет столбец class_id, который является внешним ключом.
Ограничение FOREIGN KEY в таблице students указывает, что class_id ссылается на class_id в таблице classes.
Как добавить данные в таблицу?

Добавление данных в таблицу SQL осуществляется с помощью команды INSERT INTO. Ниже пример использование данной команды для добавление записей в ранее рассмотренные таблицы classes и students.

INSERT INTO classes (class_name, teacher_name, room_number) VALUES
('9А', 'Иванова Мария Петровна', 201),
('9Б', 'Петров Иван Сергеевич', 202);
INSERT INTO students (name, age, class_id) VALUES
('Анна Смирнова', 16, 1),
('Иван Козлов', '16, 1),
('Елена Новикова', 15, 2),
('Алексей Соколов', 16, 2);
Необходимо обратить внимание на следующие моменты:
Сперва создаются записи для таблицы classes, так как при создании ученика необходимо указать его класс, а если класса не существует, то создать запись ученика не получится.
Значение id при создании нигде не указывается, поскольку при определении таблицы было использовано ключевое слово SERIAL – оно автоматически проставляет уникальный id.
При создании ученика не указано значение поля is_active – оно автоматически проставится в значение по умолчанию, которое указано в определении таблицы: DEFAULT TRUE.
Заключение

Освоение основ SQL и работы с базами данных открывает широкие возможности в сфере информационных технологий. С помощью метода CREATE TABLE можно создать таблицу, а с помощью метода INSERT INTO добавить в нее записи.

Остались вопросы?
Расскажите нам, что вызвало трудности, и мы ответим на ваш вопрос по элеткронной почте
book letter
Оставляя заявку, вы автоматически соглашаетесь на обработку ваших персональных данных в соответствии с Условиями и Договором оферты
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Перейти к верхней панели