Как сделать таблицу в mysql

Вот универсальный синтаксис 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`));

На уроке будет рассмотрен пример создания на локальной машине базы данных 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

    Steps for Create Database Mysql

    Create Database in two ways

    1) By executing a simple SQL query

    2) By using forward engineering in MySQL Workbench

    In this tutorial, you will learn-

    As SQL beginner , let"s look into the query method first.

    Create Database

    CREATE DATABASE is the SQL command for creating a database.

    Imagine you need to create a database with name "movies". You can do it by executing following SQL command.

    CREATE DATABASE movies;

    Note: you can also use the command CREATE SCHEMA instead of CREATE DATABASE

    Now let"s improve our SQL query adding more parameters and specifications.

    IF NOT EXISTS

    A single MySQL server could have multiple databases. If you are not the only one accessing the same MySQL server or if you have to deal with multiple databases there is a probability of attempting to create a new database with name of an existing database . IF NOT EXISTS let you to instruct MySQL server to check the existence of a database with a similar name prior to creating database.

    When IF NOT EXISTS is used database is created only if given name does not conflict with an existing database"s name. Without the use of IF NOT EXISTS MySQL throws an error.

    CREATE DATABASEIF NOT EXISTS movies;

    Collation and Character Set

    Collation is set of rules used in comparison. Many people use MySQL to store data other than English. Data is stored in MySQL using a specific character set. The character set can be defined at different levels viz, server , database , table and columns.

    You need to select the rules of collation which in turn depend on the character set chosen.

    For instance, the Latine1 character set uses the latin1_swedish_ci collation which is the Swedish case insensitive order.

    CREATE DATABASE IF NOT EXISTS movies CHARACTER SET latin1 COLLATE latin1_swedish_ci

    The best practice while using local languages like Arabic , Chinese etc is to select Unicode (utf-8) character set which has several collations or just stick to default collation utf8-general-ci.

    You can find the list of all collations and character sets here

    You can see list of existing databases by running following SQL command.

    SHOW DATABASES

    Creating Tables MySQL

    Tables can be created using CREATE TABLE statement and it actually has the following syntax.

    CREATE TABLE `TableName` (`fieldname` dataType ) ENGINE = storage Engine;

    • "CREATE TABLE" is the one responsible for the creation of the table in the database.
    • "" is optional and only create the table if no matching table name is found.
    • "`fieldName`" is the name of the field and "data Type" defines the nature of the data to be stored in the field.
    • "" additional information about a field such as " AUTO_INCREMENT" , NOT NULL etc

      Create Table Example:-

      CREATE TABLE IF NOT EXISTS `MyFlixDB`.`Members` (`membership_number` INT AUTOINCREMENT , `full_names` VARCHAR(150) NOT NULL , `gender` VARCHAR(6) , `date_of_birth` DATE , `physical_address` VARCHAR(255) , `postal_address` VARCHAR(255) , `contact_number` VARCHAR(75) , `email` VARCHAR(255) , PRIMARY KEY (`membership_number`)) ENGINE = InnoDB;

    Now let"s see what the MySQL"s data types are. You can use any of them depending on your need. You should always try to not to underestimate or overestimate potential range of data when creating a database.

    DATA TYPES

    Data types define the nature of the data that can be stored in a particular column of a table

    MySQL has 3 main categories of data types namely

    1. Numeric,
    2. Date/time.

    Numeric Data types

    Numeric data types are used to store numeric values. It is very important to make sure range of your data is between lower and upper boundaries of numeric data types.

    TINYINT() -128 to 127 normal
    0 to 255 UNSIGNED.
    SMALLINT() -32768 to 32767 normal
    0 to 65535 UNSIGNED.
    MEDIUMINT() -8388608 to 8388607 normal
    0 to 16777215 UNSIGNED.
    INT() -2147483648 to 2147483647 normal
    0 to 4294967295 UNSIGNED.
    BIGINT() -9223372036854775808 to 9223372036854775807 normal
    0 to 18446744073709551615 UNSIGNED.
    FLOAT A small approximate number with a floating decimal point.
    DOUBLE(,) A large number with a floating decimal point.
    DECIMAL(,) A DOUBLE stored as a string , allowing for a fixed decimal point. Choice for storing currency values.

    Text Data Types

    As data type category name implies these are used to store text values. Always make sure you length of your textual data do not exceed maximum lengths.

    CHAR() A fixed section from 0 to 255 characters long.
    VARCHAR() A variable section from 0 to 255 characters long.
    TINYTEXT A string with a maximum length of 255 characters.
    TEXT
    BLOB A string with a maximum length of 65535 characters.
    MEDIUMTEXT
    MEDIUMBLOB A string with a maximum length of 16777215 characters.
    LONGTEXT
    LONGBLOB A string with a maximum length of 4294967295 characters.

    Date / Time

    DATE YYYY-MM-DD
    DATETIME YYYY-MM-DD HH:MM:SS
    TIMESTAMP YYYYMMDDHHMMSS
    TIME HH:MM:SS

    Apart from above there are some other data types in MySQL.

    ENUM To store text value chosen from a list of predefined text values
    SET This is also used for storing text values chosen from a list of predefined text values. It can have multiple values.
    BOOL Synonym for TINYINT(1), used to store Boolean values
    BINARY Similar to CHAR, difference is texts are stored in binary format.
    VARBINARY Similar to VARCHAR, difference is texts are stored in binary format.

    Now let"s see a sample SQL query for creating a table which has data of all data types. Study it and identify how each data type is defined.

    CREATE TABLE`all_data_types` (`varchar` VARCHAR(20) , `tinyint` TINYINT , `text` TEXT , `date` DATE , `smallint` SMALLINT , `mediumint` MEDIUMINT , `int` INT , `bigint` BIGINT , `float` FLOAT(10, 2) , `double` DOUBLE , `decimal` DECIMAL(10, 2) , `datetime` DATETIME , `timestamp` TIMESTAMP , `time` TIME , `year` YEAR , `char` CHAR(10) , `tinyblob` TINYBLOB , `tinytext` TINYTEXT , `blob` BLOB , `mediumblob` MEDIUMBLOB , `mediumtext` MEDIUMTEXT , `longblob` LONGBLOB , `longtext` LONGTEXT , `enum` ENUM("1", "2", "3") , `set` SET("1", "2", "3") , `bool` BOOL , `binary` BINARY(20) , `varbinary` VARBINARY(20)) ENGINE= MYISAM ;

    • Use upper case letters for SQL keywords i.e. "DROP SCHEMA IF EXISTS `MyFlixDB`;"
    • End all your SQL commands using semi colons.
    • Avoid using spaces in schema, table and field names. Use underscores instead to separate schema, table or field names.

    MySQL workbench ER diagram forward engineering

    MySQL workbench has utilities that support forward engineering. Forward engineering is a technical term is to describe the process of translating a logical model into a physical implement automatically .

    We created an ER diagram on our ER modeling tutorial. We will now use that ER model to generate the SQL scripts that will create our database.

    Creating the MyFlix database from the MyFlix ER model

    1. Open the ER model of MyFlix database that you created in earlier tutorial.

    2. Click on the database menu. Select forward engineer

    3. The next window, allows you to connect to an instance of MySQL server. Click on the stored connection drop down list and select local host. Click Execute

    4. Select the options shown below in the wizard that appears. Click next

    5. The next screen shows the summary of objects in our EER diagram. Our MyFlix DB has 5 tables. Keep the selections default and click Next.

    6.. The window shown below appears. This window allows you to preview the SQL script to create our database. We can save the scripts to a *.sql" file or copy the scripts to the clipboard. Click on next button

    7. The window shown below appears after successfully creating the database on the selected MySQL server instance.


    Summary

    • Creating a database involves translating the logical database design model into the physical database.
    • MySQL supports a number of data types for numeric, dates and strings values.
    • CREATE DATABSE command is used to create a database
    • CREATE TABLE command is used to create tables in a database
    • MySQL workbench supports forward engineering which involves automatically generating SQL scripts from the logical database model that can be executed to create the physical database

    The Database along with Dummy Data is attached. We will be using this DB for all our further tutorials. Simple import the DB in MySQL Workbench to get started

    Последнее обновление: 04.05.2018

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

    Для создания таблиц используется команда CREATE TABLE . Эта команды применяет ряд операторов, которые определяют столбцы таблицы и их атрибуты. Общий формальный синтаксис команды CREATE TABLE:

    CREATE TABLE название_таблицы (название_столбца1 тип_данных атрибуты_столбца1, название_столбца2 тип_данных атрибуты_столбца2, ................................................ название_столбцаN тип_данных атрибуты_столбцаN, атрибуты_уровня_таблицы)

    После команды CREATE TABLE идет название таблицы. Имя таблицы выполняет роль ее идентификатора в базе данных, поэтому оно должно быть уникальным. Затем в скобках перечисляются названия столбцов, их типы данных и атрибуты. В самом конце можно определить атрибуты для всей таблицы. Атрибуты столбцов, а также атрибуты таблицы указывать необязательно.

    Создадим простейшую таблицу. Для этого выполним следующий скрипт:

    CREATE DATABASE productsdb; USE productsdb; CREATE TABLE Customers (Id INT, Age INT, FirstName VARCHAR(20), LastName VARCHAR(20));

    Таблица не может создаваться сама по себе. Она всегда создается в определенной базе данных. Вначале здесь создается база данных productsdb. И затем, чтобы указать, что все дальнейшие операции, в том числе создание таблицы, будут производиться с этой базой данных, применяется команда USE .

    Далее собственно идет создание таблицы, которая называется Customers. Она определяет четыре столбца: Id, Age, FirstName, LastName. Первые два столбца представляют идентификатор клиента и его возраст и имеют тип INT , то есть будут хранить числовые значения. Следующие столбцы представляют имя и фамилию клиента и имеют тип VARCHAR(20) , то есть представляют строку длиной не более 20 символов. В данном случае для каждого столбца определены имя и тип данных, при этом атрибуты столбцов и таблицы в целом отсутствуют.

    И в результате выполнения этой команды будет создана база данных productsdb, в которой будет создана таблица Customers.

    Переименование таблиц

    Если после создания таблицы мы захотим ее переименовать, то для этого нужно использовать команду RENAME TABLE , которая имеет следующий синтаксис:

    RENAME TABLE старое_название TO новое_название;

    Например, переименуем таблицу Customers в Clients:

    RENAME TABLE Customers TO Clients;

    Полное удаление данных

    Для полного удаления данных, очистки таблицы применяется команда TRUNCATE TABLE . Например, очистим таблицу Clients:

    TRUNCATE TABLE Clients;

    Удаление таблиц

    Для удаления таблицы из БД применяется команда DROP TABLE , после которой указывается название удаляемой таблицы. Например, удалим таблицу Clients.

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

    Так как же сделать таблицу на странице сайта используя 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, вам абсолютно не трудно будет это сделать самому.



    Просмотров