Создание базы данных mysql от а до я
Содержание:
- Creating a new database using MySQL Workbench
- О происхождении MySQL
- Основные возможности[6]
- MySQL Tutorial for Developers
- Технические характеристики
- MySQL InnoDB, MyISAM etc.
- Клиенты администрирования MySQL
- Creating a new database using mysql program
- What is MySQL?
- Пример сортировки по относительной позиции
- Пример с соединением таблиц
Creating a new database using MySQL Workbench
To create a new database using the MySQL Workbench, you follow these steps:
First, launch the MySQL Workbench and click the setup new connection button as shown in the following screenshot:
Second, type the name for the connection and click the Test Connection button.
MySQL Workbench displays a dialog asking for the password of the user:
You need to (1) type the password for the user, (2) check the Save password in vault, and (3) click OK button.
Third, double-click the connection name Local to connect to the MySQL Server.
MySQL Workbench opens the following window which consists of four parts: Navigator, Query, Information, and Output.
Fourth, click the create a new schema in the connected server button from the toolbar:
In MySQL, the schema is the synonym for the database. Creating a new schema also means creating a new database.
Fifth, the following window is open. You need to (1) enter the schema name, (2) change the character set and collation if necessary, and click the Apply button:
Sixth, MySQL Workbench opens the following window that displays the SQL script which will be executed. Note that the statement command has the same effect as the statement.
If everything is fine, you will see the new database created and showed in the schemas tab of the Navigator section.
Seventh, to select the database, (1) right click the database name and (2) choose Set as Default Schema menu item:
The node is open as shown in the following screenshot.
Now, you can work with from the MySQL Workbench.
In this tutorial, you have learned how to create a new database from mysql program using the MySQL statement and from MySQL Workbench using the statement.
- Was this tutorial helpful?
О происхождении MySQL
MySQL возникла как попытка применить mSQL к собственным разработкам компании: таблицам, для которых использовались ISAM — подпрограммы низкого уровня. В результате был выработан новый SQL-интерфейс, но API-интерфейс остался в наследство от mSQL. Откуда происходит название «MySQL» — доподлинно неизвестно. Разработчики дают два варианта: либо потому, что практически все наработки компании начинались с префикса «My…» (с англ. — «моё…»), либо в честь дочери Мю (фин. My) одного из разработчиков системы Микаэля Видениуса.
Логотип MySQL в виде дельфина носит имя «Sakila». Он был выбран из большого списка предложенных пользователями «имён дельфина». Имя «Sakila» было отправлено Open Source-разработчиком Ambrose Twebaze.
Основные возможности[6]
Внутренние характеристики и переносимость
- Написан на С и С++. Протестирован на множестве различных компиляторов.
- Работает на различных платформах.
- Для обеспечения переносимости используется GNU Automake, Autoconf и Libtool.
- API для C, C++, Eiffel, Java , Perl, PHP, Python, Ruby и Tcl.
- Полностью многопоточный с использованием потоков ядра. Это означает, что, если такая возможность обеспечивается, можно легко организовать работу с несколькими процессорами.
- Очень быстрые дисковые таблицы на основе В-деревьев со сжатием индексов.
- Очень быстрая базирующаяся на потоках система распределения памяти.
- Очень быстрые соединения, использующие оптимизированный метод однопроходного мультисоединения (one-sweep multi-join).
- Хеш-таблицы в памяти, используемые как временные таблицы.
- SQL-функции реализованы при помощи хорошо оптимизированной библиотеки классов, поэтому они выполняются настолько быстро, насколько это возможно. Обычно после инициализации запроса распределения памяти не происходит вообще.
- MySQL- код протестирован с использованием Purify (коммерческий детектор утечки памяти), а также Valgrind, одного из GPL-инструментов
Типы столбцов
- Большое количество: целочисленные со знаком/беззнаковые, длиной в 1, 2, 3, 4 и 8 байтов, , , , , , , , , , , , и .
- С записями фиксированной и переменной длины.
- Все столбцы имеют значения по умолчанию. С помощью можно вставить подмножество столбцов таблицы; столбцы, для которых явно не заданы значения, устанавливаются в значения по умолчанию.
Команды и функции
- Полная поддержка операторов и функций в и частях запросов. Например:
mysql> SELECT CONCAT(first_name, " ", last_name) -> FROM tbl_name -> WHERE incomedependents > 10000 AND age > 30;
- Полная поддержка для операторов SQL GROUP BY и ORDER BY с выражениями SQL. Поддержка групповых функций (</code>COUNT()</code>, , , , , и ).
- Поддержка и с синтаксисом ANSI SQL и ODBC.
- Разрешены псевдонимы для таблиц и столбцов в соответствии со стандартом SQL92.
- , , , and возвращают число строк, которые были изменены. Вместо этого можно задать возвращение совпавших строк. Для этого следует установить флаг при соединении с сервером.
- Команду , которая является специфической для MySQL, можно использовать для получения информации о базах данных, таблицах и индексах. Чтобы выяснить, как оптимизатор выполняет запрос, можно применять команду .
- Имена функций не конфликтуют с именами таблиц и столбцов. Например, ABS является корректным именем столбца. Для вызова функции существует только одно ограничение: между именем функции и следующей за ним открывающей скобкой не должно быть пробелов.
- В одном и том же запросе могут указываться таблицы из различных баз данных (с версии 3.22).
Безопасность
Система, основанная на привилегиях и паролях, за счет чего обеспечивается гибкость и безопасность, и с возможностью верификации с удаленного компьютера. Пароли защищены, т.к. они при передаче по сети при соединении с сервером шифруются.
Масштабируемость и ограничения
- Управляет очень большими базами данных. Компания MySQL AB. использует MySQL для работы с несколькими базами данных, которые содержат 50 миллионов записей, кроме того, нам известны пользователи, использующие MySQL для работы с 60000 таблицами, включающими около 5000000000 строк.
- Для каждой таблицы разрешается иметь до 32 индексов. Каждый индекс может содержать от 1 до 16 столбцов или частей столбцов. Максимальная ширина индекса 500 бит (это значение может быть изменено при компиляции MySQL). Для индекса может использоваться префикс поля CHAR или VARCHAR.
Установка соединений
- Клиенты могут соединяться с MySQL, используя сокеты TCP/IP, сокеты Unix или именованные каналы (named pipes, под NT).
- Поддержка ODBC (Open-DataBase-Connectivity) для Win32 (с исходным кодом). Все функции ODBC 2.5 и многие другие. Например, для соединения с MySQL можно использовать MS Access.
MySQL Tutorial for Developers
Are you a developer looking for learning MySQL fast? After completing this section, you’ll know how to work with MySQL more effectively as a developer. You’ll learn various techniques to manipulate database objects and interact with the data
Basic MySQL Tutorial
This section helps you get familiar with the basic MySQL. You’ll first how to interact with the data in the MySQL database using the SELECT statement. And then you’ll learn handy data selection techniques including joins, subqueries, and common table expressions. Finally, you’ll learn how to manipulate…
MySQL Stored Procedures
In this section, you will learn how to create stored procedures and stored functions in MySQL with clear explanation and practical examples.
MySQL Triggers
MySQL triggers are stored programs executed automatically to respond to specific events associated with a table such as an insert, update or delete. This section shows you how to work with MySQL triggers effectively.
MySQL Views
This tutorial introduces you to MySQL Views, which are named query stored in the database, and shows you step by step on how to manage views effectively.
MySQL Index
This section introduces you to the MySQL index concept and shows you how to manage indexes in MySQL to optimize your queries.
MySQL Full-Text Search
In this section, we show you how to use MySQL full-text search with various full-text searching techniques such as natural language search, Boolean language search and query expansion.
MySQL Tips
We provide you with the advanced MySQL techniques and tips to help you solve the most difficult challenges in MySQL effectively.
Технические характеристики
Максимальные размеры таблиц
Максимальный размер таблиц в MySQL 3.22 до 4 гигабайт, в последующих версиях ограничений нет.
Размер таблицы ограничен её типом. В общем случае тип MyISAM ограничен предельным размером файла в файловой системе операционной системы. Например, в NTFS этот размер теоретически может быть до 32 эксабайт. В случае InnoDB одна таблица может храниться в нескольких файлах, представляющих единое табличное пространство. Размер последнего может достигать 64 терабайт.
В отличие от MyISAM, в InnoDB имеется значительное ограничение на количество столбцов, которое можно добавить в одну таблицу. Размер страницы памяти по умолчанию составляет 16 килобайт, из которых под данные отведено 8123 байта. Размер указателя на динамические поля составляет 20 байт. Таким образом, в случае использования динамического формата строки (ROW_FORMAT=DYNAMIC), одна таблица может вместить максимум 409 столбцов типа blob или text.
Локализация
Начиная с версии 4.1 в СУБД MySQL внедрена новая система кодировок и сопоставлений. При использовании кодировки Windows-1251, перед выполнением SQL-инструкций необходимо настроить кодировку соединения при помощи операторов:
SET character_set_client='cp1251'; SET character_set_results='cp1251'; SET character_set_connection='cp1251';
Эти три оператора эквивалентны вызову одного оператора:
SET NAMES 'cp1251'
Переменная character_set_client устанавливает кодировку данных, отправляемых от клиента, переменная character_set_results устанавливает кодировку данных, отправляемых клиенту, переменная character_set_connection устанавливает кодировку, в которую преобразуется информация, пришедшая от клиента, перед выполнением запроса на сервере.
При использовании Юникода UTF-8 этот оператор выглядит следующим образом:
SET NAMES 'utf8'
Кодировка ISO 8859-5 не поддерживается.
Проблема с Юникод
MySQL не позволяет корректно применять регулярные выражения (операторы REGEXP и RLIKE) на строках в многобайтовых кодировках, например, для Юникода (UTF-8). При необходимости таких операций приходится переходить на однобайтовые кодировки, например русскую Win-1251 или KOI-8.
MySQL InnoDB, MyISAM etc.
Краткое описание современных движков хранения данных в MySQL- совместимых СУБД система управления базами данных.
InnoDB — основной движок для MySQL, который с версии 5.5 стал дефолтным. Поддерживает транзакции, репликацию, построчную блокировку. В отличие от таблиц MyISAM, где для каждой таблицы создается один файл данных, данные InnoDB в настройках по умолчанию хранятся в больших совместно используемых файлах. То есть данные для всех таблиц и всех баз данных хранятся в одном файле, изменить это можно с помощью настроек опции innodb_file_per_table (Как включить MySQL innodb_file_per_table?).
Чтобы уменьшить размер своей базы данных с движком InnoDB, необходимо воспользоваться mysqldump, чтобы сделать дамп всех своих таблиц, создать новую базу данных и импортировать таблицы в новую базу данных. Уменьшение таблицы Innodb
- MyISAM — не поддерживает транзакции и внешние связи (foreign key), но зато может похвастаться полнотекстовыми индексами и быстротой вставки данных. На Select запросах MyISAM медленнее, чем InnoDB. Долгое время был стандартным для всех версий MySQL, а потому до сих пор является самым популярным.
- MERGE — MyISAM движок для разнесения данных в одной таблице на несколько разных.
- CVS — специализированный движок на случай, когда требуется хранить и обрабатывать большие массивы строковых данных, разделяемых запятой. Данные можно править обычным текстовым редактором.
- MEMORY — движок, использующийся для хранения данных не на диске, а в памяти. Информация из базы доступна только во время работы сервера, но это дает колоссальный прирост в производительности.
- Federated/FederatedX — этот движок специализируется на прозрачном разнесении данных по нескольким серверам (физическим) на уровне таблицы.
- PBXT — призванный заменить InnoDB новый движок, в котором реализованы полная поддержка транзакций, многоверсионность, автоматическая обработка дедлоков. Движок оптимизирован для большого количества одновременных транзакций.
- Blackhole — служебный движок, представляющий собой, по сути, /dev/null для СУБД и фактически не производящий никаких записей на диск. Используется для репликации.
- Archive — используется в тех случаях, когда необходимо хранить большие массивы данных без изменений. Для эффективности хранения используется сжатие, что приводит к медлительности во время выборок. Движок хорошо подходит для долговременного хранения логов и другой служебной информации.
- XtraDB — расширенная и исправленная в некоторых проблемных местах InnoDB от компании Percona.
- BlitzDB — еще одна замена для MyISAM с хорошей производительностью за счет встроенного построчного кэширования и автоматического восстановления после сбоев. Движок не поддерживает транзакции.
- NDB — движок для кластера, обладающий, впрочем, кучей проблем и удручающе плохой производительностью.
- Falcon — легендарный движок от компании MySQL AB, разрабатываемый еще со времен Sun, когда было принято решение заменить оракловский InnoDB.
- SphinxSE — полнотекстовый движок от создателя поискового сервера Sphinx. Лучший вариант для полнотекстового поиска и индексации по правилам русского языка. Легко оперирует терабайтами данных, обеспечивая при этом все возможности современной БД.
- Aria — замена для MyISAM с поддержкой транзакций и улучшенной работой с памятью. Движок гарантирует целостность данных и при этом не уступает в скорости MyISAM.
- BDB(BerkeleyDB) — для совместимости с BerkeleyDB.
Клиенты администрирования MySQL
-
Emma
aptitude install emma
- Nerocode SQLWave GUI Client for MySQL Database Server. OS: Windows
- MySQL Navigator.
-
HeidiSQL. Использование Wine
-
SQLyog — запускается помощью Использование Wine
Creating a new database using mysql program
To create a new database via the program, you use the following steps:
First, log in to the MySQL Server using the user
Type the password for the user and press .
Next, to display the existing database in the server to make sure that you are not creating a new database that already exists, you use the command as follows:
MySQL returns five existing databases in the current server.
Then, issue the command with the database e.g., and press Enter:
After that, if you want to review the created database, you can use the command:
MySQL returns the database name and the character set and collation of the database.
Finally, to access the newly created database, you use the command as follows:
Now, you can start creating tables and other databases objects within the database.
To quit the mysql program, type command:
What is MySQL?
- MySQL is a database system used on the web
- MySQL is a database system that runs on a server
- MySQL is ideal for both small and large applications
- MySQL is very fast, reliable, and easy to use
- MySQL uses standard SQL
- MySQL compiles on a number of platforms
- MySQL is free to download and use
- MySQL is developed, distributed, and supported by Oracle Corporation
- MySQL is named after co-founder Monty Widenius’s daughter: My
The data in a MySQL database are stored in tables. A table is a collection of related data, and it consists of columns
and rows.
Databases are useful for storing information categorically. A company may
have a database with the following tables:
- Employees
- Products
- Customers
- Orders
Пример сортировки по относительной позиции
Вы также можете использовать MySQL оператор ORDER BY для сортировки по относительной позиции в результирующем наборе, где первое поле в результирующем наборе равно 1. Следующее поле равно 2 и так далее. Например:
MySQL
SELECT last_name, first_name, city
FROM contacts
WHERE last_name = ‘Markoski’
ORDER BY 3 DESC;
1 2 3 4 |
SELECTlast_name,first_name,city FROMcontacts WHERElast_name=’Markoski’ ORDER BY3DESC; |
Этот пример MySQL ORDER BY вернет все записи, отсортированные по полю city, в порядке убывания, так как поле city находится в позиции №3 в результирующем наборе и будет эквивалентно следующему примеру ORDER BY:
MySQL
SELECT last_name, first_name, city
FROM contacts
WHERE last_name = ‘Markoski’
ORDER BY city DESC;
1 2 3 4 |
SELECTlast_name,first_name,city FROMcontacts WHERElast_name=’Markoski’ ORDER BYcityDESC; |
Пример с соединением таблиц
Следующий MySQL пример AND показывает, как условие AND может использоваться для соединения нескольких таблиц в операторе SELECT. Например:
MySQL
SELECT orders.order_id, suppliers.supplier_name
FROM suppliers, orders
WHERE suppliers.supplier_id = orders.supplier_id
AND suppliers.supplier_name = ‘Apple’;
1 2 3 4 |
SELECTorders.order_id,suppliers.supplier_name FROMsuppliers,orders WHEREsuppliers.supplier_id=orders.supplier_id ANDsuppliers.supplier_name=’Apple’; |
Хотя приведенный запрос работает отлично, можно его записать следующим образом, используя соединение INNER JOIN. Например:
MySQL
SELECT orders.order_id, suppliers.supplier_name
FROM suppliers
INNER JOIN orders
ON suppliers.supplier_id = orders.supplier_id
WHERE suppliers.supplier_name = ‘Apple’;
1 2 3 4 5 |
SELECTorders.order_id,suppliers.supplier_name FROMsuppliers INNER JOINorders ONsuppliers.supplier_id=orders.supplier_id WHEREsuppliers.supplier_name=’Apple’; |
Этот пример MySQL условия AND вернет все строки, где supplier_name — это ‘Apple’. И таблицы suppliers и orders объединенных на основании supplier_id. Вы заметите, что все поля имеют префикс имен таблиц (например: orders.order_id). Это необходимо для устранения какой-либо двусмысленности в отношении того, к какой области относятся ссылки; поскольку одно и то же имя поля может существовать как в таблице suppliers, так и в таблице orders.
В этом случае в результирующем наборе будут отображаться только поля order_id и supplier_name (как указано в первой части оператора SELECT).