">
Недоліки .
Невідповідність реляційної моделі даних.
Творці реляційної моделі даних Едгар Кодд, Крістофер Дейт та їх прихильники вказують на те, що SQL не є істинно реляційних мовою. Зокрема, вони вказують на наступні проблеми SQL:
Повторювані рядки
Невизначені значення (nulls)
Явна вказівку порядку колонок зліва направо
Колонки без імені та дублюються імена колонок
Відсутність підтримки властивості "="
Використання покажчиків
Висока надмірність
В опублікованому Крістофером Дейтом і Х'ю Дарвені Третьому Маніфесті вони викладають принципи СУБД наступного покоління і пропонують мову Tutorial D, який є справді реляційним.
Складність.
Хоча SQL і замислювався як засіб роботи кінцевого користувача, врешті-решт він став настільки складним, що перетворився на інструмент програміста.
Відступи від стандартів.
Незважаючи на наявність міжнародного стандарту ANSI SQL-92, багато компаній, що займаються розробкою СУБД (наприклад, Oracle, Sybase, Microsoft, MySQL AB), вносять зміни в мову SQL, застосовуваний в розробляється СУБД, тим самим відступаючи від стандарту. Таким чином, з'являються специфічні для кожної конкретної СУБД діалекти мови SQL. p align="justify"> Складність роботи з ієрархічними структурами.
Раніше діалекти SQL більшості СУБД не пропонували способу маніпуляції деревовидними структурами. Деякі постачальники СУБД пропонували свої рішення (наприклад, Oracle використовує вираз CONNECT BY). В даний час в ANSI стандартизована рекурсивна конструкція WITH з діалекту SQL DB2. У MS SQL Server рекурсивні запити з'явилися лише у версії MS SQL Server 2005. p align="justify"> Типи даних.
У SQL використовуються такі основні типи даних, формати яких можуть дещо відрізнятися для різних СУБД:
INTEGER - ціле число (зазвичай до 10 значущих цифр і знак);
SMALLINT - " коротке ціле" (зазвичай до 5 значущих цифр і знак);
DECIMAL (p, q) - десяткове число, яке має p цифр (0
FLOAT - дійсне число з 15 значущими цифрами і цілочисловим порядком, визначеним типом СУБД;
CHAR (n) - символьний рядок фіксованої довжини з n символів (0