MariaDB Hướng dẫn: Tìm hiểu Cú pháp, Lệnh có ví dụ
Là gì MariaDB?
MariaDB là một nhánh của MySQL hệ thống quản lý cơ sở dữ liệu. Nó được tạo ra bởi các nhà phát triển ban đầu của nó. Công cụ DBMS này cung cấp khả năng xử lý dữ liệu cho cả nhiệm vụ doanh nghiệp nhỏ và nhỏ.
MariaDB là một phiên bản cải tiến của MySQL. Nó đi kèm với nhiều tính năng mạnh mẽ sẵn có và nhiều cải tiến về khả năng sử dụng, bảo mật và hiệu suất mà bạn không thể tìm thấy ở MySQL.
Đây là các tính năng của MariaDB:
- Nó hoạt động theo giấy phép GPL, BSD hoặc LGPL.
- MariaDB hỗ trợ một ngôn ngữ truy vấn phổ biến và tiêu chuẩn.
- Nó đi kèm với nhiều công cụ lưu trữ, bao gồm cả những công cụ hiệu suất cao có thể được tích hợp với các hệ thống quản lý cơ sở dữ liệu quan hệ khác.
- Nó cung cấp công nghệ cụm Galera.
- MariaDB hỗ trợ PHP, một ngôn ngữ phổ biến để phát triển web.
- MariaDB có thể chạy trên các hệ điều hành khác nhau và hỗ trợ nhiều ngôn ngữ lập trình.
- MariaDB đi kèm với các lệnh bổ sung không có sẵn trong MySQL. MySQL có các tính năng có tác động tiêu cực đến hiệu suất của DBMS. Những tính năng như vậy đã được thay thế trong MariaDB.
MariaDB vs. MySQL
Dưới đây là một số khác biệt chính giữa MariaDB vs MySQL
Tham số | MariaDB | MySQL |
---|---|---|
Nhiều lựa chọn hơn cho công cụ lưu trữ | MariaDB có 12 công cụ lưu trữ mới mà bạn sẽ không tìm thấy ở MySQL. | Nó có ít tùy chọn lưu trữ hơn so với MariaDB. |
Cải tiến tốc độ | MariaDB cho thấy tốc độ được cải thiện khi so sánh với MySQL. Nó đi kèm với nhiều tính năng để tối ưu hóa tốc độ. Các tính năng như vậy bao gồm các khung nhìn/bảng dẫn xuất, truy vấn con, kiểm soát thực thi, truy cập đĩa và kiểm soát trình tối ưu hóa. | MySQL thể hiện tốc độ chậm hơn khi so sánh với MariaDB. Nó chỉ dựa vào một số tính năng để tối ưu hóa tốc độ, chẳng hạn như chỉ mục băm. |
Bộ đệm/chỉ mục nhanh hơn | Với công cụ lưu trữ bộ nhớ của MariaDB, một câu lệnh INSERT có thể được hoàn thành 24% so với tiêu chuẩn MySQL. | Công cụ lưu trữ bộ nhớ của MySQL chậm hơn so với cái đó MariaDB. |
Nhóm kết nối lớn hơn và nhanh hơn | MariaDB đi kèm với nhóm luồng nâng cao có khả năng chạy nhanh hơn và hỗ trợ hơn 200,000 kết nối. | Nhóm chủ đề được cung cấp bởi MySQL không thể hỗ trợ tới 200,000 kết nối mỗi lần. |
Sao chép cải tiến | In MariaDB, việc sao chép có thể được thực hiện an toàn hơn và nhanh hơn. Cập nhật cũng có thể được thực hiện nhanh hơn gấp 2 lần so với truyền thống MySQL. | MySQLPhiên bản cộng đồng cho phép kết nối một số lượng luồng tĩnh. MySQLkế hoạch doanh nghiệp của đi kèm với khả năng xử lý luồng. |
Tính năng/Tiện ích mở rộng mới | MariaDB đi kèm với các tính năng và tiện ích mở rộng mới bao gồm các câu lệnh JSON, WITH và KILL. | Mới MariaDB các tính năng không được cung cấp trong MySQL. |
Tính năng thiếu | MariaDB thiếu một số tính năng được cung cấp bởi MySQL Phiên bản doanh nghiệp. Để giải quyết vấn đề này, nó cung cấp các plugin nguồn mở thay thế. Kể từ đây, MariaDB người dùng có thể tận hưởng các chức năng tương tự như MySQL Người dùng phiên bản doanh nghiệp. | Phiên bản doanh nghiệp của MySQL sử dụng mã độc quyền. Chỉ người dùng của MySQL Phiên bản doanh nghiệp có quyền truy cập vào điều này. |
Làm thế nào để cài đặt MariaDB
Cài đặt dưới dạng ứng dụng độc lập
Để sử dụng MariaDB, bạn phải cài đặt nó trên máy tính của bạn.
Việc cài đặt có thể được thực hiện theo các bước dưới đây:
Bước 1) Mở URL bên dưới
Tải file cài đặt từ Link https://downloads.mariadb.org/
Bước 2) Double bấm vào tập tin để bắt đầu cài đặt
Sau khi tải xuống hoàn tất, hãy mở tệp
Bước 3) Nhấp vào nút Tiếp theo
Trên cửa sổ bật lên, nhấp vào nút Tiếp theo:
Bước 4) Chấp nhận thỏa thuận cấp phép
Sau đó nhấp vào nút Tiếp theo:
Bước 5) Chọn MariaDB của chúng tôi
Chọn các tính năng sẽ được cài đặt và nhấp vào Tiếp theo
Bước 6) Nhập mật khẩu
Trong cửa sổ tiếp theo, bạn sẽ được yêu cầu thay đổi mật khẩu cho người dùng root.
- Nhập mật khẩu và xác nhận bằng cách nhập lại cùng một mật khẩu. Nếu bạn muốn cho phép truy cập từ các máy từ xa, hãy kích hoạt hộp kiểm cần thiết.
- Sau khi hoàn tất, hãy nhấp vào nút Tiếp theo.
Bước 7) Nhập Tên & Chọn số cổng
Trong cửa sổ tiếp theo, nhập tên cho phiên bản, chọn số cổng và đặt kích thước cần thiết. Nhấp vào nút Tiếp theo:
Bước 8) Nhấp vào Tiếp theo
Trong cửa sổ tiếp theo, chỉ cần nhấp vào nút Tiếp theo.
Bước 9) Nhấp vào Cài đặt
Khởi chạy cài đặt bằng cách nhấp vào nút Cài đặt.
Bước 10) Thanh tiến trình được hiển thị
Thanh tiến trình hiển thị tiến trình cài đặt sẽ được hiển thị:
Bước 11) Bấm vào nút Kết thúc
Sau khi cài đặt hoàn tất, bạn sẽ thấy nút Kết thúc. Nhấn nút để đóng cửa sổ:
Bước 12) Xin chúc mừng!
Bây giờ bạn có MariaDB được cài đặt trên máy tính của bạn.
Làm việc với Dấu nhắc Lệnh
Bây giờ bạn có MariaDB được cài đặt trên máy tính của bạn, đã đến lúc bạn khởi chạy nó và bắt đầu sử dụng nó. Điều này có thể được thực hiện thông qua MariaDB dấu nhắc lệnh.
Thực hiện theo các bước được đưa ra dưới đây:
Bước 1) Bấm Bắt đầu, chọn Tất cả chương trình rồi bấm MariaDB...
Bước 2) Chọn một MariaDB Command Prompt.
Bước 3) Sản phẩm MariaDB dấu nhắc lệnh sẽ được bắt đầu. Bây giờ là lúc để đăng nhập. Bạn nên đăng nhập với tư cách người dùng root và mật khẩu bạn đã đặt trong quá trình cài đặt MariaDB. Nhập lệnh sau vào dấu nhắc lệnh:
MySQL -u root -p
Bước 4) Nhập mật khẩu và nhấn phím quay lại. Bạn nên đăng nhập, như hình dưới đây:
Bây giờ bạn đã đăng nhập vào MariaDB.
Loại dữ liệu
MariaDB hỗ trợ các kiểu dữ liệu sau:
- Kiểu dữ liệu chuỗi
- Kiểu dữ liệu số
- Kiểu dữ liệu ngày/giờ
- Các kiểu dữ liệu đối tượng lớn
Kiểu dữ liệu chuỗi
Chúng bao gồm những điều sau:
Kiểu dữ liệu chuỗi | Mô tả |
---|---|
ký tự (kích thước) | Kích thước biểu thị số lượng ký tự được lưu trữ. Nó lưu trữ tối đa 255 ký tự. Chuỗi có độ dài cố định. |
varchar (kích thước) | Kích thước biểu thị số lượng ký tự được lưu trữ. Nó lưu trữ tối đa 255 ký tự. Chuỗi có độ dài thay đổi. |
cỡ chữ) | Kích thước biểu thị số lượng ký tự được lưu trữ. Nó lưu trữ tối đa 255 ký tự. Chuỗi có độ dài cố định. |
nhị phân (kích thước) | Kích thước biểu thị số lượng ký tự được lưu trữ. Nó lưu trữ tối đa 255 ký tự. Chuỗi có kích thước cố định. |
Kiểu dữ liệu số
Chúng bao gồm những điều sau đây:
Kiểu dữ liệu số | Mô tả |
---|---|
bit | Một giá trị số nguyên rất nhỏ tương đương với tinyint(1). Các giá trị có dấu nằm trong khoảng từ -128 đến 127. Các giá trị không dấu nằm trong khoảng từ 0 đến 255. |
int(m) | Một giá trị số nguyên tiêu chuẩn. Các giá trị có dấu nằm trong khoảng từ -2147483648 đến 2147483647. Các giá trị không dấu nằm trong khoảng từ 0 đến 4294967295. |
phao(m, d) | Một số dấu phẩy động với độ chính xác duy nhất. |
đôi(m,d) | Một số dấu phẩy động có độ chính xác gấp đôi. |
phao(p) | Một số dấu phẩy động. |
Các kiểu dữ liệu ngày/giờ
Chúng bao gồm những điều sau:
Kiểu dữ liệu ngày/giờ | Mô tả |
---|---|
Ngày | Được hiển thị dưới dạng 'yyyy-mm-dd.' Các giá trị nằm trong khoảng từ '1000-01-01' đến '9999-12-31'. |
Ngày giờ | Được hiển thị dưới dạng 'yyyy-mm-dd hh:mm:ss'. Các giá trị nằm trong khoảng '1000-01-01 00:00:00' và '9999-12-31 23:59:59'. |
dấu thời gian(m) | Được hiển thị dưới dạng 'yyyy-mm-dd hh:mm:ss'. Các giá trị nằm trong khoảng '1970-01-01 00:00:01' utc và '2038-01-19 03:14:07' utc. |
Thời gian | Được hiển thị dưới dạng 'hh:mm:ss'. Giá trị nằm trong khoảng '-838:59:59' và '838:59:59'. |
Kiểu dữ liệu đối tượng lớn (LOB)
Chúng bao gồm những điều sau đây:
Kiểu dữ liệu đối tượng lớn | Mô tả |
---|---|
nhỏ xíu | Kích thước tối đa của nó là 255 byte. |
đốm màu (kích thước) | Lấy 65,535 byte làm kích thước tối đa. |
trung bình | Kích thước tối đa của nó là 16,777,215 byte. |
Văn bản dài | Phải mất 4GB là kích thước tối đa. |
Tạo cơ sở dữ liệu và bảng
Để tạo cơ sở dữ liệu mới trong MariaDB, bạn phải có các đặc quyền chỉ được cấp cho người dùng root và quản trị viên.
Để tạo cơ sở dữ liệu mới, bạn nên sử dụng lệnh CREATE DATABASE theo cú pháp sau:
CREATE DATABASE DatabaseName;
Trong trường hợp này, bạn cần tạo cơ sở dữ liệu và đặt tên là Demo.
Bắt đầu MariaDB dấu nhắc lệnh và đăng nhập với tư cách là người dùng root bằng cách nhập lệnh sau:
mysql -u root -p
Nhập mật khẩu gốc và nhấn phím quay lại. Bạn sẽ đăng nhập.
Bây giờ, hãy chạy lệnh sau:
CREATE DATABASE Demo;
Sau đó, bạn đã tạo một cơ sở dữ liệu có tên là Demo. Bạn sẽ cần xác nhận xem cơ sở dữ liệu đã được tạo thành công hay chưa. Bạn chỉ cần hiển thị danh sách các cơ sở dữ liệu khả dụng bằng cách chạy lệnh sau:
SHOW DATABASES;
Kết quả đầu ra trên cho thấy cơ sở dữ liệu Demo là một phần của danh sách, do đó cơ sở dữ liệu đã được tạo thành công.
MariaDB Chọn cơ sở dữ liệu
Để bạn có thể sử dụng hoặc làm việc trên một cơ sở dữ liệu cụ thể, bạn phải chọn nó từ danh sách các cơ sở dữ liệu có sẵn. Sau khi chọn cơ sở dữ liệu, bạn có thể thực hiện các tác vụ như tạo bảng trong cơ sở dữ liệu.
Để chọn cơ sở dữ liệu, bạn nên sử dụng lệnh USE. Nó có cú pháp được đưa ra dưới đây:
USE database_name;
Bạn cần sử dụng cơ sở dữ liệu Demo. Bạn có thể chọn nó bằng cách chạy lệnh sau:
USE Demo;
Hình ảnh trên cho thấy rằng MariaDB dấu nhắc lệnh đã thay đổi từ không thành tên của cơ sở dữ liệu đã được chọn.
Bây giờ bạn có thể tiếp tục và tạo bảng trong cơ sở dữ liệu Demo.
MariaDB - Tạo bảng
Để có thể tạo bảng, bạn phải chọn cơ sở dữ liệu. Bảng có thể được tạo bằng câu lệnh CREATE TABLE. Đây là cú pháp của lệnh:
CREATE TABLE tableName (columnName columnType);
Bạn có thể đặt một trong các cột làm khóa chính. Cột này không được phép có giá trị null.
Chúng ta sẽ tạo hai bảng trong cơ sở dữ liệu Demo, bảng Sách và bảng Giá. Mỗi bảng sẽ có hai cột.
Chúng ta hãy bắt đầu bằng cách tạo bảng Book với hai cột, id và name. Chạy lệnh sau:
CREATE TABLE Book( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY (id));
Ràng buộc PRIMARY KEY đã được sử dụng để đặt cột id làm khóa chính cho bảng. Thuộc tính AUTO_INCREMENT sẽ tự động tăng giá trị của cột id lên 1 cho mỗi bản ghi mới được chèn vào bảng. Tất cả các cột sẽ không cho phép giá trị null.
Bây giờ, tạo bảng thứ hai, bảng Giá:
CREATE TABLE Price( id INT NOT NULL AUTO_INCREMENT, price float NOT NULL, PRIMARY KEY (id));
Cột id đã được đặt làm khóa chính cho bảng.
Hiển thị bảng
Bây giờ bạn đã tạo hai bảng, bạn nên xác nhận xem các bảng đã được tạo thành công hay chưa. Bạn có thể hiển thị danh sách các bảng có trong cơ sở dữ liệu bằng cách chạy lệnh sau:
SHOW TABLES;
Ảnh chụp màn hình ở trên cho thấy hai bảng đã được tạo thành công trong cơ sở dữ liệu Demo.
Hiển thị cấu trúc bảng
Để xem cấu trúc của bất kỳ bảng cụ thể nào, bạn có thể sử dụng lệnh DESCRIBE, thường được viết tắt là DESC. Lệnh này có cú pháp sau:
DESC TableName;
Ví dụ, để xem cấu trúc của bảng có tên Book, bạn có thể chạy lệnh sau;
DESC Book;
Bảng có hai cột. Để xem cấu trúc của bảng Price, bạn có thể chạy lệnh sau:
DESC Price;
CRUD và các khoản
CHÈN
Để chèn dữ liệu vào một MariaDB bảng, bạn nên sử dụng câu lệnh INSERT INTO. Lệnh này có cú pháp được đưa ra dưới đây:
INSERT INTO tableName (column_1, column_2, ... ) VALUES (value1, value2, ... ), (value1, value2, ... ), ...;
Cú pháp trên cho thấy bạn phải xác định các cột trong bảng mà bạn muốn chèn dữ liệu vào cũng như dữ liệu bạn cần chèn.
Chúng ta chèn một bản ghi vào bảng Book:
INSERT INTO book (id, name) VALUES(1, 'MariaDB Book');
Bạn đã chèn một bản ghi vào bảng. Chèn một bản ghi vào bảng Price:
INSERT INTO price (id, price) VALUES(1, 200);
Bản ghi đã được tạo.
CHỌN
Câu lệnh SELECT giúp chúng ta xem hoặc thấy nội dung của bảng cơ sở dữ liệu. Ví dụ, để xem nội dung của bảng Book, bạn cần chạy lệnh sau:
SELECT * from book;
Bây giờ, hãy xem nội dung của bảng Giá:
SELECT * from price;
Chèn nhiều bản ghi
Chúng ta có thể chèn nhiều bản ghi vào một MariaDB bảng ngay lập tức. Để chứng minh điều này, hãy chạy ví dụ sau:
INSERT INTO book (id, name) VALUES (2,'MariaDB Book2'), (3,'MariaDB Book3'), (4,'MariaDB Book4'), (5,'MariaDB Book5');
Bạn có thể truy vấn bảng để kiểm tra xem các bản ghi đã được chèn thành công hay chưa:
SELECT * FROM book;
Các bản ghi đã được chèn thành công. Chèn nhiều bản ghi vào bảng Giá bằng cách chạy ví dụ này:
INSERT INTO price (id, price) VALUES (2, 250), (3, 220), (4, 190), (5, 300);
Hãy xác nhận xem các bản ghi đã được tạo thành công hay chưa:
SELECT * FROM price;
CẬP NHẬT
Lệnh UPDATE giúp chúng ta thay đổi hoặc sửa đổi các bản ghi đã được chèn vào bảng. Bạn có thể kết hợp nó với mệnh đề WHERE để chỉ định bản ghi cần cập nhật. Đây là cú pháp:
UPDATE tableName SET field=newValue, field2=newValue2,... [WHERE ...]
Lệnh UPDATE cũng có thể được kết hợp với các mệnh đề như SET, WHERE, LIMIT và ORDER BY. Bạn sẽ thấy điều này ngay sau đây:
Hãy xem xét bảng có tên Giá với các bản ghi sau:
Hãy thay đổi giá của cuốn sách có id là 1 từ 200 thành 250:
UPDATE price SET price = 250 WHERE id = 1;
Lệnh chạy thành công. Bây giờ bạn có thể truy vấn bảng để xem liệu thay đổi có diễn ra hay không:
Ảnh chụp màn hình ở trên cho thấy thay đổi đã được thực hiện. Hãy xem xét bảng Book với các bản ghi sau:
Chúng ta hãy đổi tên cuốn sách có tên Sách thành MariaDB Cuốn sách 1. Lưu ý rằng cuốn sách có id là 1. Đây là lệnh cho việc này:
UPDATE book SET name = “MariaDB Book1” WHERE id = 1;
Kiểm tra xem thay đổi đã được thực hiện chưa:
Ảnh chụp màn hình ở trên cho thấy thay đổi đã được thực hiện thành công.
Trong các ví dụ trên, chúng tôi chỉ thay đổi một cột mỗi lần. Tuy nhiên, chúng ta có thể thay đổi nhiều cột cùng một lúc. Hãy để chúng tôi chứng minh điều này bằng cách sử dụng một ví dụ.
Chúng ta hãy sử dụng bảng Giá với dữ liệu sau:
Hãy thay đổi cả id và giá của cuốn sách thành id là 5. Chúng ta sẽ thay đổi id thành 6 và giá thành 6. Chạy lệnh sau:
UPDATE price SET id = 6, price = 280 WHERE id = 5;
Bây giờ, hãy truy vấn bảng để kiểm tra xem thay đổi có được thực hiện thành công hay không:
Thay đổi đã được thực hiện thành công.
Xóa bỏ
Chúng ta sử dụng lệnh DELETE khi cần xóa một hoặc nhiều bản ghi khỏi một bảng. Đây là cú pháp của lệnh:
DELETE FROM tableName [WHERE condition(s)] [ORDER BY exp [ ASC | DESC ]] [LIMIT numberRows];
Hãy xem xét bảng Giá với các bản ghi sau:
Chúng ta cần xóa bản ghi cuối cùng khỏi bảng. Nó có id là 6 và giá là 280. Chúng ta hãy xóa bản ghi:
DELETE FROM price WHERE id = 6;
Lệnh chạy thành công. Hãy để chúng tôi truy vấn bảng để xác nhận xem việc xóa có thành công hay không:
Kết quả đầu ra cho thấy bản ghi đã được xóa thành công.
Ở đâu
Mệnh đề WHERE giúp chúng ta chỉ định vị trí chính xác mà chúng ta cần thực hiện thay đổi. Mệnh đề này được sử dụng cùng với các câu lệnh như INSERT, SELECT, UPDATE và DELETE. Hãy xem xét bảng Price với dữ liệu sau:
Giả sử chúng ta cần xem các bản ghi có giá nhỏ hơn 250. Chúng ta có thể chạy lệnh sau:
SELECT * FROM price WHERE price < 250;
Tất cả các bản ghi có giá dưới 250 đã được trả lại.
Mệnh đề WHERE có thể kết hợp với câu lệnh AND. Giả sử chúng ta cần xem tất cả các bản ghi trong bảng Price có giá dưới 250 và id trên 3. Chúng ta có thể chạy lệnh sau:
SELECT * FROM price WHERE id > 3 AND price < 250;
Chỉ có một bản ghi đã được trả lại. Lý do là nó phải đáp ứng tất cả các điều kiện đã được chỉ định, tức là id trên 3 và giá dưới 250. Nếu bất kỳ điều kiện nào trong số này bị vi phạm thì hồ sơ sẽ không được trả lại.
Mệnh đề này cũng có thể được kết hợp với lệnh OR. Chúng ta hãy thay thế AND trong lệnh trước đó bằng OR và xem loại đầu ra mà chúng ta nhận được:
SELECT * FROM price WHERE id > 3 OR price < 250;
Bây giờ chúng tôi nhận được 2 bản ghi thay vì 1. Điều này là do, đối với một bản ghi đủ điều kiện, nó chỉ phải đáp ứng một trong các điều kiện được chỉ định.
Như
Mệnh đề này được sử dụng để chỉ định mẫu dữ liệu khi truy cập dữ liệu bảng trong đó cần phải khớp chính xác. Nó có thể được kết hợp với các câu lệnh INSERT, UPDATE, SELECT và DELETE.
Bạn nên chuyển mẫu dữ liệu bạn đang tìm kiếm vào mệnh đề và nó sẽ trả về đúng hoặc sai. Dưới đây là các ký tự đại diện có thể được sử dụng cùng với mệnh đề:
- %: để khớp 0 hoặc nhiều ký tự.
- _: để khớp với một ký tự đơn.
Đây là cú pháp của mệnh đề THÍCH:
SELECT field_1, field_2,... FROM tableName1, tableName2,... WHERE fieldName LIKE condition;
Chúng ta hãy chứng minh cách sử dụng mệnh đề với ký tự đại diện %. Chúng ta hãy sử dụng bảng Book với các bản ghi sau:
Chúng ta cần xem tất cả các bản ghi có tên bắt đầu bằng M. Chúng ta có thể chạy lệnh sau:
SELECT name FROM book WHERE name LIKE 'M%';
Tất cả các bản ghi đã được trả về vì tên của chúng bắt đầu bằng chữ M. Để xem tất cả các tên kết thúc bằng 4, bạn có thể chạy lệnh sau:
SELECT name FROM book WHERE name LIKE '%4';
Chỉ có một tên được trả về vì đó là tên duy nhất đáp ứng điều kiện.
Chúng ta cũng có thể bao quanh mẫu tìm kiếm bằng ký tự đại diện:
SELECT name FROM book WHERE name LIKE '%DB%';
Ngoài ký tự đại diện %, mệnh đề THÍCH có thể được sử dụng cùng với ký tự đại diện _. Đây là ký tự đại diện gạch dưới và nó sẽ chỉ tìm kiếm một ký tự duy nhất.
Hãy làm việc với bảng Giá có các bản ghi sau:
Chúng ta hãy kiểm tra bản ghi có giá như 1_0. Chúng ta chạy lệnh sau:
SELECT * FROM price WHERE price LIKE '1_0';
Nó đã trả về bản ghi có giá là 190. Chúng ta cũng có thể thử một mẫu khác:
SELECT * FROM price WHERE price LIKE '_2_';
Chúng ta có thể sử dụng mệnh đề THÍCH cùng với toán tử NOT. Điều này sẽ trả về tất cả các bản ghi không đáp ứng mẫu đã chỉ định. Ví dụ:
Chúng ta hãy sử dụng bảng Giá với các bản ghi sau:
Hãy để chúng tôi tìm tất cả các bản ghi trong đó giá không bắt đầu bằng 2:
SELECT * FROM price WHERE price NOT LIKE '2%';
Chỉ có một bản ghi không đáp ứng mẫu đã chỉ định.
Đặt bởi
Mệnh đề này giúp chúng ta sắp xếp các bản ghi theo thứ tự tăng dần hoặc giảm dần. Chúng tôi sử dụng nó với câu lệnh SELECT, như hiển thị bên dưới:
SELECT expression(s) FROM tables [WHERE condition(s)] ORDER BY exp [ ASC | DESC ];
Chúng ta có thể sử dụng mệnh đề này mà không cần thêm phần ASC hoặc DESC. Ví dụ:
Chúng tôi sẽ sử dụng bảng Giá với các bản ghi sau:
Chạy lệnh sau trên bảng:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price;
Trong lệnh trên, chúng ta đã đặt hàng theo giá. Các hồ sơ đã được sắp xếp với giá theo thứ tự tăng dần. Điều đó có nghĩa là khi chúng ta không chỉ định thứ tự, việc sắp xếp sẽ được thực hiện theo thứ tự tăng dần theo mặc định.
Chúng ta hãy chạy mệnh đề với tùy chọn DESC:
SELECT * FROM price WHERE price LIKE '2%' ORDER BY price DESC;
Các bản ghi đã được sắp xếp theo thứ tự giá giảm dần như chúng tôi đã chỉ định.
Chúng ta hãy sử dụng mệnh đề ORDER BY cùng với thuộc tính ASC:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price ASC;
Các hồ sơ đã được đặt hàng nhưng với giá theo thứ tự tăng dần. Điều này tương tự như khi chúng ta sử dụng mệnh đề ORDER BY mà không có thuộc tính ASC hoặc DESC.
DISTINCT
Mệnh đề này giúp chúng ta loại bỏ sự trùng lặp khi chọn các bản ghi từ một bảng. Điều này có nghĩa là nó giúp chúng ta có được những bản ghi duy nhất. Cú pháp của nó được đưa ra dưới đây:
SELECT DISTINCT expression(s) FROM tableName [WHERE condition(s)];
Để chứng minh điều này, chúng tôi sẽ sử dụng bảng Giá với dữ liệu sau:
Khi chúng ta chọn cột giá từ bảng, chúng ta sẽ nhận được kết quả sau:
SELECT price FROM Price;
Chúng tôi có hai bản ghi có giá 250, tạo một bản sao. Chúng ta chỉ cần có những bản ghi duy nhất. Chúng ta có thể lọc những thứ này bằng cách sử dụng mệnh đề DISTINCT như dưới đây:
SELECT DISTINCT price FROM Price;
Bây giờ chúng tôi không có bất kỳ bản sao nào ở đầu ra ở trên.
Từ
Mệnh đề FROM được sử dụng để lấy dữ liệu từ bảng cơ sở dữ liệu. Nó cũng có thể hữu ích khi tham gia các bảng. Đây là cú pháp của lệnh:
SELECT columnNames FROM tableName;
Để xem nội dung của bảng sách, hãy chạy lệnh sau:
SELECT * FROM price;
Mệnh đề này có thể giúp bạn chỉ tìm nạp một cột duy nhất từ bảng cơ sở dữ liệu. Ví dụ:
SELECT price FROM Price;
Nhiệm vụ nâng cao
Thủ tục lưu trữ
Một thủ tục là một MariaDB chương trình mà bạn có thể truyền tham số tới. Một thủ tục không trả về giá trị. Để tạo một thủ tục, chúng ta sử dụng lệnh CREATE PROCEDURE.
Để minh họa cách tạo và gọi một thủ tục, chúng ta sẽ tạo một thủ tục có tên myProcedure() giúp chúng ta chọn cột tên từ bảng sách. Đây là thủ tục:
DELIMITER $ CREATE PROCEDURE myProcedure() BEGIN SELECT name FROM book; END; ;
Thủ tục đã được tạo. Chúng ta chỉ đơn giản đính kèm câu lệnh SELECT trong mệnh đề BEGIN và END của thủ tục.
Bây giờ, chúng ta có thể gọi thủ tục theo tên của nó như dưới đây:
CALL myProcedure();
Thủ tục trả về cột tên của bảng sách khi được gọi.
Chúng ta có thể tạo một thủ tục lấy tham số. Ví dụ, chúng ta cần chọn tên sách và lọc bằng id sách. Chúng ta có thể tạo thủ tục sau cho việc này:
DELIMITER $ CREATE PROCEDURE myProcedure2(book_id int) BEGIN SELECT name FROM book WHERE id = book_id; END; ;
Ở trên, chúng ta đã tạo một thủ tục có tên myProcedure2(). Quy trình này lấy một tham số nguyên có tên book_id, đây là id của cuốn sách mà chúng ta cần xem tên. Để xem tên sách có id là 3, chúng ta có thể gọi thủ tục như sau:
CALL myProcedure2(3);
Chức năng
Không giống như thủ tục, chúng ta phải truyền tham số cho hàm và hàm phải trả về một giá trị. Để tạo một hàm trong MariaDB, chúng ta sử dụng câu lệnh CREATE FUNCTION. Câu lệnh có cú pháp sau:
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;
Các thông số trên được mô tả dưới đây:
Tham số | Mô tả |
---|---|
mệnh đề DEFINER | Tham số này là tùy chọn. Nếu bạn không chỉ định nó, người xác định sẽ trở thành người dùng đã tạo hàm. Nếu cần chỉ định một bộ định nghĩa khác, hãy bao gồm mệnh đề DEFINER trong đó user_name sẽ là bộ định nghĩa của hàm. |
Tên chức năng | Tên được gán cho chức năng này trong MariaDB. |
tham số | (Các) tham số được truyền cho hàm. Trong quá trình tạo hàm, tất cả các tham số được coi là tham số IN (chứ không phải các tham số OUT/INOUT). |
return_datatype | Kiểu dữ liệu của giá trị trả về của hàm. |
NGÔN NGỮ SQL | Nó ảnh hưởng đến tính di động nhưng không ảnh hưởng đến chức năng. |
XÁC ĐỊNH | Hàm sẽ chỉ trả về một kết quả khi được cung cấp một số tham số. |
KHÔNG XÁC ĐỊNH | Hàm có thể trả về một kết quả khác khi được cung cấp một số tham số. |
CHỨA SQL | Thông báo MariaDB rằng hàm này có chứa SQL. Cơ sở dữ liệu sẽ không xác minh xem điều này có đúng hay không. |
KHÔNG CÓ SQL | Điều khoản này không được sử dụng và nó không ảnh hưởng đến chức năng của bạn. |
ĐỌC DỮ LIỆU SQL | Kể MariaDB rằng hàm này sẽ sử dụng câu lệnh SELECT để đọc dữ liệu nhưng sẽ không sửa đổi dữ liệu. |
SỬA ĐỔI DỮ LIỆU SQL | Kể MariaDB rằng hàm này sẽ sử dụng CHÈN, XÓA, CẬP NHẬT và các chức năng khác DDL các câu lệnh để sửa đổi dữ liệu SQL. |
phần khai báo | Đây là nơi các biến cục bộ nên được khai báo. |
phần thực thi | Mã chức năng nên được thêm vào đây. |
Đây là một ví dụ MariaDB chức năng:
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 ;
Khi đó chúng ta có thể gọi hàm trên như sau:
select sumFunc(1000);
Lệnh sẽ trả về kết quả sau:
Khi bạn hoàn thành một hàm, bạn có thể xóa nó. Việc này rất dễ vì bạn chỉ cần gọi câu lệnh DROP FUNCTION có cú pháp sau:
DROP FUNCTION function_name;
Ví dụ, để xóa hàm có tên myFunc, chúng ta có thể chạy lệnh sau:
DROP FUNCTION myFunc;
THAM GIA
Khi bạn cần truy xuất dữ liệu từ nhiều bảng cùng một lúc, hãy sử dụng MariaDB THAM GIA. Điều này có nghĩa là một THAM GIA hoạt động trên hai hoặc nhiều bảng. Ba loại JOINS sau đây được hỗ trợ trong MariaDB:
- THAM GIA BÊN TRONG/ĐƠN GIẢN
- TRÁI NGOÀI THAM GIA/TRÁI THAM GIA
- RIGHT OUTER THAM GIA/RIGHT THAM GIA
Chúng ta hãy thảo luận từng cái một:
INNER JOIN
Phép nối bên trong trả về tất cả các hàng từ các bảng trong đó điều kiện nối là đúng. Cú pháp của nó như sau:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Ví dụ:
Chúng ta sẽ sử dụng hai bảng, sách và sách.
Bảng sách có dữ liệu sau:
Bảng giá có dữ liệu sau:
Mục đích là nối cột tên từ bảng Sách và cột giá từ bảng Giá thành một bảng duy nhất. Điều này có thể thực hiện được bằng phép nối bên trong, như minh họa dưới đây:
SELECT book.name, price.price FROM book INNER JOIN price ON book.id = price.id;
Lệnh trả về kết quả sau:
THAM GIA BÊN NGOÀI TRÁI
Phép nối này trả về tất cả các hàng từ bảng bên trái và chỉ những hàng trong đó điều kiện nối là đúng từ bảng khác. Cú pháp của nó như sau:
SELECT columns FROM table-1 LEFT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
Từ khóa OUTER được đặt trong dấu ngoặc vuông vì nó là tùy chọn.
Ví dụ:
SELECT book.name, price.price FROM book LEFT JOIN price ON book.id = price.id;
Lệnh trả về kết quả sau:
Bản ghi cuối cùng trong bảng trên không có giá trị trùng khớp ở bên trái. Đó là lý do tại sao nó đã được thay thế bằng NULL.
THAM GIA ĐÚNG NGƯỜI RA NGOÀI
Phép nối này trả về tất cả các hàng từ bảng bên phải và chỉ những hàng trong đó điều kiện nối là đúng từ bảng khác. Cú pháp của nó như sau:
SELECT columns FROM table-1 RIGHT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
Từ khóa OUTER được đặt trong dấu ngoặc vuông vì nó là tùy chọn.
Ví dụ:
SELECT book.name, price.price FROM book RIGHT JOIN price ON book.id = price.id;
Lệnh trả về kết quả sau:
Lý do là tất cả các hàng trong bảng bên phải đều khớp với các hàng trong bảng kia. Nếu một số hàng không khớp, chúng ta sẽ có NULL ở cột đầu tiên.