منبع اصلی نوشتار زیر در این لینک قرار دارد

ایجاد پایگاه داده در MySQL

در پایگاه داده MySQL اولین گام ایجاد یک پایگاه داده (اسکیما یا Schema) است. در نسخه های فعلی MySQL مانند ۵.۷ مفهوم پایگاه داده و اسکیما یکی هستند ولی در زمان ایجاد توسط دستور مربوطه، می توان تعیین کرد. در واقع تمامی اشیا پایگاه داده مانند جدول ها و ایندکس ها در غالب پایگاه داده یا اسکیما ذخیره می شوند. عبارت کلی برای ایجاد پایگاه داده به صورت شکل زیر است.

mysql_create_database1

در هنگام تعریف می توانید یکی از دو عبارت DATABASE یا SCHEMA را تعیین کنید. رایج آن است که از عبارت CREATE DATABASE  استفاده شود. عبارت IF NOT EXISTS اخیتاری است و برای آن استفاده می شود که مطمئن شویم در زمان ایجاد پایگاه داده، آن پایگاه داده از قبل وجود نداشته باشد. db_name نام پایگاه داده را مشخص می کند.

;CREATE DATABASE my_sample_db

حال اگر دستور CREATE SCHEMA MY_SAMPLE_DB را اجرا کنیم خطای زیر نشان داده خواهد شد.

ERROR 1007 (HY000): Can’t create database ‘my_sample_db’; database exists

کاربری که می خواهد پایگاه داده یا اسکیما را ایجاد کند باید مجوز CREATE را داشته باشد.

;’CREATE USER ‘dbcreator@localhost’ IDENTIFIED BY ‘PASSWORD_FOR_USER

;’GRANT CREATE ON *.* TO ‘dbcreator@localhost

پس از آنکه پایگاه داده را ایجاد کردیم با استفاده از دستور USE باید از آن پایگاه داده استفاده کنیم. در واقع پس از لاگین به MySQL برای انتخاب یک پایگاه داده و یا سوئیچ به یک پایگاه داده دیگر از دستور USE استفاده می کنیم. پایگاه داده ای که با USE انتخاب شود را Default Database یا پایگاه داده پیشفرض می نامیم.

;USE db_name

زمانی که می خواهیم به پایگاه داده لاگین کنیم می توانیم از سوئیچ database– برای انتخاب پایگاه داده پیش فرض استفاده کنیم.

mysql -u root –database db_name -p

دستور بالا معادل اجرای متوالی دستور های زیر است. اولین دستور در خط فرمان سیستم عامل و دستور دوم درون خط فرمان MySQL اجرا می شود.

os shell> mysql -u root -p

mysql> use db_name

create_specification مشخصات یک پایگاه داده را تعیین می کند. خصوصیات یک پایگاه داده که default-character-set و default-collation هستند در فایل db.opt ذخیره می شوند. در عبارت ایجاد CREATE DATABASE از دستور CHARACTER SET می توانیم Character set را مشخص کنیم. از دستور COLLATE برای مشخص کردن Database Collation استفاده می کنیم.

CREATE DATABASE my_sample_db

CHARACTER SET latine1

;COLLATE latin1_swedish_ci

اگر هر دوی Character set و Collation انتخاب شوند، مقادیر مشخص شده برای پایگاه داده استفاده می شوند. برای هر Character set یک سری Collation وجود دارد که یکی از آنها پیش فرض است. در صورتی که Character set مشخص شده باشد ولی Collate مشخص نشده باشد، آنگاه از Default Collation برای آن Character set استفاده می شود. برای نمایش Collation ها و Character set ها از نمونه دستورهای زیر استفاده کنید.

;show collation

;show character set

اگر Collate مشخص شود ولی Character set مشخص نشود آنگاه Character set مختص Collate و آن Collate مشخص شده مورد استفاده قرار می گیرند. در صورتی که هیچ یک از این دو مشخص نشوند، Character set و Collate مربوط به پایگاه داده مورد استفاده قرار می گیرند. برای پیدا کردن Character set و Collation پیش فرض یک پایگاه داده از دستور های زیر استفاده می کنیم.

;USE db_name

;SELECT @@character_set_database, @@collation_database

یا بدون استفاده از USE db_name از کوئری زیر استفاده کنید.

SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME

FROM INFORMATION_SCHEMA.SCHEMATA

;WHERE SCHEMA_NAME = ‘db_name

حال فرض کنید که می خواهیم یک پایگاه داده به نام mydb ایجاد کنیم و Character set آنرا utf8 و Collaton آنرا نیز  utf8 قرار دهیم.

CREATE DATABASE mydb

DEFAULT CHARACTER SET utf8mb4

;DEFAULT COLLATE utf8mb4_general_ci

حال کوئری زیر را اجرا کنید.

SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME

‘;FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = ‘mydb

mysql_create_database2

برای پاک کردن یک پایگاه داده باید از زیر استفاده کنیم.

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

به طور مثال می خواهیم پایگاه داده my_sample_db را پاک کنیم.

;DROP DATABASE my_sample_db

تمامی فایل های پیشفرض مربوط به پایگاه داده با فرمت های زیر با اجرای دستور بالا پاک خواهند شد. این فایل ها به همراه فایل db.opt درون دایرکتوری مربوط به پایگاه داده قرار دارند.

mysql_drop_database1

همچنین می توانیم توسط دستور mysqladmin نیز یک پایگاه داده را ایجاد یا حذف کنیم.

mysqladmin -u root -p create db_name

mysqladmin -u root -p drop db_name

و با استفاده از دستور زیر فهرستی از تمامی پایگاه داده ها را می توانیم مشاهده کنیم.

mysqlshow -u root -p

mysql_create_database3

و همچنین برای نمایش فهرست تمامی پایگاه داده ها پس از لاگین به mysql از دستور SHOW DATABASES استفاده کنید.

mysql -u root -p

;show databases



برچسب ها : ,