Sök…


Syntax

  • SKAPA {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] /// För att skapa databas
  • DROP {DATABASE | SCHEMA} [IF EXISTS] db_name /// För att släppa databasen

parametrar

Parameter detaljer
SKAPA DATABASERING Skapar en databas med det givna namnet
SKAPA SCHEMA Detta är en synonym för CREATE DATABASE
OM INTE existerar Används för att undvika exekveringsfel om specifik databas redan finns
create_specification create_specification anger databasegenskaper som CHARACTER SET och COLLATE (databassamling)

Skapa databas, användare och bidrag

Skapa en DATABASE. Observera att det förkortade ordet SCHEMA kan användas som synonym.

CREATE DATABASE Baseball; -- creates a database named Baseball

Om databasen redan finns returneras fel 1007. För att komma runt detta fel, försök:

CREATE DATABASE IF NOT EXISTS Baseball;

Liknande,

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

På grund av ovanstående felmöjligheter används ofta DDL-uttalanden med IF EXISTS .

Man kan skapa en databas med en standard CHARACTER SET och sortering. Till exempel:

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 */ |
+----------+-------------------------------------------------------------------+

Se dina nuvarande databaser:

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

Ställ in den nuvarande aktiva databasen och se information:

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

Ovanstående visar standard CHARACTER SET och Collation för databasen.

Skapa en användare:

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

Ovanstående skapar en användare John123, som kan ansluta till alla värdnamn på grund av % jokertecken. Lösenordet för användaren är inställt på 'OpenSesame' som hashas.

Och skapa en annan:

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

Visa att användarna har skapats genom att granska den speciella mysql databasen:

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

Observera att på denna punkt har användarna skapats, men utan behörigheter att använda Baseball-databasen.

Arbeta med behörigheter för användare och databaser. Ge rättigheter till användaren John123 för att ha fullständiga behörigheter i Baseball-databasen och bara VÄLJ rättigheter för den andra användaren:

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

Verifiera ovanstående:

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'@'%'                                                          |
+--------------------------------------------------------------------------------------------------------+

Observera att GRANT USAGE som du alltid kommer att se betyder helt enkelt att användaren kan logga in. Det är allt det som betyder.

mydatabase

Du måste skapa din egen databas och inte använda skriva till någon av de befintliga databaserna. Detta är sannolikt en av de allra första sakerna att göra efter att ha anslutit sig första gången.

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

Du kan referera till din tabell genom att kvalificera dig med databasnamnet: my_db.some_table .

Systemdatabaser

Följande databaser finns för MySQL: s användning. Du kanske läser ( SELECT ) dem, men du får inte skriva ( INSERT / UPDATE / DELETE ) tabellerna i dem. (Det finns några undantag.)

  • mysql - förvar för GRANT information och några andra saker.
  • information_schema - Tabellerna här är 'virtuella' i den meningen att de faktiskt manifesteras av strukturer i minnet. Deras innehåll inkluderar schemat för alla tabeller.
  • performance_schema - ?? [acceptera och redigera sedan]
  • andra ?? (för MariaDB, Galera, TokuDB, etc)

Skapa och välja en databas

Om administratören skapar din databas åt dig när du ställer in dina behörigheter kan du börja använda den. Annars måste du skapa det själv:

mysql> CREATE DATABASE menagerie;

Under Unix är databasnamn skiftlägeskänsliga (till skillnad från SQL-nyckelord), så du måste alltid hänvisa till din databas som menagerie, inte som Menagerie, MENAGERIE eller någon annan variant. Detta gäller också för tabellnamn. (Under Windows gäller inte denna begränsning, även om du måste hänvisa till databaser och tabeller som använder samma bokstav i en given fråga. Men av olika skäl är den rekommenderade bästa praxis alltid att använda samma bokstav som användes när databasen skapades.)

Att skapa en databas väljer inte den för användning; du måste göra det uttryckligen. För att göra menagerie till den aktuella databasen, använd detta uttalande:

mysql> USE menagerie
Database changed

Din databas behöver bara skapas en gång, men du måste välja den för användning varje gång du påbörjar en mysql-session. Du kan göra detta genom att utfärda ett USE-uttalande som visas i exemplet. Alternativt kan du välja databasen på kommandoraden när du åberopar mysql. Ange bara namnet efter alla anslutningsparametrar som du kan behöva ange. Till exempel:

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow