Cover photo

Tổng Quan (SQL Syntax)

Nguồn:

https://docs.spaceandtime.io/docs/sql-syntax

Why SQL?

Ngôn ngữ truy vấn có cấu trúc (SQL) là một 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ác với 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 các bước cụ thể mà máy tính cần thực hiện, SQL là khai báo, có nghĩa là người dùng mô tả kết quả cuối cùng và cho phép chương trình phân tích SQL xây dựng các bước chính xác tự động tại thời điểm chạy. Điều này giúp đơn giản hóa đáng kể công việc tạo ra và tối ưu hóa các thao tác dữ liệu phức tạp xuống thành một tập hợp lệnh rất đơn giản và dễ hiểu mà gần như ai cũng có thể học được.

Với thành công lâu dài của SQL, thường được nói là "thế giới kinh doanh chạy bằng 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 Mỹ (ANSI) đã định nghĩa SQL nên nhìn như thế nào, và các hệ thống dữ liệu tuân theo tiêu chuẩn đó được gọi là SQL Tuân theo ANSI. Sự nhất quán này của SQL đã cho phép một ngành công nghiệp toàn bộ các hệ thống và công cụ phân tích tương tác với hiệu suất mà vẫn giữ được tiêu chuẩn ngày nay.

Space and Time là một kho dữ liệu, và vì vậy hoạt động trên SQL tuân theo ANSI. Có một số phần mở rộng của 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 phân cấp Web3.

SQL Syntax – The Basics

Cú pháp SQL đã trưởng thành qua 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 tài liệu ở đâ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 để học về cơ bản về SQL:

  • Udemy - The Complete SQL Bootcamp

  • Coursera / UCDavis - SQL cho Khoa học Dữ liệu

  • Educative - Hướng dẫn Giới thiệu về SQL

  • ZeroToMastery - Khóa học SQL + Cơ sở dữ liệu hoàn chỉnh: Từ Zero đến Kiến thức chuyên sâu

  • FutureLearn - Giới thiệu về Cơ sở dữ liệu và SQL

Best Practices for General SQL

Dưới đây là một số nguyên tắc tốt nhất sẽ áp dụng cho hầu hết các hệ thống kho dữ liệu, và cũng đúng cho Space and Time:

  1. Lọc sớm – Đối với các truy vấn phức tạp hơn, áp dụng các câu lệnh WHERE càng sớm càng tốt. Ví dụ, nếu bạn đang kết hợp hai câu lệnh con, bạn thường có thể áp dụng câu lệnh WHERE một lần trong câu lệnh bên ngoài, hoặc trùng lặp hai lần trong mỗi câu lệnh con. Lợi ích của việc làm này là giảm số lượng hàng cho mỗi tập dữ liệu trước khi kết hợp, có thể biến thời gian chạy từ 5 giây thành 500ms.

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

  3. Biết Khóa – 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 kết hợp 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, có nghĩa là duy nhất). Bất kỳ kết hợp hoặc lọc nào trên Block_Number sẽ trả về nhanh hơn so với cột Block_Hash tương tự duy nhất. Khóa của một bảng có thể được tìm thấy 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.

  4. Snake_Case – Quy ước điển hình cho tên SQL là Snake_Case, còn gọi là sử dụng gạch dưới để phân tách từ, ví dụ, Block_Number hoặc Gas_Fee. Như mọi quy ước khác, 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.

SQL Syntax – Space and Time Specifics

Space and Time là một cơ sở dữ liệu tuân thủ ANSI, có nghĩa là SQL thông thường sẽ hoạt động như mong đợi. Tuy nhiên, giống như bất kỳ hệ thống dữ liệu độc đáo nào khác, có một số đặc điểm độc đáo đáng lưu ý. Các trang con trong phần này liệt kê các loại dữ liệu và từ khóa dành riêng cho Space and Time.

Pricing

Khi bạn sử dụng Space and Time, bạn chỉ phải trả tiền cho việc tính toán. Lưu trữ, dữ liệu blockchain được lập chỉ mục, bảng điều khiển OpenAI, các truy vấn OLTP + OLAP trong cụm của bạn, mật mã Proof of SQL, và nhiều hơn nữa luôn được bao gồm.

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