Непроцедурні мови завжди функціонально-орієнтовані, тоді як процедурні мови залежать від заданих команд. Крім того, непроцедурні мови функціонують для представлення різних програм у формі зв’язку між різними математичними виразами (вони базуються на залежностях).

Процедурні знання, як правило, орієнтовані на процес. Декларативне знання є орієнтованим на дані за своєю природою.

DML — це мова, яка дозволяє користувачам отримувати доступ до даних і маніпулювати ними. Мета — забезпечити ефективну взаємодію людини з системою. Існує два типи DML: процедурний: користувач визначає, які дані потрібні і як їх отримати. непроцедурний: користувач лише вказує, які дані потрібні.

Процедурний має цикли, gotos, whiles, загалом рядки коду виконуються один за одним у певному порядку. З непроцедурними (коли ми говоримо про бази даних, це часто називають «на основі набору»), процедурного коду немає, ви просто вказуєте, які таблиці та як об’єднувати.

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

Процедурні мови: код у процедурних мовах зазвичай організований у функції або процедури. Кожна функція має певне завдання, і виконання програми проходить через ці функції. Непроцедурні мови: код на непроцедурних мовах зосереджений на визначенні зв’язків і обмежень.