Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Создание удаление таблицы:
- CREATE TABLE table_name(attribute_name type);
- DROP TABLE table_name;
- Установка значений(добавление данных) в таблицу:
- INSERT INTO table_name(attribute_name1, attribute_name2) VALUES (values1, values2);
- Возвращает все данные таблицы:
- SELECT*FROM table_name
- Доп. команды: \d - посмотреть все таблицы \d table_name - посмотреть характеристики таблицы Type of Data (ТИПЫ ДАННЫХ):
- text (text от англ. текст)-большое количество текстовой информации Числовой тип: int (от англ integer- целое число)- это целое число, может быть знаковым или без знаковым.
- Строковый тип: char(m) (от англ. character - характек) - это текстовое поле постоянной длины. При сохранении сервер отсекает конечные пробелы, а при чтении дополняет строку до указанной длины пробелами справа, где m-количество символов. varchar(m) ( от англ. character varing характер изменения)- это строка символов с варьирующейся длинной, где m-количество символов.
- text (text от англ. текст)-большое количество текстовой информации
- attribute_name=column_name
- Переименовать таблицу: ALTER TABLE table_name RENAME TO new_table_name
- Удаление, добавление колонок: ALTER TABLE table_name ADD attribute_name type;
- ALTER TABLE table_name DROP COLUMN attribute_name;
- Переименовать имя колонки: ALTER TABLE table_name RENAME COLUMN attribute_name TO new_attribute_name;
- Изменение типа данных: ALTER TABLE table_name ALTER COLUMN column_name TYPE date_of_type;
- Тип данных(data type): Числовой тип данных: decimal(англ. десятичный) и numeric(числовой) являются идентичными по своим возможностям. numeric(precision, scale) (от англ. числовой) -позволяет хранить числа с очень большим количеством цифр, рекомен- дуется для хранения денежных сумм и других величин, где важна точность. Пример: 23.5141 имеет точность 6 и масштаб 4. Примечание: Точность должна быть положительной, а масштаб положительным или равным нулю. Если масштаб значения, которое нужно сохранить, превышает объявленный масштаб столбца, си- стема округлит его до заданного количества цифр после точки. Помимо обычных чисел тип numeric позволяет сохранить специальное значение NaN, что означает «not-a-number» (не число). Любая операция c NaN выдаёт в результате тоже NaN. Записывая это зна- чение в виде константы в команде SQL, его нужно заключать в апострофы, например так: UPDATE table SET x = 'NaN'. Регистр символов в строке NaN не важен.
- ------------------------------------------------------------------------------------------
- Работа со строками таблицы: Вставить, удалить значение в таблице: INSERT INTO table_name(attribute_name1, attribute_name2,...) VALUES(values1, values2,...);
- DELETE FROM table_name WHERE condition(условие);
- Удалить все строки в таблице: DELETE FROM table_name;
- Изменить значение, переименовать значения во ВСЕХ строках в таблицы: UPDATE имя_таблицы SET attribute_name1 = values1, attribute_name2 = values2, ...
- Изменить значение, переименовать значения в ОДНОЙ строке таблицы: UPDATE table_name SET attribute_name(где хотим изменить значение) WHERE attribute_name;
- Тип данных SERIAL: CREATE TABLE table_name (attribute_name serial);
- SERIAL (англ. последовательный) - как и другие последовательные типы данных не являются настоящими типами, а представляют собой просто удобное средство для создания столбцов с уникальными идентификаторами
- Значение по умолчанию: NULL - Это специальные значения, означающие «ничто» или отсутствие значения. Не совпадают со значением «нуль» или «пустая строка». NULL-значение применяется в базах данных в качестве значения по умолчанию, DEFAULT (англ. по умолчанию применительно к values)-команда явного присвоения значения.
- CREATE TABLE table_name(attribute_name type DEFAULT values);
- Ограничения
- CHECK (проверять). Проверяет вносимые значения на условие.
- Создание ограничений на уровне столбца:
- CREATE TABLE table_name( attribute_name type CHECK(условие) );
- Создание ограничений на уровне таблицы:
- CREATE TABLE table_name( attribute_name1 type, attribute_name2 type, attribute_name3 type, CHECK(условие) );
- Оператор CONSTRAINT(англ. Ограничение).- устанавливает имя ограничений
- CREATE TABLE table_name( attribute_name1 type, CONSTRAINT имя_ограничения CHECK(attribute_name1); );
- Ограничения уникальности. UNIQUE (англ. уникальный) - данные(Значения) в определённом столбце или группе столбцов уникальны среди всех строк таблицы:
- Ограничение уникальности на уровне столбца:
- CREATE TABLE table_name( attribute_name1 type attribute_name2 type UNIQUE );
- Ограничение уникальности на уровне таблицы:
- CREATE TABLE table_name( attribute_name1 type, attribute_name2 type, attribute_name3 type, UNIQUE(attribute_name1) );
- Ограничение уникальности для группы столбцов:
- CREATE TABLE table_name ( a int, b int, c int, UNIQUE (a, c) );
- Первичный ключ PRIMARY KEY PRIMARY KEY (англ. первичный ключ)- обозначает, что столбец или группы столбцов может быть уникальным идентификатором строк в таблице. Значения должны быть уникальными и отличными от NULL значения.
- CREATE TABLE table_name( attribute_name1 type PRIMARY KEY, attribute_name2 type );
- CREATE TABLE table_name( attribute_name1 type, attribute_name2 type, PRIMARY KEY(attribute_name1) );
- Могут включать несколько столбцов:
- CREATE TABLE table_name( a type PRIMARY KEY, b type, c type, PRIMARY KEY(a,b) );
- При добавлении первичного ключа автоматически создаётся уникальный индекс-B-дерево для столбца или группы столбцов, перечисленных в первичном ключе, и данные столбцы помечаются как NOT NULL. Таблица может иметь максимум один первичный ключ. Теория реляционных баз данных говорит, что первичный ключ должен быть в каждой таблице.
- NOT NULL
- Изменение(удаление) ограничения NOT NULL: ALTER TABLE имя_таблицы ALTER COLUMN имя_атрибута SET NOT NULL;
- Удаление(изменение) ограничений NOT NULL: ALTER TABLE имя_таблицы ALTER COLUMN имя_атрибута DROP NOT NULL; --------------------------------------------------------------------
- CHECK Добавление ограничения CHECK: ALTER TABLE table_name ADD CHECK (attribute_name условие);
- Добавление ограничения с помощью оператора CONSTRAINT: ALTER TABLE table_name ADD CONSTRAINT constraint_name CHECK(attribute_name условие);
- Удалить ограничение CHECK: ALTER TABLE table_name DROP CONSTRAINT constraint_name;
- ------------------------------------------------------
- UNIQUE Добавление ограничения UNIQUE: ALTER TABLE table_name ADD UNIQUE (attribute_name);
- Добавление ограничения с помощью оператора CONSTRAINT:
- ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(attribute_name);
- Удалить ограничение UNIQUE: ALTER TABLE table_name DROP CONSTRAINT constraint_name;
- ----------------------------------------------------------
- PRIMARY KEY Добавление ограниечения: ALTER TABLE table_name ADD PRIMERY KEY (attribute_name);
- Добавление ограничения с помощью оператора CONSTRAINT:: ALTER TABLE table_name CONSTRAINT constraint_name PRIMARY KEY(attribute_name);
- Удаление PRIMARY_KEY: ALTER TABLE имя_таблицы, DROP CONSTRAINT имя_первичного_ключа;
- Ограничение внешнего ключа FOREIGN KEY. ОГРАНИЧЕНИЕ внешнего ключа(FOREIGN KEY) указывает, что значения столбца (или группы столбцов) таблицы должны со- ответствовать значениям в некоторой строке другой таблицы. Это называется ссылочной целост- ностью двух связанных таблиц.
- Связь между таблицами. Виды связей(отношений):
- 1 Один к одному;
- 2 Одни ко многим;
- 3 Многие ко многим;
- Для связи между таблицами применяются внешние ключи(FOREIGN KEY).
- Внешний ключ устанавливается для столбца из зависимой, подчиненной таблицы, Указывает на один из столбцов главной таблицы (referenced table)
- Синтаксис: CREATE TABLE имя_таблицы ( atribute_name_1, atribute_name_2, atribute_name_3 integer REFERENCES имя_главной_таблицы (атрибут_главной таблицы), );
- ---------------------------
- CREATE TABLE имя_таблицы ( atribute_name_1, atribute_name_2, atribute_name_3, FOREIGN KEY (atribute_name_3) REFERENCES имя_главной_таблицы (атрибут_главной таблицы) );
- -----------------------------
- если опустить список столбцов, внешний ключ будет неявно связан с первичным ключом главной таблицы.
- CREATE TABLE имя_таблицы ( atribute_name_1, atribute_name_2, atribute_name_3 integer REFERENCES имя_главной_таблицы );
- -----------------------------------------
- Один к одному(One to one)
- Пример: orders называют подчинённой таблицей, а products — главной.
- CREATE TABLE products ( product_no integer PRIMARY KEY, name text, price numeric ); INSERT INTO products VALUES(0, 'мыло детское', 82.6), (1, 'шампунь детский', 88.7), (2, 'зубная щетка', 22);
- CREATE TABLE orders ( order_id integer PRIMARY KEY, product_no integer REFERENCES products (product_no), quantity integer );
- С таким ограничением создать заказ со значением product_no, отсутствующим в таблице products (и не равным NULL), будет невозможно.
- Добавление, удаление ограничения FOREING KEY
- Удаление ограничения внешнего ключа: ALTER table имя_таблицы DROP CONSTRAINT имя_ограничения;
- Добавление ограничения внешнего ключа в существую таблицу: ALTER table имя_таблицы ADD FOREIGN KEY (имя_атрибута_ссылающейся_таблицы) REFERENCES имя_главной_таблицы(имя_атрибута_главной_таблицы);
- -------------------------------------------------------------------------------------------------------
- Выражение ON DELETE и ON UPDATE опция CASCADE: CASCADE: автоматически удаляет или изменяет строки из зависимой таблицы при удалении или изменении связанных строк в главной таблице.
- Синтаксис: FOREIGN KEY (atribute_name_3) REFERENCES имя_главной_таблицы (атрибут_главной таблицы) ON DELETE CASCADE FOREIGN KEY (atribute_name_3) REFERENCES имя_главной_таблицы (атрибут_главной таблицы) ON UPDATE CASCADE
- После выражения REFERENCES может идти выражение ON DELETE и ON UPDATE, которые уточняют поведение при удалении или обновлении данных.
- Если при удалении строки из главной таблицы необходимо, чтобы были удалены все связанные строки из зависимой таблицы, то применяется каскадное удаление, то есть опция CASCADE.
- При удалениии значений (VALUES) из главной таблицы (referenced table), из колонки, на которую ссылается подчиненная таблица (referencing table). программа выдаст ошибку:
- ERROR: update or delete on table "products" violates foreign key constraint "orders_product_no_fkey" on table "orders" DETAIL: Key (product_no)=(0) is still referenced from table "orders".
- ОШИБКА: обновление или удаление в таблице "products" нарушает ограничение внешнего ключа "orders_product_no_fkey" в таблице "orders" ДЕТАЛИ: На ключ (product_no) = (0) все еще ссылаются из таблицы «заказы».
- ----------------------------------------------------------------------------
- Связь между таблицами. Виды связей(отношений):
- 1 Один к одному;
- 2 Одни ко многим;
- 3 Многие ко многим;
- Связь многие ко многим: Пример: CREATE TABLE products ( product_no integer PRIMARY KEY, name text, price numeric );
- CREATE TABLE orders ( order_id integer PRIMARY KEY, shipping_address text, telefon varchar );
- CREATE TABLE order_items ( product_no integer REFERENCES products, order_id integer REFERENCES orders, quantity integer, PRIMARY KEY (product_no, order_id) );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement