Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. Создание удаление таблицы:
  3. CREATE TABLE table_name(attribute_name type);
  4. DROP TABLE table_name;
  5.  
  6. Установка значений(добавление данных) в таблицу:
  7. INSERT INTO table_name(attribute_name1, attribute_name2) VALUES (values1, values2);
  8.  
  9. Возвращает все данные таблицы:
  10. SELECT*FROM table_name
  11.  
  12. Доп. команды: \d - посмотреть все таблицы \d table_name - посмотреть характеристики таблицы Type of Data (ТИПЫ ДАННЫХ):
  13. text (text от англ. текст)-большое количество текстовой информации Числовой тип: int (от англ integer- целое число)- это целое число, может быть знаковым или без знаковым.
  14.  
  15. Строковый тип: char(m) (от англ. character - характек) - это текстовое поле постоянной длины. При сохранении сервер отсекает конечные пробелы, а при чтении дополняет строку до указанной длины пробелами справа, где m-количество символов. varchar(m) ( от англ. character varing характер изменения)- это строка символов с варьирующейся длинной, где m-количество символов.
  16. text (text от англ. текст)-большое количество текстовой информации
  17.  
  18.  
  19. attribute_name=column_name
  20.  
  21. Переименовать таблицу: ALTER TABLE table_name RENAME TO new_table_name
  22.  
  23. Удаление, добавление колонок: ALTER TABLE table_name ADD attribute_name type;
  24.  
  25. ALTER TABLE table_name DROP COLUMN attribute_name;
  26.  
  27. Переименовать имя колонки: ALTER TABLE table_name RENAME COLUMN attribute_name TO new_attribute_name;
  28.  
  29. Изменение типа данных: ALTER TABLE table_name ALTER COLUMN column_name TYPE date_of_type;
  30.  
  31.  
  32. Тип данных(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 не важен.
  33. ------------------------------------------------------------------------------------------
  34. Работа со строками таблицы: Вставить, удалить значение в таблице: INSERT INTO table_name(attribute_name1, attribute_name2,...) VALUES(values1, values2,...);
  35.  
  36. DELETE FROM table_name WHERE condition(условие);
  37.  
  38. Удалить все строки в таблице: DELETE FROM table_name;
  39.  
  40. Изменить значение, переименовать значения во ВСЕХ строках в таблицы: UPDATE имя_таблицы SET attribute_name1 = values1, attribute_name2 = values2, ...
  41.  
  42. Изменить значение, переименовать значения в ОДНОЙ строке таблицы: UPDATE table_name SET attribute_name(где хотим изменить значение) WHERE attribute_name;
  43.  
  44.  
  45.  
  46. Тип данных SERIAL: CREATE TABLE table_name (attribute_name serial);
  47.  
  48. SERIAL (англ. последовательный) - как и другие последовательные типы данных не являются настоящими типами, а представляют собой просто удобное средство для создания столбцов с уникальными идентификаторами
  49.  
  50. Значение по умолчанию: NULL - Это специальные значения, означающие «ничто» или отсутствие значения. Не совпадают со значением «нуль» или «пустая строка». NULL-значение применяется в базах данных в качестве значения по умолчанию, DEFAULT (англ. по умолчанию применительно к values)-команда явного присвоения значения.
  51.  
  52. CREATE TABLE table_name(attribute_name type DEFAULT values);
  53.  
  54.  
  55. Ограничения
  56.  
  57. CHECK (проверять). Проверяет вносимые значения на условие.
  58.  
  59.  Создание ограничений на уровне столбца:
  60.  CREATE TABLE table_name( attribute_name type CHECK(условие) );
  61.  
  62.  Создание ограничений на уровне таблицы:
  63.  CREATE TABLE table_name( attribute_name1 type, attribute_name2 type, attribute_name3 type, CHECK(условие) );
  64.  
  65.  Оператор CONSTRAINT(англ. Ограничение).- устанавливает имя ограничений
  66.  CREATE TABLE table_name( attribute_name1 type, CONSTRAINT имя_ограничения CHECK(attribute_name1); );
  67.  
  68.  Ограничения уникальности. UNIQUE (англ. уникальный) - данные(Значения) в определённом столбце или группе столбцов уникальны среди всех строк таблицы:
  69.  
  70.  Ограничение уникальности на уровне столбца:
  71.  CREATE TABLE table_name( attribute_name1 type attribute_name2 type UNIQUE );
  72.  
  73.  Ограничение уникальности на уровне таблицы:
  74.  CREATE TABLE table_name( attribute_name1 type, attribute_name2 type, attribute_name3 type, UNIQUE(attribute_name1) );
  75.  
  76.  Ограничение уникальности для группы столбцов:
  77.  CREATE TABLE table_name ( a int, b int, c int, UNIQUE (a, c) );
  78.  
  79.  Первичный ключ PRIMARY KEY PRIMARY KEY (англ. первичный ключ)- обозначает, что столбец или группы столбцов может быть уникальным идентификатором строк в таблице. Значения должны быть уникальными и отличными от NULL значения.
  80.  
  81.  CREATE TABLE table_name( attribute_name1 type PRIMARY KEY, attribute_name2 type );
  82.  CREATE TABLE table_name( attribute_name1 type, attribute_name2 type, PRIMARY KEY(attribute_name1) );
  83.  
  84.  Могут включать несколько столбцов:
  85.  CREATE TABLE table_name( a type PRIMARY KEY, b type, c type, PRIMARY KEY(a,b) );
  86.  
  87.  При добавлении первичного ключа автоматически создаётся уникальный индекс-B-дерево для столбца или группы столбцов, перечисленных в первичном ключе, и данные столбцы помечаются как NOT NULL. Таблица может иметь максимум один первичный ключ. Теория реляционных баз данных говорит, что первичный ключ должен быть в каждой таблице.
  88.  
  89.  
  90.  
  91. NOT NULL
  92. Изменение(удаление) ограничения NOT NULL: ALTER TABLE имя_таблицы ALTER COLUMN имя_атрибута SET NOT NULL;
  93.  
  94. Удаление(изменение) ограничений NOT NULL: ALTER TABLE имя_таблицы ALTER COLUMN имя_атрибута DROP NOT NULL; --------------------------------------------------------------------
  95. CHECK Добавление ограничения CHECK: ALTER TABLE table_name ADD CHECK (attribute_name условие);
  96.  
  97. Добавление ограничения с помощью оператора CONSTRAINT: ALTER TABLE table_name ADD CONSTRAINT constraint_name CHECK(attribute_name условие);
  98.  
  99. Удалить ограничение CHECK: ALTER TABLE table_name DROP CONSTRAINT constraint_name;
  100. ------------------------------------------------------
  101. UNIQUE Добавление ограничения UNIQUE: ALTER TABLE table_name ADD UNIQUE (attribute_name);
  102.  
  103. Добавление ограничения с помощью оператора CONSTRAINT:
  104.  
  105. ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(attribute_name);
  106.  
  107. Удалить ограничение UNIQUE: ALTER TABLE table_name DROP CONSTRAINT constraint_name;
  108. ----------------------------------------------------------
  109. PRIMARY KEY Добавление ограниечения: ALTER TABLE table_name ADD PRIMERY KEY (attribute_name);
  110.  
  111. Добавление ограничения с помощью оператора CONSTRAINT:: ALTER TABLE table_name CONSTRAINT constraint_name PRIMARY KEY(attribute_name);
  112.  
  113. Удаление PRIMARY_KEY: ALTER TABLE имя_таблицы, DROP CONSTRAINT имя_первичного_ключа;
  114.  
  115.  
  116. Ограничение внешнего ключа FOREIGN KEY. ОГРАНИЧЕНИЕ внешнего ключа(FOREIGN KEY) указывает, что значения столбца (или группы столбцов) таблицы должны со- ответствовать значениям в некоторой строке другой таблицы. Это называется ссылочной целост- ностью двух связанных таблиц.
  117.  Связь между таблицами. Виды связей(отношений):
  118. 1 Один к одному;
  119. 2 Одни ко многим;
  120. 3 Многие ко многим;
  121.  
  122. Для связи между таблицами применяются внешние ключи(FOREIGN KEY).
  123. Внешний ключ устанавливается для столбца из зависимой, подчиненной таблицы, Указывает на один из столбцов главной таблицы (referenced table)
  124. Синтаксис: CREATE TABLE имя_таблицы ( atribute_name_1, atribute_name_2, atribute_name_3 integer REFERENCES имя_главной_таблицы (атрибут_главной таблицы), );
  125.  
  126. ---------------------------
  127.  
  128. CREATE TABLE имя_таблицы ( atribute_name_1, atribute_name_2, atribute_name_3, FOREIGN KEY (atribute_name_3) REFERENCES имя_главной_таблицы (атрибут_главной таблицы) );
  129.  
  130.  -----------------------------
  131. если опустить список столбцов, внешний ключ будет неявно связан с первичным ключом главной таблицы.
  132.  CREATE TABLE имя_таблицы ( atribute_name_1, atribute_name_2, atribute_name_3 integer REFERENCES имя_главной_таблицы );
  133. -----------------------------------------
  134.  
  135. Один к одному(One to one)
  136. Пример: orders называют подчинённой таблицей, а products — главной.
  137. CREATE TABLE products ( product_no integer PRIMARY KEY, name text, price numeric ); INSERT INTO products VALUES(0, 'мыло детское', 82.6), (1, 'шампунь детский', 88.7), (2, 'зубная щетка', 22);
  138.  
  139. CREATE TABLE orders ( order_id integer PRIMARY KEY, product_no integer REFERENCES products (product_no), quantity integer );
  140.  
  141.  С таким ограничением создать заказ со значением product_no, отсутствующим в таблице products (и не равным NULL), будет невозможно.
  142.  
  143.  
  144.  
  145.  
  146.  
  147. Добавление, удаление ограничения FOREING KEY
  148. Удаление ограничения внешнего ключа: ALTER table имя_таблицы DROP CONSTRAINT имя_ограничения;
  149.  
  150.  Добавление ограничения внешнего ключа в существую таблицу: ALTER table имя_таблицы ADD FOREIGN KEY (имя_атрибута_ссылающейся_таблицы) REFERENCES имя_главной_таблицы(имя_атрибута_главной_таблицы);
  151.  
  152.  -------------------------------------------------------------------------------------------------------
  153.  
  154. Выражение ON DELETE и ON UPDATE опция CASCADE: CASCADE: автоматически удаляет или изменяет строки из зависимой таблицы при удалении или изменении связанных строк в главной таблице.
  155. Синтаксис: FOREIGN KEY (atribute_name_3) REFERENCES имя_главной_таблицы (атрибут_главной таблицы) ON DELETE CASCADE FOREIGN KEY (atribute_name_3) REFERENCES имя_главной_таблицы (атрибут_главной таблицы) ON UPDATE CASCADE
  156. После выражения REFERENCES может идти выражение ON DELETE и ON UPDATE, которые уточняют поведение при удалении или обновлении данных.
  157. Если при удалении строки из главной таблицы необходимо, чтобы были удалены все связанные строки из зависимой таблицы, то применяется каскадное удаление, то есть опция CASCADE.
  158. При удалениии значений (VALUES) из главной таблицы (referenced table), из колонки, на которую ссылается подчиненная таблица (referencing table). программа выдаст ошибку:
  159. 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".
  160. ОШИБКА: обновление или удаление в таблице "products" нарушает ограничение внешнего ключа "orders_product_no_fkey" в таблице "orders" ДЕТАЛИ: На ключ (product_no) = (0) все еще ссылаются из таблицы «заказы».
  161.  ----------------------------------------------------------------------------
  162.  
  163. Связь между таблицами. Виды связей(отношений):
  164. 1 Один к одному;
  165. 2 Одни ко многим;
  166. 3 Многие ко многим;
  167.  
  168.  Связь многие ко многим: Пример: CREATE TABLE products ( product_no integer PRIMARY KEY, name text, price numeric );
  169. CREATE TABLE orders ( order_id integer PRIMARY KEY, shipping_address text, telefon varchar );
  170.  
  171. 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