• В чем ошибка sql-запроса?

    ev_g
    @ev_g
    Web dev.
    Если ты запустишь запрос, то должен увидеть сообщение об ошибке.

    Корректный запрос:
    CREATE table courses
    (id INT(11) NOT NULL PRIMARY KEY,
    faculty VARCHAR(55) NULL,
    number INT(2) NULL);

    VARCHAR, а не WARCHAR
    Ответ написан
    1 комментарий
  • В чем ошибка sql-запроса?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Если запрос выполняется с ошибкой, то первой, что нужно сделать - внимательно прочитать сообщение об ошибке. А в форуме - выложить это сообщение - полностью, без корректирования и усечения.

    Формально запрос содержит несколько ошибок и недочётов.

    • Основная ошибка, вернее, опечатка - это WARCHAR вместо VARCHAR. Она фатальна.
    • Вторая по тяжести ошибка - это использование служебного слова number в качестве имени поля. В части диалектов SQL это слово - зарезервированное, и тогда эта ошибка тоже фатальна.
    • Третье - это скорее не ошибка, а самообман. Речь об указании длины для полей типа INT. В подавляющем большинстве диалектов, где указание длины допускается, оно просто игнорируется, а потому указание просто не имеет смысла. Если для поля number требуется ограничить возможные значения двумя цифрами, разумнее использовать поле типа TINYINT с соответствующим CHECK constraint.
    • Ну и длина поля типа VARCHAR - опять же ограничение в 55 символов разумнее делать с помощью CHECK constraint, а длину поля задавать максимальную, не приводящую к увеличению потребляемого дискового пространства. С учётом того, как хранятся строки переменной длины, VARCHAR(255) в большинстве диалектов будет наилучшим решением.
    Ответ написан
    Комментировать