2013-10-03 4 views
3

У меня есть три образца таблицы. Я использовал mysql для хранения данных в базе данныхЯвляются ли данные, хранящиеся в таблицах чувствительными к регистру?

+--------------------------+ 
| Table-1     | 
+--------------------------+ 
| Sl.No | Name | City  | 
+-------+------+-----------+ 
| 1 | Carl | Australia | 
+-------+------+-----------+ 

+--------------------------+ 
| Table-1     | 
+--------------------------+ 
| Sl.No | Name | City  | 
+-------+------+-----------+ 
| 1 | carl | australia | 
+-------+------+-----------+ 

+--------------------------+ 
| Table-1     | 
+--------------------------+ 
| Sl.No | Name | City  | 
+-------+------+-----------+ 
| 1 | CARL | AUSTRALIA | 
+-------+------+-----------+ 
  • ясно видим одну строку данных в каждой таблице
  • характер данных такой же

, что я сделал, у меня есть используются разные буквы букв, некоторые - заглавные буквы, а некоторые - строчные буквы.

Сохранены ли данные в регистре базы данных?

+3

«с учетом регистра» с какой целью? Сохраненные данные - это просто данные. Это не интерпретируется как что-либо, а не как код, это просто необработанные данные. Все, что вы * делаете * с этими данными, может быть или не быть чувствительным к регистру. На уровне необработанных данных двоичное представление «Carl» и «CARL» различно, поэтому данные разные. Но все, что использует эти данные, может не заботиться об этой разнице. – David

+0

Данные хранятся так, как они были введены (колпачки, строчные буквы, микс), но операторы выбора MyQL SQL по умолчанию не чувствительны к регистру: http://stackoverflow.com/questions/7857669/mysql -case-sensitive-query –

ответ

3

Да, база данных хранит данные, как вы ее отправляете.

если вы скажете:

INSERT INTO MyTable (LowerCase, UpperCase) VALUES ("abcd", "ABCD"); 

она вставит:

LowerCase | UpperCase 
abcd  | ABCD 

если вы

INSERT INTO MyTable (LowerCase, UpperCase) VALUES ("AbCd", "aBcD"); 

она вставит:

LowerCase | UpperCase 
AbCd  | aBcD 

это зависит от вас, чтобы дезинфицировать входы к корпусу, который вы хотите, или просто отпустить его, как указано.

однако, когда я делаю

SELECT * FROM MyTable WHERE LowerCase="abcd"; 

он возвращает обе записи.

3

Данные просто хранятся как необработанные данные. Однако, если вы хотите получить данные в любом конкретном формате, вы можете отформатировать его. Вы можете вставить данные в соответствии с вашим желанием, однако внутренне они интерпретируются одинаково, т.е. ABC is same as abc and aBc

По умолчанию запросы MySQL не учитывают регистр.

От MySQL site

случае чувствительность базовой операционной системы играет роль в случае чувствительности имен баз данных и таблиц. Это означает, что базы данных и имена таблиц не являются регистрозависимыми в Windows, а случай чувствителен к большинству разновидностей Unix. Одним из примечательных исключений является Mac OS X, основанный на Unix, но использующий тип файловой системы по умолчанию (HFS +), который не чувствителен к регистру. Однако Mac OS X также поддерживает тома UFS, , которые чувствительны к регистру, как и в любом Unix.

На стороне записки: -

Внутри базы данных, все данные хранятся в двоичном формате. У вас могут быть разные типы данных, которые используются компьютером для интерпретации того, как показывать данные пользователю, но это всего лишь маска.

Смежные вопросы