Язык запросов SQL



   Factoringconcurrent      Мачеха любит инцест pornozam.com       отели сиде

Язык запросов SQL

Добро пожаловать в область разработки баз данных, выполняемой с помощью стандартного языка запросов SQL. В системах управления базами данных (СУБД) имеется много инструментов, работающих на самых разных аппаратных платформах. Различия между этими инструментами могут быть очень существенными, но все они имеют одну общую черту — доступ к данным и их обработка выполняются с помощью SQL. Зная SQL, вы можете создавать реляционные базы данных и получать из них полезную информацию.
Системы управления базами данных играют жизненно важную роль во многих организациях. Люди часто думают, что создание и поддержание этих систем — очень сложное занятие, удел "жрецов" баз данных, которым открыта истина, недоступная простым смертным. Эта книга напрочь отметает мистику, связанную с базами данных.
Цель книги состоит в том, чтобы научить вас создавать реляционные базы данных и извлекать из них ценную информацию с помощью SQL — международного стандартного языка, используемого во всем мире для создания и поддержки реляционных баз данных. В пятом издании книги рассказывается о последней версии этого языка, SQL:2003.
В книге речь идет не о том, как проектировать базу данных, поскольку на эту тему написано много хороших книг. Предполагается, что уже существует подходящий проект базы. Здесь будет показано, как реализовать этот проект с помощью SQL. Если же у вас есть подозрение, что имеющийся проект не очень хорош, то исправьте его во что бы то ни стало, пока еще не начали создавать саму базу данных. Чем раньше вы обнаружите и исправите недостатки разработанного проекта, тем дешевле вам обойдутся те исправления, которые все-таки придется делать.
Если вам надо хранить данные в СУБД или получать их оттуда, то практическое знание SQL поможет вам делать свою работу намного лучше. Чтобы использовать SQL, не нужно быть программистом и знать программные языки, такие как COBOL, С или Basic. Синтаксис языка SQL основан на упрощенном синтаксисе английского.
А если вы все-таки программист, то сможете использовать SQL в своих программах. С его помощью у обычных языков программирования появляется мощный аппарат обработки данных. В настоящей книге рассказывается, что именно нужно знать, чтобы реализовать в своих программах богатый набор возможностей, предоставляемых SQL.

Введение
Добро пожаловать в область разработки баз данных, выполняемой с помощью стандартного языка запросов SQL. В системах управления базами данных (СУБД) имеется много инструментов, работающих на самых разных аппаратных платформах. Различия между этими инструментами могут быть очень существенными, но все они имеют одну общую черту — доступ к данным и их обработка выполняются с помощью SQL.

Основы реляционных баз данных
SQL ( Structured Query Language — язык структурированных запросов) — это стандартный язык, предназначенный для создания баз данных, добавления новых и поддержки имеющихся данных, а также извлечения требуемой информации. В зависимости от используемой теоретической модели, базу данных относят к одному из нескольких типов. Язык SQL был создан для работы с данными из тех баз, которые следуют реляционной модели.

Работа с данными
Что такое база данных
Размер и сложность базы данных
Что такое система управления базами данных
Схема инфо системы на основе СУБД
Плоские файлы
Модели баз данных
Реляционная модель
Внимание
Почему реляционная модель лучше

Основы SQL
Что такое SQL Заблуждения, связанные с SQL Взгляд на разные стандарты SQL Знакомство со стандартными командами и зарезервированными словами SQL Представление чисел, символов, дат, времени и других типов данных Неопределенные значения и ограничения Использование SQL в системе клиент/сервер SQL в сети

Чем является SQL и чем он не является
(Очень) Короткая история
Команды SQL
Зарезервированные слова
Типы данных
Точные числовые типы
Тип INTEGER
Тип SMALLINT
Тип BIGINT
Тип NUMERIC

Компоненты SQL
SQL — это язык, специально разработанный, чтобы создавать и поддерживать данные в реляционных базах. И хотя компании, поставляющие системы для управления такими базами, предлагают свои реализации SQL, развитие самого языка определяется и контролируется стандартом ISO/ANSI. Этот стандарт пересматривался последний раз в 2003 году. Все реализации в большей или меньшей степени отличаются от стандарта.

Язык определения данных
Создание таблиц
Таблица CUSTOMER
Место для представления
Однотабличное представление
Создание представления
Создание многотабличного представления
Таблицы базы данных магазина спорттоваров
Структура базы данных магазина спорттоваров
Создание многотабличного

Создание и поддержка простой базы данных
В течение своей истории компьютерные технологии менялись так быстро, что в череде их технологических "поколений" иногда нетрудно и запутаться. Вначале для работы с большими базами данных использовались языки высокого уровня, так называемые языки третьего поколения — FORTRAN, COBOL, Basic, Pascal и С. Затем вошли в употребление языки, специально предназначенные для использования с базами данных, например dBASE, Paradox и R:BASE. (А к какому поколению отнести эти языки?

Создание простой БД с RAD инструментом
Правдоподобный сценарий
Экран появившийся при создании
Экран проекта дает полный контроль
Диалоговое окно создания таблицы
Значения по умолчанию для свойств
Диалоговое окно создания таблицы
Поле Имя таблицы в окне Сохранить как
Внимание
Диалоговое окно определения первичного ключа

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

Проектирование базы данных
Действие 1 определение объектов
Действие 2 определение таблиц и столбцов
Внимание
Действие 3 точное определение таблиц
Таблицы базы данных VetLab
Таблицы и связи базы данных VetLab
Ускорение работы БД с помощью ключей
Первичные ключи
Работа с индексами

Манипуляции данными из базы
Работа с данными Получение из таблицы нужных данных Вывод информации, выбранной из одной или множества таблиц Обновление информации, находящейся в таблицах и представлениях Добавление новой строки в таблицу Изменение всех или только некоторых данных, находящихся в строке таблицы Удаление строки таблицы

Получение данных
Создание представлений
Создание представлений из таблиц
Представление ORDERS_BY_STATE
Создание представления с условием выборки
Представление REPORTINGJAG (задержка
Представление с модифицированным атрибутом
Представление созданное
Обновление представлений
Добавление новых данных

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

Значения
Значения типа записи
Литеральные значения
Примеры литералов различных типов данных
Переменные
Специальные переменные
Ссылки к столбцам
Выражения со значением
Строковые выражения со значением
Числовые выражения со значением

Сложные выражения со значением
SQL был назван подъязыком данных. Фактически единственная задача этого языка состоит в том, чтобы работать с информацией из базы данных. В SQL нет многих возможностей обычного процедурного языка. В результате, если разработчики используют SQL, то для организации выполнения программ им приходится думать о совмещении кода базового языка с кодом SQL. Это усложняет разработку программы и отрицательно сказывается на ее производительности.

Условные выражения GASC
Использование CASE с условиями поиска
Обновление значений на основе условия
Обход условий вызывающих ошибки
Использование выражения CASE со значениями
Специальное выражение CASE — NULLIF
Специальное выражение CASE — COALESCE
Преобразование типов данных с CAST
Использование выражения CAST внутри SQLкода
Использование выражения CAST при

Пристрелка к нужным данным
У системы управления базой данных есть две главные обязанности: хранение данных и обеспечение к ним легкого доступа. В хранении данных нет ничего особенного, ту же работу может выполнять и шкаф. А что действительно трудно — так это обеспечить удобный доступ к данным. Для этого необходимо иметь возможность выловить небольшое количество нужных данных из океана ненужных.

Уточняющие предложения
Уточняющие предложения и их назначение
Предложения From
Предложения WHERE
Предикаты сравнения
Предикаты сравнения языка SQL
SIMILAR
NULL
Внимание
ALL SOME ANY

Реляционные операторы
SQL — это язык запросов, используемый в реляционных базах данных. Почти во всех примерах предыдущих глав рассматривались простые базы данных с одной таблицей. Теперь настало время показать, в чем же состоит реляционность реляционной базы. Вообще говоря, эти базы называются "реляционными" потому, что состоят из множества связанных друг с другом таблиц (а "связанные друг с другом" — это по-английски "related").

UNION
Внимание
INTERSECT
EXCEPT
Операторы объединения
Простой оператор объединения
Объединение основанное на равенстве
Перекрестное объединение
Естественное объединение
Условное объединение

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

Зачем использовать подзапрос
Что делают подзапросы
Вложенные подзапросы - наборы строк
Таблица PRODUCT
Таблица COMPONENT
Таблица COMPOSED
Подзапросы перед которыми стоит IN
Подзапросы перед которыми стоит NOT IN
Вложенные запросы возвращающие 1 значение
Таблица CUSTOMER

Рекурсивные запросы
SQL-92 и более ранние версии часто критиковали за отсутствие реализации рекурсивной обработки. Многие важные задачи, которые трудно решить другими средствами, легко решаются с помощью рекурсии. В SQL: 1999 появились расширения, позволяющие создавать рекурсивные запросы. Благодаря этим расширениям мощь языка SQL существенно возрастает.

Что такое рекурсия
Результат вызова spiral(1)
Маленькие трудности
Сбой недопустим
Что такое рекурсивный запрос
Где можно использовать запрос
Авиарейсы компании Vannevar Airlines
Трудный способ
Экономия времени с рекурсивным запросом
Таблица ReachableFrom

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

Язык управления данными как SQL
Уровни пользовательского доступа
Администратор базы данных
Владельцы объектов базы данных
"Публика"
Иерархическая структура полномочий доступа
Предоставление полномочий пользователям
Роли
Вставка данных
Просмотр данных

Защита данных
Каждый слышал о законе Мерфи, который формулируется обычно так: "Если какая-нибудь неприятность может случиться, она случается". Большую времени дела идут хорошо, и мы потешаемся над этим псевдозаконом. Временами нам даже кажется, что мы из тех немногих счастливчиков, над кем не властен один из основных законов мироздания. Даже если неприятности все-таки происходят, то мы обычно легко с ними справляемся.

Угрозы целостности данных
Нестабильность платформы
Внимание
Аппаратный сбой
Одновременный доступ
Проблемы взаимодействия транзакций
Последовательное выполнение исключает
Внимание Последовательное выполнение
Использование транзакций SQL Одним
Оператор COMMIT Хотя в SQL 2OO3

Использование SQL в приложениях
Хотя синтаксис языка SQL похож на синтаксис английского языка, изучить SQL все равно нелегко. Подавляющее большинство сегодняшних пользователей им не владеют в достаточной мере. И можно предположить, что даже если эта книга и завоюет широкую популярность, то все равно подавляющее большинство компьютерных пользователей так никогда и не будут свободно владеть SQL. Если обычному пользователю поставить задачу, связанную с базой данных, он и не подумает садиться к терминалу и вводить оператор SELECT.

SQL в приложении
Внимание
Сильные и слабые стороны SQL
Сильные и слабые стороны процедурных языков
Трудности совместного использования SQL
Противоположные режимы работы
Несовместимость типов данных
SQL код в программе на процедурном языке
Встроенный SQL
Объявление базовых переменных

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

ODBC
Интерфейс ODBC
Компоненты ODBC
ODBC в среде клиент/сервер
ОDBC и Internet
Система клиент/сервер с системой на Web
Серверные расширения
Система базы данных на основе Web
Клиентские расширения
Вспомогательные приложения

SQL 2003 и XML
Одной из самых существенных новых функциональных возможностей языка SQL:2003 является поддержка файлов XML (extensible Markup Language — расширяемый язык разметки), которые все больше становятся универсальным стандартом обмена данными между разнородными платформами. Для XML не имеет значения, с какой средой приложения, операционной системой или аппаратным обеспечением работает пользователь, которому предоставляются данные.

Как XML связываемся с SQL
Тип данных XML
Когда используются XMLданные
Когда ХМLданные не используются
Преобразование из SQL в XML и наоборот
Преобразование наборов символов
Преобразование идентификаторов
Преобразование типов данных
Преобразование таблиц
Обработка неопределенных значений

Unix Man (Справочное руководство)

Подробное описание команд операционной системы Unix. Все материалы представлены в алфавитном порядке.

A.OUT(5)
Функция abort работает так же, как системный вызов , но вместо просто выхода (завершения процесса) abort посылает сигнал SIGABRT (6) вызывающему процессу. Если сигнал SIGABRT не перехватывается и не игнорируется, то прежде, чем он будет послан, выталкиваются все буфера, связанные со стандартным пакетом ввода/вывода , и порождается файл с образом памяти.

A.OUT(5)
A.OUT(5) - 2
A.OUT(5)
A.OUT(5) - 2
A64L(3)
ABORT(3C)
ABS(3C)
ACCEPT(1M)
ACCESS(2)
ACCESS(3)

BACKUP(1)
Команда backup копирует все файлы, измененные после определенной даты в date параметра filesystem. Параметр key задает дату и другие опции резервной копии backup и состоит из символов следующего множества 0123456789kfusd. Значения этих символов описаны ниже:

BACKUP(1)
BACKUP(1) - 2
BACKUP(8)
BACKUP(8) - 2
BADTRK(8)
BADTRK(8) - 2
BADTRK(8) - 3
BANNER(1)
SH(1)
BCOPY(1M)

HYPOT(3M)
Если к переполнению приводит попытка представления корректного результирующего значения, то функция hypot возвращает значение HUGE [см. ], а внешней переменной errno присваивается значение ERANGE. Изложенная процедура обработки ошибок может быть изменена посредством функции

HYPOT(3M)
HYPOT(3M)
CAL(1)
CALENDAR(1)
MALLOC(3C)
CANCEL(1)
CAPINFO(1)
CAPTOINFO(1M)
CAPTOINFO(1M) - 2
CAT(1)

CURSES(3X)
Забыть информацию о том, какие части окна изменились (эта информация используется для оптимизации вывода). Считать, что все окно требует перерисовки. Это часто бывает необходимо для пересекающихся окон, так как изменение одних окон вызывает изменение и других, но информация об этих изменениях в структурах данных других окон не отражается. Обращение к touchline говорит о том, что изменилось count строк окна, начиная со строки с номером start.

CURSES(3X) - 1
CURSES(3X) - 2
CURSES(3X) - 3
CURSES(3X) - 4
CURSES(3X) - 5
CURSES(3X) - 6
CURSES(3X) - 7
CURSES(3X) - 8
CURSES(3X) - 9
CURSES(3X) - 10

DAEMON.MN(7)
При вызове демон создает много копий самого себя, по одной копии для каждой последовательной строки, используемой в сети. Каждая копия открывает последовательную строку, создает начальное сообщение для файла LOG и ждет ответа от демона на другом конце. Начальное сообщение выдает имена устройств, которые следует подсоединить, последовательную строку, которую надо использовать, и текущую дату и время. Если демон получает правильный ответ, он вырабатывает последовательную связь и добавляет к файлу LOG сообщение "первое подтверждение связи завершено". Если ответа нет, то демон безразлично ждет.

DAEMON.MN(7)
DAEMON.MN(7)
DATE(1)
DBM(3)
DBM(3) - 2
Dbminit, fetch, store, delete, firstkey, nextkey
DBM(3)
DBM(3) - 2
Dbminit, fetch, store, delete, firstkey, nextkey
Dbminit, fetch, store, delete, firstkey, nextkey

ECHO(1)
Команда echo выдает на стандартный вывод свои аргументы, разделяя их пробелами и выдавая в конце символ перевода строки. Кроме того, поддерживаются следующие C-подобные соглашения о задании управляющих символов (не забывайте об особой трактовке shell'ом символа \):

ECHO(1)
ECVT(3C)
ED(1)
ED(1) - 2
ED(1) - 3
ED(1) - 4
ED(1) - 5
ED(1) - 6
ED(1) - 7
ED(1) - 8

GETPWENT(3C)
При первом вызове функция getpwent возвращает указатель на первую структуру типа passwd в файле; при следующем вызове возвращается указатель на следующую структуру; поэтому последовательные вызовы функции можно использовать для просмотра всего файла. Функция getpwuid ищет с начала файла строку, содержащую заданный идентификатор пользователя uid, и возвращает указатель на структуру, соответствующую искомой строке. Функция getpwnam ищет с начала файла строку, содержащую специфицированное входное имя name и возвращает указатель на соответствующую структуру. В случае неудачного поиска (в том числе из за ошибки чтения) описанные функции возвращают пустой указатель NULL.

GETPWENT(3C)
FLOOR(3M)
FLOOR(3M)
FACTOR(1)
FALSE(1)
FCLOSE(3S)
FCNTL(2)
FCNTL(2) - 2
FCNTL(2) - 3
FCNTL(5)

GAMMA(3M)
При неотрицательных аргументах функция gamma возвращает значение HUGE [см. ], а внешней переменной errno присваивается значение EDOM. В стандартный протокол будет выдано сообщение о попадании в точку сингулярности. Если представление корректного результирующего значения приводит к переполнению, то функция gamma возвращает значение HUGE, а переменной errno присваивается значение ERANGE.

GAMMA(3M)
GAMMA(3M)
ECVT(3C)
GDEV(1G)
GED(1G)
GED(1G) - 2
GED(1G) - 3
GED(1G) - 4
GED(1G) - 5
GET(1)

H2PH(1)
h2ph переводит указанный файл заголовков C в файл заголовков формата Perl. Если аргумент не указан, то файл читается со стандартного ввода и пишется на стандартный вывод.

H2PH(1)
HALTSYS(ADM)
HASHCHECK(1)
HASHMAKE(1)
HSEARCH(3C)
HSEARCH(3C) - 2
HD(1)
HD(HW)
HD(HW) - 2
HD(HW) - 3

ID(1)
Команда id выдает на стандартный вывод сообщение, содержащее идентификатор пользователя, идентификатор группы и соответствующие текстовые имена для текущего процесса. Если действующий и реальный идентификаторы различны, выдаются оба.

ID(1)
IDLEOUT(8)
IMACCT(1)
IMAGEN(7)
IMAGEN(7) - 2
IMPRINT(1)
Man pages на русском
Man pages на русском - 2
Man pages на русском - 3
INFOCMP(1M)

BESSEL(3M)
Функции j0 и j1 возвращают значения функций Бесселя первого рода, порядка 0 и 1 соответственно, для заданного аргумента x. Функция jn возвращает значение функции Бесселя первого рода, порядка n для заданного аргумента x.
Функции y0 и y1 возвращают значения функций Бесселя второго рода (или, иначе, функций Неймана), порядка 0 и 1, соответственно для заданного аргумента x. Функция yn возвращает значение функции Бесселя второго рода, порядка n для заданного аргумента x. Значение x должно быть положительным.

BESSEL(3M)
BESSEL(3M)
BESSEL(3M)
JOIN(1)
DRAND48(3C)
DRAND48(3C) - 2

KBMODE(ADM)
Эта команда может быть использована для определения того, поддерживает ли ваша клавиатура режим AT. Если да, то эта утилита может осуществлять переключение между режимами AT и XT. Если задан аргумент file, то он должен представлять собой tty-устройство одного из экранов, связанных с этой клавиатурой.

KBMODE(ADM)
KCLT_CREATE
KEYBOARD(HW)
KEYBOARD(HW) - 2
KEYBOARD(HW) - 3
KEYBOARD(HW) - 4
KEYBOARD(HW) - 5
KEYBOARD(HW) - 6
KEYBOARD(HW) - 7
KILL(1)

L3TOL(3C)
Функция l3tol преобразует список из n трехбайтных целых, упакованных в цепочку символов, в список длинных целых чисел. Указателем на цепочку является аргумент cp, на список длинных целых - lp.
Функция ltol3 осуществляет обратное преобразование из длинных целых (lp) в трехбайтные целые числа (cp). Описанные функции полезны при работе с файловой системой, поскольку номера блоков являются трехбайтными целыми числами.

L3TOL(3C)
A64L(3)
LABELIT(1M)
LAST(1)
LBP(1)
Lckclnt
DRAND48(3C)
DRAND48(3C) - 2
LD(1)
LD(1) - 2

M4(1)
Макропроцессор m4 предназначен для макрогенерации на предварительном проходе в языках RATFOR, C и других. Все файлы-аргументы обрабатываются по очереди. Если файлы не указаны, или в качестве имени файла задан -, то читается стандартный ввод. Обработанный текст записывается на стандартный вывод.

M4(1)
M4(1) - 2
M68K(1)
MACHID(1)
MACHINE(HW)
MAIL(1)
MAIL(1) - 2
MAIL(1) - 3
MAILX(1)
MAILX(1) - 2

NAP(3)
Ncheck без аргументов генерирует список полных имен и номеров индексных дескрипторов всех файлов в наборе файловых систем, заданных в /etc/mnttab. К именам файлов каталогов добавляются два символа "/.". Опция -i ограничивает выдачу только теми файлами, номера индексных дескрипторов которых перечисляются вслед за этой опцией. Опция -a разрешает выдачу имен . и .. , которые обычно подавляются. Опция -s ограничивает выдачу только специальными файлами и файлами с режимом проверки права доступа; она предназначается для обнаружения скрытых нарушений системы защиты. Вместо списка файловых систем, используемых по умолчанию, можно задать одну единственную файловую систему filesystem.

NAP(3)
WAITSEM(3)
Ncftp
Ncftp - 2
Ncftp - 3
Ncftp - 4
Ncftp - 5
NCHECK(8)
NCHECK(1M)
NETUTIL(8)

OD(1)
Интерпретировать байты как коды ASCII. Некоторые служебные символы выводятся по соглашениям, принятым в языке C: пусто=\0, забой=\b, переход_к_новой странице=\f, перевод_строки=\n, возврат_каретки=\r, табуляция=\t; все остальные выводятся как восьмеричные числа из 3 цифр.
Выдавать 16-разрядные слова в виде десятичных чисел без знака.
Выдавать 16-разрядные слова в восьмеричном виде.
Выдавать 16-разрядные слова в виде десятичных чисел со знаком.
Выдавать 16-разрядные слова в шестнадцатеричном виде.

OD(1)
IPR(1)
OPEN(2)
OPEN(2) - 2
DIRECTORY(3X)
DIRECTORY(3X) - 2

PACK(1)
Команда pack предпринимает попытку сохранить указанные файлы в сжатой форме, то есть упаковать информацию. Когда только возможно (и имеет смысл), каждый входной файл заменяется упакованным вариантом с именем файл.z, который имеет тот же режим доступа, те же даты доступа и модификации, того же владельца. Опция -f вызывает принудительную упаковку файла. Она используется для того, чтобы упаковать весь каталог, даже если для некоторых файлов это невыгодно. Если команда выполняется успешно, то исходный файл удаляется. Упакованные файлы могут быть преобразованы в свою первоначальную форму с помощью команд или .

PACK(1)
PAGESIZE(1)
PARALLEL(HW)
Passmgmt
Passmgmt - 2
PASSWD(4)
PASSWD(1)
PASTE(1)
PAUSE(2)
PCAT(1)

QSORT(3C)
Процедура qsort реализует алгоритм быстрой сортировки таблицы данных на своем месте. Аргумент base является указателем на начало таблицы. Nel - число элементов в таблице. Compar - функция сравнения, аргументами которой при вызове служат два указателя на сравниваемые элементы. В соответствии с тем, какое целое число она возвращает: меньшее нуля, равное нулю или большее нуля, первый аргумент считается меньшим, равным или большим по отношению ко второму.

QSORT(3C)
QUOT(1)

RAMDISK(HW)
Драйвер устройства ramdisk обеспечивает блочный интерфейс к памяти. ramdisk можно использовать как и любое другое блочное устройство, включая установку файловых систем с помощью mkfs(8). Существует восемь типов доступных псевдодисков.
Характеристики файла ramdisk определяются малым числом устройства. Биты этого числа содержат информацию о размере устройства, его долговечности и номере одного из восьми псевдодисков.

RAMDISK(HW)
RAMDISK(HW) - 2
RAMDISK(HW) - 3
RAND(3C)
RANDOM(1)
RANLIB(1)
RATFOR(1)
RC0(1M)
RC2(1M)
RCMD(1)

SACT(1)
Команда sact выдает информацию о невыполненных командах delta для указанного SCCS-файла. Такая ситуация возникает, если для файла была сделана команда get -e без последующего выполнения delta. Если указано имя каталога, sact обрабатывает все файлы в этом каталоге, начинающиеся с s.; файлы, к которым нет доступа на чтение, игнорируются без дополнительных сообщений. Если указано имя -, происходит чтение со стандартного ввода; каждая строка при этом трактуется как имя SCCS-файла, подлежащего обработке.

SACT(1)
SAG(1G)
SAR(1)
SAR(1M)
SAR(1M) - 2
SAVETO(1M)
SCANF(3S)
SCANF(3S) - 2
SCC(1)
SCCSDIFF(1)

STDIPC(3C)
Все средства обмена между процессами требуют от пользователя передачи ключа системным вызовам , и , предоставляющим идентификаторы очередей сообщений. Один из предлагаемых способов формирования ключа - использование описываемой ниже функции ftok. Другой путь составления ключей - поместить идентификатор проекта в старший байт и использовать оставшуюся часть как порядковый номер. Есть много других способов формирования ключей, но для каждой системы необходимо определить стандарт на их формирование. Если стандарт не соблюдается, то возможно, что не связанные между собой процессы будут непреднамеренно конфликтовать. Следует настоятельно рекомендовать помещать в старший байт ключа символ, каким-либо образом идентифицирующий проект; тогда ключи не будут пересекаться в пределах данной системы.

STDIPC(3C)
STIME(2)
DBM(3)
DBM(3) - 2
STRACE(1M)
STRING(3C)
STRING(3C)
STRCLEAN(1M)
STRING(3C)
STRING(3C)

TABS(1)
Посредством команды tabs устанавливают позиции табуляции пользовательского терминала в соответствии с заданной разметкой. Предыдущие установки отменяются. Терминал должен допускать переустановку позиций табуляции.

TABS(1)
TABS(1) - 2
TAIL(1)
TALK(1)
TRIG(3M)
TRIG(3M)
SINH(3M)
SINH(3M)
TAPE(HW)
TAPE(1)

U3B(1)
Система завершает работу. Все пользовательские процессы терминируются, буфера выталкиваются и корневая файловая система размонтируется. Последующие действия определяются значением аргумента fcn; на разных машинах выполняются разные действия в силу разных аппаратных возможностей. Самым разумным является перезапуск системы путем передачи управления программе загрузки, хранящейся в ПЗУ. A_REBOOT Система немедленно останавливается без каких-либо действий. Как и в предыдущем случае, дальнейшие действия определяются значением аргумента fcn. A_REMOUNT Корневая файловая система вновь монтируется после того, как она была зафиксирована. Это может быть сделано только в процессе загрузки.

U3B(1)
UADMIN(2)
UADMIN(1M)
ULIMIT(1)
MNT, UMNT
MNT, UMNT - 2
UMOUNT(2)
UMOUNT(8)
UNAME(2)
UNAME(1)

VAL(1)
Команда val определяет, является ли указанный файл SCCS-файлом с атрибутами, соответствующими указанным. Опции могут задаваться в любом порядке.
У команды val есть специальный аргумент, -, который приводит к чтению строк со стандартного ввода до тех пор, пока не встретится конец файла. Каждая строка при этом обрабатывается независимо, как командная строка с опциями и аргументами.

VAL(1)
VALUES(5)
VARARGS(3)
VARARGS(5)
PRINTF(3S)
PRINTF(3S) - 2
PRINTF(3S) - 3
VAX(1)
VC(1)
VC(1) - 2

W(1)
Команда 'w' печатает суммарную информацию об активности системы, включая данные о том, что делает каждый пользователь. Заглавная строка показывает текущее время дня, длительность работы системы, число пользователей, зарегистрированных в системе. В системах, которые обрабатывают необходимые данные, в заглавной строке также показывается средняя загрузка системы. Средняя загрузка представляет собой число процессов, находящихся в очереди на выполнение от 1,5 до 15 минут.

W(1)
WAIT(2)
WAIT(1)
WAITSEM(3)
WALL(8)
WALL(1M)
WC(1)
WHAT(1)
Apropos(1)
WHEREIS(1)

XARGS(1)
Команда xargs об единяет зафиксированный набор заданных в командной строке начальных_аргументов с аргументами, прочитанными со стандартного ввода, и выполняет указанную команду один или несколько раз. Число аргументов, которые должны быть прочитаны для каждого вызова команды, и способ, которым они об единяются, определяются заданными опциями.

XARGS(1)
XARGS(1) - 2
XARGS(1) - 3
XLIST(3)
XREF(1)
XSTR(1)

BESSEL(3M)
Функции y0 и y1 возвращают значения функций Бесселя второго рода (или, иначе, функций Неймана), порядка 0 и 1, соответственно для заданного аргумента x. Функция yn возвращает значение функции Бесселя второго рода, порядка n для заданного аргумента x. Значение x должно быть положительным.

BESSEL(3M)
BESSEL(3M)
YACC(1)
YES(1)
BESSEL(3M)
YPCAT(1)
YPMATCH(1)
PASSWD(1)

COMPRESS()
Команда compress берет файл, заданный параметром file, и сжимает его до минимально возможного размера, создавая при этом выходной файл cо сжатыми данными и удаляя, если не задана опция -c, первоначальный файл. Сжатие достигается кодированием одинаковых строк в файле. Команда uncompress восстанавливает ранее сжатый файл в его первоначальное состояние и удаляет версию сжатого файла. Команда zcat используется для вывода файла на экран, при этом файл восстанавливается из сжатого состояния и производится его сцепление с экранным или стандартным выводом, после чего версия сжатого файла не уничтожается.

COMPRESS()
ZDIFF(1)
ZDIFF(1)
ZFORCE(1)
ZGREP(1)
ZIPGREP(1)

Приемы профессиональной работы в UNIX

Непрерывное снижение цен, рост производительности в наше время и ожидаемое появление новых микро- и супер-микрокомпьютеров делают мощь системы UNIX доступной для все большего круга пользователей. Системы UNIX или типа UNIX работают на любых машинах, от уровня PC-XT до AT и выше. Доступность больших объемов оперативной памяти и мощных микропроцессоров привела к возрастанию интереса к многозадачности, системам мультипроцессирования - сфере, в которой UNIX имеет солидную репутацию.
Однако применение UNIX с максимальной отдачей - дело нелегкое. Люди годами высказывали неудовлетворение тем, что она не является "дружественной" по отношению к пользователю - и это разумная критика, хотя на самом деле UNIX содержит средства для построения интерфейсов любого требуемого уровня сложности. Наиболее важная причина трудоемкости эффективного использования UNIX состоит в том, что в системе используются очень плодотворные идеи, не знакомые многим людям, работавшим с более простыми операционными системами. UNIX предоставляет также гораздо больше инструментальных средств, более гибких и с существенно большими возможностями, чем, например, популярная MS-DOS (в чем можно убедиться беглым сравнением соответствующих руководств). Вероятно, Вы, читатель, начинали с изучения UNIX в объеме, достаточном для решения конкретных задач в вашей системе, будь то текстовая обработка и форматирование текстов, программирование или запуск статистических пакетов. Через некоторое время вы, видимо, накопили (от других людей или в результате собственной работы) небольшой набор приемов, включающий, возможно, некоторый опыт простого программирования для интерпретатора командного процессора.

Введение
МНОГООБРАЗИЕ СРЕД
КОМБИНИРОВАНИЕ ПРОДУКТИВНЫХ ИДЕЙ
СОПРОВОЖДЕНИЕ ФАЙЛОВ
Программирование и управление документацией
УПРАВЛЕНИЕ ДЕЛОПРОИЗВОДСТВОМ
ОСВЕДОМЛЕННОСТЬ ПОЛЬЗОВАТЕЛЯ
СИСТЕМА UNIX И АППАРАТУРА
ФИЗИЧЕСКОЕ ПОДКЛЮЧЕНИЕ
ЗАЧЕМ НАМ ИЗУЧАТЬ АДМИНИСТРИРОВАНИЕ
Способы преобразования
ПЕРЕМЕННЫЕ СРЕДЫ ВЫПОЛНЕНИЯ


SQLсервер в Linux -самостоятельное освоение пакета
Операционная система QNX 4. Архитектура системы
Что такое Linux?
Основы Slackware Linux. Официальный учебник
Linux HOWTO
Linux для пользователя
Основы работы в ОС Linux
Как стать активным сторонником Linux
Linux mini-HOWTO
Руководство администратора Linux по безопасности
Ядро Linux в комментариях
Самоучитель по Linux Red Hat 7.1
Настройка и работа в Linux
С++ для начинающих
Литтон Джози - Верь В Меня
Ремонт и восстановление жестких дисков
F.A.Q. по ремонту и обслуживанию
Unigraphics. Справочник по проектированию деталей из листового металла
Литвиновы Анна И Сергей - Ледяное Сердце Не Болит
Ливадный Андрей - Естественный Отбор