<? include 'head.php' ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
<link rel="stylesheet" href="css.css" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="ru">
<title>Приложение B.</title></head>
<body>
<h1>Приложение B</h1>
<center><hr width="50%"></center>
<h1>ТИПЫ ДАННЫХ В SQL</h1>
<p>Типы данных, распознаваемые с помощью ANSI, состоят из символов и различных 
типов чисел, которые могут классифицироваться как точные числа и приблизительные 
числа.</p>
<p>Точные числовые типы это числа с десятичной точкой или без десятичной 
точки. Приблизительные числовые типы это числа в показательной 
(экспоненциальной по основанию 10) записи.</p>
<p>Для всех прочих типов отличия слишком 
малы чтобы их как-то классифицировать.</p>
<p>Иногда типы данных используют аргумент, который называют размером аргумента, чей 
точный формат и значение меняется в зависимости от конкретного типа.</p>
<p>Значения по 
умолчанию обеспечены для всех типов, если размер аргумента отсутствует.</p>
<h3>ТИПЫ ANSI</h3>
<p>Ниже представлены типы данных ANSI (имена в круглых скобках - это синонимы):</p>
<table><tr><td>TEXT</td><td>ТЕКСТ</td></tr><tr><td>CHAR (или CHARACTER)</td>
<td>Строка текста в реализационно определенном формате. Размер аргумента 
здесь это единственное неотрицательное целое число, которое ссылается к 
максимальной длине строки. Значения этого типа должны быть заключены в 
одиночные кавычки, например, 'text'. Две рядом стоящие одинарные кавычки 
('') внутри строки будут пониматься как одна одинарная кавычка (').</td></tr></table>
<p><b>ПРИМЕЧАНИЕ</b>:<br>
Здесь и далее фраза Реализационно Определенный или Реализационно Зависимый 
указывает, что этот аргумент или формат зависит от конкретной программы в 
которой реализуются данные.</p>
<table><tr><td>EXACT NUMERIC</td><td>ТОЧНО ЧИСЛО</td></tr><tr><td>DEC (или DECIMAL)</td>
<td>Десятичное число, то есть число, которое может иметь десятичную точку. 
Здесь аргумент размера имеет две части: точность и масштаб. Масштаб не может 
превышать точность. Сначала указывается точность, затем - разделительная 
запятая и далее - аргумент масштаба. Точность указывает, сколько значащих цифр 
имеет число. Максимальное десятичное число, составляющее число - 
реализационно определённое значение, равное или больше, чем этот номер. 
Масштаб указывает максимальное число цифр справа от десятичной точки. 
Масштаб = нулю делает поле эквивалентом целого числа.</td></tr>
<tr><td>NUMERIC</td><td>Такое же, как DECIMAL, за исключением того, что максимальное десятичное не может превышать аргумента точности.</td></tr>
<tr><td>INT (или INTEGER)</td><td>Число без десятичной точки. Эквивалентно DECIMAL, но без цифр справа от 
десятичной точки, то есть с масштабом, равным 0. Аргумент размера не используется (он автоматически устанавливается в реализационно-зависимое значение).</td></tr>
<tr><td>SMALLINT</td><td>Такое же, как INTEGER, за исключением того, что, в зависимости от 
реализации, размер по умолчанию может (или может не) быть меньшее чем INTEGER.</td></tr>
<tr><td>APPROXIMATE NUMERIC</td><td>Приблизительное число</td></tr><tr><td>FLOAT</td>
<td>Число с плавающей запятой на базе 10 показательной функции. Аргумент 
размера состоит из одного числа, определяющего минимальную точность.</td></tr>
<tr><td>REAL</td><td>Такое же, как FLOAT, за исключением того, что никакой аргумент размера 
не используется. Точность установлена по умолчанию как реализационно зависимая.</td></tr>
<tr><td>DOUBLE PRECISION (или DOUBLE)</td><td>Такое же, как REAL, за исключением того, что реализационно определяемая 
точность для DOUBLE PRECISION должна превышать реализационно определяемую точность REAL.</td></tr></table>
<hr width="70%">
<h3>ЭКВИВАЛЕНТНЫЕ ТИПЫ ДАННЫХ В ДРУГИХ ЯЗЫКАХ</h3>
<p>Когда используется вложение SQL в другие языки, значения, используемые и 
произведённые командами SQL, обычно сохраняются в переменных главного языка (см.<a href="ch25.php"> 
Главу 25</a>). Эти переменные должны иметь тип данных, совместимый со значениями 
SQL, которые они будут получать.</p>
<p>В дополнениях, которые не являются частью 
официального SQL-стандарта, ANSI обеспечивает поддержку при использовании 
вложения SQL в четыре языка: Паскаль, PL/I, КОБОЛ, и ФОРТРАН. Между прочим, он 
включает определение эквивалентов SQL для данных типов переменных, используемых 
в этих языках.</p>
<p>Эквиваленты типов данных четырёх языков, определенные ANSI:</p>
<h3>PL/I</h3><table><tr><th>SQL ТИП</th><th>ЭКВИВАЛЕНТ PL/I</th></tr><tr><td>CHAR</td><td>CHAR</td></tr><tr><td>DECIMAL</td>
<td>FIXED DECIMAL</td></tr><tr><td>INTEGER</td><td>FIXED BINARY</td></tr><tr><td>FLOAT</td><td>FLOAT BINARY</td></tr></table>
<hr width="50%">
<h3>КОБОЛ</h3>
<table><tr><th>SQL ТИП</th><th>ЭКВИВАЛЕНТ КОБОЛА</th></tr><tr><td>CHAR (<integer>)</integer></td><td>PIC X (<integer>)</integer></td></tr>
<tr><td>INTEGER</td><td>PIC S (<nines>) USAGE COMPUTTATIONAL</nines></td></tr>
<tr><td>NUMERIC</td><td>PIC S (&lt; nines with embedded V &gt;) DISPLAY SING LEADING SEPERATE</td></tr></table>
<hr width="50%">
<h3>ПАСКАЛЬ</h3>
<table><tr><th>SQL ТИП</th><th>ЭКВИВАЛЕНТ ПАСКАЛЯ</th></tr><tr><td>INTEGER</td><td>INTEGER</td></tr>
<tr><td>REAL</td><td>REAL</td></tr><tr><td>CHAR (<length>)</length></td><td>PACKED ARRAY [1..<length>] OF CHAR</length></td></tr></table>
<hr width="50%">
<h3>ФОРТРАН</h3>
<table><tr><th>SQL ТИП</th><th>ЭКВИВАЛЕНТ ФОРТРАНА</th></tr><tr><td>CHAR</td><td>CHAR</td></tr><tr><td>INTEGER</td><td>INTEGER</td></tr>
<tr><td>REAL</td><td>REAL</td></tr><tr><td>DOUBLE PRECISION</td><td>DOUBLE PRECISION</td></tr></table>
</body></html>
<? include 'foot.php' ?>