The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

mySQL - назначение, команды и функции (sql mysql database)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: sql, mysql, database,  (найти похожие документы)
From: Докучаев Дмитрий <forb@k-uralsk.ru> Subject: mySQL - назначение, команды и функции http://kamensk.net.ru/forb/cgi-bin/links.cgi?area=linux&art=1 mySQL. Назначение, команды и функции В последнее время информационные технологии стали увеличиваться с огромной быстротой и сложные задачи без нововведений становятся просто невыполнимыми. В послежнее время стало актуальным использования специальных программных комплексов, которые получили название СУБД (Системы Управления Базами Данных). Но, данными, которые заложены в СУБД нужно управлять, чтобы добиться желаемого результата. Для этого были созданы специальные языки манипулирования данными (ЯМД). Одним из таких языков является 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; Вот пожалуй и всё. Если ты заинтересовался, то не останавливайся на этой статье, а рой инфу в Инете и просвещайся, ибо информация - источник всех знаний. Copyright Forb (2001) http://kamensk.net.ru/forb

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
 
  • 1, nrg, 19:28, 14/01/2008 [ответить] [смотреть все]
  • +/
    А знаете... с первых же слов "Хаксоровским" потянуло, авторство статьи, впрочем, подтвердило предположение :)
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:





      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor