Bước tới nội dung

Thành viên:MariaDB

Bách khoa toàn thư mở Wikipedia
MariaDB
Phát triển bởiMariaDB Corporation Ab, MariaDB Foundation
Phát hành lần đầu22 tháng 1 năm 2009 (2009-01-22)
Viết bằngC, C++, Perl, Bash
Hệ điều hànhUnix, Windows, Solaris, Linux, OS X, BSD[1]
Thể loạiRDBMS
Giấy phépGNU General Public License (version 2), GNU Lesser General Public License (for client-libraries)[2]
Websitehttps://mariadb.org/, https://mariadb.com/

MariaDB là một cộng đồng phát triển đa luồng của hệ quản trị cơ sở dữ liệu quan hệ MySQL nhằm theo hướng không phải trả phí GNU GPL.

Sự phát triển hiện nay của MariaDB là nhờ sự dẫn dắt của những nhà phát triển từ MySQL, những người đã quan ngại về việc Oracle Corporation mua lại bảng quyền. Vì thiên về hướng nguồn mở nên những người đóng góp được yêu cầu chia sẽ quyền tác giả của họ với MariDB . MariaDB được duy trì khả năng tương thích cao với MySQL, để đảm bảo khả năng hỗ trợ về thư viện đồng thời kết hợp một cách tốt nhất với các API và câu lệnh trong hệ quản trị cơ sở dữ liệu quan hệ MySQL. MariaDB đã có công cụ hỗ lưu trữ XtraDB thay cho InnoDB, cũng như một công cụ lưu trữ mới, Aria, dự định sẽ là một công cụ giao dịch và phi giao dịch thậm chí có thể bao gồm trong các phiên bản MySQL trong tương lai. Nhà phát triển chính của MariDB là Michael "Monty" Widenius, một trong những người sáng lập của MySQL AB và là người sáng lập Chương trình Monty AB. Vào ngày 16 tháng 1 năm 2008, MySQL AB thông báo rằng họ đã đồng ý mua lại bởi Sun Microsystems với giá khoảng 1 tỷ USD. Việc mua lại hoàn thành vào ngày 26 tháng 2 năm 2008. MariaDB được đặt tên theo con gái của Monty, Maria, tương tự như cách MySQL được đặt tên theo con gái của ông là My.

Phiên bản[sửa | sửa mã nguồn]

Số phiên bản của MariaDB tuân theo sơ đồ số của MySQL đến phiên bản 5.5. Như vậy, MariaDB 5.5 cung cấp tất cả các tính năng MySQL 5.5. Có khoảng cách giữa các phiên bản MySQL giữa 5,1 và 5,5, trong khi MariaDB phát hành 5.2 và 5.3 điểm.

Sau phiên bản 5.5, các nhà phát triển của MariaDB quyết định bắt đầu một chi nhánh có số 10, như là một nỗ lực để làm rõ rằng MariaDB 10.0 sẽ không nhập tất cả các tính năng từ MySQL 5.6; tuy nhiên, chúng có thể được nhập khẩu trong các phiên bản trong tương lai. Vì các tính năng mới đã được phát triển trong MariaDB nên các nhà phát triển đã quyết định thay đổi số phiên bản chính là cần thiết.

Phiên bản Ngày phát hành gốc Phiên bản mới nhất Ngày phát hành Trạng thái
Phiên bản cũ, không còn được hỗ trợ: 5.1 2009-10-29[3] 5.1.67 2013-01-30[4] Ổn định (GA)
Phiên bản cũ, không còn được hỗ trợ: 5.2 2010-04-10[5] 5.2.14 2013-01-30[6] Ổn định (GA)
Phiên bản cũ, không còn được hỗ trợ: 5.3 2011-07-26[7] 5.3.12 2013-01-30[8] Ổn định (GA)
Phiên bản cũ, vấn được hỗ trợ: 5.5 2012-02-25[9] 5.5.58 2017-10-18[10] Ổn định (GA)
Phiên bản cũ, vấn được hỗ trợ: 10.0 2012-11-12[11] 10.0.33 2017-10-30[12] Ổn định (GA)
Phiên bản cũ, vấn được hỗ trợ: 10.1 2014-06-30[13] 10.1.28 2017-09-28[14] Ổn định (GA)
Phiên bản ổn định hiện tại: 10.2 2016-04-18[15] 10.2.10 2017-10-31[16] Ổn định (GA)
Phiên bản xem trước của một bản ra mắt trong tương lai: 10.3 2017-04-16[17] 10.3.2 2017-10-09[18] Alpha
Chú giải:
Phiên bản cũ
Phiên bản cũ, vẫn được hỗ trợ
Phiên bản mới nhất
Phiên bản xem trước mới nhất
Ra mắt trong tương lai

Công cụ MariaDB[sửa | sửa mã nguồn]

Như đã giải thích,MariaDB là một DBMS client-server, và do đó sử dụng MariaDB bạn cần một máy khách, một ứng dụng mà bạn sử dụng để tương tác với MariaDB (cho nó lệnh để được thực hiện).Có nhiều lựa chọn ứng dụng khách hàng, nhưng khi học MariaDB (và thực sự, khi viết và kiểm thử các tập lệnh của MariaDB) bạn nên sử dụng mộttiện ích được thiết kế cho mục đích đó. Hai công cụ đặc biệt cho phép cụ thể đề cập đến. Câu lệnh mysql Mỗi cài đặt MariaDB đi kèm với một tiện ích dòng lệnh đơn giản được gọi là mysql. Tiện ích này không có bất kỳ trình đơn thả xuống, giao diện người dùng ưa thích,hỗ trợ chuột, hoặc bất cứ thứ gì tương tự. Gõ lệnh mysql tại dấu nhắc lệnh của hệ điều hành sẽ hiển thị một lời chào mừng thông báo tiếp theo là một dấu nhắc đơn giản như sau: Chào mừng bạn đến với màn hình của MariaDB. Các lệnh kết thúc bằng; hoặc \ g. ID kết nối MariaDB của bạn là 1 Phiên bản máy chủ: 5.2.4-MariaDB Phân phối nguồn Phần mềm này đi kèm với ABSOLUTY BẢO HÀNH. Đây là phần mềm miễn phí, và bạn được chào đón để sửa đổi và phân phối lại nó theo GPL v2 giấy phép Nhập 'help;' hoặc '\ h' để được giúp đỡ. Gõ '\ c' để xóa đầu vào hiện tại tuyên bố. MariaDB [(không có)] Tất nhiên, phiên bản và thông tin kết nối của bạn có thể khác nhau, nhưng bạn sẽ có thể sử dụng tiện ích này bất kể. Lưu ý rằng: Công cụ MariaDB 17

  • Các lệnh được đánh máy sau dấu nhắc của MariaDB>. (MariaDB> chỉ ra rằng bạn đã kết nối với máy chủ MariaDB, dấu nhắc sẽ là MySQL> nếu bạn đã được kết nối với một máy chủ MySQL.)
  • Các lệnh kết thúc bằng; hoặc \ g; nói cách khác, chỉ cần nhấn Enter sẽ không thực hiện lệnh.
  • Bạn có thể sử dụng các phím mũi tên lên và xuống để di chuyển qua nhập lệnh.
  • Bạn có thể gõ help hoặc \ h để được trợ giúp. Bạn cũng có thể cung cấp văn bản bổ sung để nhận trợ giúp về các lệnh cụ thể (ví dụ: trợ giúp

chọn để được trợ giúp khi sử dụng câu lệnh SELECT).

  • Bạn có thể gõ quit or exit để thoát khỏi tiện ích dòng lệnh

Phần mềm của bên thứ ba[sửa | sửa mã nguồn]

API và giao thức của MariaDB tương thích với API của MySQL, cộng thêm một số tính năng để hỗ trợ các hoạt động không chặn và báo cáo tiến độ. Điều này có nghĩa là tất cả các kết nối, thư viện và ứng dụng làm việc với MySQL cũng nên hoạt động trên MariaDB - cho dù chúng có hỗ trợ các tính năng gốc của nó hay không. Trên cơ sở đó, các nhà phát triển Fedora đã thay thế MySQL bằng MariaDB trong Fedora 19, trong số những lo ngại rằng Oracle đã làm cho MySQL trở thành một dự án phần mềm khép kín hơn. OpenBSD tương tự như vậy trong háng 4 năm 2013, OpenBSD cũng bỏ MySQL để dùng MariaDB 5.5.

Quỹ MariaDB[sửa | sửa mã nguồn]

Vào tháng 12 năm 2012, Michael Widenius, David Axmark và Allan Larsson đã thông báo việc thành lập một tổ chức giám sát sự phát triển của MariaDB Vào tháng 4 năm 2013, Quỹ đã thông báo rằng đã bổ nhiệm Simon Phipps làm Thư ký và Giám đốc điều hành tạm thời, Rasmus Johansson làm Chủ tịch Hội đồng Quản trị, và Andrew Katz, Jeremy Zawodny, và Michael Widenius làm thành viên Hội đồng Quản trị. Chú ý rằng nó muốn tạo ra một mô hình quản trị tương tự như được sử dụng bởi Quỹ Eclipse, Hội đồng đã bổ nhiệm giám đốc điều hành của Quỹ Eclipse Mike Milinkovich làm cố vấn để dẫn dắt quá trình chuyển đổi này. vào năm 2014 Phipps đã từ bỏ trong việc bán thương hiệu MariaDB cho SkySQL. Ông sau đó nói: "Tôi đã từ bỏ ngay khi rõ ràng là công ty sẽ không cho phép một nền tảng độc lập".

SkySQL Corporation Ab, một công ty được thành lập bởi cựu giám đốc điều hành MySQL và các nhà đầu tư sau khi Oracle mua lại MySQL đã thông báo vào tháng 4 năm 2013 rằng họ đã sáp nhập công ty của họ với Monty Program AB, và gia nhập Quỹ MariaDB. Quỹ MariaDB bổ nhiệm Widenius làm CTO của mình, Simon Phipps trở thành giám đốc điều hành tạm thời của Quỹ MariaDB.

Vào ngày 1 tháng 10 năm 2014, SkySQL Corporation AB đổi tên thành MariaDB Corporation AB để phản ánh vai trò của nó như là động lực chính đằng sau sự phát triển của máy chủ MariaDB và nhà cung cấp dịch vụ hỗ trợ lớn nhất cho nó.

MariaDB là nhãn hiệu đã đăng ký của MariaDB Corporation AB, được sử dụng theo giấy phép của Quỹ MariaDB.

Người dùng nổi bật[sửa | sửa mã nguồn]

MariaDB được sử dụng tại Google, MozillaWikimedia Foundation. Một số bản phân phối hệ điều hành và Linux cung cấp cho MariaDB, như Arch Linux, Fedora (từ Fedora 19), Debian (từ Stretch), Red Hat Enterprise Linux (từ RHEL 7) hoặc OpenBSD (từ 5.7).

Cài đặt MariaDB trên Windows[sửa | sửa mã nguồn]

Có hai loại tải xuống của MariaDB cho Windows: ZIP fles và gói MSI. Như đã đề cập trước đây, tệp ZIP fles tương tự như tệp binary.tar.gz fles của Linux và chúng chỉ được đề nghị cho các chuyên gia. Nếu chúng ta bắt đầu với MariaDB trên Windows, khuyên bạn sử dụng các gói MSI. Dưới đây là các bước thực hiện:

  • Tải xuống gói MSI từ https://downloads.mariadb.org/. Nhấp chuột đầu tiên vào loạt chúng ta muốn (ổn định, rất có thể), sau đó xác định vị trí Windows 64-bit hoặc Windows 32-bit MSI gói. Đối với hầu hết các máy tính, gói MSI 64-bit có lẽ là một trong những chúng tôi muốn, đặc biệt nếu chúng ta có nhiều hơn 4 GB bộ nhớ RAM. Nếu bạn không chắc chắn, gói 32-bit sẽ hoạt động trên cả hai máy tính 32-bit và 64-bit.
  • Sau khi quá trình tải xuống kết thúc, khởi chạy trình cài đặt MSI bằng cách nhấp đúp vào nó. Tùy thuộc vào cài đặt của chúng tôi, chúng tôi có thể được nhắc tự động khởi động. Trình cài đặt sẽ hướng dẫn chúng tôi cài đặt MariaDB.
  • Nếu chúng ta cài đặt MariaDB lần đầu tiên, chúng ta phải chắc chắn đặt mật khẩu người dùng root khi được nhắc.
  • Trừ khi chúng ta cần, không cho phép truy cập từ các máy tính từ xa cho người dùng gốc hoặc tạo một tài khoản vô danh. Bao gồm việc chúng ta tạo các tài khoản người dùng thông thường, Quản lý Tài khoản Người dùng MariaDB.
  • Hộp Cài đặt như là dịch vụ được kiểm tra theo mặc định và bạn nên giữ nó theo cách đó để MariaDB khởi động khi máy tính khởi động. Hộp văn bản Tên dịch vụ có giá trị mặc định là MySQL vì lý do tính tương thích, nhưng chúng ta có thể đổi tên nó nếu muốn.
  • Chọn tùy chọn Enable networking, nếu bạn cần truy cập cơ sở dữ liệu từ một máy tính khác. Nếu chúng ta không tốt nhất là bỏ chọn ô này. Giống như tên dịch vụ, có một số cổng TCP mặc định (3306) mà bạn có thể thay đổi nếu muốn, nhưng tốt nhất bạn nên gắn với mặc định trừ khi có một lý do chính xác.
  • Hộp kiểm Optimize for transactions được kiểm tra theo mặc định. Cài đặt này có thể để nguyên như.
  • Có các cài đặt khác mà chúng ta có thể thực hiện thông qua trình cài đặt. Tất cả chúng có thể được thay đổi sau bằng cách chỉnh sửa tệp my.ini, vì vậy chúng ta không phải thiết lập chúng ngay.
  • Nếu phiên bản Window  has User Account Control của chúng tôi được bật, sẽ có một cửa sổ pop-up trong quá trình cài đặt yêu cầu chúng tôi muốn cho phép trình cài đặt cài đặt MariaDB. Vì lý do rõ ràng, nhấp vào Yes.
  • Sau khi cài đặt hoàn tất, sẽ có một thư mục MariaDB được thêm vào trình đơn.
  • Cuối cùng chúng ta sẽ được một hộp thoại với một thông báo cài đặt đầy đủ và một nút Finish. Nếu bạn nhận được đến nay, xin chúc mừng! MariaDB bây giờ đã được cài đặt và chạy trên máy tính chạy Windows của bạn. Nhấp vào Finish để thoát trình cài đặt.

Hỗ trợ[sửa | sửa mã nguồn]

Google đã giao nhiệm vụ cho một trong những kỹ sư của mình làm việc tại Quỹ MariaDB. Một nhóm các công ty đầu tư do Intel dẫn đầu đã đầu tư 20 triệu USD vào SkySQL Ngân hàng Đầu tư Châu Âu đã tài trợ MariaDB với 25 triệu Euro vào năm 2017.

Cơ sở kiến thức[sửa | sửa mã nguồn]

Giới thiệu cơ sở dữ liệu quan hệ[sửa | sửa mã nguồn]

Cơ sở dữ liệu là gì?

Cách đơn giản nhất để hiểu cơ sở dữ liệu là như một tập hợp các tệp tin liên quan. Hãy tưởng tượng một tập tin (giấy hoặc số) của đơn đặt hàng bán hàng trong một cửa hàng. Sau đó, có một tệp sản phẩm khác, chứa hồ sơ chứng khoán. Để hoàn thành đơn đặt hàng, bạn cần phải tìm kiếm sản phẩm trong tập lệnh, sau đó tìm kiếm và điều chỉnh mức chứng khoán cho sản phẩm cụ thể đó trong tệp sản phẩm. Một cơ sở dữ liệu và phần mềm điều khiển cơ sở dữ liệu, được gọi là hệ thống quản lý cơ sở dữ liệu (DBMS), giúp với loại công việc này.

Hầu hết các cơ sở dữ liệu hiện nay đều là các cơ sở dữ liệu quan hệ , có tên như vậy vì chúng xử lý các bảng dữ liệu có liên quan bởi một trường phổ biến. Ví dụ, bảng 1 dưới đây cho thấy bảng sản phẩm, và Bảng 2 cho thấy bảng hoá đơn. Như bạn thấy, mối quan hệ giữa hai bảng dựa trên trường phổ biến product_code. Bất kỳ hai bảng có thể liên quan với nhau đơn giản bằng cách có một trường chung.

Bảng 1

Mã sản phẩm Sự miêu tả Giá bán
1 2 nghìn
2 gạo 3 nghìn
3 sữa 4 nghìn

Bảng 2

Invoice_code Invoice_line Mã sản phẩm Số lượng
3804 1 1 10
3547 2 2 15

Thuật ngữ cơ sở dữ liệu

Chúng ta hãy xem xét kỹ hơn hai bảng trước đó để xem chúng được tổ chức như thế nào:

Mỗi bảng bao gồm nhiều hàng và cột .

Mỗi hàng mới chứa dữ liệu về một thực thể duy nhất (chẳng hạn như một sản phẩm hoặc một dòng đơn hàng). Đây được gọi là hồ sơ . Ví dụ, hàng đầu tiên trong Bảng 1 là một bản ghi; nó mô tả sản phẩm 1, đó là một gói mì có chi phí 2 nghìn. Thuật ngữ hàng và bản ghi có thể hoán đổi cho nhau.

Mỗi cột (còn gọi là bộ đôi ) chứa một phần dữ liệu có liên quan đến bản ghi, được gọi là một thuộc tính . Ví dụ về các thuộc tính là số lượng của một mặt hàng được bán hoặc giá của một sản phẩm. Một thuộc tính, khi đề cập đến một bảng cơ sở dữ liệu, được gọi là một trường . Ví dụ: dữ liệu trong cột Mô tả trong Bảng 1 là các trường. Các điều khoản thuộc tính và lĩnh vực được hoán đổi cho nhau. Với loại cấu trúc này, cơ sở dữ liệu cung cấp cho bạn một cách để thao tác dữ liệu này: SQL. SQL (ngôn ngữ truy vấn có cấu trúc) là một cách mạnh mẽ để tìm kiếm hồ sơ hoặc thực hiện các thay đổi. Hầu như tất cả các DBMSs sử dụng SQL, mặc dù nhiều người đã thêm vào những cải tiến của riêng họ cho nó. Điều này có nghĩa là khi bạn học SQL trong khi sử dụng MariaDB, hầu hết nó không phải là cụ thể cho MariaDB và cũng có thể được sử dụng với các cơ sở dữ liệu quan hệ khác như PostgreSQL, MySQL, Oracle và SQL Server. MariaDB ban đầu được tạo ra như một sự thay thế cho MySQL, thay vào đó MariaDB và MySQL rất thân thiết.

Các truy vấn chung của MariaDB[sửa | sửa mã nguồn]

1. Nhóm câu lệnh SQL trong MariaDB giúp định nghĩa cách lưu trữ dữ liệu: 

Bảng sau trình bày một số câu lệnh SQL trong MariaDB giúp định nghĩa cách lưu trữ dữ liệu chẳng hạn như tạo mới một cơ sở dữ liệu, tạo mới một bảng…

STT Tên câu lệnh Mô tả
1 CREATE DATABASE Được dùng để tạo mới cơ sở dữ liệu.
2 DROP DATABASE Được dùng để xóa bỏ cơ sở dữ liệu đã tạo.
3 USE Được dùng để chọn cơ sở dữ liệu làm mặc định
4 CREATE TABLE Được dùng để tạo mới một bảng trong cơ sở dữ liệu.
5 ALTER TABLE Được dùng để chỉnh sửa.
6 DROP TABLE Được dùng để xóa bỏ một bảng.
7 DESCRIBE Được dùng để hiển thị cấu trúc một bảng.

2. Nhóm câu lệnh SQL trong MariaDB giúp định nghĩa cách thao tác dữ liệu:

Bảng sau trình bày một số câu lệnh SQL trong MariaDB giúp định nghĩa cách thao tác dữ liệu chẳng hạn như thêm, sửa, xóa, đọc dữ liệu…

STT Tên câu lệnh Mô tả
1 SELECT Được dùng để lấy dữ liệu hay  truy vấn dữ liệu nhằm trả về một tập kết quả các bản ghi từ một hoặc nhiều bảng.
2 INSERT Được dùng để thêm mới một dòng dữ liệu vào bảng.
3 UPDATE Được dùng để cập nhật dữ liệu trong bảng.
4 DELETE Được dùng để tạo xóa một dòng dữ liệu trong bảng.
5 REPLACE Được dùng để thay đổi dữ liệu mới hoặc dữ liệu đã tồn tại.
6 TRUNCATE Được dùng để xóa tất cả dòng dữ liệu trong bảng.

3. Nhóm câu lệnh SQL trong MariaDB sử dụng transaction (giao dịch):

Bảng sau trình bày một số câu lệnh SQL trong MariaDB liên quan đến sử dụng transaction (giao dịch) như bắt đầu một transaction, kết thúc một transaction…

STT Tên câu lệnh Mô tả
1 START TRANSACTION Được dùng để khởi tạo một transaction (giao dịch).
2 COMMIT Được dùng để để áp dụng các thay đổi và kết thúc giao dịch.
3 ROLLBACK Được dùng để loại bỏ những thay đổi và kết thúc giao dịch.

Các truy vấn cơ bản[sửa | sửa mã nguồn]

1.Select

Câu lệnh SELECT (mang nghĩa lấy dữ liệu hay câu lệnh truy vấn) trong MariaDB trả về một tập kết quả các bản ghi từ một hoặc nhiều bảng.

Nó được sử dụng để lấy dữ liệu từ một hoặc nhiều bảng trong cơ sở dữ liệuSELECT là lệnh thường dùng nhất của ngôn ngữ sửa đổi dữ liệu (tiếng Anh: Data Manipulation Language - DML). Trong việc tạo ra câu truy vấn SELECT, người sử dụng phải đưa ra mô tả cho những dữ liệu mình muốn lấy ra chứ không chỉ ra những hành động vật lý nào bắt buộc phải thực hiện để lấy ra kết quả đó. Hệ thống cơ sở dữ liệu, hay chính xác hơn là bộ tối ưu hoá câu truy vấn (tiếng Anhquery optimizer) sẽ dịch từ câu truy vấn sang kế hoạch truy vấn tối ưu.

  • Cú pháp lệnh SELECT trong MariaDB (MariaDB Syntax SELECT) được mô tả như sau:
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

SELECT

    [ALL | DISTINCT | DISTINCTROW]

    [HIGH_PRIORITY]

    [STRAIGHT_JOIN]

    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]

    [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]

    select_expr [, select_expr ...]

    [ FROM table_references [PARTITION (partition_list)]

      [{USE|FORCE|IGNORE} INDEX [FOR {JOIN|ORDER BY|GROUP BY}] ([index_list]) ]

      [WHERE where_condition]

      [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]]

      [HAVING where_condition]

      [ORDER BY {col_name | expr | position} [ASC | DESC], ...]

      [LIMIT {[offset,] row_count | row_count OFFSET offset}]

      [PROCEDURE procedure_name(argument_list)]

      [INTO OUTFILE 'file_name' [CHARACTER SET charset_name] [export_options]

         | INTO DUMPFILE 'file_name' | INTO var_name [, var_name] ]

      [[FOR UPDATE | LOCK IN SHARE MODE] [WAIT n | NOWAIT] ] ] 

export_options:

    [{FIELDS | COLUMNS}

        [TERMINATED BY 'string']

        [[OPTIONALLY] ENCLOSED BY 'char']

        [ESCAPED BY 'char']

    ]

    [LINES

        [STARTING BY 'string']

        [TERMINATED BY 'string']

    ]

Những từ khóa liên quan tới SELECT bao gồm:

  • SELECT dùng để bắt đầu bằng câu lệnh SELECT, tiếp sau là các thuộc tính trong bảng bạn muốn trả về.
  • FROM dùng để chỉ định dữ liệu sẽ được lấy ra từ những bảng nào, và các bảng đó quan hệ với nhau như thế nào.
  • WHERE điều kiện để liên kết các bảng hoặc điều kiện để lấy những thuộc tính từ bảng from.
  • GROUP BY giúp nhóm các hàng với nhau khi chúng có các cột hoặc các giá trị được tính chung.
  • HAVING dùng để xác định những bản ghi nào, là kết quả từ từ khóa GROUP BY, sẽ được lấy ra.
  • ORDER BY dùng để xác định dữ liệu lấy ra sẽ được sắp xếp theo kiểu ASC (tăng dần) hoặc DESC (giảm dần).
  • LIMIT cho phép trả về kết quả với số hàng nhất định.
  • DISTINCT nếu như bạn muốn dữ liệu kết quả trả về là duy nhất không bị trùng nhau.
  • INTO gán kết quả vào một tệp hoặc biến.

Hoặc cú pháp lệnh SELECT trong MariaDB có thể được viết ngắn gọn lại như sau:

1

2

3

4

5

SELECT field1, field2, field3, ... fieldn

FROM table_name

WHERE condition

ORDER BY field_name ASC | DESC

LIMIT number

- Ví dụ:

Bảng "T" Câu truy vấn Kết quả
C1 C2
1 a
2 b
SELECT * FROM T;
C1 C2
1 a
2 b
C1 C2
1 a
2 b
SELECT C1 FROM T;
C1
1
2
C1 C2
1 a
2 b
SELECT * FROM T WHERE C1 = 1;
C1 C2
1 a

Cho một bảng T, câu truy vấn SELECT * FROM T; sẽ trả về kết quả là tất cả các phần tử của tất cả các bản ghi trong bảng T.

Với cùng bảng đó, câu truy vấn SELECT C1 FROM T; sẽ trả về tất cả các phần tử của trường (cột) C1 của tất cả các bản ghi trong bảng T— Theo thuật ngữ Đại số quan hệ, một projection đã được thực hiện.

Cũng bản đó, câu truy vấn SELECT * FROM T WHERE C1 = 1; sẽ trả về kết quả là tất cả các phần tử của tất cả các bản ghi có giá trị của trường (cột) C1 bằng '1' — Theo thuật ngữ Đại số quan hệ, một selection được thực hiện vì đã có từ khóa WHERE.


  • Select với Distinct

– DISTINCT giúp trả về kết quả là duy nhất không bị trùng nhau, chẳng hạn trong bảng học sinh thì trường địa chỉ có thể là trùng nhau, bây giờ mình muốn lấy danh sách tất cả địa chỉ trong bảng học sinh, cú pháp như sau:

1 SELECT DISTINCT(dia_chi) FROM hoc_sinh hs

– Kết quả sau khi chạy đoạn mã trên:

  • Select với Order by, Limit

– ORDER BY giúp sắp xếp dữ liệu sau khi truy vấn theo kiểu ASC (tăng dần) hoặc DESC (giảm dần). Bây giờ mình sử dụng lệnh SELECT lấy danh sách từ bảng học sinh và muốn sắp xếp theo ngày sinh giảm dần, cú pháp như sau:

1 SELECT * FROM hoc_sinh ORDER BY ngay_sinh DESC

– Kết quả sau khi chạy đoạn mã trên:

– LIMIT cho phép trả về kết quả với số hàng nhất định. Bây giờ mình sử dụng lệnh SELECT lấy danh sách từ bảng học sinh và muốn lấy 3 học sinh tuổi nhỏ nhất, cú pháp như sau:

1 SELECT * FROM hoc_sinh ORDER BY ngay_sinh DESC LIMIT 3

– Kết quả sau khi chạy đoạn mã trên:

  • Select với Group by

– GROUP BY giúp nhóm các hàng với nhau khi chúng có các cột hoặc các giá trị được tính chung. Bây giờ mình sẽ làm ví dụ sử dụng lệnh GROUP BY bằng cách tính tổng số học sinh dựa theo địa chỉ.

1

2

SELECT COUNT(dia_chi) AS tong_so_hoc_sinh, dia_chi

FROM hoc_sinh GROUP BY dia_chi

– Kết quả sau khi chạy đoạn mã trên:

2.Insert

  • Câu lệnh insert có cấu trúc như sau:
1

2

3

4

5

6

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]

[INTO] tbl_name [PARTITION (partition_list)] [(col,...)]

{VALUES | VALUE} ({expr | DEFAULT},...),(...),...

[ ON DUPLICATE KEY UPDATE

   col=expr

     [, col=expr] ... ]

  • Hoặc có thể viết ngắn gọn lệnh INSERT trong MariaDB, cú pháp như sau:
1

2

INSERT INTO table_name (column1, column2, column3, ...)

VALUES (value1, value2, value3, ...);

  • Số lượng cột và số lượng giá trị trong câu lệnh phải bằng nhau. Nếu tên cột không được chỉ ra trong câu truy vấn, thì giá trị mặc định cho cột được sử dụng. Các giá trị (được xác định cụ thể hay ngầm định) trong câu lệnh INSERT phải thỏa các ràng buộc của bảng dữ liệu (như giá trị từ khóa chính, ràng buộc CHECK, và ràng buộc không rỗng (NOT NULL). Nếu có lỗi xuất hiện do xung đột với hằng số thì sẽ không có hàng nào được thêm vào

Ví dụ:

INSERT INTO sdt (ten, so) VALUES ('Nguyen Van An', '555-1212');

  • Khi tất cả giá trị của các cột được chỉ ra thì ta có thể dùng cách viết thu gọn. Chú ý: các dữ liệu nằm trong ngoặc đơn sau VALUES phải theo đúng trình tự các cột được định nghĩa hay thiết kế trong bảng dữ liệu.
INSERT INTO table VALUES (value1, [value2,...])

– Ví dụ lệnh INSERT trong MariaDB:

1

2

3

4

5

INSERT INTO `hoc_sinh` VALUES ('170001', 'Nguyễn Văn A', '2004-10-07', 'Quận 7', true);

INSERT INTO `hoc_sinh` VALUES ('170002', 'Nguyễn Văn B', '2004-10-08', 'Quận 2', true);

INSERT INTO `hoc_sinh` VALUES ('170003', 'Nguyễn Văn C', '2004-10-04', 'Quận Thủ Đức', true);

INSERT INTO `hoc_sinh` VALUES ('170004', 'Nguyễn Văn D', '2004-10-10', 'Quận Thủ Đức', false);

INSERT INTO `hoc_sinh` VALUES ('170005', 'Nguyễn Văn E', '2004-10-12', 'Quận Thủ Đức', false);

Kết quả sau khi chạy đoạn mã trên:


3.Delete

  • Câu lệnh MariaDB DELETE xóa một hoặc nhiều hàng trong bảng dữ liệu. Nếu thực hiện câu lệnh DELETE với 1 điều kiện nào đó thì một số hàng thỏa điều kiện sẽ bị xóa đi, ngược lại tất cả các hàng sẽ bị xóa hết.
  • Cú pháp Lệnh DELETE trong MariaDB:
1

2

3

4

5

6

7

8

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]

  FROM tbl_name

    [PARTITION (partition_list)]

    [WHERE where_condition]

    [ORDER BY ...]

    [LIMIT row_count]

    [RETURNING select_expr

      [, select_expr ...]]

  • Hoặc có thể viết ngắn gọn lệnh DELETE trong MariaDB, cú pháp như sau:
1

2

DELETE FROM table_name

WHERE condition;

  • Ví dụ lệnh DELETE trong MariaDB:
DELETE FROM hoc_sinh WHERE gioi_tinh = FALSE

Kết quả sau khi chạy đoạn mã trên:

4.Update

  • Câu lệnh MariaDB UPDATE thay đổi hay cập nhật dữ liệu của một hay nhiều hàng trong bảng dữ liệu. Tùy theo điều kiện mà một số hàng hay tất cả các hàng trong bảng sẽ bị thay đổi.
  • Câu lệnh UPDATE có cấu trúc như sau:
UPDATE table_name SET column_name = value [, column_name = value...] [WHERE condition]
  • Để thực thi câu lệnh UPDATE, người dùng phải có quyền sửa chữa dữ liệu (data manipulation privileges) (quyền UPDATE) trên bảng hay cột, các dữ liệu được cập nhật phải thỏa các ràng buộc (như từ khóa chính, chỉ số duy nhất (unique indexes), ràng buộc CHECK, và ràng buộc không rỗng NOT NULL).
  • Cú pháp lệnh UPDATE trong MariaDB:
1

2

3

4

5

6

UPDATE [LOW_PRIORITY] [IGNORE] table_reference

  [PARTITION (partition_list)]

  SET col1={expr1|DEFAULT} [,col2={expr2|DEFAULT}] ...

  [WHERE where_condition]

  [ORDER BY ...]

  [LIMIT row_count]

  • Hoặc có thể viết ngắn gọn lệnh UPDATE trong MariaDB, cú pháp như sau:
1

2

3

UPDATE table_name

SET column1 = value1, column2 = value2, ...

WHERE condition;

  • Ví dụ lệnh UPDATE trong MariaDB:
UPDATE hoc_sinh SET ho_va_ten = 'Nguyễn Văn Nam', ngay_sinh = '2004-10-10',

 dia_chi = 'Quận 10', gioi_tinh = TRUE WHERE ma_hoc_sinh = 170001

Kết quả sau khi chạy đoạn mã trên:

5.Replace

Lệnh REPLACE trong MariaDB được dùng để thay đổi dữ liệu trong bảng.

  • Cú pháp lệnh REPLACE trong MariaDB:
1

2

3

REPLACE [LOW_PRIORITY | DELAYED]

[INTO] tbl_name [PARTITION (partition_list)] [(col,...)]

{VALUES | VALUE} ({expr | DEFAULT},...),(...),...

  • Ví dụ lệnh REPLACE trong MariaDB:
1

2

UPDATE hoc_sinh hs

SET hs.dia_chi = REPLACE (hs.dia_chi, 'Quận Thủ Đức', 'TPHCM')

  • Kết quả sau khi chạy đoạn mã trên:

6.Truncate

Lệnh TRUNCATE trong MariaDB được dùng để làm trống (xóa) tất cả dữ liệu trong bảng.

  • Cú pháp lệnh TRUNCATE trong MariaDB:
1

2

TRUNCATE [TABLE] tbl_name

  [WAIT n | NOWAIT]

  • Ví dụ lệnh TRUNCATE trong MariaDB:
TRUNCATE hoc_sinh
  • Kết quả sau khi chạy đoạn mã trên:

7.Join

7.1. Lệnh INNER JOIN trong MariaDB

  • Lệnh INNER JOIN trong MariaDB được dùng để trả về kết quả là tập hợp dữ liệu từ các bảng lại với nhau trong đó giá trị đều có ở cả các bảng, hay trong toán học đây được gọi là phép giao.
  • Cú pháp lệnh INNER JOIN trong MariaDB:
1

2

3

4

SELECT field1, field2,... fieldn

FROM table1

INNER JOIN table2 ON table1.column_name = table2.column_name

WHERE condition

– Ví dụ lệnh INNER JOIN trong MariaDB:

1

2

3

SELECT * FROM hoc_sinh hs

INNER JOIN lop_hoc lh ON lh.ma_lop_hoc = hs.ma_lop_hoc

WHERE lh.ten_lop_hoc = '10 A1'

– Kết quả sau khi chạy đoạn mã trên:

  • Lệnh INNER JOIN trong MariaDB cũng có thể thực hiện nhiều hơn hai bảng, cũng ví dụ trên mình thêm một bảng mới là bảng nam_hoc và thực hiện truy vấn lấy danh sách học sinh như sau:
1

2

3

4

SELECT * FROM hoc_sinh hs

INNER JOIN lop_hoc lh ON lh.ma_lop_hoc = hs.ma_lop_hoc

INNER JOIN nam_hoc nh ON nh.ma_nam_hoc = lh.ma_nam_hoc

WHERE lh.ten_lop_hoc = '10 A1'

– Như vậy lệnh INNER JOIN trong MariaDB trả về tất cả các bản ghi thỏa mãn điều kiện trong cả hai bảng phải có phần chung.

7.2. Lệnh LEFT JOIN trong MariaDB

  • Lệnh LEFT JOIN trong MariaDB sẽ so sánh mỗi hàng trong bảng 1 và mỗi hàng trong bảng 2, khi điều kiện được thỏa mãn thì giá trị dòng sẽ kết hợp lại với nhau thành một hàng kết quả, sẽ giữ lại tất các giá trị bảng bên trái và điền giá trị NULL vào phần trống.
  • Cú pháp lệnh LEFT JOIN trong MariaDB:
1

2

3

4

SELECT field1, field2,... fieldn

FROM table1

LEFT JOIN table2 ON table1.column_name = table2.column_name

WHERE condition

– Ví dụ lệnh LEFT JOIN trong MariaDB:

1

2

SELECT * FROM lop_hoc lh

LEFT JOIN hoc_sinh hs ON lh.ma_lop_hoc = hs.ma_lop_hoc

– Kết quả sau khi chạy đoạn mã trên:

– Như vậy lệnh LEFT JOIN trong MariaDB trả về tất cả các bản ghi từ bảng bên trái ngay cả khi không có kết quả phù hợp trong bảng bên phải.

7.3. Lệnh RIGHT JOIN trong MariaDB

  • Lệnh RIGHT JOIN trong MariaDB sẽ so sánh mỗi hàng trong bảng 1 và mỗi hàng trong bảng 2, khi thỏa mãn điều kiện thì giá trị dòng sẽ kết hợp lại với nhau thành một hàng kết quả, lúc này sẽ giữ lại tất các giá trị bảng bên phải và điền giá trị NULL vào phần trống
  • Cú pháp lệnh RIGHT JOIN trong MariaDB:
1

2

3

4

SELECT field1, field2,... fieldn

FROM table1

RIGHT JOIN table2 ON table1.column_name = table2.column_name

WHERE condition

– Ví dụ lệnh RIGHT JOIN trong MariaDB:

1

2

SELECT * FROM hoc_sinh hs

RIGHT JOIN lop_hoc lh ON lh.ma_lop_hoc = hs.ma_lop_hoc

– Kết quả sau khi chạy đoạn mã trên:

– Như vậy lệnh RIGHT JOIN trong MariaDB trả về tất cả các bản ghi từ bảng bên phải ngay cả khi không có kết quả phù hợp trong bảng bên trái.

8.Procedures

  • Procedures trong MariaDB (Stored Procedure) là một thủ tục được gọi ra bằng cách sử dụng câu lệnh CALL nhằm tăng hiệu xuất xử lý dữ liệu, nâng cao tính bảo mật.
  • Procedures trong MariaDB có thể có các tham số đầu vào, các tham số đầu ra hoặc có cùng lúc các tham số đầu vào và đầu ra.
  • Ví dụ sau đây trình bày cú pháp cơ bản Procedures trong MariaDB:
1

2

3

4

5

6

7

8

9

10

11

12

13

-- ----------------------------

-- Procedure structure for pr_hocsinh_getall

-- ----------------------------

DROP PROCEDURE IF EXISTS `pr_hocsinh_getall`;

DELIMITER ;;

CREATE DEFINER=`root`@`%` PROCEDURE `pr_hocsinh_getall`()

BEGIN

SELECT * FROM hoc_sinh; 

END

;;

DELIMITER ;

+ Procedures được đặt tên là pr_hocsinh_getall.

+ Thủ tục có thể là một hàm thêm dữ liệu, sửa dữ liệu, xóa dữ liệu hay là một câu truy vấn chẳng hạn.

  • Ví dụ:

Ví dụ về sử dụng Procedures trong MariaDB, ta có một bảng học sinh như sau:

Bây giờ ta sẽ viết câu lệnh Procedures lấy danh sách học sinh dựa theo điều kiện mã lớp học.

1

2

3

4

5

6

7

8

9

10

11

12

13

-- ----------------------------

-- Procedure structure for pr_hocsinh_getall

-- ----------------------------

DROP PROCEDURE IF EXISTS `pr_hocsinh_getall`;

DELIMITER ;;

CREATE DEFINER=`root`@`%` PROCEDURE `pr_hocsinh_getall`(in mlh int(11))

BEGIN

SELECT * FROM hoc_sinh WHERE ma_lop_hoc = mlh; 

END

;;

DELIMITER ;

Kết quả sau khi chạy đoạn mã chương trình trên:

Xem thêm[sửa | sửa mã nguồn]

So sánh các hệ thống quản lý cơ sở dữ liệu quan hệ.

Tham khảo[sửa | sửa mã nguồn]

  1.  "MariaDB 10.0.20 Stable". Retrieved 18 June 2015 
  2. "Dead database walking: MySQL's creator on why the future belongs to MariaDB - MariaDB, open source, mysql, Oracle". Computerworld. Retrieved 2013-09-11.
  3. "Contributing Code". MariaDB KnowledgeBase. Retrieved 17 September 2014.
  4. "MariaDB versus MySQL - Compatibility". MariaDB KnowledgeBase. Retrieved 17 September 2014.
  5. "Why is the project called MariaDB?". MariaDB KnowledgeBase. Retrieved 17 September 2014

MariaDB (thảo luận) 14:24, ngày 16 tháng 11 năm 2017 (UTC) CTUET_STUDENT_GROUP4

  1. ^ “MariaDB 10.0.20 Stable”. Truy cập ngày 18 tháng 6 năm 2015.
  2. ^ “MariaDB licenses”.
  3. ^ “MariaDB 5.1.38 Release Notes”. Truy cập ngày 21 tháng 9 năm 2015.
  4. ^ “MariaDB 5.1.67 Release Notes”. Truy cập ngày 21 tháng 9 năm 2015.
  5. ^ “MariaDB 5.2.0 Release Notes”. Truy cập ngày 21 tháng 9 năm 2015.
  6. ^ “MariaDB 5.2.14 Release Notes”. Truy cập ngày 21 tháng 9 năm 2015.
  7. ^ “MariaDB 5.3.0 Release Notes”. Truy cập ngày 21 tháng 9 năm 2015.
  8. ^ “MariaDB 5.3.12 Release Notes”. Truy cập ngày 21 tháng 9 năm 2015.
  9. ^ “MariaDB 5.5.20 Release Notes”. Truy cập ngày 21 tháng 9 năm 2015.
  10. ^ “MariaDB 5.5.58 Release Notes”. Truy cập ngày 18 tháng 10 năm 2017.
  11. ^ “MariaDB 10.0.0 Release Notes”. Truy cập ngày 21 tháng 9 năm 2015.
  12. ^ “MariaDB 10.0.33 Release Notes”. Truy cập ngày 1 tháng 11 năm 2017.
  13. ^ “MariaDB 10.1.0 Release Notes”. Truy cập ngày 21 tháng 9 năm 2015.
  14. ^ “MariaDB 10.1.28 Release Notes”. mariadb.com. 28 tháng 9 năm 2017. Truy cập ngày 28 tháng 9 năm 2017.
  15. ^ “MariaDB 10.2.0 Release Notes”. Truy cập ngày 28 tháng 9 năm 2016.
  16. ^ “MariaDB 10.2.10 Release Notes”. Truy cập ngày 1 tháng 11 năm 2017.
  17. ^ “MariaDB 10.3.0 Release Notes”. Truy cập ngày 23 tháng 4 năm 2017.
  18. ^ “MariaDB 10.3.2 Release Notes”. Truy cập ngày 9 tháng 10 năm 2017.