امروز میخواهیم کار با پایگاه داده MySQL از طریق command line یا همون خط فرمان رو تجربه کنیم. به نظر من اجرای برخی کوئری‌ها برای دستکاری یک جدول یا ایجاد یک دیتابیس یا مشاهده ی اطلاعات یک جدول و یا … از طریق خط فرمان خیلی لذت بخش و آسون هست. هدف این پست تنها آشنایی با نحوه ی کار با پایگاه داده ی MySQL در خط فرمان هست.

ابتدا باید لوکال سرور خودمون رو فعال کنیم و سپس توسط دستور cd در خط فرمان به پوشه ی مربوط به mysql بریم و سپس پوشه ی bin رو باز کنیم. چون من از wampserver استفاده میکنم دستور من به شکل زیر میشه.

path welcome

همونطور که در تصویر بالا میبینید ابتدا توسط دستور cd به دایرکتوری bin جایی که فایل mysql.exe هست رفتیم.(بنده از خط فرمان conEmu) استفاده میکنم.

cd C:\wamp\bin\mysql\mysql5.6.17\bin

و سپس توسط دستور mysql به پایگاه داده متصل شدیم.

mysql -u {username} -p {password}
# or
mysql -u{username} -p{password}

بخاطر اینکه از کاربر پیشفرض استفاده میکنم نام کاربری رو root وارد کردم و سپس در جلوی آپشن [tag]-p[/tag] هیچ چیزی ننوشتم چون کاربر پیشفرض هیچ پسوردی نداره بخاطر همین در خط پایینیش درخواست پسورد رو داد و دوباره بدون وارد کردن چیزی دکمه Enter رو زدم. همونطور که دیدید با موفقیت به پایگاه داده متصل شدیم. همونطور که میبینید یه سری توضیحاتی به ما میده و سپس ما میتونیم در جلوی [tag]mysql>[/tag] کدهای sql خودمون رو بنویسیم. دقت داشته باشید که برای اتمام کد باید حتما علامت سمیکالن([tag];[/tag]) رو بذارید.

علاوه بر اینکه میتونیم تمام کدهای sqlمون رو اجرا کنیم یک سری دستور دیگه هم هست که با اونها آشنا خواهیم شد.

mysql> create database [databasename];  #ساخت یک دیتابیس.
mysql> show databases;	#لیست تمامی دیتابیس ها.
mysql> use [db name];	#انتخاب یک دیتابیس
mysql> show tables;	#نمایش جدول‌های موجود در دیتابیس انتخاب شده.
mysql> describe [table name];	#دیدن فرمت یک جدول.
mysql> drop database [database name];	#حذف یک دیتابیس.
mysql> drop table [table name];	#حذف جدول.
mysql> SELECT * FROM [table name];	#انتخاب تمامی فیلدهای یک جدول.
mysql> show columns from [table name];	#برگرداندن نام و مشخصات ستون‌های یک جدول.

برای آشنایی بیشتر مثال هایی رو در ادامه خواهیم زد.

ابتدا یک دیتابیس به نام cmd ایجاد میکنیم.

mysql> CREATE DATABASE cmd;
# Query OK, 1 row affected (0.01 sec)

سپس لیست دیتابیس‌های موجود را فراخوانی میکنیم.

db

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| dbname_db          |
| cdcol              |
| cmd                |
| data               |
| dl                 |
| mvc                |
| mysql              |
| performance_schema |
| phpmyadmin         |
| projects           |
| test               |
| webauth            |
+--------------------+
# 13 rows in set (0.01 sec)

همونطور که میبینید دیتابیس‌های موجود در پایگاه داده را برای ما لیست میکنه.

حال دیتابیس ساخته شده را انتخاب میکنیم.

mysql> use cmd;
# Database changed

حالا یک جدول میسازیم.

mysql> create table users(id int primary key not null auto_increment, username varchar(25) not null, created datetime);
#Query OK, 0 rows affected (1.98 sec)

حالا جدول‌های موجود را لیست میکنیم.

mysql> show tables;
+---------------+
| Tables_in_cmd |
+---------------+
| users         |
+---------------+
# 1 row in set (0.00 sec)

سپس مشخصات جدول را برمیگردانیم.

mysql> describe users;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| id       | int(11)     | NO   | PRI | NULL    | auto_increment |
| username | varchar(25) | NO   |     | NULL    |                |
| created  | datetime    | YES  |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+
3 rows in set (0.21 sec)

حال چند رکورد به جدول اضافه میکنیم.

mysql> insert into users(username, created) values('admin', now());
# Query OK, 1 row affected (0.09 sec)
mysql> insert into users(username, created) values('ali111', now());
# Query OK, 1 row affected (0.05 sec)
mysql> insert into users(username, created) values('soheila', now());
# Query OK, 1 row affected (0.03 sec)
mysql> insert into users(username, created) values('mahdi', now());
# Query OK, 1 row affected (0.05 sec)

 با زدن دکمه جهت پایین کیبورد دستور قبلی دوباره نوشته میشود.

حالا توسط یک کوئری دیگر رکورد‌های موجود درون این جدول را بر اساس زمان ساخته شدن کاربر‌ها میگیریم.

mysql> select * from users order by created desc;
+----+----------+---------------------+
| id | username | created             |
+----+----------+---------------------+
|  4 | mahdi    | 2014-11-27 17:10:10 |
|  3 | soheila  | 2014-11-27 17:10:00 |
|  2 | ali111   | 2014-11-27 17:09:42 |
|  1 | admin    | 2014-11-27 17:09:19 |
+----+----------+---------------------+
# 4 rows in set (0.04 sec)

حالا از پایگاه داده خارج میشیم.

mysql> exit;
# Bye

امیدوارم از این نوع کار با پایگاه داده لذت برده باشید.

یا علی

 
ارسال دیدگاه
ما همه سوالات و دیدگاه ها رو می خونیم و پاسخ میدیم
۷ دیدگاه
مهدی حسامی ۱۷ بهمن ۱۳۹۴، ۱۳:۱۰
سلام
ممنون از آموزشتون
من دنبال آموزش حرفه ای تری بودم
به هرحال ممنون
art ۱۹ مرداد ۱۳۹۴، ۱۸:۵۳
خیلی خوبه. فقط دستور update رو نمیدونید چجوری باید بنویسیم؟!
miad ۲۱ خرداد ۱۳۹۴، ۰۱:۱۲
ممنون من قبلا دان کرده بودم اما یک چیزی بگم که کارو سریع تر کنه
در قسمت
windows 7/system/advanced system settings/enviroment variables/
در کادردوم system variable
در قسمت path یک آدرس دیگه اضافه کنیم
;D:/wamp/bin/mysql/mysql5.5.24/bin
حالا دیگه فقط کافیه توی همین نرم افزار برای وصل شدن به mysql این رو بنویسیم
mysql -u root -p
اینتر و شروع :grin:
پدرام کوثری ۰۸ آذر ۱۳۹۳، ۱۹:۰۵
با سلام
خواستم ببینم چطور میشه با رفرش شدن مرورگر کوئری هایی که مربوط به دیتابیس زده میشه رو با command line نمایش داد مثلا من یک صفحه دارم که درون آن منو ها رو نمایش میده با باز شدن صفحه دستور
Select * from menu
اجرا میشه خواستم این دستور رو توی Command Line نمایش بده.آیا امکانش هست؟در صورت امکان چطوری میشود این کار را انجام داد؟
باتشکر
علی امینی ۲۸ آذر ۱۳۹۳، ۰۹:۵۶
سلام دوست عزیز
توی اینترنت جستجو کردم و چیزی رو که میخواید نتونستم پیدا کنم. معمولا گفته بودن میشه کوئری هایی که به دیتابیس ارسال میشه رو درون یک فایل ذخیره کرد که آموزش خوبی در این مورد نتونستم پیدا کنم.
sajjadcr7 ۰۷ آذر ۱۳۹۳، ۲۱:۲۲
سلام
سایتتون عالیه همیشه من و کمک کردین. ایول داداش
هماهنگ سازی ویندوز نصب شده روی سخت افزار دیگر با سخت افزار سیستم فعلی
منظور از هماهنگ سازی چیست . یعنی من می توانم ویندوز اورجینال لپ تاپم را به یک سیستم دیگر ببرم یا منظور چیز دیگری است
با تشکر
علی امینی ۰۸ آذر ۱۳۹۳، ۱۲:۰۶
سلام دوست عزیز
منظورتون رو درست متوجه نشدم. اگه سوالتون در مورد این پست نیست لطفا سوالتون رو در انجمن مطرح کنید تا دوستان مشکلتون رو حل کنند.
موفق باشید.