Наборы символов и порядки сопоставления на уровне базы данных

Каждая база данных имеет символьный набор и порядок сопоставления, которые мо­гут быть ненулевыми.


Операторы CREATE DATABASE и ALTER DATABASE имеют необязательные конструкции для спецификации набора символов и порядка сопоставления для базы данных:


CREATE DATABASE имя__базы__д анных


[[DEFAULT] CHARACTER SET имя_яабора]


[[DEFAULT] COLLATE имя_порядка_сопоставления] ALTER DATABASE имя_базы_данных


[[DEFAULT] CHARACTER SET имя__набора]


[[DEFAULT] COLLATE имя__порядка_сопоставления]


Пример:


CREATE DATABASE имя_базы_данных


DEFAULT CHARACTER SET latinl COLLATE latinl_swedish_ci;


MySQL выбирает символьный набор и порядок сопоставления для базы данных сле­дующим образом:



  • Если указаны и CHARACTER SET X, и COLLATE Y, принимается набор символов X и
    порядок сопоставления Y.
  • Если CHARACTER SET X указан без COLLATE, принимается набор символов X и его
    порядок сопоставления по умолчанию.
  • В противном случае принимается символьный набор и порядок сопоставления,
    установленные на сервере.

Синтаксис оператора MySQL CREATE DATABASE.. .DEFAULT CHARACTER SET… анало­гичен стандартному синтаксису SQL CREATE SCHEMA…CHARACTER SET…


Таким образом, существует возможность создавать базы данных с различными набо­рами символов и порядками сопоставления на одном сервере MySQL.

Набор символов и порядок сопоставления по умолчанию, установленный для базы данных, можно прочитать через системные переменные character_set_database и collation_database. Сервер устанавливает значение этих переменных всякий раз, когда меняется база данных по умолчанию. Если в данный момент нет базы по умолчанию, эти переменные принимают значение, равное значению соответствующих переменных уровня сервера, – character_set_server и collation_server

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: