Database үүсгэх, устгах
Database бол холбоотой хүснэгтүүдийн цуглуулга юм. Нэг MySQL server дээр олон database байж болно — жишээ нь нэг сервер дээр myshop, blog, analytics гэсэн гурван database зэрэг ажиллаж болно.
SHOW DATABASES
MySQL server дэх бүх database-ийн жагсаалтыг харах:
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 үүсгэх:
CREATE DATABASE myshop;
Query OK, 1 row affected (0.01 sec)
Давтагдашгүй нэрийн баталгаа:
Аль хэдийн байгаа нэрээр үүсгэхийг оролдвол алдаа гарна:
CREATE DATABASE myshop;
-- ERROR 1007: Can't create database 'myshop'; database exists
Алдаагаас зайлсхийх:
CREATE DATABASE IF NOT EXISTS myshop;
-- Query OK, 1 row affected (0.00 sec)
Нэрлэлтийн дүрэм
Database нэр дараах дүрмийг дагах хэрэгтэй:
- Үсэг, тоо, доогуур зураас (
_) ашиглаж болно - Хоосон зай болон тусгай тэмдэгт (
-,#,@) ашиглаж болохгүй - Жижиг үсэг хэрэглэхийг зөвлөдөг — Linux дээр MySQL нэр case-sensitive байдаг
- Хамгийн их урт: 64 тэмдэгт
-- Зөв
CREATE DATABASE myshop;
CREATE DATABASE my_shop;
CREATE DATABASE shop2024;
-- Буруу (хоосон зай)
CREATE DATABASE my shop;
-- Дараах нэрнүүдийг backtick-ээр хашвал болно, гэхдээ зайлсхийх нь дээр
CREATE DATABASE `my-shop`;
CHARACTER SET тохируулах
Монгол Кирилл үсэг зөв хадгалагдахын тулд utf8mb4 charset ашиглана:
CREATE DATABASE myshop
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
utf8mb4— emoji болон Кирилл үсэг зэрэг бүх Unicode тэмдэгтийг дэмжинэutf8mb4_unicode_ci— харьцуулалт хийхдээ жижиг/том үсгийг адилтгана (case-insensitive)
MySQL 8.0 дээр utf8mb4 нь анхдагч тул заавал бичих шаардлагагүй. Гэхдээ тодорхой болгохын тулд бичих нь зүйтэй.
Одоогийн server-ийн анхдагч charset шалгах:
SHOW VARIABLES LIKE 'character_set_server';
USE — database сонгох
Database үүсгэсний дараа ашиглахын тулд заавал сонгох хэрэгтэй:
USE myshop;
Database changed
Одоо ямар database сонгогдсон байгааг шалгах:
SELECT DATABASE();
+----------+
| DATABASE()|
+----------+
| myshop |
+----------+
USE хийгээгүй байхад SQL командыг ажиллуулбал:
SELECT * FROM users;
-- ERROR 1046: No database selected
Database мэдээлэл харах
SHOW CREATE DATABASE myshop;
+----------+-------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------+
| myshop | CREATE DATABASE `myshop` /*!40100 DEFAULT CHARACTER SET utf8mb4 */|
+----------+-------------------------------------------------------------------+
DROP DATABASE — устгах
Database-ийг бүх хүснэгтийн хамт бүрмөсөн устгана:
DROP DATABASE myshop;
Query OK, 0 rows affected (0.01 sec)
Анхааруулга: DROP DATABASE буцаах боломжгүй. Бүх өгөгдөл алдагдана.
Байхгүй database устгахыг оролдвол алдаа гарахаас сэргийлэх:
DROP DATABASE IF EXISTS myshop;
Жишээ: онлайн дэлгүүрийн database
-- 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 командуудыг үзнэ.