• Партнер

  • В последнее время информационные
    технологии стали развиваться с огромной
    быстротой и решить сложные задачи без
    нововведений становятся просто невозможно.
    В последнее время стало актуальным
    использования специальных программных
    комплексов, которые получили название СУБД
    (Системы Управления Базами Данных). Но,
    данными, которые заложены в СУБД нужно
    управлять, чтобы добиться желаемого
    результата. Для этого были созданы
    специальные языки манипулирования данными
    (ЯМД). Одним из таких языков является SQL (Structured
    Query Language - структурированный язык запросов).
    Другими словами с помощью SQL можно легко
    достичь желаемого результата в каком либо
    проекте.

    Рассмотрим конкретный пример: 
    Допустим ты решил создать крутой сайт с
    возможностью регистрирования
    пользователей и выделения им определённого
    времени на использования ресурсов твоего
    сайта. Попробуй сделать это с помощью
    одного языка программирования (PHP//CGI). Это
    будет очень громоздко и займёт уйму времени.
    Вот тут на помощь приходит SQL. С помощью
    модуля DBI можно с лёгкостью связать perl-скрипт
    с твоей базой данных, в которой будут
    находится аккаунты пользователей сайта,
    дата истечения срока пребывания в списке. В
    конце концов всё сведётся к простому и
    гибкому решения проблемы.

    Но, согласись, если ты не умеешь управлять
    базой данных с помощью SQL языка
    программирования, то ничего хорошего ты не
    сделаешь и успеха не добьешься. В этой
    статье я покажу наиболее часто встречаемые
    команды SQL, их синтаксис и значение. После
    этого ты будешь знать азы SQL и можешь
    штурмовать уже более серьёзные вещи, такие
    как администрирование твоей БД или
    установка своего SQL-демона (благо по этому
    вопросу много статей в Инете). Итак,
    начинаем.

    Чаще всего SQL-сервер располагается на 3306
    порту удалённой машины. Зная логин и пароль
    ты сможешь проникнуть на него. Для этого
    тебе необходим хороший SQL-клиент. Если ты
    под Win32, то таким является "MySQL Administrator for
    win32. По доброте душевной я выложил его на http://k-ur.com/sql/sqladm.zip.
    Если же ты юниксоид или юзаешь SQL сервер с
    шелла на удалённом сервере, то таких
    клиентов полно, а на шелле обязательно
    будет установлен тамошний SQL-клиент.
    Итак, залогинясь на SQL-сервер, можно
    приступать к созданию твоей первой таблицы.
    Для этого используется команда "create".
    Её формат:

    Create table имя_таблицы
    (поле1 тип_поля1 [not null],
    поле2 тип_поля2 [not null] ,
    ..... [not null],
    полеN тип поляN [not null]);

    NULL - это специально предусмотренное
    значение поля - даётся в том случае, когда
    значение не определено.
    Основные типы в языке SQL:
    text - текстовый тип
    int - целочисленный тип
    real - тип, с плавющей точкой
    date - тип даты

    Итак, выбирай SQL-Query, затем в поле ввода пиши
    следущее:

    create table members
    (name text not null,
    password text not null,
    type int,
    bonus int)

    этим ты создашь таблицу пользователей в
    определённой базе данных (её ты должен
    знать заранее).

    Далее можешь прописать себя как
    администратора в этой таблице (скажем,
    пусть тип администратора будет 2). Для
    добавления строк в базу существует команда
    "Insert". Её формат:

    Insert into имя_таблицы [(поле1, поле2, полеN)]
    values ('значение1', значение2, значениеN)

    Чтобы добавить нового пользователя, пишем:

    Insert into members
    values ('Admin','myc00lPassworDD',2,0)

    Заметь, что в апострофах пишутся только
    текстовые значения таблицы.

    И наконец, самая распространённая команда в
    mySQL это команда "Select". Команда выводит
    на экран значения таблицы в удобной для вас
    форме. Её формат:

    Select [ * | поле[,полеN] ]
    from таблица1[,таблицаN]
    where условие

    Звёздочка "*" означает выбор всех полей
    в строке таблицы.
    Условие - логическая связка, с помощью
    которой можно идентифицировать элемент
    либо связку элементов таблицы. Рассмотрим
    примеры:

    select * from members where user="root%" # Символ %
    означает любой ряд символов.
    select user,bonus where type=1 and password not NULL
    select user where bonus between 1 and 10 # Between/and указывают на
    промежуток значений.
    select 'Current super bonus is',bonus*100 where user='root%'

    Это сравнительно небольшой список условий.
    Более подробную документацию можно найти в
    Инете (например на www.mysql.com). 

    Замена значений полей в таблице происходит
    с помощью команды "Update". Её формат схож
    с форматом "Select":

    Update имя_базы
    set поле=новое_значение
    where условие

    Пример: сделаем администратором
    пользователя Xakep:

    Update members
    set type=2
    where user='Xakep'

    А вот пример посложнее: увеличим число
    очков у пользователя Vasya в 2 раза:

    Update members
    set bonus=bonus*2
    where user='Vasya'

    Надеюсь, по аналогии ты разберёшься с "Update".

    Рассмотрим следующую команду: "Delete".
    Команда удаляет строки из таблицы. Формат:

    Delete from имя_таблицы
    where условие

    Пример: удалим всех пользователей на букву
    "L" и имеющим не более 10 очков:

    Delete from members
    where user="L%" and bonus<=10

    И последняя команда для изучения: "Drop" -
    удаление таблицы.
    Роковой пример: "Drop table members" 🙂

    Поупражнявшись с твоей таблицей, ты можешь
    приступать к следующему отважному шагу -
    связи твоего крутого web-сайта с SQL-базой при
    помощи обычного CGI-скрипта (можно и PHP // ASP).
    Для этого используется специальный модуль
    DBI.pm, входящий в стандартный состав Perl-а.

    Рассмотрим скрипт, который создаст нового
    пользователя с 5 очками. Пароль будет
    хранится в переменной $pass, а имя в $user. Тип
    пользователя - 1.

    #!/usr/bin/perl

    use DBI;

    $host='localhost'; # Хост к БД
    $username='admin'; # Логин к БД
    $pass_sql='myc00lPassworD'; # Пароль к БД
    $db='foradmin'; # Имя БД 

    $dbh = DBI->connect("DBI:mysql:$db:$host",$username,$pass_sql) ||
    die "$!\n"; # Коннект к БД или выдача
    сообщения об ошибке соединения.

    $dbh->do("insert into members values ('$user','$pass',1,5)") or die
    $DBI::errstr; # Добавляем пользователя либо
    сообщаем об ошибке

    $dbh->disconnect; # Отсоединение

    Вот и весь скрипт. Пользователь был успешно
    добавлен 🙂 Рассмотрим пример посложнее -
    скрипт, который при активации будет
    убавлять у пользователя 1 очко. Если у
    пользователя нет очков - удалим его.
    Пользователь - $user.

    #!/usr/bin/perl

    ............. # Смотри первый скрипт

    $sth=$dbh->prepare("select * from members where user='$login'") or
    die $dbh->errstr; # Узнаём состояние пользователя
    $sth->execute;
    while ($row = $sth->fetchrow_arrayref) {
    $bonus = $row->[3]; # Узнаём очки пользователя
    }
    if ($bonus eq 0) {
    $dbh->do("delete from members where user='$user'") die $DBI::errstr;
    # Удаляем пользователя если нет очков
    $dbh->disconnect;
    exit;
    }
    $dbh->do("update members set bonus=$bonus-1 where user='$user'")
    die $DBI::errstr; # Иначе убавим очки
    $dbh->disconnect;

    Вот пожалуй и всё. Если ты заинтересовался,
    то не останавливайся на этой статье, а рой
    инфу в Инете и просвещайся, ибо информация -
    источник всех знаний.

    Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии