SQL для кипятильников и чайников ;)

SQL для кипятильников и чайников ;)

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

SQL для кипятильников и чайников ;)

Введение

В жизни каждого программиста наступает момент, когда ему рано или поздно приходится работать с базами данных. У кого-то это просто интерес, у кого-то препятствие на тернистом пути создания программного продукта, а у кого-то приказ начальства. Так же было и в моем случае. До сих пор помню тот момент, когда мой зам.директора сказал мне, что я буду работать с Delphi+Oracle, сказать что я удивился, это значит, ничего не сказать. На тот момент, мои знания в этой области были настолько поверхностны и сумбурны, что я был немного в шоке ;) Как я не старался увильнуть от этой работы, это было невозможно, обходной путь лежал только через увольнение, так что выбора не было, и я решил изучить базы данных и способы взаимодействия к ним. Что же такое база данных (БД) – собственно в её названии и заключена суть ;), это просто архив данных, нужно лишь знать как правильно к ним обратится и взаимодействовать. Вот об этом собственно и будет моя статья.

@ЗАПРОСЫ@

Ну и начнем мы с запросов к БД.
Бывают различные типы запросов, например простейшая выборка:


select * from news

Данный запрос выведет все поля из таблицы news. Если вам нужны определенные поля из таблицы, то запрос примет такой вид:


select title,author from news

будут выведены только поля title и author. Но допустим, вам надо узнать и категорию той или иной новости, тогда запрос будет выглядеть так:


select title,author,name_category from news n,category c where n.id=c.id

Сдесь начало запроса говорит о том, что вы хотите сделать: если выбрать поля то – select, если вставить запись – insert, если удалить таблицу то — drop.
Теперь давайте подробнее рассмотрим данные примеры на практике.

@КОННЕКТ@


Все примеры будут показаны на БД Oracle, а конектится будем через очень хорошую утилиту – PL/SQL Developer:
SQL для кипятильников и чайников ;)
После удачного конекта перед нами появляется окно:
SQL для кипятильников и чайников ;)
Поделим визаульно оконо программы на 4-е части :
SQL для кипятильников и чайников ;)
Окно разделённое на 4-е части.
SQL для кипятильников и чайников ;)
Рассмотрим каждую область по отдельности.
Область № 1 :
SQL для кипятильников и чайников ;)
Область №1 .
Тут находятся таблицы, функции, процедуры, пакеты, представления. Достаточно щёлкнуть на крестик около любой папки и вам станут видны все объекты. Если щёлкнуть правой клавишей мыши, например на Tables, то увидим меню, в котором можно выбрать пункт New, после этого сразу перейдём в окно для создания таблицы. Также, выше есть combobox, где вы можете выбрать MyObjects и вам будут показаны лишь те объекты, которые сделали вы, а если выбрать All Objects, то тут будут показаны все, даже те, которые вы не создавали. Выше комбобокса есть кнопки, опишу 3 из них слева направо:
1.Обновить – если вы создали таблицу и не нашли в списке, то просто обновите дерево и вы увидите вашу таблицу.
2.Развернуть дерево – все объекты в дереве будут показаны.
3.Свернуть дерево – все объекты будут обратно свёрнуты.

Первые шаги работы с Oracle.


Теперь мы переходим к практической части. Для начала давайте создадим нашу первую табличку: нажимаем на кнопку New и выбираем SQL Window :
SQL для кипятильников и чайников ;)
перед нами появляется вот такое окно:
SQL для кипятильников и чайников ;)
Тут мы и напишем наш код запроса. Вот код который создаёт таблицу, к нему я прописал комментарии, вопросов думаю не возникнет :

CREATE --Создание
TABLE  -- Таблицы
PEOPLE --Имя таблички
(
/*Тут перечисляем столбцы с их типами*/
ID NUMBER, -- Используется в основном для свзяки таблицы (служит уникальным идентификатором)    
IM VARCHAR2(15), -- Имя
FM VARCHAR2(30), -- Фамилия
OT VARCHAR2(40)  -- Отчество
COMMENTS VARCHAR2(150)  -- Комментарий
);

Кстати, как и в других ЯП тут есть свои типы — если к примеру в Delphi есть числовой тип(integer), то в SQL будет number. Вот примерно в таком виде мы объявляем поле таблицы:

Имя столбца | Тип столбца | (Количество символов,цифр)

Теперь копируем код в SQL Window, нажимаем F8 или кнопку на области №2(ToolBar):
SQL для кипятильников и чайников ;)
Всё наша таблица создана, теперь смотрим на область №1 и можем увидеть в списке и нашу таблицу, затем щёлкаем по ней правой кнопкой мыши и выбираем Query Data :
SQL для кипятильников и чайников ;)
После этого у нас откроется новое окно, в котором мы увидим нашу таблицу. Пока она у нас пустая, давайте добавим в неё несколько записей:

INSERT INTO PEOPLE(ID, IM, FM, OT, COMMENTS)
      VALUES(1, 'Вася', 'Пупкин', 'Дронcов', 'Живёт в городе Бабруйск');
------------------------------------------------------------------------
INSERT INTO PEOPLE(ID, IM, FM, OT, COMMENTS)
      VALUES(2, 'Игнат', 'Курагов', 'Лолекович', 'Живёт в городе Гандурас');
------------------------------------------------------------------------
INSERT INTO PEOPLE(ID, IM, FM, OT, COMMENTS)
      VALUES(3, 'Кид', 'Кидков', 'Кидалович', 'Живёт в городе Гадюкино');

В данном коде подряд идут три запроса, код абсолютно идентичен — разные лишь только данные. Что же мы сделали :
Insert INTO — говорит о том, что мы хотим вставить запись, PEOPLE – таблица, в которую вставляем записи(перечисляем колонки таблицы, в которые вставляем записи). Далее идут значения Values : (1 – вставляем в калонку ID, \’Вася\’ – вставляем в калонку IM и т.д), но хочу вас предупредить, что если вы попытаетесь вставить в колонку ID букву, то будет ошибка, т.к. нельзя вставить строковый тип в числовой. И так создадим новое окно (SQL Window), как это сделать показано выше, и выполняем его (F8). После нажатия клавиши создаётся транзакция, вы можете её подтвердить, либо отменить. Если вы нажмёте F10(Commit), то записи успешно вставятся, если нажмёте RollBack (Shift+F10) то отмените транзакцию и естественно записи не вставятся, нажимаем F10:
SQL для кипятильников и чайников ;)
Теперь вы можете посмотреть выполненный результат вот таким запросом (выборка):
select * from people
(другими словами выбираем всё из таблицы People):
SQL для кипятильников и чайников ;)
Теперь вы можете поиграть с командой select, приведу вам, в каком порядке всё идёт:
select – говорит о том что это выборка, дальше перечисляем какие колонки выводить в результате (если вы поставите « * » , то выберутся все колонки), затем идёт from он говорит из какой таблицы мы будем делать выборку. Вот простой пример запроса:

select IM, FM from People 

— выведет только колонки «Имя» и «Фамилия»

Но допустим вам надо из колонки FM выбрать только фамилию «Пупкин», для этого можно воспользоватся where в котором укажем колонку, присваивающую фамилию «Пупкин»:


select FM from People p where p.FM='Пупкин'
Заключение (слава богу не тюремное)

Теперь ты знаешь основы взаимодействия с БД и язык запросов SQL – так что можешь уже не бояться злых начальников и не менее страшных проектов ;) Поверь, сейчас без БД – никуда, и я очень надеюсь, что это статья дала тебе толчок к дальнейшему изучению этой темы.