MariaDB บทช่วยสอน: เรียนรู้ไวยากรณ์ คำสั่งพร้อมตัวอย่าง
ความหมายของ MariaDB?
MariaDB เป็นทางแยกของ MySQL ระบบจัดการฐานข้อมูล. มันถูกสร้างขึ้นโดยนักพัฒนาดั้งเดิม เครื่องมือ DBMS นี้นำเสนอความสามารถในการประมวลผลข้อมูลสำหรับงานทั้งขนาดเล็กและระดับองค์กร
MariaDB เป็นเวอร์ชันปรับปรุงของ MySQL- มันมาพร้อมกับคุณสมบัติอันทรงพลังในตัวมากมายและการปรับปรุงการใช้งาน ความปลอดภัย และประสิทธิภาพมากมายที่คุณไม่พบ MySQL.
นี่คือคุณสมบัติของ MariaDB:
- ดำเนินการภายใต้ใบอนุญาต GPL, BSD หรือ LGPL
- MariaDB รองรับภาษาการสืบค้นที่เป็นที่นิยมและเป็นมาตรฐาน
- มาพร้อมกับเอ็นจิ้นการจัดเก็บข้อมูลจำนวนมาก รวมถึงเอนจิ้นประสิทธิภาพสูงที่สามารถรวมเข้ากับระบบการจัดการฐานข้อมูลเชิงสัมพันธ์อื่น ๆ
- มันให้เทคโนโลยีคลัสเตอร์ Galera
- MariaDB รองรับ PHP ซึ่งเป็นภาษายอดนิยมสำหรับการพัฒนาเว็บ
- MariaDB สามารถทำงานบนระบบปฏิบัติการที่แตกต่างกันได้ และรองรับภาษาการเขียนโปรแกรมมากมาย
- MariaDB มาพร้อมกับคำสั่งเพิ่มเติมที่ไม่มีใน MySQL. MySQL มีคุณสมบัติที่ส่งผลเสียต่อประสิทธิภาพของ DBMS คุณสมบัติดังกล่าวได้ถูกแทนที่ด้วย MariaDB.
MariaDB เมื่อเทียบกับ MySQL
ด้านล่างนี้คือข้อแตกต่างที่สำคัญระหว่าง MariaDB vs MySQL
พารามิเตอร์ | MariaDB | MySQL |
---|---|---|
ตัวเลือกเพิ่มเติมสำหรับเครื่องมือจัดเก็บข้อมูล | MariaDB มีเอ็นจิ้นการจัดเก็บข้อมูลใหม่ 12 แบบที่คุณจะไม่พบ MySQL. | มีตัวเลือกในการจัดเก็บน้อยกว่าเมื่อเทียบกับ MariaDB. |
การปรับปรุงความเร็ว | MariaDB แสดงความเร็วที่ดีขึ้นเมื่อเปรียบเทียบกับ MySQL- มันมาพร้อมกับคุณสมบัติมากมายสำหรับการปรับความเร็วให้เหมาะสม คุณลักษณะดังกล่าวรวมถึงมุมมอง/ตารางที่ได้รับ แบบสอบถามย่อย การควบคุมการดำเนินการ การเข้าถึงดิสก์ และการควบคุมเครื่องมือเพิ่มประสิทธิภาพ | MySQL แสดงความเร็วที่ช้ากว่าเมื่อเทียบกับ MariaDB- มันอาศัยคุณสมบัติเพียงไม่กี่อย่างในการเพิ่มประสิทธิภาพความเร็ว เช่น ดัชนีแฮช |
แคช/ดัชนีที่เร็วขึ้น | ด้วยกลไกการจัดเก็บหน่วยความจำของ MariaDBคำสั่ง INSERT สามารถกรอกได้ 24% มากกว่าในมาตรฐาน MySQL. | เครื่องยนต์จัดเก็บหน่วยความจำของ MySQL ช้ากว่าเมื่อเปรียบเทียบกับสิ่งนั้น MariaDB. |
พูลการเชื่อมต่อที่ใหญ่ขึ้นและเร็วขึ้น | MariaDB มาพร้อมกับเธรดพูลขั้นสูงที่สามารถทำงานได้เร็วขึ้นและรองรับการเชื่อมต่อได้มากถึง 200,000+ รายการ | เธรดพูลจัดทำโดย MySQL ไม่สามารถรองรับการเชื่อมต่อได้สูงสุด 200,000 ครั้งต่อครั้ง |
การจำลองแบบที่ได้รับการปรับปรุง | In MariaDBการจำลองสามารถทำได้อย่างปลอดภัยและรวดเร็วยิ่งขึ้น การอัพเดตสามารถทำได้เร็วขึ้น 2 เท่าเมื่อเทียบกับแบบเดิม MySQL. | MySQLรุ่นชุมชนของ 's อนุญาตให้เชื่อมต่อเธรดจำนวนคงที่ MySQLแผนองค์กรของมาพร้อมกับความสามารถของเธรด |
คุณสมบัติ/ส่วนขยายใหม่ | MariaDB มาพร้อมกับฟีเจอร์และส่วนขยายใหม่ๆ รวมถึงคำสั่ง JSON, WITH และ KILL | ใหม่ MariaDB คุณสมบัติไม่ได้ระบุไว้ใน MySQL. |
คุณสมบัติที่ขาดหายไป | MariaDB ขาดคุณสมบัติบางอย่างที่มีให้โดย MySQL รุ่นองค์กร เพื่อแก้ไขปัญหานี้ จึงเสนอปลั๊กอินโอเพ่นซอร์สทางเลือก เพราะฉะนั้น, MariaDB ผู้ใช้สามารถเพลิดเพลินไปกับฟังก์ชันการทำงานเช่นเดียวกับ MySQL ผู้ใช้รุ่น Enterprise | รุ่นองค์กรของ MySQL ใช้รหัสที่เป็นกรรมสิทธิ์ เฉพาะผู้ใช้ของ MySQL Enterprise Edition มีสิทธิ์เข้าถึงสิ่งนี้ |
วิธีการติดตั้ง MariaDB
ติดตั้งเป็นแอปพลิเคชันแบบสแตนด์อโลน
เพื่อที่จะใช้ MariaDBคุณต้องติดตั้งลงในคอมพิวเตอร์ของคุณ
การติดตั้งสามารถทำได้โดยทำตามขั้นตอนดังต่อไปนี้:
ขั้นตอน 1) เปิด URL ด้านล่าง
ดาวน์โหลดไฟล์การติดตั้งจากลิงค์ https://downloads.mariadb.org/
ขั้นตอน 2) Double คลิกที่ไฟล์เพื่อเริ่มการติดตั้ง
เมื่อการดาวน์โหลดเสร็จสิ้น ให้เปิดไฟล์
ขั้นตอน 3) คลิกที่ปุ่มถัดไป
ในหน้าต่างที่ปรากฏขึ้น ให้คลิกปุ่มถัดไป:
ขั้นตอน 4) ยอมรับข้อตกลงใบอนุญาต
จากนั้นคลิกปุ่มถัดไป:
ขั้นตอน 5) Choose MariaDB เซิร์ฟเวอร์
เลือกคุณสมบัติที่จะติดตั้งและคลิกถัดไป
ขั้นตอน 6) ป้อนรหัสผ่าน
ในหน้าต่างถัดไป คุณจะต้องเปลี่ยนรหัสผ่านสำหรับผู้ใช้รูท
- ป้อนรหัสผ่านและยืนยันโดยพิมพ์รหัสผ่านเดียวกันอีกครั้ง หากคุณต้องการอนุญาตให้เข้าถึงจากเครื่องระยะไกล ให้เปิดใช้งานช่องทำเครื่องหมายที่จำเป็น
- เมื่อเสร็จแล้วให้คลิกปุ่มถัดไป
ขั้นตอน 7) กรอกชื่อ & เลือกหมายเลขพอร์ต
ในหน้าต่างถัดไป ให้พิมพ์ชื่อของอินสแตนซ์ เลือกหมายเลขพอร์ต และตั้งค่าขนาดที่จำเป็น คลิกปุ่มถัดไป:
ขั้นตอน 8) คลิกถัดไป
ในหน้าต่างถัดไป เพียงคลิกปุ่มถัดไป
ขั้นตอน 9) คลิกที่ติดตั้ง
เริ่มการติดตั้งโดยคลิกปุ่มติดตั้ง
ขั้นตอน 10) แถบความคืบหน้าที่แสดง
แถบความคืบหน้าจะแสดงความคืบหน้าของการติดตั้ง:
ขั้นตอน 11) คลิกที่ปุ่มเสร็จสิ้น
เมื่อการติดตั้งเสร็จสมบูรณ์ คุณจะเห็นปุ่ม Finish คลิกปุ่มเพื่อปิดหน้าต่าง:
ขั้นตอน 12) ขอแสดงความยินดี
ตอนนี้คุณมี MariaDB ติดตั้งบนคอมพิวเตอร์ของคุณ
การทำงานกับพรอมต์คำสั่ง
ตอนนี้คุณมี MariaDB ติดตั้งบนคอมพิวเตอร์ของคุณแล้วก็ถึงเวลาที่คุณจะต้องเปิดใช้งานและเริ่มใช้งาน ซึ่งสามารถทำได้ผ่านทาง MariaDB พร้อมรับคำสั่ง.
ทำตามขั้นตอนที่ระบุด้านล่าง:
ขั้นตอน 1) คลิก Start เลือก All Programs จากนั้นคลิก MariaDB...
ขั้นตอน 2) เลือก MariaDB พร้อมรับคำสั่ง
ขั้นตอน 3) เค้ก MariaDB พรอมต์คำสั่งจะเริ่มต้นขึ้น ตอนนี้ได้เวลาเข้าสู่ระบบแล้ว คุณควรเข้าสู่ระบบในฐานะผู้ใช้รูทและรหัสผ่านที่คุณตั้งไว้ระหว่างการติดตั้ง MariaDBพิมพ์คำสั่งต่อไปนี้ที่พรอมต์คำสั่ง:
MySQL -u root -p
ขั้นตอน 4) ป้อนรหัสผ่านและกดปุ่มย้อนกลับ คุณควรเข้าสู่ระบบตามที่แสดงด้านล่าง:
ขณะนี้คุณเข้าสู่ระบบแล้ว MariaDB.
ประเภทข้อมูล
MariaDB รองรับชนิดข้อมูลต่อไปนี้:
- ชนิดข้อมูลสตริง
- ประเภทข้อมูลตัวเลข
- ชนิดข้อมูลวันที่/เวลา
- ชนิดข้อมูลวัตถุขนาดใหญ่
ชนิดข้อมูลสตริง
เหล่านี้รวมถึงต่อไปนี้:
ชนิดข้อมูลสตริง | Descriptไอออน |
---|---|
ถ่าน(ขนาด) | ขนาดแสดงถึงจำนวนอักขระที่จะจัดเก็บ สามารถเก็บอักขระได้สูงสุด 255 ตัว สตริงที่มีความยาวคงที่ |
วาร์ชาร์(ขนาด) | ขนาดแสดงถึงจำนวนอักขระที่จะจัดเก็บ สามารถเก็บอักขระได้สูงสุด 255 ตัว สตริงที่มีความยาวผันแปรได้ |
ข้อความ(ขนาด) | ขนาดแสดงถึงจำนวนอักขระที่จะจัดเก็บ สามารถเก็บอักขระได้สูงสุด 255 ตัว สตริงที่มีความยาวคงที่ |
ไบนารี่(ขนาด) | ขนาดแสดงถึงจำนวนอักขระที่จะจัดเก็บ สามารถเก็บอักขระได้สูงสุด 255 ตัว สตริงขนาดคงที่ |
ประเภทข้อมูลตัวเลข
พวกเขารวมถึงต่อไปนี้:
ประเภทข้อมูลตัวเลข | Descriptไอออน |
---|---|
บิต | ค่าจำนวนเต็มขนาดเล็กมากเทียบเท่ากับ Tinyint(1) ค่าที่เซ็นชื่ออยู่ระหว่าง -128 ถึง 127 ค่าที่ไม่ได้ลงนามอยู่ในช่วงระหว่าง 0 ถึง 255 |
อินท์(เมตร) | ค่าจำนวนเต็มมาตรฐาน ค่าที่ลงนามอยู่ในช่วงระหว่าง -2147483648 ถึง 2147483647 ค่าที่ไม่ได้ลงนามอยู่ในช่วงระหว่าง 0 ถึง 4294967295 |
ลอย(ม, ง) | จำนวนจุดลอยตัวที่มีความแม่นยำเพียงจุดเดียว |
ดับเบิ้ล(ม,ง) | ตัวเลขจุดลอยตัวที่มีความแม่นยำสองเท่า |
ลอย(พี) | จำนวนจุดลอยตัว |
ประเภทข้อมูลวันที่/เวลา
เหล่านี้รวมถึงต่อไปนี้:
ชนิดข้อมูลวันที่/เวลา | Descriptไอออน |
---|---|
วันที่ | แสดงในรูปแบบ 'yyyy-mm-dd' ช่วงค่าระหว่าง '1000-01-01' และ '9999-12-31' |
วันเวลา | แสดงในรูปแบบ 'yyyy-mm-dd hh:mm:ss' ช่วงค่าอยู่ระหว่าง '1000-01-01 00:00:00' และ '9999-12-31 23:59:59' |
การประทับเวลา (ม.) | แสดงในรูปแบบ 'yyyy-mm-dd hh:mm:ss' ช่วงค่าอยู่ระหว่าง '1970-01-01 00:00:01' utc และ '2038-01-19 03:14:07' utc |
เวลา | แสดงในรูปแบบ 'hh:mm:ss' ช่วงค่าระหว่าง '-838:59:59' และ '838:59:59' |
ประเภทข้อมูลวัตถุขนาดใหญ่ (LOB)
พวกเขารวมถึงต่อไปนี้:
ประเภทข้อมูลวัตถุขนาดใหญ่ | Descriptไอออน |
---|---|
จิ๋วหยด | ขนาดสูงสุดคือ 255 ไบต์ |
หยด (ขนาด) | ใช้ขนาดสูงสุด 65,535 ไบต์ |
ปานกลางหยด | ขนาดสูงสุดคือ 16,777,215 ไบต์ |
ข้อความยาว | ต้องใช้ขนาดสูงสุด 4GB |
สร้างฐานข้อมูลและตาราง
เพื่อสร้างฐานข้อมูลใหม่ใน MariaDBคุณควรมีสิทธิ์พิเศษที่มอบให้กับผู้ใช้รูทและผู้ดูแลระบบเท่านั้น
ในการสร้างฐานข้อมูลใหม่ คุณควรใช้คำสั่ง CREATE DATABASE ซึ่งใช้รูปแบบต่อไปนี้:
CREATE DATABASE DatabaseName;
ในกรณีนี้ คุณต้องสร้างฐานข้อมูลและตั้งชื่อเป็น Demo
เริ่มต้น MariaDB พรอมต์คำสั่งและเข้าสู่ระบบในฐานะผู้ใช้ root โดยพิมพ์คำสั่งต่อไปนี้:
mysql -u root -p
พิมพ์รหัสผ่านรูทแล้วกดปุ่มย้อนกลับ คุณจะเข้าสู่ระบบ
ตอนนี้ให้รันคำสั่งต่อไปนี้:
CREATE DATABASE Demo;
จากนั้นคุณได้สร้างฐานข้อมูลชื่อ Demo แล้ว คุณจะสามารถยืนยันได้ว่าฐานข้อมูลนั้นถูกสร้างขึ้นสำเร็จหรือไม่ คุณเพียงแค่ต้องแสดงรายการฐานข้อมูลที่มีอยู่โดยเรียกใช้คำสั่งต่อไปนี้:
SHOW DATABASES;
ผลลัพธ์ข้างต้นแสดงว่าฐานข้อมูลสาธิตเป็นส่วนหนึ่งของรายการ ดังนั้นฐานข้อมูลจึงถูกสร้างขึ้นสำเร็จ
MariaDB เลือกฐานข้อมูล
เพื่อให้คุณสามารถใช้หรือทำงานกับฐานข้อมูลใดฐานข้อมูลหนึ่งได้ คุณจะต้องเลือกฐานข้อมูลนั้นจากรายการฐานข้อมูลที่มีอยู่ หลังจากเลือกฐานข้อมูลแล้ว คุณสามารถดำเนินการต่างๆ เช่น การสร้างตารางภายในฐานข้อมูลได้
ในการเลือกฐานข้อมูล คุณควรใช้คำสั่ง USE มันใช้ไวยากรณ์ที่ระบุด้านล่าง:
USE database_name;
คุณต้องใช้ฐานข้อมูล Demo คุณสามารถเลือกได้โดยใช้คำสั่งต่อไปนี้:
USE Demo;
ภาพด้านบนแสดงให้เห็นว่า MariaDB command prompt เปลี่ยนจาก none เป็นชื่อของฐานข้อมูลที่เลือก
ตอนนี้คุณสามารถสร้างตารางภายในฐานข้อมูลสาธิตได้แล้ว
MariaDB – สร้างตาราง
เพื่อให้คุณสามารถสร้างตารางได้ คุณต้องเลือกฐานข้อมูล สามารถสร้างตารางได้โดยใช้คำสั่ง CREATE TABLE นี่คือไวยากรณ์สำหรับคำสั่ง:
CREATE TABLE tableName (columnName columnType);
คุณสามารถตั้งค่าคอลัมน์ใดคอลัมน์หนึ่งให้เป็นคีย์หลักได้ คอลัมน์นี้ไม่ควรมีค่าว่าง
เราจะสร้างตารางสองตารางภายในฐานข้อมูลสาธิต ตารางหนังสือ และราคา แต่ละตารางจะมีสองคอลัมน์
เริ่มต้นด้วยการสร้างตาราง Book ที่มี 2 คอลัมน์ คือ id และ name จากนั้นรันคำสั่งต่อไปนี้:
CREATE TABLE Book( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY (id));
ข้อจำกัดของคีย์หลักถูกใช้เพื่อตั้งค่าคอลัมน์ id เป็นคีย์หลักสำหรับตาราง คุณสมบัติ AUTO_INCREMENT จะเพิ่มค่าของคอลัมน์ id 1 โดยอัตโนมัติสำหรับแต่ละระเบียนใหม่ที่แทรกลงในตาราง คอลัมน์ทั้งหมดจะไม่อนุญาตให้มีค่าว่าง
ตอนนี้ สร้างตารางที่สอง ตารางราคา:
CREATE TABLE Price( id INT NOT NULL AUTO_INCREMENT, price float NOT NULL, PRIMARY KEY (id));
คอลัมน์ ID ได้รับการตั้งค่าเป็นคีย์หลักสำหรับตาราง
แสดงตาราง
ตอนนี้คุณได้สร้างตารางทั้งสองตารางแล้ว คุณสามารถตรวจสอบได้ว่าตารางเหล่านี้สร้างสำเร็จหรือไม่ คุณสามารถแสดงรายการตารางที่อยู่ในฐานข้อมูลได้โดยเรียกใช้คำสั่งต่อไปนี้:
SHOW TABLES;
ภาพหน้าจอด้านบนแสดงให้เห็นว่าทั้งสองตารางถูกสร้างขึ้นภายในฐานข้อมูลสาธิตสำเร็จ
โครงสร้างตารางแสดง
หากต้องการดูโครงสร้างของตารางใดตารางหนึ่ง คุณสามารถใช้คำสั่ง DESCRIBE ซึ่งโดยทั่วไปจะย่อว่า DESC โดยมีรูปแบบคำสั่งดังต่อไปนี้:
DESC TableName;
เช่น หากต้องการดูโครงสร้างของตารางที่ชื่อ Book คุณสามารถรันคำสั่งต่อไปนี้
DESC Book;
ตารางนี้มีสองคอลัมน์ หากต้องการดูโครงสร้างของตารางราคา คุณสามารถรันคำสั่งต่อไปนี้:
DESC Price;
CRUD และข้อ
INSERT
เพื่อแทรกข้อมูลลงใน MariaDB ตาราง คุณควรใช้คำสั่ง INSERT INTO คำสั่งนี้ใช้ไวยากรณ์ที่ระบุด้านล่าง:
INSERT INTO tableName (column_1, column_2, ... ) VALUES (value1, value2, ... ), (value1, value2, ... ), ...;
ไวยากรณ์ด้านบนแสดงให้เห็นว่าคุณต้องระบุคอลัมน์ในตารางที่คุณต้องการแทรกข้อมูลและข้อมูลที่คุณต้องการแทรก
ให้เราแทรกบันทึกลงในตารางหนังสือ:
INSERT INTO book (id, name) VALUES(1, 'MariaDB Book');
คุณได้แทรกบันทึกเดียวลงในตาราง แทรกบันทึกลงในตารางราคา:
INSERT INTO price (id, price) VALUES(1, 200);
บันทึกได้ถูกสร้างขึ้นแล้ว
SELECT
คำสั่ง SELECT ช่วยให้เราดูหรือดูเนื้อหาของตารางฐานข้อมูลได้ ตัวอย่างเช่น หากต้องการดูเนื้อหาของตาราง Book คุณต้องรันคำสั่งต่อไปนี้:
SELECT * from book;
ตอนนี้ ดูเนื้อหาของตารางราคา:
SELECT * from price;
การแทรกหลายเรคคอร์ด
เป็นไปได้ที่เราจะแทรกหลายระเบียนลงใน a MariaDB ตารางแบบไปกลับ เพื่อสาธิตสิ่งนี้ ให้รันตัวอย่างต่อไปนี้:
INSERT INTO book (id, name) VALUES (2,'MariaDB Book2'), (3,'MariaDB Book3'), (4,'MariaDB Book4'), (5,'MariaDB Book5');
คุณสามารถสืบค้นตารางเพื่อตรวจสอบว่าแทรกระเบียนสำเร็จหรือไม่:
SELECT * FROM book;
แทรกบันทึกเรียบร้อยแล้ว แทรกหลายระเบียนลงในตารางราคาโดยเรียกใช้ตัวอย่างนี้:
INSERT INTO price (id, price) VALUES (2, 250), (3, 220), (4, 190), (5, 300);
มายืนยันว่าสร้างบันทึกสำเร็จแล้วหรือไม่:
SELECT * FROM price;
อัพเดท
คำสั่ง UPDATE ช่วยให้เราเปลี่ยนแปลงหรือแก้ไขบันทึกที่ถูกแทรกลงในตารางแล้ว คุณสามารถรวมเข้ากับส่วนคำสั่ง WHERE เพื่อระบุเรกคอร์ดที่จะอัพเดตได้ นี่คือไวยากรณ์:
UPDATE tableName SET field=newValue, field2=newValue2,... [WHERE ...]
คำสั่ง UPDATE ยังสามารถใช้ร่วมกับส่วนคำสั่งต่างๆ เช่น SET, WHERE, LIMIT และ ORDER BY คุณจะเห็นสิ่งนี้ในไม่ช้า:
พิจารณาตารางชื่อราคาที่มีบันทึกดังต่อไปนี้:
มาเปลี่ยนราคาหนังสือด้วยรหัส 1 จาก 200 เป็น 250:
UPDATE price SET price = 250 WHERE id = 1;
คำสั่งรันได้สำเร็จ ตอนนี้คุณสามารถสอบถามตารางเพื่อดูว่ามีการเปลี่ยนแปลงเกิดขึ้นหรือไม่:
ภาพหน้าจอด้านบนแสดงให้เห็นว่าการเปลี่ยนแปลงได้รับการนำไปใช้แล้ว พิจารณาตาราง Book ที่มีบันทึกต่อไปนี้:
ให้เราเปลี่ยนชื่อหนังสือชื่อ Book เป็น MariaDB เล่ม1. โปรดสังเกตว่าหนังสือเล่มนี้มีรหัส 1 นี่คือคำสั่งสำหรับสิ่งนี้:
UPDATE book SET name = “MariaDB Book1” WHERE id = 1;
ตรวจสอบว่ามีการใช้การเปลี่ยนแปลงหรือไม่:
ภาพหน้าจอด้านบนแสดงให้เห็นว่าการเปลี่ยนแปลงได้รับการดำเนินการเรียบร้อยแล้ว
ในตัวอย่างข้างต้น เราได้เปลี่ยนแปลงเพียงครั้งละหนึ่งคอลัมน์เท่านั้น อย่างไรก็ตาม เราสามารถเปลี่ยนหลายคอลัมน์ได้ในคราวเดียว ให้เราสาธิตสิ่งนี้โดยใช้ตัวอย่าง
ให้เราใช้ตารางราคาโดยมีข้อมูลดังต่อไปนี้:
ให้เราเปลี่ยนทั้ง id และราคาของหนังสือด้วย id 5 โดย id เป็น 6 และราคาเป็น 6 จากนั้นรันคำสั่งต่อไปนี้
UPDATE price SET id = 6, price = 280 WHERE id = 5;
ตอนนี้ ให้สอบถามตารางเพื่อตรวจสอบว่าการเปลี่ยนแปลงสำเร็จหรือไม่:
ทำการเปลี่ยนแปลงสำเร็จแล้ว
ลบ
เราใช้คำสั่ง DELETE เมื่อเราต้องการลบระเบียนหนึ่งรายการหรือหลายรายการออกจากตาราง นี่คือไวยากรณ์สำหรับคำสั่ง:
DELETE FROM tableName [WHERE condition(s)] [ORDER BY exp [ ASC | DESC ]] [LIMIT numberRows];
พิจารณาตารางราคาพร้อมบันทึกต่อไปนี้:
เราจำเป็นต้องลบบันทึกสุดท้ายออกจากตาราง มีรหัส 6 และราคา 280 ให้เราลบบันทึก:
DELETE FROM price WHERE id = 6;
คำสั่งรันได้สำเร็จ ให้เราสอบถามตารางเพื่อยืนยันว่าการลบสำเร็จหรือไม่:
ผลลัพธ์แสดงว่าบันทึกถูกลบเรียบร้อยแล้ว
ที่ไหน
คำสั่ง WHERE ช่วยให้เราระบุตำแหน่งที่แน่นอนที่เราต้องการเปลี่ยนแปลงได้ โดยใช้ร่วมกับคำสั่งเช่น INSERT, SELECT, UPDATE และ DELETE ลองพิจารณาตารางราคาที่มีข้อมูลดังต่อไปนี้:
สมมติว่าเราต้องการดูรายการที่ราคาต่ำกว่า 250 เราสามารถรันคำสั่งต่อไปนี้:
SELECT * FROM price WHERE price < 250;
บันทึกทั้งหมดที่มีราคาต่ำกว่า 250 ได้ถูกส่งคืนแล้ว
สามารถใช้คำสั่ง WHERE ร่วมกับคำสั่ง AND ได้ สมมติว่าเราต้องการดูข้อมูลทั้งหมดในตารางราคาซึ่งราคาอยู่ต่ำกว่า 250 และ id อยู่เหนือ 3 เราสามารถรันคำสั่งต่อไปนี้:
SELECT * FROM price WHERE id > 3 AND price < 250;
มีเพียงบันทึกเดียวเท่านั้นที่ถูกส่งคืน เหตุผลก็คือต้องตรงตามเงื่อนไขทั้งหมดที่ระบุไว้คือ id สูงกว่า 3 และราคาต่ำกว่า 250 หากฝ่าฝืนเงื่อนไขข้อใดข้อหนึ่งบันทึกจะไม่ถูกส่งคืน
นอกจากนี้ clause ยังสามารถใช้ร่วมกับคำสั่ง OR ได้อีกด้วย ให้เราแทนที่ AND ในคำสั่งก่อนหน้าด้วย OR และดูประเภทของเอาต์พุตที่เราได้รับ:
SELECT * FROM price WHERE id > 3 OR price < 250;
ขณะนี้เราได้รับ 2 เรกคอร์ด แทนที่จะเป็น 1 เนื่องจากสำหรับเรกคอร์ดที่มีคุณสมบัติ จะต้องตรงตามเงื่อนไขที่ระบุอย่างใดอย่างหนึ่งเท่านั้น
Like
ส่วนคำสั่งนี้ใช้เพื่อระบุรูปแบบข้อมูลเมื่อเข้าถึงข้อมูลตารางซึ่งจำเป็นต้องมีการจับคู่แบบตรงทั้งหมด สามารถใช้ร่วมกับคำสั่ง INSERT, UPDATE, SELECT และ DELETE ได้
คุณควรส่งรูปแบบของข้อมูลที่คุณกำลังมองหาไปยังส่วนคำสั่ง และมันจะส่งคืนค่าจริงหรือเท็จ ต่อไปนี้เป็นอักขระตัวแทนที่สามารถใช้ร่วมกับส่วนคำสั่งได้:
- %: สำหรับการจับคู่อักขระ 0 ตัวขึ้นไป
- _: สำหรับการจับคู่อักขระตัวเดียว
นี่คือไวยากรณ์สำหรับส่วนคำสั่ง LIKE:
SELECT field_1, field_2,... FROM tableName1, tableName2,... WHERE fieldName LIKE condition;
ให้เราสาธิตวิธีการใช้คำสั่งด้วยอักขระตัวแทน % ให้เราใช้ตาราง Book กับระเบียนต่อไปนี้:
เราต้องการดูข้อมูลทั้งหมดที่มีชื่อเริ่มต้นด้วย M เราสามารถรันคำสั่งต่อไปนี้ได้:
SELECT name FROM book WHERE name LIKE 'M%';
ระเบียนทั้งหมดได้รับการส่งคืนเนื่องจากชื่อของระเบียนเริ่มต้นด้วยตัวอักษร M หากต้องการดูชื่อทั้งหมดที่ลงท้ายด้วยเลข 4 คุณสามารถรันคำสั่งต่อไปนี้:
SELECT name FROM book WHERE name LIKE '%4';
กลับคืนมาเพียงชื่อเดียวเพราะเป็นชื่อเดียวที่ตรงตามเงื่อนไข
นอกจากนี้เรายังสามารถล้อมรอบรูปแบบการค้นหาด้วยไวด์การ์ด:
SELECT name FROM book WHERE name LIKE '%DB%';
นอกเหนือจาก % wildcard แล้ว LIKE clause สามารถใช้ร่วมกับ _ wildcard ได้ นี่คือไวด์การ์ดขีดล่าง และจะค้นหาเพียงอักขระตัวเดียวเท่านั้น
ให้เราทำงานกับตารางราคาด้วยบันทึกต่อไปนี้:
ให้เราลองตรวจสอบดูว่าราคาอยู่ที่ 1_0 หรือไม่ โดยใช้คำสั่งต่อไปนี้:
SELECT * FROM price WHERE price LIKE '1_0';
กลับมาสร้างสถิติที่ราคา 190 เรายังลองรูปแบบอื่นได้:
SELECT * FROM price WHERE price LIKE '_2_';
เราสามารถใช้คำสั่ง LIKE ร่วมกับตัวดำเนินการ NOT ได้ ซึ่งจะส่งคืนระเบียนทั้งหมดที่ไม่ตรงตามรูปแบบที่ระบุ ตัวอย่างเช่น:
ให้เราใช้ตารางราคาโดยบันทึกข้อมูลดังต่อไปนี้:
ให้เราค้นหาบันทึกทั้งหมดที่ราคาไม่ได้ขึ้นต้นด้วย 2:
SELECT * FROM price WHERE price NOT LIKE '2%';
มีเพียงหนึ่งระเบียนที่ไม่ตรงตามรูปแบบที่ระบุ
สั่งซื้อโดย
ข้อนี้ช่วยให้เราจัดเรียงบันทึกของเราตามลำดับจากน้อยไปมากหรือจากมากไปน้อย เราใช้กับคำสั่ง SELECT ดังที่แสดงด้านล่าง:
SELECT expression(s) FROM tables [WHERE condition(s)] ORDER BY exp [ ASC | DESC ];
เป็นไปได้ที่จะใช้ส่วนคำสั่งนี้โดยไม่ต้องเพิ่มส่วน ASC หรือ DESC ตัวอย่างเช่น:
เราจะใช้ตารางราคาโดยบันทึกข้อมูลดังต่อไปนี้:
รันคำสั่งต่อไปนี้กับตาราง:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price;
ในคำสั่งข้างต้นเราได้สั่งตามราคา บันทึกได้รับการเรียงลำดับโดยมีราคาตามลำดับจากน้อยไปหามาก นั่นหมายความว่าเมื่อเราไม่ระบุลำดับ การเรียงลำดับจะเรียงลำดับจากน้อยไปมากตามค่าเริ่มต้น
ให้เรารันคำสั่งด้วยตัวเลือก DESC:
SELECT * FROM price WHERE price LIKE '2%' ORDER BY price DESC;
บันทึกได้รับการจัดเรียงตามราคาจากมากไปน้อยตามที่เราระบุไว้
ให้เราใช้คำสั่ง ORDER BY ร่วมกับแอตทริบิวต์ ASC:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price ASC;
มีการสั่งซื้อบันทึกแล้ว แต่ราคาเรียงลำดับจากน้อยไปมาก สิ่งนี้คล้ายกับเมื่อเราใช้คำสั่งย่อย ORDER BY โดยไม่มีแอตทริบิวต์ ASC หรือ DESC
DISTINCT
ส่วนคำสั่งนี้ช่วยให้เรากำจัดข้อมูลที่ซ้ำกันเมื่อเลือกบันทึกจากตาราง ซึ่งหมายความว่าช่วยให้เราได้รับบันทึกที่ไม่ซ้ำใคร ไวยากรณ์ของมันได้รับด้านล่าง:
SELECT DISTINCT expression(s) FROM tableName [WHERE condition(s)];
เพื่อแสดงสิ่งนี้ เราจะใช้ตารางราคาพร้อมข้อมูลต่อไปนี้:
เมื่อเราเลือกคอลัมน์ราคาจากตาราง เราจะได้ผลลัพธ์ดังต่อไปนี้:
SELECT price FROM Price;
เรามีสองบันทึกที่มีราคา 250 สร้างสำเนา เราจำเป็นต้องมีบันทึกที่ไม่ซ้ำใครเท่านั้น เราสามารถกรองสิ่งเหล่านี้ได้โดยใช้ส่วนคำสั่ง DISTINCT ดังที่แสดงด้านล่าง:
SELECT DISTINCT price FROM Price;
ตอนนี้เราไม่มีรายการที่ซ้ำกันในผลลัพธ์ด้านบน
ตั้งแต่
ส่วนคำสั่ง FROM ใช้สำหรับดึงข้อมูลจากตารางฐานข้อมูล นอกจากนี้ยังสามารถช่วยในการเข้าร่วมตารางได้อีกด้วย นี่คือไวยากรณ์สำหรับคำสั่ง:
SELECT columnNames FROM tableName;
หากต้องการดูเนื้อหาของตารางหนังสือ ให้รันคำสั่งต่อไปนี้:
SELECT * FROM price;
ส่วนคำสั่งสามารถช่วยให้คุณดึงข้อมูลเฉพาะคอลัมน์เดียวจากตารางฐานข้อมูลได้ ตัวอย่างเช่น:
SELECT price FROM Price;
งานขั้นสูง
ขั้นตอนการเก็บ
ขั้นตอนคือก MariaDB โปรแกรมที่คุณสามารถส่งพารามิเตอร์ไปได้ ขั้นตอนไม่ส่งกลับค่า ในการสร้างขั้นตอน เราใช้คำสั่ง CREATE PROCEDURE
เพื่อสาธิตวิธีการสร้างและเรียกใช้โพรซีเดอร์ เราจะสร้างโพรซีเดอร์ชื่อ myProcedure() ซึ่งช่วยให้เราเลือกคอลัมน์ชื่อจากตารางหนังสือ นี่คือขั้นตอน:
DELIMITER $ CREATE PROCEDURE myProcedure() BEGIN SELECT name FROM book; END; ;
ขั้นตอนได้ถูกสร้างขึ้นแล้ว เราได้แนบคำสั่ง SELECT ไว้ภายในส่วนคำสั่ง BEGIN และ END ของกระบวนการ
ตอนนี้เราสามารถเรียกโพรซีเดอร์ได้ตามชื่อที่แสดงด้านล่าง:
CALL myProcedure();
ขั้นตอนส่งคืนคอลัมน์ชื่อของตารางหนังสือเมื่อถูกเรียก
เราสามารถสร้างกระบวนการที่รับพารามิเตอร์ได้ ตัวอย่างเช่น เราต้องเลือกชื่อหนังสือและกรองโดยใช้ ID หนังสือ เราสามารถสร้างกระบวนการต่อไปนี้สำหรับสิ่งนี้:
DELIMITER $ CREATE PROCEDURE myProcedure2(book_id int) BEGIN SELECT name FROM book WHERE id = book_id; END; ;
ข้างต้น เราได้สร้างขั้นตอนชื่อ myProcedure2() ขั้นตอนนี้ใช้พารามิเตอร์จำนวนเต็มหนึ่งตัวชื่อ book_id ซึ่งเป็นรหัสของหนังสือที่เราจำเป็นต้องดูชื่อ หากต้องการดูชื่อหนังสือที่มีรหัส 3 เราสามารถเรียกขั้นตอนได้ดังนี้
CALL myProcedure2(3);
ฟังก์ชัน
ต่างจากโพรซีเดอร์ตรงที่เราต้องส่งพารามิเตอร์ไปยังฟังก์ชันและฟังก์ชันจะต้องส่งคืนค่า เพื่อสร้างฟังก์ชั่นใน MariaDBเราใช้คำสั่ง CREATE FUNCTION ซึ่งมีรูปแบบคำสั่งดังนี้:
CREATE [ DEFINER = { CURRENT-USER | username } ] FUNCTION function-name [(parameter datatype [, parameter datatype]) ] RETURNS datatype [LANGUAGE SQL | DETERMINISTIC | NOT DETERMINISTIC | {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA} | SQL SECURITY {DEFINER | INVOKER} | COMMENT 'comment' BEGIN declaration-section executable-section END;
พารามิเตอร์ข้างต้นอธิบายไว้ด้านล่าง:
พารามิเตอร์ | Descriptไอออน |
---|---|
ส่วน DEFINER | พารามิเตอร์นี้เป็นทางเลือก หากคุณไม่ระบุ ผู้กำหนดจะกลายเป็นผู้ใช้ที่สร้างฟังก์ชัน หากจำเป็นต้องระบุตัวกำหนดอื่น ให้รวมส่วนคำสั่ง DEFINER โดยที่ user_name จะเป็นตัวกำหนดของฟังก์ชัน |
function_name | ชื่อที่จะกำหนดให้กับฟังก์ชันนี้ใน MariaDB. |
พารามิเตอร์ | พารามิเตอร์ที่ส่งผ่านไปยังฟังก์ชัน ในระหว่างการสร้างฟังก์ชัน พารามิเตอร์ทั้งหมดจะถือเป็น ในพารามิเตอร์ (แทนที่จะเป็นพารามิเตอร์ OUT/INOUT) |
return_datatype | ชนิดข้อมูลของค่าที่ส่งคืนของฟังก์ชัน |
ภาษา SQL | มันส่งผลต่อการพกพาแต่ไม่ส่งผลต่อฟังก์ชั่น |
กำหนด | ฟังก์ชันจะส่งกลับผลลัพธ์เดียวก็ต่อเมื่อกำหนดพารามิเตอร์จำนวนหนึ่งเท่านั้น |
ไม่ใช่สิ่งที่กำหนดไว้ | เป็นไปได้ที่ฟังก์ชันจะส่งกลับผลลัพธ์ที่แตกต่างออกไปเมื่อกำหนดพารามิเตอร์จำนวนหนึ่ง |
ประกอบด้วย SQL | แจ้ง MariaDB ว่าฟังก์ชันนี้มี SQL ฐานข้อมูลจะไม่ตรวจสอบว่าสิ่งนี้เป็นจริงหรือไม่ |
ไม่มี SQL | ไม่ได้ใช้ประโยคนี้ และไม่มีผลกระทบต่อฟังก์ชันของคุณ |
อ่านข้อมูล SQL | บอก MariaDB ว่าฟังก์ชันนี้จะใช้คำสั่ง SELECT ในการอ่านข้อมูล แต่จะไม่แก้ไขข้อมูล |
แก้ไขข้อมูล SQL | บอก MariaDB ว่าฟังก์ชันนี้จะใช้ INSERT, DELETE, UPDATE และอื่นๆ DDL คำสั่งเพื่อแก้ไขข้อมูล SQL |
ส่วนประกาศ | นี่คือที่ที่ควรประกาศตัวแปรท้องถิ่น |
ปฏิบัติการส่วน | ควรเพิ่มโค้ดฟังก์ชันที่นี่ |
นี่คือตัวอย่าง MariaDB ฟังก์ชั่น:
DELIMITER // CREATE FUNCTION sumFunc (x INT ) RETURNS INT DETERMINISTIC BEGIN DECLARE sum INT; SET sum = 0; label1: WHILE sum <= 3000 DO SET sum = sum + x; END WHILE label1; RETURN sum; END; // DELIMITER ;
จากนั้นเราสามารถเรียกใช้ฟังก์ชันข้างต้นได้ดังนี้:
select sumFunc(1000);
คำสั่งจะส่งคืนสิ่งต่อไปนี้:
เมื่อคุณใช้ฟังก์ชันเสร็จแล้ว คุณสามารถลบฟังก์ชันนั้นได้ ซึ่งทำได้ง่าย เพียงเรียกใช้คำสั่ง DROP FUNCTION ที่มีรูปแบบดังต่อไปนี้:
DROP FUNCTION function_name;
ตัวอย่างเช่น หากต้องการลบฟังก์ชันที่ชื่อ myFunc เราสามารถรันคำสั่งต่อไปนี้:
DROP FUNCTION myFunc;
สมัคร
เมื่อคุณต้องการดึงข้อมูลจากมากกว่าหนึ่งตารางในคราวเดียว ให้ใช้ MariaDB เข้าร่วม ซึ่งหมายความว่าก สมัคร ใช้งานได้กับตารางสองตารางขึ้นไป รองรับ JOINS สามประเภทต่อไปนี้ MariaDB:
- ภายใน/เข้าร่วมอย่างง่าย
- เข้าร่วมด้านนอกซ้าย / เข้าร่วมซ้าย
- เข้าร่วมด้านนอกขวา / เข้าร่วมขวา
ให้เราหารือกันทีละคน:
INNER JOIN
การรวมภายในส่งคืนแถวทั้งหมดจากตารางที่เงื่อนไขการรวมเป็นจริง ไวยากรณ์ของมันมีดังนี้:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
ตัวอย่างเช่น:
เราจะใช้โต๊ะสองเล่ม หนังสือ และหนังสือของเรา
ตารางหนังสือประกอบด้วยข้อมูลต่อไปนี้:
ตารางราคาประกอบด้วยข้อมูลต่อไปนี้:
เป้าหมายคือการรวมคอลัมน์ชื่อจากตาราง Book และคอลัมน์ราคาจากตารางราคาไว้ในตารางเดียว สิ่งนี้เป็นไปได้ด้วยการรวมภายใน ดังที่แสดงด้านล่าง:
SELECT book.name, price.price FROM book INNER JOIN price ON book.id = price.id;
คำสั่งจะคืนค่าต่อไปนี้:
ซ้าย OUTER เข้าร่วม
การรวมนี้จะส่งคืนแถวทั้งหมดจากตารางด้านซ้าย และเฉพาะแถวที่มีเงื่อนไขการรวมเป็นจริงจากอีกตารางหนึ่ง ไวยากรณ์ของมันมีดังนี้:
SELECT columns FROM table-1 LEFT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
คีย์เวิร์ด OUTER ได้ถูกวางไว้ภายในวงเล็บเหลี่ยมเพราะว่าเป็นตัวเลือก
ตัวอย่างเช่น:
SELECT book.name, price.price FROM book LEFT JOIN price ON book.id = price.id;
คำสั่งจะคืนค่าต่อไปนี้:
บันทึกสุดท้ายในตารางด้านบนไม่มีค่าที่ตรงกันทางด้านซ้าย นั่นคือเหตุผลที่มันถูกแทนที่ด้วย NULL
เข้าร่วมด้านนอกขวา
การรวมนี้จะส่งคืนแถวทั้งหมดจากตารางทางขวามือ และเฉพาะแถวที่เงื่อนไขการรวมเป็นจริงจากตารางอื่นเท่านั้น ไวยากรณ์ของมันมีดังนี้:
SELECT columns FROM table-1 RIGHT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
คีย์เวิร์ด OUTER ได้ถูกวางไว้ภายในวงเล็บเหลี่ยมเพราะว่าเป็นตัวเลือก
ตัวอย่างเช่น:
SELECT book.name, price.price FROM book RIGHT JOIN price ON book.id = price.id;
คำสั่งจะคืนค่าต่อไปนี้:
เหตุผลก็คือแถวทั้งหมดในตารางทางขวาตรงกับแถวในตารางอื่น หากบางแถวไม่ตรงกัน เราก็จะมีค่า NULL ในคอลัมน์แรก