Главная страница
Навигация по странице:

  • Создание новой базы данных MySQL

  • Добавление

  • SELECT

  • ORDER BY

  • UPDATE

  • DELETE

  • ".($i+1). $row[title]. "

  • ".($i++) . $row[title]."

  • лабораторные по MySql. Mysql одна из множества баз данных, поддерживаемых в php. Система Mysql распространяется бесплатно и обладает достаточной мощностью для решения реальных задач. Краткое введение в Mysql sql


    Скачать 42.33 Kb.
    НазваниеMysql одна из множества баз данных, поддерживаемых в php. Система Mysql распространяется бесплатно и обладает достаточной мощностью для решения реальных задач. Краткое введение в Mysql sql
    Анкорлабораторные по MySql
    Дата24.05.2022
    Размер42.33 Kb.
    Формат файлаdocx
    Имя файлаlaboratonye_raboty_po_mysql.docx
    ТипДокументы
    #547030

    Кузин Сергей Александрович

    составитель
    Связь с базами данных MySQL

    СУБД MySQL - одна из множества баз данных, поддерживаемых в PHP. Система MySQL распространяется бесплатно и обладает достаточной мощностью для решения реальных задач.

    Краткое введение в MySQL

    SQL - это аббревиатура от слов Structured Query Language, что означает структурированный язык запросов. Этот язык является стандартным средством для доступа к различным базам данных.

    Система MySQL представляет собой сервер, к которому могут подключаться пользователи удаленных компьютеров.

    Для работы с базами данных удобно пользоваться средством, входящее в комплект Web-разработчика:Denwer phpMyAdmin. Здесь можно создать новую базу данных, создать новую таблицу в выбранной базе данных, заполнить таблицу данными, а также добавлять, удалять и редактировать данные.

    В MySQL определены три базовых типа данных: числовой, дата и время и строчный. Каждая из этих категорий подразделяется на множество типов. Основные из них:

    Тип

    Описание

    INT

    Целое число

    TINYINT

    Маленькое целое число (-127 до 128 или от 0 до 255)

    FLOAT

    Вещественное число с плавающей точкой

    DATE

    Дата. Отображается в виде ГГГГ-ММ-ДД

    TIME

    Время. Отображается в виде ЧЧ:ММ:СС

    DATETIME

    Дата и время. Отображается в виде ГГГГ-ММ-ДДЧЧ:ММ:СС

    YEAR[(2|4)]

    Год. Можно определить двух- или четырехциферный формат

    CHAR(M)

    Строка фиксированной длины М (M<=255)

    VARCHAR(M)

    Строка произвольной длины до М (M<=255)

    TEXT

    Длинные текстовые фрагменты (<=65535)

    BLOB

    Большие двоичные объекты (изображения, звуки)

    Каждый столбец после своего типа данных содержит и другие спецификаторы:

    Тип

    Описание

    NOT NULL

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

    AUTO_INCREMENT

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

    PRIMARY KEY

    Столбец является первичным ключом для таблицы. Данные в этом столбце должны быть уникальными. MySQL автоматически индексирует этот столбец

    UNSIGNED

    После целочисленного типа означает, что его значение может быть либо положительным, либо нулевым

    COMMENT

    Название столбца таблицы

    Создание новой базы данных MySQL осуществляется при помощи SQL-команды CREATE DATABASE.

    CREATE DATABASE IF NOT EXISTS `base`

    DEFAULT CHARACTER SET cp1251 COLLATE cp1251_bin

    Создание новой таблицы осуществляется при помощи SQL-команды CREATE TABLE. Например, таблицаbooks для книжного магазина будет содержать пять полей: ISBN, автор, название, цена и количество экземпляров:

    CREATE TABLE books (ISBN CHAR(13) NOT NULL,

    PRIMARY KEY (ISBN),

    author VARCHAR(30),

    title VARCHAR(60),

    price FLOAT(4,2),

    quantity TINYINT UNSIGNED);

    Чтобы избежать сообщения об ошибке, если таблица уже есть необходимо изменить первую строчку, добавив фразу "IF NOT EXISTS":

    CREATE TABLE IF NOT EXISTS books ...

    Для создания автообновляемого поля с текущей датой типа TIMESTAMP или DATETIME используйте следующую конструкцию:

    CREATE TABLE t1 (

    ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

    dt DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

    );

    Добавление данных в эту таблицу осуществляется при помощи SQL-команды INSERT. Например:

    INSERT INTO books ( ISBN, author, title, price, quantity )

    VALUES ('5-8459-0184-7', 'Зандстра Мэт',

    'Освой самостоятельно PHP4 за 24 часа', '129', '5');

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

    Символ * означает, что необходимы все поля. Например:

    SELECT * FROM books;

    Для получения доступа только к некоторому полю следует указать его имя в инструкции SELECT. Например:

    SELECT author, title, price FROM books;

    Чтобы получить доступ к подмножеству строк в таблице, следует указать критерий выбора, который устанавливает конструкция WHERE. Например, чтобы выбрать имеющиеся в наличии недорогие книги о PHP, надо составить запрос:

    SELECT * FROM books WHERE

    price < 200 AND title LIKE '%PHP%' AND quantity != 0;

    % Соответствует любому количеству символов, даже нулевых
    _ Соответствует ровно одному символу

    Для того, чтобы строки, извлеченные по запросу, перечислялись в определенном порядке, используется конструкция ORDER BY. Например:

    SELECT * FROM books ORDER BY price;

    По умолчанию порядок сортировки идет по возрастанию. Изменить порядок сортировки на обратный можно с помощью ключевого слова DESC:

    SELECT * FROM books ORDER BY price DESC;

    Сортировать можно и по нескольким столбцам. Вместо названий столбцов можно использовать их порядковые номера:

    SELECT * FROM books ORDER BY 4, 2, 3;

    Для изменения ранее записанных в таблицу значений нужно воспользоваться командой UPDATE. Например, цену всех книг повысили на 10%:

    UPDATE books SET price = price * 1.1;

    Конструкция WHERE ограничит работу UPDATE определенным строками. Например:

    UPDATE books SET price = price * 1.05 WHERE price <= 250;

    Для удаления строк из базы данных используется оператор DELETE. Ненужные строки указываются при помощи конструкции WHERE. Например, какие-то книги проданы:

    DELETE FROM books WHERE quantity = 0;

    Если нужно удалить все записи

    TRUNCATE TABLE table_name

    Для полного удаления таблицы используется:

    DROP TABLE table_name

    Связь PHP с базой данных MySQL

    Поработав с phpMyAdmin над созданием базы данных, можно приступить к подключению этой базы данных к внешнему Web-интерфейсу.

    Чтобы получить доступ к базе данных из Web, используя PHP, надо сделать следующие основные шаги:

    • Подключение к серверу MySQL.

    • Выбор базы данных.

    • Выполнение запроса к базе данных:

      • добавление;

      • удаление;

      • изменение;

      • поиск;

      • сортировка.

    • Получение результата запроса.

    • Отсоединение от базы данных.

    Для подключения к серверу базы данных в PHP есть функция mysql_connect( ). Ее аргументы: имя компьютера, имя пользователя и пароль. Эти аргументы можно опустить. По умолчанию имя компьютера =localhost, тогда имя пользователя и пароль не требуется. Если PHP используется в сочетании с сервером Apache, то можно воспользоваться функцией mysql_pconnect(). В этом случае соединение с сервером не исчезает после завершения работы программы или вызова функции mysql_close(). Функцииmysql_connect() и mysql_pconnect() возвращают идентификатор подключения, если все прошло успешно. Например:

    $link = mysql_pconnect ();

    if ( !$link ) die ("Невозможно подключение к MySQL");

    После того, как соединение с сервером MySQL установлено, нужно выбрать базу данных. Для этого используется функция mysql_select_db(). Ее аргумент: имя базы данных. Функция возвращает true, если указанная база данных существует и доступ к ней возможен. Например:

    $db = "sample";

    mysql_select_db ( $db ) or die ("Невозможно открыть $db");

    Для добавления, удаления, изменения и выбора данных нужно сконструировать и выполнить запрос SQL. Для этого в языке PHP существует функция mysql_query(). Ее аргумент: строка с запросом. Функция возвращает идентификатор запроса.

    Пример 1








    $db = "sample";

    $link = mysql_pconnect ();

    if ( !$link )

    die ("Невозможно подключение к MySQL");

    mysql_select_db ( $db ) or die ("Невозможно открыть $db");

    $query = "INSERT INTO books

    VALUES ('966-7393-80-1', 'Аллен Вайк',

    'PHP. Справочник', '213', '4')";

    mysql_query ( $query );

    mysql_close ( $link );

    ?>

















    ISBN
    Автор
    Название
    Цена
    Количество







    if (!isset($_POST['isbn']) || !isset($_POST['author']) ||

    !isset($_POST['title']) || !isset($_POST['price']) ||

    !isset($_POST['quantity'])){

    die ("Не все данные введены.


         Пожалуйста, вернитесь назад и закончите ввод");

    }

    $isbn = trim ( $_POST['isbn'] );

    $author = trim ( $_POST['author'] );

    $title = trim ( $_POST['title'] ) ;

    $isbn = addslashes ( $isbn );

    $author = addslashes ( $author );

    $title = addslashes ( $title ) ;

    $db = "sample";

    $link = mysql_connect();

    if ( !$link ) die ("Невозможно подключение к MySQL");

    mysql_select_db ( $db ) or die ("Невозможно открыть $db");

    $query = "INSERT INTO books VALUES ('"

    .$isbn."', '".$author."', '".$title."', '"

    .floatval($_POST['price'])."', '".intval($_POST['quantity'])."')";

    $result = mysql_query ( $query );

    if ($result) echo "Книга добавлена в базу данных.";

    mysql_close ( $link );

    ?>



    Ищем по:





    Что ищем:










    $searchterm = trim ( $_POST['searchterm'] );

    if (!$searchterm)

    die ("Не все данные введены.


        Пожалуйста, вернитесь назад и закончите ввод");

    $searchterm = addslashes ($searchterm);

    $link = mysql_pconnect ();

    if ( !$link ) die ("Невозможно подключение к MySQL");

    $db = "sample";

    mysql_select_db ( $db ) or die ("Невозможно открыть $db");

    $query = "SELECT * FROM books WHERE "

    .$_POST['searchtype']." like '%".$searchterm."%'";

    $result = mysql_query ( $query );

    $n = mysql_num_rows ( $result );

    for ( $i=0; $i<$n; $i++ )

    {

    $row = mysql_fetch_array($result);

    echo "
    ".($i+1). $row['title']. "
    ";

    echo "Автор: ".$row['author']."
    ";

    echo "ISBN: ".$row['ISBN']."
    ";

    echo "Цена: ".$row['price']."
    ";

    echo "Количество: ".$row['quantity']."
    ";

    }

    if ( $n == 0 ) echo "Ничего не можем предложить. Извините";

    mysql_close ( $link );

    ?>


    $searchterm=trim ( $_POST['searchterm'] );

    if (!$searchterm)

    die ("Не все данные введены.
    Пожалуйста, вернитесь назад и закончите ввод");

    $searchterm = addslashes ($searchterm);

    mysql_connect() or die ("Невозможно подключение к MySQL");

    mysql_select_db ( "sample" ) or die ("Невозможно открыть БД");

    $result = mysql_query ( "SELECT * FROM books WHERE ".$_POST['searchtype']." like '%".$searchterm."%'" );

    $i=1;

    while($row = mysql_fetch_array($result))

    {

    echo "
    ".($i++) . $row['title']."
    ";

    echo "Автор: ".$row['author']."
    ";

    echo "ISBN: ".$row['ISBN']."
    ";

    echo "Цена: ".$row['price']."
    ";

    echo "Количество: ".$row['quantity']."
    ";

    }

    if ( $i == 1 ) echo "Ничего не можем предложить. Извините";

    mysql_close( );

    ?>



    написать администратору сайта