MySQL / Database үүсгэх, устгах

Database үүсгэх, устгах

Database бол холбоотой хүснэгтүүдийн цуглуулга юм. Нэг MySQL server дээр олон database байж болно — жишээ нь нэг сервер дээр myshop, blog, analytics гэсэн гурван database зэрэг ажиллаж болно.

SHOW DATABASES

MySQL server дэх бүх database-ийн жагсаалтыг харах:

sql
SHOW DATABASES;
код
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

Эдгээр 4 database нь MySQL-ийн систем database — устгаж болохгүй.

| Database | Үүрэг | | -------------------- | ---------------------------------- | | information_schema | Бүх database, table-ийн мэтаданы | | mysql | Хэрэглэгч, эрхийн мэдээлэл | | performance_schema | Гүйцэтгэлийн статистик | | sys | Системийн харагдах байдлын тусламж |


CREATE DATABASE

Шинэ database үүсгэх:

sql
CREATE DATABASE myshop;
код
Query OK, 1 row affected (0.01 sec)

Давтагдашгүй нэрийн баталгаа:

Аль хэдийн байгаа нэрээр үүсгэхийг оролдвол алдаа гарна:

sql
CREATE DATABASE myshop;
-- ERROR 1007: Can't create database 'myshop'; database exists

Алдаагаас зайлсхийх:

sql
CREATE DATABASE IF NOT EXISTS myshop;
-- Query OK, 1 row affected (0.00 sec)

Нэрлэлтийн дүрэм

Database нэр дараах дүрмийг дагах хэрэгтэй:

  • Үсэг, тоо, доогуур зураас (_) ашиглаж болно
  • Хоосон зай болон тусгай тэмдэгт (-, #, @) ашиглаж болохгүй
  • Жижиг үсэг хэрэглэхийг зөвлөдөг — Linux дээр MySQL нэр case-sensitive байдаг
  • Хамгийн их урт: 64 тэмдэгт
sql
-- Зөв
CREATE DATABASE myshop;
CREATE DATABASE my_shop;
CREATE DATABASE shop2024;

-- Буруу (хоосон зай)
CREATE DATABASE my shop;

-- Дараах нэрнүүдийг backtick-ээр хашвал болно, гэхдээ зайлсхийх нь дээр
CREATE DATABASE `my-shop`;

CHARACTER SET тохируулах

Монгол Кирилл үсэг зөв хадгалагдахын тулд utf8mb4 charset ашиглана:

sql
CREATE DATABASE myshop
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;
  • utf8mb4 — emoji болон Кирилл үсэг зэрэг бүх Unicode тэмдэгтийг дэмжинэ
  • utf8mb4_unicode_ci — харьцуулалт хийхдээ жижиг/том үсгийг адилтгана (case-insensitive)

MySQL 8.0 дээр utf8mb4 нь анхдагч тул заавал бичих шаардлагагүй. Гэхдээ тодорхой болгохын тулд бичих нь зүйтэй.

Одоогийн server-ийн анхдагч charset шалгах:

sql
SHOW VARIABLES LIKE 'character_set_server';

USE — database сонгох

Database үүсгэсний дараа ашиглахын тулд заавал сонгох хэрэгтэй:

sql
USE myshop;
код
Database changed

Одоо ямар database сонгогдсон байгааг шалгах:

sql
SELECT DATABASE();
код
+----------+
| DATABASE()|
+----------+
| myshop   |
+----------+

USE хийгээгүй байхад SQL командыг ажиллуулбал:

sql
SELECT * FROM users;
-- ERROR 1046: No database selected

Database мэдээлэл харах

sql
SHOW CREATE DATABASE myshop;
код
+----------+-------------------------------------------------------------------+
| Database | Create Database                                                   |
+----------+-------------------------------------------------------------------+
| myshop   | CREATE DATABASE `myshop` /*!40100 DEFAULT CHARACTER SET utf8mb4 */|
+----------+-------------------------------------------------------------------+

DROP DATABASE — устгах

Database-ийг бүх хүснэгтийн хамт бүрмөсөн устгана:

sql
DROP DATABASE myshop;
код
Query OK, 0 rows affected (0.01 sec)

Анхааруулга: DROP DATABASE буцаах боломжгүй. Бүх өгөгдөл алдагдана.

Байхгүй database устгахыг оролдвол алдаа гарахаас сэргийлэх:

sql
DROP DATABASE IF EXISTS myshop;

Жишээ: онлайн дэлгүүрийн database

sql
-- Database үүсгэх
CREATE DATABASE myshop
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

-- Сонгох
USE myshop;

-- Шалгах
SELECT DATABASE();

Энэ дараалал курсын туршид ашиглагдах myshop database-ийн суурь юм.


Дараагийн хичээлд:

Database дотор хүснэгт (table) үүсгэх — CREATE TABLE синтакс, багана (column) тодорхойлох, SHOW TABLES, DESCRIBE командуудыг үзнэ.