ค้นหาเว็บไซต์

คำสั่งการดูแลฐานข้อมูล MySQL ขั้นพื้นฐาน - ส่วนที่ 1


ฐานข้อมูลคือชุดข้อมูลที่มีโครงสร้างซึ่งจัดเก็บในรูปแบบอิเล็กทรอนิกส์ บรรพบุรุษของเรารู้จักแนวคิดของฐานข้อมูลแม้ว่าจะไม่มีคอมพิวเตอร์ก็ตาม แต่การสร้างและบำรุงรักษาฐานข้อมูลดังกล่าวถือเป็นงานที่น่าเบื่อมาก ในฐานข้อมูลแบบแมนนวลบอกว่ามี 100 หน้า หากคุณต้องค้นหาพนักงานทั้งหมดที่มีเงินเดือนน้อยกว่า 10,000 ลองคิดดูว่ามันจะยากขนาดไหน .

ในโลกปัจจุบัน คุณคงหนีไม่พ้น ฐานข้อมูล ขณะนี้ฐานข้อมูลหลายล้านฐานข้อมูลกำลังทำงานอยู่ทั่วโลกเพื่อจัดเก็บและดึงข้อมูลทุกประเภท ไม่ว่าจะเป็นข้อมูลเชิงกลยุทธ์ บันทึกของพนักงาน หรือเทคโนโลยีเว็บ

ฐานข้อมูลมักถูกเรียกว่าเป็นกระบวนการแบ็คเอนด์ เนื่องจากผู้ใช้ปลายทางไม่สามารถมองเห็นได้หรือ ผู้ใช้ปลายทาง โต้ตอบกับฐานข้อมูลโดยตรง พวกเขาทำงานบนกระบวนการส่วนหน้า ได้แก่ PHP, VB, ASP.NET ฯลฯ และขอให้ส่วนหน้าจัดการกับฐานข้อมูล ในส่วนหลัง

มีเซิร์ฟเวอร์ฐานข้อมูลและไคลเอ็นต์มากมาย เช่น Oracle, MySQL, MySQLi, MariaDB, MongoDB เป็นต้น ไวยากรณ์ของสิ่งเหล่านี้มีมากกว่าหรือ น้อยลงเหมือนกัน การเรียนรู้อย่างใดอย่างหนึ่งหมายถึงการควบคุมส่วนใหญ่และการเรียนรู้คำสั่งของฐานข้อมูลนั้นง่ายและสนุกมาก

เริ่มต้นด้วยแบบสอบถามง่ายๆในฐานข้อมูล เราจะใช้ MySQL ซึ่งมาพร้อมกับการกระจาย Linux ส่วนใหญ่ตามค่าเริ่มต้น คุณสามารถติดตั้งได้ด้วยตนเองจากพื้นที่เก็บข้อมูล หากไม่ได้ติดตั้งตามค่าเริ่มต้นในกรณีของคุณ

การสืบค้นฐานข้อมูลเป็นโค้ดง่ายๆ ที่ถูกส่งไปยังฐานข้อมูลเพื่อรับผลลัพธ์ที่กำหนดเองและปรับปรุงตามที่ต้องการ

ติดตั้งฐานข้อมูล MySQL

ใช้ตัวจัดการแพ็คเกจ “yum” หรือ “apt” เพื่อติดตั้งฐานข้อมูล MySQL

yum install mysql mysql-client mysql-server  (on Yum based Systems)

apt-get install mysql mysql-client mysql-server (on Apt based Systems)
เริ่ม MySQL

เริ่มบริการฐานข้อมูล MySQL เป็น:

service mysqld start
or
service mysql start

การติดตั้งฐานข้อมูล MySQL จะนำคุณไปสู่การกำหนดค่าที่คุณจะถูกขอให้ตั้งค่ารหัสผ่าน ผู้ดูแลระบบ ฯลฯ เมื่อติดตั้งและเริ่มเซิร์ฟเวอร์เสร็จแล้ว ให้ไปที่ MySQL ของคุณ พรอมต์

mysql -u root -p

แทนที่ root ด้วย ชื่อผู้ใช้ ที่คุณกำหนดค่าไว้ และป้อน รหัสผ่าน เมื่อได้รับแจ้ง หากข้อมูลรับรองการเข้าสู่ระบบถูกต้อง คุณจะอยู่ที่ MySQL< แจ้งได้ในพริบตา

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 195 

Server version: 5.5.31-0+wheezy1 (Debian) 

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. 
Other names may be trademarks of their respective owners. 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

การดำเนินการสอบถามตามพร้อมท์นี้ให้ความรู้และสนุกสนานมาก

สร้างฐานข้อมูลเทคมินต์
mysql> create database tecmint ;
Query OK, 1 row affected (0.02 sec) 

mysql>

หมายเหตุ: มีการรายงานว่าแบบสอบถามถูกต้อง หมายความว่าฐานข้อมูลถูกสร้างขึ้น คุณสามารถตรวจสอบฐานข้อมูลที่สร้างขึ้นใหม่ของคุณได้เป็น

mysql> show databases; 
+--------------------+
| Database           | 
+--------------------+ 
| information_schema | 
| mysql              | 
| performance_schema | 
| tecmint            | 
| test               | 
+--------------------+ 
9 rows in set (0.00 sec) 
mysql>

หมายเหตุ: สังเกตฐานข้อมูลของคุณในผลลัพธ์ด้านบน

เลือกฐานข้อมูล

ตอนนี้คุณต้องเลือกฐานข้อมูลเพื่อใช้งาน

mysql> use tecmint;
Database changed
mysql>
สร้างตารางใน MySQL

ที่นี่เราจะสร้างตารางที่พูดว่า “minttec” โดยมีสามฟิลด์ดังนี้:

mysql> CREATE TABLE minttec (
    -> id Int(3), 
    -> first_name Varchar (15), 
    -> email Varchar(20) 
    -> ); 
Query OK, 0 rows affected (0.08 sec) 
mysql>

หมายเหตุ: ข้อความค้นหาด้านบนระบุว่า ตกลง ซึ่งหมายความว่าตารางถูกสร้างขึ้นโดยไม่มีข้อผิดพลาดใดๆ เพื่อตรวจสอบตารางให้รันแบบสอบถามด้านล่าง

mysql> show tables; 
+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| minttec           | 
+-------------------+ 

1 row in set (0.00 sec) 

mysql>

ทุกอย่างเป็นไปด้วยดีจนถึงตอนนี้ ได้! คุณสามารถดูคอลัมน์ที่คุณสร้างในตาราง “minttec” ได้เป็น:

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+ 
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+ 
3 rows in set (0.00 sec)

mysql>

มันไม่น้อยไปกว่าเวทมนตร์ อย่างไรก็ตามฉันจะบอกคุณเกี่ยวกับประเภทของคำประกาศและความหมาย

  1. Int คือจำนวนเต็ม
  2. Varchar คืออักขระที่มีความยาวผันแปรตามที่กำหนด ค่าหลัง Type คือความยาวของฟิลด์ที่สามารถจัดเก็บข้อมูลได้

ตกลงตอนนี้เราต้องเพิ่มคอลัมน์โดยพูดว่า 'last_name' หลังคอลัมน์ 'first_name'

mysql> ALTER TABLE minttec ADD last_name varchar (20) AFTER first_name; 
Query OK, 0 rows affected (0.16 sec)
Records: 0  Duplicates: 0  Warnings: 0

ตอนนี้ ตรวจสอบในตารางของคุณ

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+ 
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| last_name  | varchar(20) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+ 

4 rows in set (0.00 sec) 

mysql>
เพิ่มคอลัมน์ใน MySQL

ตอนนี้เราจะเพิ่มคอลัมน์ทางด้านขวาโดยระบุคอลัมน์ 'ประเทศ' ทางด้านขวาของ อีเมล

mysql> ALTER TABLE minttec ADD country varchar (15) AFTER email; 
Query OK, 0 rows affected (0.16 sec) 
Records: 0  Duplicates: 0  Warnings: 0 

mysql>

ตรวจสอบแบบสอบถามการแทรกคอลัมน์ด้านบน

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| last_name  | varchar(20) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
| country    | varchar(15) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec) 

mysql>
ใส่ค่าในฟิลด์

แล้วการใส่ค่าลงในช่องล่ะ?

mysql> INSERT INTO minttec VALUES ('1' , 'Ravi' , 'Saive' , '[email ' , 'India' );
Query OK, 1 row affected (0.02 sec) 

mysql>

ลองแทรกค่ามากกว่า 1 ในแต่ละครั้งในตารางด้านบนดูสิ

mysql> INSERT INTO minttec VALUES ('2' , 'Narad' , 'Shrestha' , '[email ' , 'India' ), ('3' , 'user' , 'singh' , '[email ' , 'Aus' ), ('4' , 'tecmint' , '[dot]com' , '[email ' , 'India' );
Query OK, 3 rows affected (0.05 sec) 
Records: 3  Duplicates: 0  Warnings: 0

ตรวจสอบการแทรกข้างต้น

mysql> select * from minttec; 
+------+------------+-----------+-------------------+---------+ 
| id   | first_name | last_name | email             | country | 
+------+------------+-----------+-------------------+---------+ 
|    1 | Ravi	    | Saive     | [email  | India   | 
|    2 | Narad      | Shrestha  | [email      | India   | 
|    3 | user       | singh     | [email       | Aus     | 
|    4 | tecmint    | [dot]com  | [email  | India   | 
+------+------------+-----------+-------------------+---------+ 

4 rows in set (0.00 sec)

mysql>
ลบค่าในฟิลด์

สมมติว่ารายการที่สามในผลลัพธ์ด้านบนไม่ถูกต้อง และเราจำเป็นต้องลบรายการที่สาม

mysql> DELETE FROM minttec WHERE id = 3;

Query OK, 1 row affected (0.02 sec)

ตรวจสอบการดำเนินการข้างต้น

mysql> select * from minttec;

+------+------------+-----------+-------------------+---------+ 
| id   | first_name | last_name | email             | country | 
+------+------------+-----------+-------------------+---------+
|    1 | Ravi       | Saive     | [email  | India   | 
|    2 | Narad      | Shrestha  | [email      | India   | 
|    4 | tecmint    | [dot]com  | [email  | India   | 
+------+------------+-----------+-------------------+---------+
3 rows in set (0.00 sec)
อัปเดตค่าในฟิลด์

ต้องแก้ไขรหัส (=4)

mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; 
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

ตรวจสอบแบบสอบถามข้างต้น

mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; 
Query OK, 1 row affected (0.02 sec) 
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

หมายเหตุ: ข้อความค้นหาข้างต้นที่ดำเนินการไปแล้วไม่ใช่ความคิดที่ดี มันจะเปลี่ยนรหัสเป็น '4' โดยที่ชื่อแรกคือ 'tecmint' เป็นความคิดที่ดีเสมอที่จะใช้มากกว่าหนึ่งคอลัมน์พร้อมกับคำสั่งย่อยเพื่อให้เกิดข้อผิดพลาดน้อยที่สุด เช่น:

mysql> UPDATE minttec SET id = 6 WHERE first_name = 'tecmint'AND last_name = '[dot]com'; 
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>
ลบคอลัมน์ใน MySQL

ให้เราต้องทิ้ง (ลบ) คอลัมน์ที่เราคิดว่าไม่สำคัญ ให้พูดว่า 'ประเทศ' ที่นี่

mysql> ALTER TABLE minttec drop country; 
Query OK, 3 rows affected (0.15 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql>

ตรวจสอบตาราง

mysql> select * from minttec; 

+------+------------+-----------+-------------------+ 
| id   | first_name | last_name | email             | 
+------+------------+-----------+-------------------+ 
|    1 | Ravi       | Saive     | [email  | 
|    2 | Narad      | Shrestha  | [email      | 
|    6 | tecmint    | [dot]com  | [email  | 
+------+------------+-----------+-------------------+
3 rows in set (0.00 sec) 

mysql>
เปลี่ยนชื่อตารางใน MySQL

คุณไม่คิดว่าชื่อตารางของเรา “minttec” นั้นไม่เกี่ยวข้องมากนัก ลองเปลี่ยนเป็น tecmint_table ไหม

mysql> RENAME TABLE minttec TO tecmint_table; 
Query OK, 0 rows affected (0.03 sec)

mysql>
แสดงรายการตารางทั้งหมด

ดูตารางทั้งหมดภายใต้ฐานข้อมูลปัจจุบัน

mysql> show tables; 

+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| tecmint_table     | 
+-------------------+
1 row in set (0.00 sec) 

mysql>

เปลี่ยนชื่อตารางแล้ว ตอนนี้สำรองข้อมูลฐานข้อมูล MySQL ข้างต้นในคำสั่งบรรทัดเดียวโดยไม่ต้องใช้เครื่องมือที่ซับซ้อนใดๆ เรียกใช้โค้ดด้านล่างที่เทอร์มินัลของคุณ ไม่ใช่บนพรอมต์ mysql

mysqldump -u root -p tecmint > tecmint.sql

check the dumped file on your desktop which would have contents something like
-- MySQL dump 10.13  Distrib 5.5.31, for debian-linux-gnu (i686) --
-- Server version 5.5.31-0+wheezy1 -- 
Dump completed on 2013-09-02 12:55:37

เป็นความคิดที่ดีเสมอที่จะดูแลรักษาการสำรองฐานข้อมูล MySQL การกู้คืนข้อมูล MySQL ที่สำรองไว้นั้นเป็นบรรทัดโค้ดง่ายๆ ที่คุณต้องเรียกใช้ที่พรอมต์เทอร์มินัล ไม่ใช่ที่พรอมต์ mysql

แต่รอก่อนเราจะลบฐานข้อมูลเพื่อตรวจสอบว่าการคืนค่าของเราสมบูรณ์แบบหรือไม่

ลบฐานข้อมูล
mysql> drop database tecmint; 
Query OK, 1 row affected (0.02 sec)

ตรวจสอบฐานข้อมูล 'tecmint' บนเซิร์ฟเวอร์ฐานข้อมูลของคุณ

mysql> show databases; 

+--------------------+ 
| Database           | 
+--------------------+ 
| information_schema | 
| my_database        | 
| mysql              | 
| performance_schema | 
| phpmyadmin         | 
| sisso              | 
| test               | 
+--------------------+

7 rows in set (0.00 sec) 
mysql>

ยอดเยี่ยม! ฐานข้อมูลสูญหาย แต่เราไม่จำเป็นต้องกังวล เรากำลังมีข้อมูลสำรองอยู่

คืนค่าฐานข้อมูล

หากต้องการกู้คืนฐานข้อมูลที่สูญหาย ให้รันคำสั่งต่อไปนี้

mysql -u root -p tecmint < tecmint.sql
Enter password:
ERROR 1049 (42000): Unknown database 'tecmint'

อ๊ะ! เกิดข้อผิดพลาด เฮ้ เราไม่ได้สร้างฐานข้อมูล tecmint ไปที่พรอมต์ mysql ของคุณและสร้างฐานข้อมูล 'tecmint'

mysql> create database tecmint; 
Query OK, 1 row affected (0.00 sec) 

mysql>

ตอนนี้ถึงเวลารันคำสั่งเรียกคืนที่พรอมต์เชลล์ของคุณ (อย่างเคร่งครัด)

mysql -u root -p tecmint < tecmint.sql 
Enter password:

ตรวจสอบฐานข้อมูลของคุณ

mysql> show databases; 

+--------------------+ 
| Database           | 
+--------------------+ 
| information_schema | 
| mysql              | 
| performance_schema | 
| tecmint            | 
| test               | 
+--------------------+ 
8 rows in set (0.00 sec)

ตรวจสอบเนื้อหาของฐานข้อมูล

mysql> show tables from tecmint;

+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| tecmint_table     | 
+-------------------+ 
1 row in set (0.00 sec)

mysql>

ตรวจสอบเนื้อหาของตารางที่กู้คืนของคุณ

mysql> select * from tecmint_table; 

+------+------------+-----------+-------------------+ 
| id   | first_name | last_name | email             | 
+------+------------+-----------+-------------------+ 
|    1 | Ravi       | Saive     | [email  | 
|    2 | Narad      | Shrestha  | [email      | 
|    6 | tecmint    | [dot]com  | [email  | 
+------+------------+-----------+-------------------+

3 rows in set (0.00 sec)

นี่ไม่ใช่จุดสิ้นสุดอย่างแน่นอน เราจะกล่าวถึงแนวคิดของ คีย์หลัก, คีย์ต่างประเทศ, หลายตาราง และ การสืบค้นที่ทำงานอยู่ ใช้สคริปต์ PHP แบบง่ายในส่วนถัดไปของบทความ

อย่าลืมบอกเราว่าคุณรู้สึกอย่างไรขณะอ่านบทความนี้ ความคิดเห็นของคุณได้รับการชื่นชมอย่างมาก มีสุขภาพที่ดี และ ปรับตัว และเชื่อมต่อกับ Tecmint