MySQL
Creando bases de datos
Buscar..
Sintaxis
- CREAR {BASE DE DATOS | SCHEMA} [IF NOT EXISTS] db_name [create_specification] /// Para crear la base de datos
- DROP {BASE DE DATOS | SCHEMA} [IF EXISTS] db_name /// Para eliminar la base de datos
Parámetros
Parámetro | Detalles |
---|---|
Crear base de datos | Crea una base de datos con el nombre dado. |
Crear un esquema | Este es un sinónimo para CREATE DATABASE |
Si no existe | Se usa para evitar el error de ejecución, si la base de datos especificada ya existe |
create_specification | create_specification opciones de create_specification especifican características de la base de datos como CHARACTER SET y COLLATE ( COLLATE base de datos) |
Crear base de datos, usuarios y subvenciones.
Crear una base de datos. Tenga en cuenta que la palabra abreviada SCHEMA se puede usar como sinónimo.
CREATE DATABASE Baseball; -- creates a database named Baseball
Si la base de datos ya existe, se devuelve el error 1007. Para evitar este error, intente:
CREATE DATABASE IF NOT EXISTS Baseball;
Similar,
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
Debido a las posibilidades de error anteriores, las declaraciones DDL se usan a menudo con IF EXISTS
.
Uno puede crear una base de datos con un conjunto de caracteres predeterminado y colación. Por ejemplo:
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 */ |
+----------+-------------------------------------------------------------------+
Vea sus bases de datos actuales:
SHOW DATABASES;
+---------------------+
| Database |
+---------------------+
| information_schema |
| ajax_stuff |
| Baseball |
+---------------------+
Establezca la base de datos activa actualmente, y vea alguna información:
USE Baseball; -- set it as the current database
SELECT @@character_set_database as cset,@@collation_database as col;
+------+-----------------+
| cset | col |
+------+-----------------+
| utf8 | utf8_general_ci |
+------+-----------------+
Lo anterior muestra el conjunto de caracteres y la intercalación predeterminados para la base de datos.
Crear un usuario:
CREATE USER 'John123'@'%' IDENTIFIED BY 'OpenSesame';
Lo anterior crea un usuario John123, capaz de conectarse con cualquier nombre de host debido al comodín %
. La contraseña para el usuario se establece en 'OpenSesame', que está en hash.
Y crea otro:
CREATE USER 'John456'@'%' IDENTIFIED BY 'somePassword';
Muestre que los usuarios se han creado examinando la base de datos especial de mysql
:
SELECT user,host,password from mysql.user where user in ('John123','John456');
+---------+------+-------------------------------------------+
| user | host | password |
+---------+------+-------------------------------------------+
| John123 | % | *E6531C342ED87 .................... |
| John456 | % | *B04E11FAAAE9A .................... |
+---------+------+-------------------------------------------+
Tenga en cuenta que en este punto, los usuarios se han creado, pero sin ningún permiso para usar la base de datos de béisbol.
Trabajar con permisos para usuarios y bases de datos. Otorgue derechos al usuario John123 para tener privilegios completos en la base de datos de Béisbol y solo SELECCIONE los derechos para el otro usuario:
GRANT ALL ON Baseball.* TO 'John123'@'%';
GRANT SELECT ON Baseball.* TO 'John456'@'%';
Verifique lo anterior:
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'@'%' |
+--------------------------------------------------------------------------------------------------------+
Tenga en cuenta que el GRANT USAGE
que siempre verá significa simplemente que el usuario puede iniciar sesión. Eso es todo lo que eso significa.
Mi base de datos
Debe crear su propia base de datos y no utilizar la escritura en ninguna de las bases de datos existentes. Es probable que esta sea una de las primeras cosas que se deben hacer después de conectarse la primera vez.
CREATE DATABASE my_db;
USE my_db;
CREATE TABLE some_table;
INSERT INTO some_table ...;
Puede hacer referencia a su tabla calificando con el nombre de la base de datos: my_db.some_table
.
Bases de datos del sistema
Las siguientes bases de datos existen para el uso de MySQL. Puede leerlos ( SELECT
), pero no debe escribir ( INSERT
/ UPDATE
/ DELETE
) las tablas en ellos. (Hay algunas excepciones.)
-
mysql
- repositorio de informaciónGRANT
y algunas otras cosas. -
information_schema
: las tablas aquí son 'virtuales' en el sentido de que en realidad se manifiestan mediante estructuras en memoria. Sus contenidos incluyen el esquema para todas las tablas. -
performance_schema
- ?? [por favor acepte, luego edite] - ¿¿otros?? (para MariaDB, Galera, TokuDB, etc.)
Creando y Seleccionando una Base de Datos
Si el administrador crea su base de datos por usted al configurar sus permisos, puede comenzar a usarla. De lo contrario, necesitas crearlo tú mismo:
mysql> CREATE DATABASE menagerie;
En Unix, los nombres de las bases de datos distinguen entre mayúsculas y minúsculas (a diferencia de las palabras clave SQL), por lo que siempre debe referirse a su base de datos como gestor de archivos, no como Menagerie, MENAGERIE o alguna otra variante. Esto también es cierto para los nombres de tablas. (Bajo Windows, esta restricción no se aplica, aunque debe referirse a las bases de datos y tablas que usan el mismo caso de letras en una consulta determinada. Sin embargo, por una variedad de razones, la mejor práctica recomendada es usar el mismo tipo de letra que se usó cuando la base de datos fue creada.)
La creación de una base de datos no la selecciona para su uso; Debes hacerlo explícitamente. Para hacer que menagerie sea la base de datos actual, use esta declaración:
mysql> USE menagerie
Database changed
Su base de datos solo debe crearse una vez, pero debe seleccionarla para usarla cada vez que comience una sesión de mysql. Puede hacerlo emitiendo una declaración USE como se muestra en el ejemplo. Alternativamente, puede seleccionar la base de datos en la línea de comandos cuando invoque mysql. Simplemente especifique su nombre después de cualquier parámetro de conexión que deba proporcionar. Por ejemplo:
shell> mysql -h host -u user -p menagerie
Enter password: ********