Các cách thông minh để sử dụng chuỗi liên kết SQL

Các cách thông minh để sử dụng chuỗi liên kết SQL

Structured Query Language (SQL) là một công cụ cực kỳ mạnh mẽ và có đầy đủ các tính năng. Khi bạn đã thành thạo nhiều nhất các lệnh SQL quan trọng , bạn có thể bắt đầu sáng tạo hơn một chút với SQL của mình. Hôm nay tôi sẽ chỉ cho bạn mọi thứ bạn cần biết về chuỗi nối SQL.





Có nhiều phương ngữ SQL khác nhau. Đối với tất cả các ví dụ này, tôi đang sử dụng PostgreSQL khác nhau.





được trả tiền để thử nghiệm ứng dụng android

Kết luận là gì?

Kết nối có nghĩa là nối hai sự vật lại với nhau. Bạn có thể đã sử dụng nó trong một ngôn ngữ lập trình để nối hai chuỗi lại với nhau. Có lẽ bạn có các biến tên và họ mà bạn đã kết hợp với nhau dưới dạng một biến tên đầy đủ.





Nối là một cách rất hữu ích để kết hợp hai chuỗi thành một. PHP sử dụng một điểm dừng đầy đủ để nối các chuỗi lại với nhau, trong khi JavaScript và jQuery sử dụng dấu cộng.

Kết nối trong SQL hoạt động hoàn toàn giống nhau. Bạn sử dụng một toán tử đặc biệt để kết hợp hai thứ thành một. Đây là một ví dụ trong Mã giả :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

Trong các ngôn ngữ lập trình, nối làm cho mã dễ đọc hơn. Nếu mã của bạn luôn cần truy cập hai chuỗi, việc kết hợp chúng thành một chuỗi sẽ giúp dễ nhớ hơn và giảm độ dài của mã.

Mặc dù các biến trong SQL ít phổ biến hơn (nhưng vẫn được sử dụng), việc nối vẫn cần thiết để trả về kết quả kết hợp hoặc để thao tác dữ liệu.





Làm thế nào để kết hợp

Kết nối là hết sức dễ dàng trong SQL. Trong khi SQL là một ngôn ngữ chung, các công cụ cơ sở dữ liệu riêng lẻ triển khai các tính năng theo những cách khác nhau. Mặc dù tất cả các ví dụ này đều bằng phương ngữ PostgreSQL, nhưng thật dễ dàng để dịch sang các biến thể khác bằng cách đơn giản tìm kiếm trên web cho 'Concatenate'. Các động cơ khác nhau có thể có cú pháp khác nhau để nối, nhưng nguyên tắc vẫn giống nhau.

Quay lại với ví dụ về tên của chúng tôi, đây là một điều cơ bản lựa chọn truy vấn:





SELECT first_name, last_name, email FROM users_table

Không có gì phức tạp ở đây, vì vậy hãy thêm vào đoạn nối:

SELECT first_name || last_name AS full_name, email FROM users_table

Như bạn có thể thấy, việc ghép nối này đã hoạt động hoàn hảo, nhưng có một vấn đề nhỏ. Tên đầy đủ kết quả đã được ghép lại với nhau chính xác như tích của cả hai cột - nên có một khoảng cách giữa các tên!

May mắn thay, thật dễ dàng để sửa chữa: chỉ cần nối một khoảng trắng giữa hai:

SELECT first_name || ' ' || last_name AS full_name, email FROM users_table

Đây là những ví dụ cơ bản, nhưng bạn sẽ thấy cách nối hoạt động - nó thực sự dễ dàng! Người điều hành đường ống ( | ) được sử dụng hai lần giữa các mệnh đề. Công cụ SQL của bạn biết rằng mỗi phần trước và sau biểu tượng này phải được nối với nhau và được coi là một. Tuy nhiên, hãy cẩn thận, nếu bạn sử dụng toán tử concat nhưng không nối bất cứ thứ gì, bạn sẽ gặp lỗi.

Như đã đề cập ở trên, những ví dụ này sử dụng biến thể PostgreSQL của SQL. Các biến thể khác có thể sử dụng một nhà điều hành khác, hoặc thậm chí một chức năng đặc biệt mà bạn phải gọi. Nó không thực sự quan trọng thế nào bạn nối các chuỗi, miễn là bạn làm điều đó theo cách mà công cụ cơ sở dữ liệu của bạn đang mong đợi.

Đi sâu hơn

Bây giờ bạn đã biết những điều cơ bản, hãy xem xét một số ví dụ chuyên sâu, cùng với một số cạm bẫy phổ biến.

Hầu hết các công cụ cơ sở dữ liệu sẽ nối thành công hỗn hợp chuỗi và số nguyên, thậm chí có thể là cả ngày tháng. Bạn thường sẽ gặp sự cố khi cố gắng nối các kiểu phức tạp như mảng:

SELECT first_name || ' ' || last_name || ARRAY[123, 456] AS full_name, email FROM users_table

Mã này sẽ không hoạt động. Không thể kết hợp chuỗi với các đối tượng phức tạp như mảng. Nếu bạn nghĩ về những gì bạn cần làm, bạn thường có thể viết mã đơn giản hoạt động, thay vì mã phức tạp, điên rồ không chạy được.

Nếu bạn đã suy nghĩ cẩn thận về những gì bạn cần làm mà vẫn không thể làm cho SQL hoạt động, thì bạn đã cân nhắc sử dụng một ngôn ngữ lập trình chưa? Là một nhà phát triển phần mềm làm việc trên mã kế thừa, tôi biết nỗi đau của việc cố gắng gỡ lỗi SQL mà ai đó đã nhồi nhét quá nhiều logic vào đó khiến nó không chạy được một chút nào - nếu bạn đang cố gắng viết logic trong SQL, thì hãy chuyển sang ngôn ngữ lập trình (có rất nhiều ngôn ngữ dễ học).

Kết nối hoạt động rất tốt cho ở đâu cũng như tuyên bố:

SELECT first_name, last_name, email FROM users_table WHERE date_of_birth = ('DAY' || '/' || 'MONTH' || '/' || 'YEAR')::date

Có một vài điều đang xảy ra ở đây. Trong ví dụ này, NGÀY , THÁNG , và NĂM là các tham số đã được chuyển vào từ một tập lệnh. Có thể chúng được tạo bởi mã hoặc do người dùng nhập. Chúng được nối với nhau và sau đó truyền sang một kiểu ngày tháng (sử dụng cú pháp truyền ngày tháng của PostgreSQL ::ngày ).

Sử dụng cách nối theo cách này cho phép bạn liên kết các phần riêng lẻ của một ngày với nhau, sau đó có thể được xử lý như một ngày 'thực', trái ngược với một chuỗi. Đừng quên rằng ví dụ cơ bản này không bảo vệ khỏi SQL injection, vì vậy đừng sử dụng nó trong bất kỳ mã sản xuất nào mà không sửa đổi.

Một cạm bẫy khác cần đề phòng là vô giá trị giá trị (chuỗi null là một chuỗi rỗng hoặc không tồn tại). Đưa ra truy vấn này:

SELECT first_name || ' ' || NULL AS full_name, email FROM users_table

Truy vấn này không thành công. Điều này là do cách nối được mã hóa nội bộ trên công cụ cơ sở dữ liệu của bạn. Không phải lúc nào bạn cũng gặp phải vấn đề này, nhưng nó khá phổ biến.

Nếu bạn cho rằng dữ liệu mà truy vấn của bạn trả về có thể là rỗng, thì bạn sẽ cần sử dụng liên kết lại . Coalesce đại khái có thể được coi là 'nếu cái này là null, hãy thay thế nó bằng chuỗi hoặc cột khác này':

SELECT first_name || ' ' || COALESCE(NULL, 'ERROR NULL DATA') AS full_name, email FROM users_table

Bây giờ bạn đã biết cách sử dụng phép nối trong SQL, bạn sẽ làm gì với nó? Bạn sẽ tạo một trang web và làm sống động nó với SQL? Hoặc có lẽ bạn cần một trình tạo trang web tĩnh để có cách tiếp cận đơn giản hơn để xây dựng trang web.

Dù bạn làm gì, hãy cho chúng tôi biết trong phần bình luận bên dưới!

cách mở ổ cứng ngoài trên máy tính
Đăng lại Đăng lại tiếng riu ríu E-mail 6 lựa chọn thay thế có thể nghe được: Ứng dụng sách nói miễn phí hoặc giá rẻ tốt nhất

Nếu bạn không thích trả tiền cho sách nói, đây là một số ứng dụng tuyệt vời cho phép bạn nghe chúng miễn phí và hợp pháp.

Đọc tiếp
Chủ đề liên quan
  • Lập trình
  • Lập trình
  • SQL
Giới thiệu về tác giả Joe Coburn(136 bài báo đã xuất bản)

Joe tốt nghiệp ngành Khoa học Máy tính tại Đại học Lincoln, Vương quốc Anh. Anh ấy là một nhà phát triển phần mềm chuyên nghiệp và khi anh ấy không lái máy bay không người lái hay viết nhạc, anh ấy thường có thể bị bắt gặp chụp ảnh hoặc sản xuất video.

Xem thêm từ Joe Coburn

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký