Въведение
MySQL поддържа данните, които управлява в таблици и бази данни. Таблиците съхраняват данни в рамките на предварително дефинирани схеми от колони и типове данни. Базите данни са структура, която може да съдържа множество таблици, индекси, процедури и да помогне за дефиниране на обхват за привилегии, персонализации и други.
В това ръководство ще ви покажем как да създавате таблици и бази данни в MySQL. Ще ви покажем как да управлявате някои функции и на двете структури, а след това ще разгледаме как да ги премахнете, за да почистите, ако вече не ви трябват.
Предварителни условия
За да следвате това ръководство, ще трябва да влезете в MySQL сървър с потребител с административни привилегии, използвайки mysql
клиент на командния ред.
Ако не искате да влезете с root
MySQL административен акаунт, вашият потребител ще се нуждае поне от CREATE
привилегия да извършвате действията, описани в това ръководство.
Можете да проверите наличните привилегии на вашия потребител, като напишете:
SHOW GRANTS\G
Как се създава нова база данни?
Първото нещо, което ще демонстрираме как да направим, е да създадем нова база данни. В MySQL базите данни съдържат таблици, индекси, процедури и други ресурси, които обикновено са свързани с един проект. Всеки от тези ресурси трябва да бъде създаден в база данни, така че да научите как да създадете нова база данни е добра първа стъпка.
Основният синтаксис, използван за създаване на нова база данни, изглежда така:
CREATE DATABASE <db_name>;
Заменете
с името, което искате да дадете на вашата база данни, преди да изпълните командата. Тази команда ще създаде база данни с даденото име и ще зададе текущия потребител като собственик на новата база данни.
Базата данни ще използва настройките по подразбиране за цялата система за свойствата на набора от знаци, сортиране и криптиране:
- НАБОР ОТ СИМВОЛИ: задава набора от символи за новата база данни. Това е опция за локализация, която засяга кои знаци се считат за главни, малки и цифри.
- СЪБОРЯВАНЕ: задава колекция , или ред на сортиране за базата данни. Това е опция за локализация, която определя как са организирани артикулите, когато са поръчани.
- ШИФИРАНЕ: задава криптиране за за новата база данни. Това е булева опция, която може да бъде или „Y“ за да, или „N“ за не.
Можете да намерите наборите от знаци, налични за вашата инсталация, като напишете:
SHOW CHARACTER SET;
По същия начин можете да намерите наличните сортировки, като напишете:
SHOW COLLATION;
Ако искате да зададете стойност, която не е по подразбиране за един от тези параметри, можете да го направите, като ги добавите след основния израз за създаване по следния начин:
CREATE DATABASE <db_name> CHARACTER SET = 'utf8mb4' COLLATE = 'utf8mb4_0900_ai_ci' ENCRYPTION = 'Y';
За да следвате примерите в това ръководство, създайте база данни, наречена school
като използвате настройките за локал по подразбиране на вашия екземпляр и набора от символи UTF8:
CREATE DATABASE school CHARACTER SET = 'utf8mb4';
Това ще създаде вашата нова база данни с помощта на предоставените от вас спецификации.
Списък на съществуващите бази данни
За да изброите базите данни, които са налични на вашия сървър, въведете:
SHOW DATABASES;
Това ще изброи всяка от базите данни, дефинирани в момента в средата:
+--------------------+ Database |+--------------------+ information_schema | mysql | performance_schema | school | sys | testing |+--------------------+6 rows in set (0.00 sec)
Можете да проверите дали предоставените от вас настройки са приложени към новото училище
база данни с помощта на SHOW CREATE DATABASE
команда:
SHOW CREATE DATABASE school;
Резултатът ще покаже командата и опциите, използвани за създаване на базата данни, допълвайки опциите с приложените стойности по подразбиране:
+----------+----------------------------------------------------------------------------------------------------------------------------------+ Database | Create Database |+----------+----------------------------------------------------------------------------------------------------------------------------------+ school | CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |+----------+----------------------------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)
Как да преминете към различна база данни в MySQL
След като вашата база данни бъде създадена, можете да работите с нея по няколко различни начина.
Първата опция е да посочите базата данни като аргумент във всяка команда, която използвате. За да спестите време, ако изпълнявате множество команди, свързани с обектите на базата данни, можете също да „превключите“ или „използвате“ базата данни, за да зададете новата си база данни като контекст по подразбиране за всички свързани с базата данни команди, които ще изпълнявате .
За да преминете към друга база данни, въведете:
USE <db_name>;
В нашия случай можем да преминем към училище
база данни, която създадохме, като напишем:
USE school;
Създаване на таблици в бази данни
След като създадете база данни, можете да дефинирате таблици и други обекти вътре, за да съхранявате и управлявате вашите данни. В MySQL таблиците се състоят от име на таблица, дефиниции на колони (те от своя страна включват имена, типове данни и ограничения между другото) и опции за таблица.
Какъв е синтаксисът на CREATE TABLE
на MySQL команда?
Основният синтаксис за създаване на таблици с помощта на CREATE TABLE
на MySQL командата изглежда така:
CREATE TABLE <table_name> ( <column_name> <data_type> [<column_constraint>], [<table_constraint>,]);
Можем да разбием горния команден шаблон на следните компоненти:
СЪЗДАВАНЕ НА ТАБЛИЦА <име_на_таблица>код>
:Основната декларация за създаване.
заместителят трябва да бъде заменен с името на таблицата, която искате да използвате.
:Дефинира основна колона в таблицата.
заместителят трябва да бъде заменен с името, което искате да използвате за вашата колона.
определя типа данни на MySQL на колоната. Данните, съхранявани в таблицата, трябва да отговарят на структурата на колоните и типовете данни на колоните, за да бъдат приети.
:Ограниченията в колоните са незадължителни ограничения, които добавят допълнителни изисквания към данните. Например, можете да изисквате записите да не са нулеви, уникални или положителни цели числа.
:Ограниченията в таблицата са подобни на ограниченията за колони, но включват взаимодействието на множество колони. Например, можете да имате ограничение на таблицата, което проверява далиDATE_OF_BIRTH
е предиDATE_OF_DEATH
в таблица.
Как се създават таблици само ако те вече не съществуват?
Поведението по подразбиране на MySQL е да изведе грешка, ако се опитате да създадете таблица, която вече съществува. Въпреки това, незадължителният АКО НЕ СЪЩЕСТВУВА
клауза може да се добави към оператора за създаване, за да се отмени това поведение.
Можете да използвате АКО НЕ СЪЩЕСТВУВА
клауза, като я вмъкнете в командата след CREATE TABLE
фраза, но преди името на таблицата:
CREATE TABLE IF NOT EXISTS table_name ( column_name TYPE [column_constraint], [table_constraint,]);
Това ще промени поведението на командата, както следва:Ако посоченото име на таблица вече съществува, MySQL ще изведе предупреждение вместо грешка. Останалата част от командното поведение остава същото.
Създаване на таблици в MySQL бази данни
Посоченият по-горе команден шаблон е достатъчен за създаване на основни таблици. За да продължим нашия пример, ще създадем две таблици в нашето училище
база данни. Една таблица ще се нарича консумативи
а другият ще се нарича учители
:
В консумативи
таблица, ще включим следните полета:
- id: Уникален идентификационен номер за всеки тип училищни принадлежности.
- име: Името на конкретен учебен предмет.
- описание: Кратко описание на артикула.
- производител: Името на производителя на артикула.
- цвят: Цветът на артикула.
- инвентар: Броят на артикулите, с които разполагаме за определен вид училищни принадлежности. Това никога не трябва да е по-малко от 0.
Можем да създадем консумативите
таблица с горните качества, използвайки следния SQL:
CREATE TABLE supplies ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), description VARCHAR(255), manufacturer VARCHAR(255), color VARCHAR(255), inventory INT CHECK (inventory >= 0));
Това ще създаде консумативите
таблица в училището
база данни. ПЪРВИЧНИЯ КЛЮЧ
Ограничението на колоната е специално ограничение, използвано за обозначаване на колони, които могат уникално да идентифицират записи в таблицата. Като такова, ограничението указва, че колоната не може да бъде нула и трябва да бъде уникална. MySQL създава индекси за колони с първичен ключ, за да увеличи скоростта на заявките.
Проверете дали новата таблица е налице, като напишете:
SHOW TABLES;
+------------------+ Tables_in_school |+------------------+ supplies |+------------------+1 row in set (0.01 sec)
Можете да проверите дали схемата отразява вашата дефиниция, като напишете:
SHOW CREATE TABLE supplies\G
*************************** 1. row *************************** Table: suppliesCreate Table: CREATE TABLE `supplies` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `description` varchar(255) DEFAULT NULL, `manufacturer` varchar(255) DEFAULT NULL, `color` varchar(255) DEFAULT NULL, `inventory` int DEFAULT NULL, PRIMARY KEY (`id`), CONSTRAINT `supplies_chk_1` CHECK ((`inventory` >= 0))) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci1 row in set (0.00 sec
Колоните, типове данни и ограниченията, които посочихме, присъстват в изхода, въпреки че подреждането и показването може да са различни.
След това създайте учители
маса. В тази таблица трябва да присъстват следните колони:
- id :Уникален идентификационен номер на служител.
- first_name :Името на учителя.
- фамилия :Фамилия на учителя.
- предмет :Предметът, който учителят е нает да преподава.
- степен_ниво :Нивото на класа на учениците, които преподавателят е нает да преподава.
Създайте учители
таблица с горната схема със следния SQL:
CREATE TABLE teachers ( id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(255), last_name VARCHAR(255), subject VARCHAR(255), grade_level INT);
Как да създавате таблици с първични и външни ключове
Можете да намерите информация за създаване на таблици с първични и външни ключове в някои от другите ни ръководства за MySQL. Първичните и външните ключове са и двата типа ограничения на базата данни в MySQL.
Първичният ключ е специална колона или колона, която гарантирано е уникална за всички редове в една и съща таблица. Всички първични ключове могат да се използват за уникално идентифициране на конкретен ред. Първичните ключове не само гарантират, че всеки ред има уникална стойност за колоните с първичен ключ, но също така гарантират, че нито един ред не съдържа NULL
стойности за тази колона. Често първичният ключ в MySQL използва следния формат, за да посочи автоматично присвоен нарастващ първичен ключ:id INT AUTO_INCREMENT PRIMARY KEY
.
Външните ключове са начин да се гарантира, че колона или колони в една таблица съответстват на стойностите, съдържащи се в друга таблица. Това помага да се осигури референтна цялост между таблиците.
Как да преглеждате таблици в MySQL
В MySQL можете да изброите таблици по няколко различни начина в зависимост от това каква информация търсите.
Ако искате да видите какви таблици са налични във вашата база данни, въведете:
SHOW TABLES;
+------------------+ Tables_in_school |+------------------+ supplies | teachers |+------------------+2 rows in set (0.00 sec)
Можете също да проверите дали схемата за таблицата съответства на вашите спецификации:
DESCRIBE teachers;
+--------------+--------------+------+-----+---------+----------------+ Field | Type | Null | Key | Default | Extra |+--------------+--------------+------+-----+---------+----------------+ id | int | NO | PRI | NULL | auto_increment | name | varchar(255) | YES | | NULL | | description | varchar(255) | YES | | NULL | | manufacturer | varchar(255) | YES | | NULL | | color | varchar(255) | YES | | NULL | | inventory | int | YES | | NULL | |+--------------+--------------+------+-----+---------+----------------+6 rows in set (0.00 sec)
Учителите
таблицата изглежда отговаря на нашата дефиниция.
Как да променяте таблици с ALTER TABLE
команда
Ако трябва да промените схемата на съществуваща таблица в MySQL, можете да използвате ALTER TABLE
команда. ALTER TABLE
командата е много подобна на CREATE TABLE
команда, но работи върху съществуваща таблица.
Промяна на синтаксиса на таблицата
Основният синтаксис за модифициране на таблици в MySQL изглежда така:
ALTER TABLE <table_name> <change_command> <change_parameters>;
посочва точния тип промяна, която искате да направите, независимо дали включва задаване на различни опции в таблицата, добавяне или премахване на колони, или промяна на типове или ограничения.
част от командата съдържа всякаква допълнителна информация, която MySQL е необходима, за да завърши промяната.
Добавяне на колони към таблици
Можете да добавите колона към MySQL таблица с ADD
команда за промяна. Параметрите за промяна ще включват името на колоната, типа и опциите, точно както бихте ги посочили в CREATE TABLE
команда.
Например, за да добавите колона, наречена missing_column
на текста
въведете в таблица, наречена some_table
, бихте написали:
ALTER TABLE some_table ADD missing_column text;
Премахване на колони от таблици
Ако вместо това искате да премахнете съществуваща колона, можете да използвате DROP COLUMN
вместо това команда. Трябва да посочите името на колоната, която искате да премахнете като параметър за промяна:
ALTER TABLE some_table DROP COLUMN useless_column;
Промяна на типа данни на колона
За да промените типа данни на колона, можете да използвате ALTER COLUMN
команда за промяна с МОДИФИЦИРАНЕ НА КОЛОНА
команда колона. Параметрите в този контекст включват името на колоната и нейния нов тип:
ALTER TABLE resident MODIFY COLUMN id INT;
Други промени в таблицата
Много други видове промени могат да бъдат постигнати с ALTER TABLE
команда. За повече информация относно наличните опции, вижте официалната документация на MySQL за ALTER TABLE
.
Изпускане на таблици
Ако искате да изтриете таблица, можете да използвате DROP TABLE
SQL изявление. Това ще изтрие таблицата, както и всички данни, съхранявани в нея.
Основният синтаксис изглежда така:
DROP TABLE <table_name>;
Това ще изтрие таблицата, ако съществува, и ще изведе грешка, ако името на таблицата не съществува.
Ако искате да изтриете таблицата, ако тя съществува, и да не правите нищо, ако не съществува, можете да включите IF EXISTS
квалификатор в изявлението:
DROP TABLE IF EXISTS <table_name>;
Таблици, които имат зависимости от други таблици или обекти, не могат да бъдат изтрити по подразбиране, докато тези зависимости съществуват.
Изтрийте консумативите
таблица, която създадохме по-рано, като напишем:
DROP TABLE supplies;
Ще запазим учителите
база данни, за да демонстрира, че изразът за изтриване на бази данни също премахва всички дъщерни обекти като таблици.
Изхвърляне на бази данни
DROP DATABASE
изявление казва на MySQL да изтрие посочената база данни. Основният синтаксис изглежда така:
DROP DATABASE <database_name>;
Заменете <име_на_база от данни>код> заместител с името на базата данни, която искате да премахнете. Това ще изтрие базата данни, ако бъде намерена. Ако базата данни не може да бъде намерена, ще възникне грешка:
DROP DATABASE some_database;
ERROR 1008 (HY000): Can't drop database 'some_database'; database doesn't exist
Ако искате да изтриете базата данни, ако тя съществува и по друг начин да не правите нищо, включете незадължителния IF EXISTS
опция:
DROP DATABASE IF EXISTS some_database;
Query OK, 0 rows affected, 1 warning (0.00 sec)
Това ще премахне базата данни или ще направи нищо, ако не може да бъде намерена.
За да премахнете училището
база данни, която използвахме в това ръководство, избройте съществуващите бази данни във вашата система:
SHOW DATABASES;
+--------------------+ Database |+--------------------+ information_schema | mysql | performance_schema | school | sys | testing |+--------------------+6 rows in set (0.00 sec)
Изтрийте училището
база данни със следната команда:
DROP DATABASE school;
Това ще премахне училището
база данни заедно с учителите
таблица, дефинирана вътре.
Заключение
Тази статия обхваща основите на това как да създавате и изтривате бази данни и таблици с MySQL. Това са някои от най-основните команди, необходими за настройване на система от база данни и за определяне на структурата на вашите данни.
Както споменахме по-рано, SQL операторите, обхванати в този урок за MySQL, особено CREATE TABLE
изявление, имат много допълнителни параметри, могат да се използват за промяна на поведението на системата. Можете да научите повече за тях, като разгледате официалната документация на MySQL.