Создание таблицы в бд mysql. Создание новой базы данных MySQL

На уроке будет рассмотрен пример создания на локальной машине базы данных mySQL и ее таблиц; установка DENWER

Пакет denwer можно найти и загрузить с официального сайта.

Для работы с базами данных mySql существует популярный инструмент с удобным вебинтерфейсом — phpMyAdmin .

После успешной установки пакета Denwer, выполняются следующие действия для запуска инструмента phpMyAdmin:

  • ярлык Start Denwer
  • в адресной строке браузера: http://localhost/tools/phpmyadmin/
  • * в случае изменения используемого порта во избежание конфликтов при установке denwer, адрес инструмента может быть и другим, например:
    http://localhost:8080/tools/phpmyadmin

    Создание базы данных mySQL локально (insitute)

    Создадим базу данных с названием insitute :

    Создание таблиц в phpMyAdmin

    Теперь в готовой базе данных можно создавать таблицы с полями:

    Типы данных в mySQL

    Типы данных для MySQL можно разделить на три категории: числовые данные, дата и время, и данные типа строка.
    Таким образом, поля таблицы могут иметь следующие типы данных:

    Тип данных Использование Диапазоны
    TINYINT Очень маленькое целое число Диапазон числа со знаком от –128 до 127. Диапазон числа без знака (unsigned) от 0 до 255.
    SMALLINT Маленькое целое число Диапазон числа со знаком от –32768 до 32767. Диапазон числа без знака (unsigned) от 0 до 65535.
    MEDIUMINT Среднее целое число Диапазон числа со знаком от –8388608 до 8388607. Диапазон числа без знака (unsigned) от 0 до 16777215.
    INT или INTEGER Целое число Диапазон числа со знаком от –2147483648 до 2147483647. Диапазон числа без знака (unsigned) от 0 до 4294967295.
    BIGINT Большое целое число Диапазон числа со знаком от –9223372036854775808 до 9223372036854775807. Диапазон числа без знака (unsigned) от 0 до 18446744073709551615.
    FLOAT Малое (одинарной точности) число с плавающей запятой. Не может быть числом без знака Диапазоны от –3.402823466E+38 до –1.175494351E-38, 0 и 1.175494351E-38 до 3.402823466E+38. Если количество знаков после запятой не установлено или <= 24 это число с плавающей запятой одинарной точности.
    DOUBLE ,
    DOUBLE PRECISION ,
    REAL
    Нормальное (двойной точности) число с плавающей запятой. Не может быть числом без знака Диапазоны от -1.7976931348623157E+308 до -2.2250738585072014E-308, 0 и 2.2250738585072014E-308 до 1.7976931348623157E+308. Если количество знаков после запятой не установлени или 25 <= количество знаков <= 53 означает числоа с плавающей запятой двойной точности.
    DECIMAL ,
    NUMERIC
    Распакованное число с плавающей запятой Работает подобно типу данных CHAR: «распакованный» означает, что число хранится в виде строки, используя один символ для каждой цифры-значения. Символ десятичной запятой и символ отрицательного числа "-" не учитывается в длину. Если десятичное значение равно 0, значение не будет иметь десятичной запятой или дробной части. Максимальный размер для DECIMAL значение такое же, как и для DOUBLE , но фактический диапазон для данного столбца DECIMAL может быть ограничен в выборе длины и десятичные дроби.
    DATE Дата Дата в диапазоне от «1000-01-01» до «9999-12-31». MySQL хранит поле типа DATE в виде «YYYY-MM-DD» (ГГГГ-ММ-ДД).
    DATETIME Дата и время Допустимые диапазоны от «1000-01-01 00:00:00» до «9999-12-31 23:59:59». MySQL хранит поле типа DATETIME в виде «YYYY-MM-DD HH:MM:SS» (ГГГГ-ММ-ДД ЧЧ-ММ-СС).
    TIMESTAMP Дата и время Диапазон от «1970-01-01 00:00:00» до, примерно, 2037 года. MySQL может хранить поле типа TIMESTAMP в видах «YYYYMMDDHHMMSS» (TIMESTAMP(14)), «YYMMDDHHMMSS» (TIMESTAMP(12)), «YYYYMMDD» (TIMESTAMP(8)) и др.
    TIME Время Диапазон от «-838:59:59» до «838:59:59». MySQL хранит поле TIME в виде «HH:MM:SS», но позволяет присваивать значения столбцам TIME с использованием либо строки или числа.
    YEAR Год в 2- или 4- хцифровом виде (4 цифры по-умолчанию) Если вы используете 4 цифра, то допустимые значения 1901-2155, и 0000. Если 2 цифры, то 1970-2069 (70-69). MySQL хранит значения поля YEAR в формате «YYYY».
    CHAR Строка фиксированной длины, которая справа дополняются пробелами до указанной длины, при хранении Диапазон длины от 1 до 255 символов. Завершающие пробелы удаляются, когда значение извлекается. Значения CHAR сортируются и сравниваются без учета регистра в зависимости от кодировки по умолчанию, если не установлен флаг BINARY .
    VARCHAR Строка переменной длины. Примечание: конечные пробелы удаляются при сохранении (в отличие от спецификации ANSI SQL). Диапазон длины от 1 до 255 символов. Значения VARCHAR сортируются и сравниваются без учета регистра, если не установлен флаг BINARY .
    TINYBLOB ,
    TINYTEXT
    BLOB или ТЕХТ с максимальной длиной 255 (2^8 — 1) символов.
    BLOB ,
    TEXT
    BLOB или ТЕХТ с максимальной длиной 65535 (2^16 — 1) символов.
    MEDIUMBLOB ,
    MEDIUMTEXT
    BLOB или ТЕХТ с максимальной длиной 16777215 (2^24 — 1) символов.
    LONGBLOB ,
    LONGTEXT
    BLOB или ТЕХТ с максимальной длиной 4294967295 (2^32 — 1) символов.
    ENUM Перечисление Строка-объект, который может принимать только одно значение, выбирается из списка значений «значение 1», «значение 2» или NULL . ENUM максимум может иметь 65535 различных значений.
    SET Набор Строка-объект, который может принимать ноль и более значений, каждоу из которых должно быть выбрано из списка значений «значение 1», «значение 2», … Поле SET может иметь максимум 64 варианта значений.

    Задание mysql 1. На компьютере создайте базу данных с именем Institute и таблицы:
    — lessons с полями:

    • tid – для связи с teachers (int)
    • course — varchar
    • date — типа date

    — courses c полями:

    • id – уникальное поле, ключ (A_I — счетчик)
    • tid – для связи с teachers
    • title — varchar
    • length (длительность в часах)

    — teachers c полями:



    Важно:
    * Атрибут AUTO_INCREMENT используется для генерации уникального идентификатора для новых строк

    * Первичный ключ (primary key) применяется для уникальной идентификации записей (полей) таблицы. Две записи таблицы не могут иметь одинаковых значений первичного ключа. В реляционных (табличных) базах данных практически всегда разные таблицы логически связаны друг с другом. Первичные ключи используются для однозначной организации данной связи.

    Задание mysql 2. Заполните таблицы данными, как показано на рисунках ниже для таблицы teachers . Аналогично заполните записи в таблицах courses и lessons

    Заметка: активирована адаптивная версия сайта, которая автоматически подстраивается под небольшой размер Вашего браузера и скрывает некоторые детали сайта для удобства чтения. Приятного просмотра!

    Здравствуйте уважаемые читатели блога Site on! В прошлой статье мы рассмотрели всё о в PHP, но для закрепления полученных теоритических материалов, предлагаю выполнить практическую задачу, которая довольно часто встречается в повседневной жизни разработчика сайтов.

    В наших с вами любимых CMS для отрисовки любой HTML таблицы используются циклы, по-другому никак. Например, у товара (смартфона) есть характеристики: ширина, высота, глубина, цвет, размер дисплея, объём памяти и тд. Все эти свойства обычно отрисовываются в виде HTML таблицы, это очень удобно и хорошо, ровно выглядит.

    Чтобы понять, как это делается, сегодня мы решим такую простую задачу, как создание таблицы умножения:

    Приступим

    Для начала нужно придумать и понять алгоритм, которому мы будем следовать. Из чего состоит HTML таблица? Давайте я нарисую:

    Как видим из рисунка, тег table встречается всего 1 раз, поэтому он явно должен быть вне цикла. Повторяется у нас только строка (tr) и внутри неё ячейки, они же столбцы (td). Всё, больше у нас ничего не повторяется.

    Теперь нужно решить, какой цикл лучше использовать для данной задачи. Это классический вариант и лучшим решением будет цикл for, хотя можно использовать и while, если вы к нему привыкли больше. Но нам понадобится не один цикл, а два: первый будет рисовать и считать строки (tr), а второй столбцы (td).

    // количество строк, tr $cols = 20; // количество столбцов, td echo "

    "; for ($tr=1; $tr<=$rows; $tr++){ // в этом цикле счётчик $tr // следит за количеством строк и всегда равен текущему номеру строки. // То есть в начале $tr=1, так как в начале у нас 1 строка, затем // каждый раз прибавляем единицу, пока не дойдём до заданного количества // $rows. echo ""; for ($td=1; $td<=$cols; $td++){ // в этом цикле счётчик $td аналогичен // счётчику $tr. echo ""; } echo ""; } echo "
    ". $tr*$td ."
    "; ?>

    Готово! Результат:

    В первом цикле мы отрисовываем tr, внутри него td. Этот код можно было бы назвать идеальным шаблоном отрисовки любой таблицы, но я знаю, как сделать ещё лучше. Незачем каждый раз напрягать PHP и делать вывод на экран (echo) после каждой итерации, гораздо лучше поместить всё в одно место (переменную) и сделать echo в самом конце, один единственный раз:

    // количество строк, tr $cols = 20; // количество столбцов, td $table = "

    "; for ($tr=1; $tr<=$rows; $tr++){ $table .= ""; for ($td=1; $td<=$cols; $td++){ $table .= ""; } $table .= ""; } $table .= "
    ". $tr*$td ."
    "; echo $table; // сделали эхо всего 1 раз ?>

    Для этого мы использовали оператор .= присвоение через . Результат будет точно таким же. Но это ещё не всё. Нам нужно привести нашу таблицу к виду, как на самом первом рисунке в этой статье. То есть сделать первую строку и столбец полужирным и поставить зелёный фон. Такого результата можно добиться двумя способами:

    • С помощью CSS3 (правильный способ);
    • С помощью PHP (неправильный способ, но возьмём его, так как в этом разделе учим PHP);

    Итак, делаем с помощью PHP:

    // количество строк, tr $cols = 20; // количество столбцов, td $table = "

    "; for ($tr=1; $tr<=$rows; $tr++){ $table .= ""; for ($td=1; $td<=$cols; $td++){ if ($tr===1 or $td===1){ $table .= ""; // вычислили первую строку или столбец }else{ $table .= ""; // все ячейки, кроме ячеек из первого столбца и первой строки } } $table .= ""; } $table .= "
    ". $tr*$td ."". $tr*$td ."
    "; echo $table; // сделали эхо всего 1 раз ?>

    Красота:) Можете выводить таблицу хоть 100 на 100. Балуйтесь, как хотите, это полезно для опыта. Спасибо за внимание, и приятных вам выходных!

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

    Так как же сделать таблицу на странице сайта используя php ?

    Таблицу, обычно выводят, используя достаточно известную функцию while или for. Профессионалы используют уже готовые скрипты или функции, где просто меняют несколько переменных и файлы, отвечающие за дизайн. Для начинающих скажу, чтобы понять как все работает мы рассмотрим небольшой скрипт чуть ниже. А сейчас немного теории как все работает.

    Атрибут ORDER by `id` DESC означает что мы сортируем всех пользователей по убыванию id пользователей. То есть вверху будут максимальное значение id. А если в конце указать вместо атрибута desc указать asc. То сортировка по id будет в противоположную сторону, то есть по возрастанию и вверху будет самое меньшее значение по id.

    Полученный запрос обрабатываем функцией mysql_fetch_array. Она достаточно универсальная потому что возвращает ассоциативный массив с двумя индексами с численными индексами и индексами по значению таблиц.
    Вместо этогй функции многие используют запрос mysql_fetch_assoc который возвращает массив только с индексами по значению таблиц в базе данных.

    Далее все помещаем в один массив $mass и выводим в цикле while по индексу значения таблиц. А поскольку мы выводим все значения в виде таблицы пишем функцию вывода заначений echo ‘(начало строки)(ячейка, квадрат)$mass[‘id’](переменная по индексу значения таблицы id)(закрывающий тег ячейки)(следующая ячейка, квадрат)$mass[‘mail’](закрывающий тег ячейки)… (закрывающий тег строки).

    После закрывающей фигурной скобки, который показывает закрытие цикла while выводим закрывающий тег таблицы.

    А вот, и сам пример скрипта

    Пример скрипта авторизации

    `; echo ``; } ?>
    ID LOGIN MAIL Дата регистрации
    `.$id.` `.$login.` `.$mail.` `.$reg_time.`

    А здесь можно скачать и посмотреть наглядно как все работает на странице. Следует иметь в виду путь к файлу конфигурации в вашем варианте может быть другим.Это напрямую зависит куда вы поместите сам файл конфигурации для всего сайта. Для наглядности файл конфигурации вы найдете в zip-архиве.

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

    Вот универсальный синтаксис SQL для создания таблиц MySQL:

    CREATE TABLE table_name (column_name column_type);

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

    Tutorials_tbl(tutorial_id INT NOT NULL AUTO_INCREMENT, tutorial_title VARCHAR(100) NOT NULL, tutorial_author VARCHAR(40) NOT NULL, submission_date DATE, PRIMARY KEY (tutorial_id));

    Вот несколько пунктов, которые нуждаются в пояснении:

    • Поле атрибута не равно NULL , используется потому что мы не хотим, чтобы она была нулем. Поэтому если пользователь попытается создать запись со значением NULL, то MySQL будет вызвана ошибка.
    • Поле атрибута auto_increment в MySQL не говорит, чтобы идти вперед и добавить следующий доступный номер в поле ID.
    • Ключевое слово первичный ключ используется для определения столбца в качестве первичного ключа. Вы можете использовать несколько столбцов, разделенных запятыми, чтобы определить первичный ключ.

    Создание таблиц из командной строки:

    Это легко создать MySQL таблицу из MySQL> подсказка. Вы будете использовать команды SQL создать таблицу чтобы создать таблицу.

    Пример:

    Вот пример, который создает tutorials_tbl:

    Root@host# mysql -u root -p Enter password:******* mysql> use TUTORIALS; Database changed mysql> CREATE TABLE tutorials_tbl(-> tutorial_id INT NOT NULL AUTO_INCREMENT, -> tutorial_title VARCHAR(100) NOT NULL, -> tutorial_author VARCHAR(40) NOT NULL, -> submission_date DATE, -> PRIMARY KEY (tutorial_id) ->); Query OK, 0 rows affected (0.16 sec) mysql>

    Создание таблиц с помощью PHP скрипта:

    Чтобы создать новую таблицу в любой существующей базы данных необходимо использовать функции PHP функции mysql_query(). Вы будете проходить свой второй аргумент при правильной команды SQL для создания таблицы.

    Пример:

    Вот пример создания таблицы с помощью PHP скрипта:

    Creating MySQL Tables "; $sql = "CREATE TABLE tutorials_tbl(". "tutorial_id INT NOT NULL AUTO_INCREMENT, ". "tutorial_title VARCHAR(100) NOT NULL, ". "tutorial_author VARCHAR(40) NOT NULL, ". "submission_date DATE, ". "PRIMARY KEY (tutorial_id)); "; mysql_select_db("TUTORIALS"); $retval = mysql_query($sql, $conn); if(! $retval) { die("Could not create table: " . mysql_error()); } echo "Table created successfullyn"; mysql_close($conn); ?>

    Еще примеры:

    CREATE TABLE IF NOT EXISTS `users` (`id` int(11) NOT NULL auto_increment, `role_id` int(11) NOT NULL default "1", `username` varchar(25) collate utf8_bin NOT NULL, `password` varchar(34) collate utf8_bin NOT NULL, `email` varchar(100) collate utf8_bin NOT NULL, `banned` tinyint(1) NOT NULL default "0", `ban_reason` varchar(255) collate utf8_bin default NULL, `newpass` varchar(34) collate utf8_bin default NULL, `newpass_key` varchar(32) collate utf8_bin default NULL, `newpass_time` datetime default NULL, `last_ip` varchar(40) collate utf8_bin NOT NULL, `last_login` datetime NOT NULL default "0000-00-00 00:00:00", `created` datetime NOT NULL default "0000-00-00 00:00:00", `modified` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=3 ; //С двумя ключами: CREATE TABLE IF NOT EXISTS `ci_sessions` (session_id varchar(40) DEFAULT "0" NOT NULL, ip_address varchar(16) DEFAULT "0" NOT NULL, user_agent varchar(120) NOT NULL, last_activity int(10) unsigned DEFAULT 0 NOT NULL, user_data text NOT NULL, PRIMARY KEY (session_id), KEY `last_activity_idx` (`last_activity`));