Опубликован: 02.02.2007 | Доступ: свободный | Студентов: 2308 / 208 | Оценка: 4.10 / 3.86 | Длительность: 26:44:00
Урок 23:

Компоненты языка Transact-SQL

Побитные операции

Выполнение побитных операций очень схоже с выполнением логических операций, но в то время как логические операции возвращают результаты, основанные на булевых значениях, побитные операции работают на битовом уровне с числовыми значениями. Побитные операции представлены в таблице 24.7.

Побитные операторы $ и | работают так же, как и их логические собратья, за исключением того, что они сравнивают каждый бит двух значений, а не два значения целиком.

Оператор ^ не имеет соответствующего логического эквивалента. В булевой алгебре, булевое OR (ИЛИ) возвращает TRUE (истина), если хотя бы одно или оба значения есть TRUE (истина). Однако булевое исключающее OR (ИЛИ) возвращает TRUE (истина), если одно, но не оба сравниваемых значения есть TRUE (истина). То же самое делает и оператор ^, который возвращает TRUE (истина), только если одно, но не оба сравниваемых бита есть TRUE (истина).

Таблица 24.7. Побитные операторы.
Оператор Значение
& Побитное AND (И).
| Побитное OR (ИЛИ).
^ Побитное исключающее OR (ИЛИ).
~ Побитное NOT.

Битовое представление

Побитные операции выполняются над целочисленными значениями, использующими каждый бит в числе для указания отдельного свойства или атрибута – эта техника названа битовом представлением (bit packing). По определению, если одно целочисленное число используется для хранения множества свойств, значение не является скалярным и таблица не будет соответствовать нормальной форме.

При данных обстоятельствах вы должны избегать использования битового представления в соответствующей базе данных. Однако битовое представление будет незаменимо при использовании наследуемых данных, и побитные операции будут в данной ситуации весьма удобны.

Используйте побитные операции в операторе SELECT

  1. Для открытия нового окна Query (Запрос), нажмите в панели инструментов анализатора запросов Query Analyzer кнопку New Query (Новый запрос).Query Analyzer откроет пустое окно Query (Запрос).
  2. В панели инструментов анализатора запросов Query Analyzer нажмите кнопку Load Script (Загрузить сценарий).Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).

  3. Выберите файл с именем Bitwise и нажмите кнопку Open (Открыть). Query Analyzer загрузит сценарий в окно Query (Запрос).

  4. Для выполнения запроса в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Execute Query (Выполнить запрос).Query Analyzer отобразит результаты в панели сетки Grids Pane.

  5. Закройте окно Query (Запрос).

Другие операции

Transact-SQL предоставляет еще две полезных операции, которые описаны в таблице 24.8. В "Оператор SELECT" мы уже использовали операцию конкатенации строк +. Операция конкатенации прибавляет содержимое одной строки к другой.

Операция присвоения =, присваивает значение, стоящее справа от, оператора значению, стоящему слева от оператора. Учтите, что здесь порядок отличается от того, который вы изучали в школе: не "a+b=c", а "c=a+b". Мы будем использовать операцию присвоения далее в этом уроке при изучении переменных.

Таблица 24.8. Другие операторы
Оператор Значение
+ Конкатенация строк.
= Присвоение.

Используйте операцию конкатенацию в операторе SELECT

  1. Для открытия нового окна Query (Запрос), нажмите в панели инструментов анализатора запросов Query Analyzer кнопку New Query (Новый запрос).Query Analyzer откроет пустое окно Query (Запрос).
  2. В панели инструментов анализатора запросов Query Analyzer нажмите кнопку Load Script (Загрузить сценарий).Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла сценария).

  3. Выберите файл с именем Concatenation и нажмите кнопку Open (Открыть). Query Analyzer загрузит сценарий в окно Query (Запрос).

  4. Для выполнения запроса в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Execute Query (Выполнить запрос).Query Analyzer отобразит результаты в панели сетки Grids Pane.

  5. Закройте окно Query (Запрос).
Инна Грушецкая
Инна Грушецкая
Сергей Чесноков
Сергей Чесноков