Overview SQL Syntax
April 2nd, 2024

1 Tại sao lại là SQL?
Ngôn ngữ truy vấn có cấu trúc (SQL) là ngôn ngữ khai báo tiêu chuẩn được sử dụng để mô tả kết quả mong muốn của dữ liệu. Không giống như các ngôn ngữ thủ tục khác (như Python, Java, Rust, v.v.) yêu cầu người dùng chỉ định chính xác các bước mà máy tính sẽ thực hiện, SQL mang tính khai báo, nghĩa là người dùng mô tả kết quả đầu ra cuối cùng và cho phép chương trình trình phân tích cú pháp SQL xây dựng chính xác các bước đó. các bước tự động khi chạy. Điều này giúp đơn giản hóa đáng kể công việc tạo và tối ưu hóa các thao tác dữ liệu phức tạp thành một bộ lệnh rất đơn giản và trực quan mà hầu hết mọi người đều có thể học được.

Với sự thành công lâu dài của SQL, người ta thường nói “thế giới kinh doanh chạy trên SQL”. Mặc dù có nhiều phần mở rộng và biến thể của SQL, Viện Tiêu chuẩn Quốc gia Hoa Kỳ (ANSI) đã xác định SQL trông như thế nào và các hệ thống dữ liệu tuân thủ tiêu chuẩn đó được gọi là SQL tuân thủ ANSI. Tính nhất quán này của SQL đã cho phép toàn bộ ngành công nghiệp gồm các hệ thống và công cụ phân tích tương tác với nhau với hiệu quả đến mức nó vẫn là tiêu chuẩn cho đến ngày nay. Không gian và Thời gian là một kho dữ liệu và do đó hoạt động dựa trên SQL tuân thủ ANSI. Có một số tiện ích mở rộng Không gian và Thời gian (Space and Time) cho phép chúng tôi hoạt động tốt hơn như một hệ thống dữ liệu gốc Web3 phi tập trung.

2 Cú pháp SQL – Cơ bản

Cú pháp SQL đã hoàn thiện trong 40 năm qua để trở nên mạnh mẽ và toàn diện hơn nhiều so với những gì có thể được ghi lại một cách hợp lý ở đây. Nếu bạn muốn tìm hiểu thêm về SQL nói chung, dưới đây là một số khóa học trực tuyến tốt để giáo dục kiến ​​thức cơ bản về SQL:

Giáo dục - Hướng dẫn giới thiệu về SQL

2. TL;DR

Nếu bạn đang tìm kiếm một bản tóm tắt SQL được đơn giản hóa quá mức thì có 5 phần trong một câu lệnh SQL cơ bản:

SELECT – danh sách các cột cần trả về hoặc sử dụng dấu hoa thị (*) để biểu thị tất cả các cột

FROM – một hoặc nhiều bảng chứa dữ liệu

WHERE – bộ lọc để giảm dữ liệu được trả về từ bảng

GROUP BY – trong tập hợp, chỉ định cột nào điều khiển nhóm, trong khi tất cả các cột khác phải được gói trong hàm tổng hợp như SUM()
ORDER BY – chỉ định thứ tự dữ liệu được trả về Ví dụ: SQL bên dưới sẽ trả về tổng số giao dịch mỗi ngày từ chuỗi khối Ethereum tồn tại trong phạm vi 1 triệu Khối:

SQL

SELECT  
 CAST(TIME_STAMP as DATE) as BlockDate  
,SUM(TRANSACTION_COUNT)   as TxnCount  
FROM ETHEREUM.BLOCKS  
WHERE BLOCK_NUMBER between 14e6 and 15e6  
GROUP BY BlockDate  
ORDER BY BlockDate;

Khi người dùng hiểu rằng CAST() biến một kiểu dữ liệu này thành một kiểu dữ liệu khác (trong trường hợp này là dấu thời gian đầy đủ thành ngày) và ký hiệu khoa học 14e6 = 14 triệu, thì SQL ở trên sẽ rất dễ đọc.

SQL có nhiều thứ hơn 5 thành phần trên, nhưng độ phức tạp bổ sung đó được xây dựng trên nền tảng này, khiến nó trở thành điểm khởi đầu tốt.

3 Các phương pháp thực hành tốt nhất cho SQL tổng quát

Những thực tiễn tốt nhất này sẽ áp dụng cho hầu hết tất cả các hệ thống kho dữ liệu và cũng đúng với Không gian và Thời gian:

Filter early – đối với các truy vấn phức tạp hơn, hãy áp dụng câu lệnh WHERE càng sớm càng tốt. Ví dụ: nếu bạn đang tham gia hai lựa chọn phụ, bạn có thể thường xuyên áp dụng câu lệnh WHERE một lần trong câu lệnh bên ngoài hoặc dự phòng hai lần trong mỗi lựa chọn phụ. Ưu điểm của việc thực hiện hai lần là giảm số lượng hàng cho mỗi tập dữ liệu trước khi nối, điều này có thể thay đổi thời gian chạy 5 giây thành thời gian chạy 500 mili giây.

LIMIT 10 - trong lần khám phá đầu tiên, không có gì lạ khi các nhà phân tích CHỌN * TỪ Schema.Table_Name để bắt đầu khám phá loại dữ liệu, định dạng và dữ liệu mẫu. Điều đó có nghĩa là, một lệnh SELECT không bị ràng buộc có thể tạo ra một lượng điện toán khá lớn trên hệ thống khi nó cố gắng trả về toàn bộ bảng (có thể là hàng triệu hàng) cho ứng dụng khách. Ngay cả khi tốc độ tính toán cơ sở dữ liệu nhanh, độ trễ mạng khi di chuyển dữ liệu lớn sẽ khiến phản hồi có cảm giác chậm. Bằng cách thêm LIMIT N vào cuối truy vấn, cơ sở dữ liệu sẽ chỉ trả về N-số bản ghi đầu tiên, sau đó dừng xử lý. Ví dụ: SELECT * FROM Schema.Table_Name LIMIT 10 sẽ chỉ trả về 10 hàng đầu tiên. Xin lưu ý: LIMIT không giống như SAMPLE. LIMIT sẽ chỉ trả về 10 hàng đầu tiên mà cơ sở dữ liệu có thể tìm thấy, thường (nhưng không phải luôn luôn) được lưu trữ tuần tự trên đĩa, khiến nó không phù hợp với một mẫu ngẫu nhiên.

Know the Key – khi làm việc với dữ liệu rất lớn, bạn sẽ có hiệu suất tốt hơn khi lọc hoặc nối trên Cột Khóa của bảng, vì nó phù hợp với cách dữ liệu được lưu trữ vật lý. Ví dụ: khóa của bảng ETHEREUM.BLOCKS là Block_Number (khóa chính, nghĩa là khóa duy nhất). Mọi phép nối hoặc bộ lọc trên Block_Number sẽ trả về nhanh hơn cột Block_Hash duy nhất tương tự. Bạn có thể tìm thấy khóa của bảng bằng cách sử dụng API khám phá tài nguyên hoặc trong trình điều khiển JDBC và được hiển thị thông qua hầu hết các Trình soạn thảo SQL hiện đại.

Snake_Case – quy ước điển hình cho tên SQL là Snake_Case, hay còn gọi là sử dụng dấu gạch dưới để phân tách các từ, ví dụ: Block_Number hoặc Gas_Fee. Giống như bất kỳ quy ước nào, không có lợi thế kỹ thuật nào ngoài tính nhất quán với các nhà phát triển SQL khác.

4 Cú pháp SQL – Chi tiết về Space and Time

Space and Time là cơ sở dữ liệu tuân thủ ANSI, nghĩa là SQL bình thường sẽ hoạt động như mong đợi. Điều đó nói lên rằng, giống như bất kỳ hệ thống dữ liệu riêng biệt nào, có một số đặc điểm riêng biệt đáng chú ý. Các trang con trong phần này liệt kê các kiểu dữ liệu duy nhất và các từ dành riêng cho Không gian và Thời gian.

5 Định giá

Khi bạn sử dụng Space and Time, tất cả những gì bạn phải trả chỉ là tính toán. Bộ lưu trữ, dữ liệu chuỗi khối được lập chỉ mục, bảng điều khiển OpenAI, truy vấn OLTP + OLAP trong cụm của bạn, bằng chứng mã hóa SQL, v.v. luôn được bao gồm.

Chúng tôi cung cấp một số tùy chọn giá khác nhau để phù hợp với nhu cầu và trường hợp sử dụng của bạn. Truy cập trang này để tìm hiểu thêm.

Source:

Subscribe to Minh Dat
Receive the latest updates directly to your inbox.
Nft graphic
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from Minh Dat

Skeleton

Skeleton

Skeleton