Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-50.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
204.67 Кб
Скачать
  1. Кодування та набори сортування в sql

Побудова запросу: Пишіть зарезервовані слова у верхньому регістрі. Пишіть назви колонок у нижньому регістрі. Пишіть назви таблиць у фігурних дужках {}. Це дозволить автоматично працювати з префіксами таблиць. Аргументи змінних (які зазвичай використовуються користувачами) потрібно виносити зі змісту запиту і обробляти як окремі параметри в db_query (), db_query_range (), db_query_temporary () і так далі. Зміст запиту має містити заповнювачі певного типу для кожного аргументу (% d |% s |%% |% f |% b). Це гарантує правильну обробку даних і запобіжить SQL-ін'єкції. Запобігти SQL-ін'єкції просто; db_query () дає можливість використовувати параметризрвані запити. Функції бази даних друпал замінюють sprintf-подібні заповнювачі правильно обробленими аргументами в порядку появи: (% D - цілі числа; % F - цифри з плаваючою комою; % S - рядки в одинарних лапках; % B - двійкові дані не укладених в одиночні лапки; %% - Замінюється на%). Додаткову інформацію можна знайти на сторінці Database Access. Літерні (постійні) аргументи можуть бути або включені в зміст запиту або оброблені тим же шляхом, що й аргументи змінних. Будь літерні значення або заповнювачі% повинні бути укладені в одиночні лапки. Ніколи не використовуйте подвійні лапки.

Іменування в таблицях: Для назв таблиць використовуйте іменники в однині, які описують призначення таблиці. Привласнюйте таблицям префікс, який відповідає назві модуля. Це дозволяє запобігти конфліктам пов'язані з простором імен. Іменуйте все що можна (первинні, зовнішні, унікальні ключі). В іншому випадку, в повідомленні про помилку, ви побачите смішне ім'я згенеровані системою. Це трапилося з таблицею {moderation_roles}, яка спочатку визначила клюю без явного імені як KEY (mid). Це отримав mysqldump як KEY mid (mid), що в результаті призвело до синтаксичну помилку, так як запис mid () розуміється як функція MySQL (дивіться повідомлення mysql - ansi cannot import install database). Назва індексу повинно починатися з назви таблиці від якої він залежить. Наприклад,. INDEX users_sid_idx.

Більшість серверів баз даних використовують додаткові розширення на додаток до стандартного SQL. Тим не менше, більшість їх таких серверів може бути налаштоване для роботи в режимі, який відповідає стандартним вимогам. Всім розробникам рекомендується використовувати режим найбільшою сумісності зі стандартним режимом, що дозволить уникнути проблем з працездатністю коду на різних серверах.

Не використовуйте зарезервовані слова (ANSI) SQL, MySQL, PostgreSQL, MS SQL Server і так далі, для іменування таблиць і стовпців в таблицях навіть у тому випадку, якщо це працює на вашому сервері, тому що це може не працювати на інших серверах або з іншими базами даних. Найбільш часто неправильно вжиті слова: TIMESTAMP, TYPE, TYPES, MODULE, DATA, DATE, TIME.

Сортування записів в порядку зростання або зменшення значень полів здійснюється за допомогою операнду ORDER BY. Після нього вказується список полів, за якими повинно виконуватися сортування. Записи будуть впорядковані в залежності від порядку зазначення полів. Спочатку виконується сортування за першим вказаним полем; далі для записів, що мають однакове значення першого поля, відбувається впорядкування за другим полем тощо.

Сортування може виконуватися як для індексованих, так і для неіндексованих полів. Поля в списку позначаються іменами або номерами, які відповідають порядку розташування полів в списку після ключового слова SELECT.

За умовчанням здійснюється сортування в порядку зростання значень полів. Описувач DESC, який вказується після імені (або номеру) відповідного поля, дозволяє впорядкувати записи за зменшенням значень даного поля.

28. Створення таблиць

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]