MySQL - Literals

Xin chào các bạn tương lai của các nhà thuật toán cơ sở dữ liệu! Hôm nay, chúng ta sẽ bắt đầu một hành trình đầy thú vị vào thế giới của các literal trong MySQL. Đừng lo lắng nếu bạn mới bắt đầu học lập trình; tôi sẽ là người bạn thân thiện của bạn, giải thích mọi thứ từng bước một. Vậy, hãy lấy một tách cà phê, và chúng ta cùng bắt đầu!

MySQL - Literals

What are Literals? (Những gì là Literal?)

Trước khi bắt đầu, hãy hiểu Literal là gì. Trong lập trình, literal là những giá trị cố định mà bạn có thể sử dụng trực tiếp trong mã của mình. Chúng giống như những khối xây dựng của các truy vấn cơ sở dữ liệu. Hãy tưởng tượng chúng như những nguyên liệu bạn sử dụng khi nấu ăn - chúng là những vật liệu thô tạo nên món ăn (hoặc trong trường hợp của chúng ta, là truy vấn) của bạn sống động.

Numeric Literals (Literal Số học)

Hãy bắt đầu với điều quen thuộc - số! Trong MySQL, bạn có thể sử dụng nhiều loại literal số học khác nhau.

Integer Literals (Literal Số nguyên)

Đây là những số nguyên, giống như những số bạn sử dụng để đếm táo hoặc đô la.

SELECT 42;
SELECT -17;

Trong các ví dụ này, 42 và -17 là các literal số nguyên. MySQL sẽ đơn giản trả về các giá trị này như chúng là.

Floating-Point Literals (Literal Số động)

Đây là những số có dấu phẩy động, rất phù hợp khi bạn cần độ chính xác hơn.

SELECT 3.14159;
SELECT -2.5;

Ở đây, 3.14159 (pi, ai đó?) và -2.5 là các literal số động. MySQL xử lý chúng một cách dễ dàng, duy trì độ chính xác thập phân.

Scientific Notation (Ký hiệu khoa học)

Đối với những số rất lớn hoặc rất nhỏ, chúng ta sử dụng ký hiệu khoa học.

SELECT 1.23E-10;
SELECT 5E3;

1.23E-10 tương đương với 0.000000000123, trong khi 5E3 tương đương với 5000. Rất tiện lợi cho những giá trị极端!

String Literals (Literal Chuỗi)

Chuỗi là các序列 của các ký tự - nghĩ về từ, câu hoặc thậm chí là đoạn văn.

Single-Quoted Strings (Chuỗi Đơn)

SELECT 'Hello, World!';
SELECT 'I''m learning MySQL';

Ví dụ đầu tiên rất đơn giản. Trong ví dụ thứ hai, lưu ý rằng chúng ta sử dụng hai dấu đơn để biểu diễn một dấu đơn trong chuỗi.

Double-Quoted Strings (Chuỗi Đôi)

SELECT "MySQL is fun!";
SELECT "She said, "Hello!"";

Dấu kép hoạt động tương tự như dấu đơn. Chúng đặc biệt hữu ích khi chuỗi của bạn chứa dấu đơn.

Escape Sequences (Chuỗi Trốn)

Đôi khi, chúng ta cần bao gồm các ký tự đặc biệt trong chuỗi của mình:

SELECT 'Line 1\nLine 2';
SELECT 'Tab\tSpace';

Ở đây, \n biểu diễn một dòng mới, và \t biểu diễn một tab. Những cái này được gọi là chuỗi trốn.

Boolean Literals (Literal Boolean)

Boolean rất đơn giản - chúng hoặc là true hoặc là false. Trong MySQL, chúng ta biểu diễn chúng như sau:

SELECT TRUE, FALSE;

MySQL thực sự coi chúng là 1 (cho TRUE) và 0 (cho FALSE) nội bộ.

Date and Time Literals (Literal Ngày và Giờ)

Xử lý ngày và giờ rất quan trọng trong nhiều ứng dụng. MySQL cung cấp nhiều định dạng:

Date Literals (Literal Ngày)

SELECT DATE '2023-06-15';
SELECT '2023-06-15';

Cả hai đều đại diện cho cùng một ngày. Từ DATE là tùy chọn nhưng có thể cải thiện khả năng đọc.

Time Literals (Literal Giờ)

SELECT TIME '14:30:00';
SELECT '14:30:00';

Lại một lần nữa, từ TIME là tùy chọn nhưng được khuyến nghị để rõ ràng.

DateTime Literals (Literal Ngày và Giờ)

SELECT TIMESTAMP '2023-06-15 14:30:00';
SELECT '2023-06-15 14:30:00';

Những cái này đại diện cho cả ngày và giờ.

Null Literals (Literal NULL)

NULL là một literal đặc biệt biểu diễn sự vắng mặt của một giá trị:

SELECT NULL;

Nó không giống như số không hoặc chuỗi trống - nó thực sự có nghĩa là "không có giá trị" hoặc "không rõ".

Client Program Literals (Literal Chương trình Khách)

Khi sử dụng MySQL trong một chương trình khách (như viết một script Python tương tác với MySQL), bạn có thể gặp literal ở một hình thức hơi khác. Dưới đây là một so sánh nhanh:

MySQL Query Python Equivalent
SELECT 42; cursor.execute("SELECT 42")
SELECT 'Hello'; cursor.execute("SELECT 'Hello'")
SELECT TRUE; cursor.execute("SELECT TRUE")
SELECT NULL; cursor.execute("SELECT NULL")

Sự khác biệt chính là trong một chương trình khách, các truy vấn SQL của bạn thường được bao bọc trong các chuỗi, và bạn cần cẩn thận về việc escape dấu 引号 một cách chính xác.

Và đó là tất cả, các bạn! Chúng ta đã hành trình qua vùng đất của các literal MySQL, từ số đến chuỗi, ngày giờ đến null. Nhớ rằng, literal là muối và tiêu của các truy vấn SQL của bạn - chúng thêm hương vị và ý nghĩa cho các tương tác cơ sở dữ liệu của bạn.

Lần sau khi bạn viết một truy vấn và cần sử dụng một giá trị cụ thể, bạn sẽ biết chính xác cách biểu diễn nó như một literal. Thực hành sử dụng những cái này trong các truy vấn của bạn, và sớm bạn sẽ kết hợp và kết hợp literal như một đầu bếp chuyên nghiệp kết hợp nguyên liệu!

Tiếp tục mã hóa, tiếp tục học hỏi, và quan trọng nhất, hãy vui vẻ với MySQL! Đến gặp lại lần sau, chúc các bạn vui vẻ khi truy vấn!

Credits: Image by storyset