Szukaj…


Składnia

  • UTWÓRZ {BAZY DANYCH | SCHEMA} [JEŚLI NIE ISTNIEJE] nazwa_db [specyfikacja_tworzenia] /// Aby utworzyć bazę danych
  • DROP {BAZA DANYCH | SCHEMA} [JEŚLI ISTNIEJE] nazwa_db /// Aby usunąć bazę danych

Parametry

Parametr Detale
UTWÓRZ BAZA DANYCH Tworzy bazę danych o podanej nazwie
UTWÓRZ SCHEMAT To jest synonim CREATE DATABASE
JEŚLI NIE ISTNIEJE Służy do uniknięcia błędu wykonania, jeśli określona baza danych już istnieje
utwórz specyfikację opcje create_specification określają cechy bazy danych, takie jak CHARACTER SET i COLLATE (sortowanie bazy danych)

Utwórz bazę danych, użytkowników i dotacje

Utwórz bazę danych. Pamiętaj, że skrócone słowo SCHEMA może być używane jako synonim.

CREATE DATABASE Baseball; -- creates a database named Baseball

Jeśli baza danych już istnieje, zwracany jest błąd 1007. Aby obejść ten błąd, spróbuj:

CREATE DATABASE IF NOT EXISTS Baseball;

Podobnie,

DROP DATABASE IF EXISTS Baseball; -- Drops a database if it exists, avoids Error 1008
DROP DATABASE xyz; -- If xyz does not exist, ERROR 1008 will occur

Ze względu na powyższe możliwości wystąpienia błędu instrukcje DDL są często używane z IF EXISTS .

Można utworzyć bazę danych z domyślnym ZESTAWEM ZNAKÓW i zestawieniem. Na przykład:

CREATE DATABASE Baseball CHARACTER SET utf8 COLLATE utf8_general_ci;

SHOW CREATE DATABASE Baseball;
+----------+-------------------------------------------------------------------+
| Database | Create Database                                                   |
+----------+-------------------------------------------------------------------+
| Baseball | CREATE DATABASE `Baseball` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-------------------------------------------------------------------+

Zobacz swoje aktualne bazy danych:

SHOW DATABASES;
+---------------------+
| Database            |
+---------------------+
| information_schema  |
| ajax_stuff          |
| Baseball            |
+---------------------+

Ustaw aktualnie aktywną bazę danych i zobacz kilka informacji:

USE Baseball; -- set it as the current database
SELECT @@character_set_database as cset,@@collation_database as col;
+------+-----------------+
| cset | col             |
+------+-----------------+
| utf8 | utf8_general_ci |
+------+-----------------+

Powyżej pokazano domyślny ZESTAW ZNAKÓW i sortowanie dla bazy danych.

Utwórz użytkownika:

CREATE USER 'John123'@'%' IDENTIFIED BY 'OpenSesame';

Powyższe powoduje utworzenie użytkownika John123, który może połączyć się z dowolną nazwą hosta dzięki % wildcard. Hasło użytkownika jest ustawione na „OpenSesame”, które jest mieszane.

I utwórz kolejną:

CREATE USER 'John456'@'%' IDENTIFIED BY 'somePassword';

Pokaż, że użytkownicy zostali utworzeni, sprawdzając specjalną bazę danych mysql :

SELECT user,host,password from mysql.user where user in ('John123','John456');
+---------+------+-------------------------------------------+
| user    | host | password                                  |
+---------+------+-------------------------------------------+
| John123 | %    | *E6531C342ED87 ....................       |
| John456 | %    | *B04E11FAAAE9A ....................       |
+---------+------+-------------------------------------------+

Należy pamiętać, że w tym momencie użytkownicy zostali utworzeni, ale bez żadnych uprawnień do korzystania z bazy danych Baseball.

Praca z uprawnieniami dla użytkowników i baz danych. Przyznaj uprawnienia użytkownikowi John123, aby mieć pełne uprawnienia do bazy danych Baseball, i po prostu WYBIERZ uprawnienia dla drugiego użytkownika:

GRANT ALL ON Baseball.* TO 'John123'@'%';
GRANT SELECT ON Baseball.* TO 'John456'@'%';

Sprawdź powyższe:

SHOW GRANTS FOR 'John123'@'%';
+--------------------------------------------------------------------------------------------------------+
| Grants for John123@%                                                                                   |
+--------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'John123'@'%' IDENTIFIED BY PASSWORD '*E6531C342ED87 ....................        |
| GRANT ALL PRIVILEGES ON `baseball`.* TO 'John123'@'%'                                                  |
+--------------------------------------------------------------------------------------------------------+

SHOW GRANTS FOR 'John456'@'%';
+--------------------------------------------------------------------------------------------------------+
| Grants for John456@%                                                                                   |
+--------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'John456'@'%' IDENTIFIED BY PASSWORD '*B04E11FAAAE9A ....................        |
| GRANT SELECT ON `baseball`.* TO 'John456'@'%'                                                          |
+--------------------------------------------------------------------------------------------------------+

Pamiętaj, że GRANT USAGE , które zawsze zobaczysz, oznacza po prostu, że użytkownik może się zalogować. To wszystko, co to znaczy.

Moja baza danych

Musisz stworzyć własną bazę danych, a nie korzystać z zapisu do żadnej z istniejących baz danych. Jest to prawdopodobnie jedna z pierwszych rzeczy do zrobienia po pierwszym połączeniu.

CREATE DATABASE my_db;
USE my_db;
CREATE TABLE some_table;
INSERT INTO some_table ...;

Możesz odwoływać się do tabeli, kwalifikując się przy użyciu nazwy bazy danych: my_db.some_table .

Systemowe bazy danych

Istnieją następujące bazy danych do użytku MySQL. Możesz je przeczytać ( SELECT ), ale nie wolno zapisywać ( INSERT / UPDATE / DELETE ) tabel w nich. (Jest kilka wyjątków).

  • mysql - repozytorium informacji GRANT i kilku innych rzeczy.
  • information_schema - Tabele tutaj są „wirtualne” w tym sensie, że faktycznie są manifestowane przez struktury w pamięci. Ich zawartość obejmuje schemat wszystkich tabel.
  • performance_schema - ?? [zaakceptuj, a następnie edytuj]
  • inni? (dla MariaDB, Galera, TokuDB itp.)

Tworzenie i wybór bazy danych

Jeśli administrator utworzy dla Ciebie bazę danych podczas konfigurowania uprawnień, możesz zacząć z niej korzystać. W przeciwnym razie musisz go utworzyć samodzielnie:

mysql> CREATE DATABASE menagerie;

W systemie Unix w nazwach baz danych rozróżniana jest wielkość liter (w przeciwieństwie do słów kluczowych SQL), dlatego zawsze należy odwoływać się do bazy danych jako menażeria, a nie jako menażeria, menageria lub inny wariant. Dotyczy to również nazw tabel. (W systemie Windows to ograniczenie nie ma zastosowania, chociaż należy odwoływać się do baz danych i tabel używających tej samej litery w całym zapytaniu. Jednak z różnych powodów zalecaną najlepszą praktyką jest zawsze stosowanie tej samej litery, która była używana, gdy baza danych została utworzona).

Utworzenie bazy danych nie powoduje jej wyboru; musisz to zrobić wyraźnie. Aby menażeria była bieżącą bazą danych, użyj tej instrukcji:

mysql> USE menagerie
Database changed

Baza danych musi zostać utworzona tylko raz, ale musisz ją wybrać do użycia przy każdym rozpoczęciu sesji mysql. Możesz to zrobić, wydając instrukcję USE, jak pokazano w przykładzie. Alternatywnie możesz wybrać bazę danych w wierszu poleceń, gdy wywołujesz mysql. Wystarczy podać jego nazwę po parametrach połączenia, które mogą być konieczne. Na przykład:

shell> mysql -h host -u user -p menagerie
Enter password: ********


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow