» » » » Денис Колисниченко - Linux: Полное руководство

Денис Колисниченко - Linux: Полное руководство

На нашем литературном портале можно бесплатно читать книгу Денис Колисниченко - Linux: Полное руководство, Денис Колисниченко . Жанр: Программное обеспечение. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале litmir.org.
Денис Колисниченко - Linux: Полное руководство
Название: Linux: Полное руководство
ISBN: -
Год: -
Дата добавления: 3 июль 2019
Количество просмотров: 537
Читать онлайн

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту readbookfedya@gmail.com для удаления материала

Linux: Полное руководство читать книгу онлайн

Linux: Полное руководство - читать бесплатно онлайн , автор Денис Колисниченко
Данная книга представляет собой великолепное руководство по Linux, позволяющее получить наиболее полное представление об этой операционной системе. Книга состоит из трех частей, каждая из которых раскрывает один из трех основных аспектов работы с Linux: Linux для пользователя, сетевые технологии Linux (и методика настройки Linux-сервера), программирование Linux. В книге охвачен очень широкий круг вопросов, начиная с установки и использования Linux «в обычной жизни» (офисные пакеты, игры, видео, Интернет), и заканчивая описанием внутренних процессов Linux, секретами и трюками настройки, особенностями программирования под Linux, созданием сетевых приложений, оптимизацией ядра и др.Изложение материала ведется в основном на базе дистрибутивов Fedora Cora (Red Hat) и Mandriva (Mandrake). Однако не оставлены без внимания и другие дистрибутивы SuSe, Slackware, Gentoo, Alt Linux, Knоppix. Дается их сравнительное описание, a по ходу изложения всего материала указываются их особенности.Книга написана известными специалистами и консультантами по использованию Linux, авторами многих статей и книг по Linux, заслуживших свое признание в самых широких Linux-кругах. Если вы желаете разобраться в особенностях Linux и познать ее внутренний мир, эта книга — ваш лучший выбор.
Перейти на страницу:

mysql> DELETE * FROM Db WHERE Db="test";

mysql> DELETE * FROM Db WHERE Db="test_%";

mysql> quit

17.5. Введение в язык SQL

17.5.1. Общие понятия

Если вы раньше работали с какой-нибудь СУБД (Система Управления Базой Данных), вы смело можете пропустить этот пункт — ничего нового для себя вы не прочитаете. Но если вы сталкиваетесь с СУБД впервые, без основных терминов вам не обойтись.

♦ Поле (field) — это неделимый элемент данных в БД. Поле имеет имя и тип. Подробнее о типах полей мы поговорим чуть позже.

♦ Запись (record) — набор полей, содержащих связанную информацию. Например, запись с полями C_No, C_Name и C_Address содержит информацию о клиенте — его номер, имя и адрес.

♦ Таблица (table) — это набор записей одинаковой структуры. Если у нас есть запись структуры C_No, C_Name, C_Address, то все записи в таблице Clients будут иметь такую структуру.

♦ База данных (database) — это совокупность связанных таблиц. Например, в одной таблице может храниться информация о клиенте, а в другой — информация о заказе, который сделал клиент.

♦ Индекс (index) — используется для быстрого поиска нужной записи в базе данных. Обычно поиск производится по значению одного поля или по значению нескольких полей.

♦ Первичный индекс (index) — управляет порядком отображения записей в таблице. Поле первичного индекса должно быть уникальным, то есть в одной таблице не должно быть двух записей, в которых это поле принимает одно и то же значение. В нашей таблице Clients, очевидно, первичный индекс должен строиться по полю C_No — по номеру клиента, который должен быть уникален.

♦ Вторичный индекс (secondary index) — в отличие от первичного индекса может строиться по нескольким полям и не обязан быть уникальным. Вторичные индексы используются для связывания таблиц. Индексы также называются ключами.

♦ Запрос (query) — оператор, выбирающий записи и поля, удовлетворяющий заданному условию, из одной или нескольких таблиц.

17.5.2. Краткий практический курс SQL

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

Для описания запросов клиента был разработан целый язык — SQL (Structured Query Language, Структурированный язык запросов). С помощью запросов SQL вы можете:

♦ Создавать базы данных и таблицы,

♦ Добавлять информацию в таблицы.

♦ Удалять информацию,

♦ Модифицировать информацию.

♦ Получать нужные вам данные.

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

Перед началом работы с SQL вам нужно интуитивно понимать, что такое база данных. Если вы имеете представление о ней, можете смело пропустить этот абзац. База данных состоит из таблиц, как книга MS Excel состоит из листов. Каждая таблица состоит из записей, а каждая запись — из полей. Каждое поле имеет свой домен, то есть тип данных, которые можно записать в это поле. Поле типа INT может содержать только целые числа, а поле типа CHAR — строки.

Вот теперь можно приступать к созданию новой базы данных. Для создания баз данных и таблиц в языке SQL обычно используется запрос CREATE. В случае с MySQL для создания базы нужно использовать программу mysqladmin:

$ mysqladmin -u admin -p create sklad

Естественно, пользователь admin должен существовать и обладать соответствующими правами. Откройте созданную базу:

$ mysql -u admin -p sklad

Каждый запрос MySQL должен заканчиваться точкой с запятой. Если вы введете SELECT * FROM test, клиент mysql будет ждать ввода точки с запятой:

->

Давайте договоримся, что будем писать запросы согласно стандарту SQL, то есть для улучшения восприятия будем разбивать их на части. Программа mysql допускает ввод запроса во всю строчку. Например, запрос, записанный в стандарте SQL,

SELECT *

FROM S

WHERE Q > 10

в программе mysql можно записать так:

SELECT * FROM S WHERE Q > 10

Теперь создадим три таблицы — Товар, Клиенты и Заказы.

CREATE TABLE CLIENTS (

 C_NO    int      NOT NULL,

 FIO     char(40) NOT NULL,

 ADDRESS char(30) NOT NULL,

 CITY    char(15) NOT NULL,

 PHONE   char(11) NOT NULL

);

Таблица CLIENTS содержит поля C_NO (номер клиента), FIO (Фамилия, Имя, Отчество), Адрес, Город и Телефон. Все эти поля не могут содержать пустого значения (NOT NULL).

Примечание

Большинство серверов не требуют явного указания NOT NULL, но при этом значение по умолчанию может быть разным: одни сервер инициализируют столбцы значением NULL, а другие — NOT NULL, Поэтому лучше явно указать NOT NULL.

CREATE TABLE TOVAR (

 T_NO  int          NOT NULL,

 DSEC  char(40)     NOT NULL,

 PRICE numeric(9,2) NOT NULL,

 QTY   numeric(9,2) NOT NULL

);

Эта таблица будет содержать данные о товарах. Тип numeric (9,2) означает, что 9 знаков отводятся под целую часть и два — под дробную, QTY — это количество товара на складе.

CREATE TABLE ORDERS (

 O_NO     int          NOT NULL,

 DATE     date         NOT NULL,

 C_NO     int          NOT NULL,

 T_NO     int          NOT NULL,

 QUANTITY numeric(9,2) NOT NULL,

 AMOUNT   numeric(9,2) NOT NULL

);

Эта таблица содержит сведения о заказах — номер заказа (O_NO), дату заказа (DATE), номер клиента (C_NO), номер товара (T_NO), количество (QUANTITY) и стоимость заказа AMOUNT.

Теперь добавим данные в наши таблицы. Добавить данные можно с помощью оператора INSERT:

INSERT INTO CLIENTS

VALUES (1,'Иванов К.П.', 'Ленина 6', 'Кировоград','80522111111');

Добавляемые значения должны соответствовать тому порядку, в котором поля перечислены в операторе CREATE. Если вы хотите добавлять информацию в другом порядке, то вы должны указать этот порядок в операторе INSERT:

INSERT INTO CLIENTS (FIO,ADDRESS,C_NO,PHONE,CITY)

VALUES ('Петров', 'Пушкина 9',2,'-','Кировоград');

С помощью INSERT мы можем устанавливать значения только некоторых полей:

INSERT INTO CLIENTS (C_NO, FIO) VALUES (1,'Петров');

В нашем примере этот запрос выполнен не будет, поскольку все остальные поля равны NULL (пустое значение), а наша таблица пустых значений не допускает.

Добавим данные в таблицу TOVAR:

INSERT INTO TOVAR

VALUES (1,'Монитор LG',550.74);

Обратите внимание, что мы пока еще не указали первичные ключи таблицы, поэтому нам никто не мешает добавить в таблицу одинаковые записи.

Добавить дату в поле DATE можно с помощью функции TO_DATE:

INSERT INTO ORDERS

VALUES (1,TO_DATE('01/01/02,'DD/MM/YY'), 1,1,1,550.74);

Данная запись означает, что первого января 2002 года Иванов И.П. (С_NO = 1) заказал один (QUANTITY = 1) монитор LG (T_NO = l).

Предположим, что нам нужно обновить запись, например, клиент Иванов переехал в другой город. Это делается так:

UPDATE CLIENTS SET CITY = 'Киев' WHERE C_NO = 1;

Теперь удалим всех клиентов, номера которых превышают 10:

DELETE FROM CLIENTS

WHERE C_NO >10;

Если вторая часть запроса DELETE — WHERE — не указана, значит, действие оператора распространяется на все записи указанной таблицы.

Добавление, изменение и удаление записей — это, безусловно, очень важные команды, но чаще всего вы будете использовать запрос SELECT, который выбирает из таблицы данные, удовлетворяющие условию.

Например, для вывода всех записей из таблицы CLIENTS, введите:

SELECT * FROM CLIENTS;

В результате вы получите такой ответ от сервера:

C_NO FIO ADDRESS CITY PHONE

1 Иванов И.П. Ленина 6 Кировоград 80522111111

1 Иванов И.П. Ленина 6 Кировоград 805221111]1

2 Петров В.К. Пушкина 9 Кировоград 80522112111

Обратите внимание на первые две записи — они одинаковые. Теоретически добавление одинаковых записей возможно — мы ведь не указали первичный ключ таблицы. Если вы хотите исключить одинаковые записи из ответа сервера (но не из таблицы!), введите запрос:

SELECT DISTINCT *

FROM CLIENTS;

Если вы хотите вывести только некоторые поля, то запрос должен выглядеть так:

SELECT DISTINCT FIO, PHONE

FROM CLIENTS;

Теперь займемся усложнением наших запросов. Выведем все товары, цена которых превышает 500 рублей.

SELECT *

FROM TOVAR

WHERE PRICE > 500;

Вы можете использовать другие операторы отношений: <,>, = ,<>,

Если ваша компания обслуживает несколько однофамильцев и вы хотите вывести информацию обо всех Ивановых, используйте шаблон LIKE:

Перейти на страницу:
Комментариев (0)