Lệnh IN
cho phép bạn chỉ định nhiều giá trị trong mệnh đề WHERE
Toán tử IN là cách viết tắt của nhiều điều kiện OR
SQL sau đây chọn tất cả các khách hàng ở "Đức", "Pháp" và "Vương quốc Anh"
Thí dụ
CHỌN * TỪ Khách hàng
WHERE Country IN ['Đức', 'Pháp', 'Anh'];
SQL sau đây chọn tất cả các khách hàng KHÔNG ở "Đức", "Pháp" hoặc "Vương quốc Anh"
Thí dụ
CHỌN * TỪ Khách hàng
WHERE Country NOT IN ['Đức', 'Pháp', 'Anh'];
SQL sau đây chọn tất cả khách hàng đến từ cùng quốc gia với nhà cung cấp
Thí dụ
CHỌN * TỪ Khách hàng
WHERE Country IN [CHỌN Quốc gia TỪ Nhà cung cấp];
Ví dụ sau sẽ minh họa cách một trang web có thể lấy thông tin từ cơ sở dữ liệu bằng AJAX
Giải thích ví dụ - Hàm showCustomer[]
Khi người dùng chọn một khách hàng trong danh sách thả xuống ở trên, một hàm có tên là showCustomer[]
được thực thi. Chức năng được kích hoạt bởi sự kiện onchange
hiệnKhách hàng
hàm showCustomer[str] {
nếu [str == ""] {
tài liệu. getElementById["txtHint"]. InternalHTML = "";
trở lại;
}
const xhttp = XMLHttpRequest mới[];
xhttp. tải = chức năng [] {
tài liệu. getElementById["txtHint"]. bên trongHTML = cái này. văn bản phản hồi;
}
xhttp. open["NHẬN", "nhận khách hàng. php?q="+str];
xhttp. gửi[];
}
Hàm showCustomer[]
thực hiện như sau
- Kiểm tra xem khách hàng có được chọn không
- Tạo một đối tượng XMLHttpRequest
- Tạo chức năng sẽ được thực thi khi phản hồi của máy chủ đã sẵn sàng
- Gửi yêu cầu đến một tệp trên máy chủ
- Lưu ý rằng một tham số [q] được thêm vào URL [với nội dung của danh sách thả xuống]
Trang máy chủ AJAX
Trang trên máy chủ được gọi bởi JavaScript ở trên là một tệp PHP có tên "getcustomer. php"
Mã nguồn trong "getcustomer. php" chạy truy vấn đối với cơ sở dữ liệu và trả về kết quả trong bảng HTML
Ví dụ HTML
Đây là một tiêu đề
Đây là một đoạn
Ví dụ CSS
cơ thể người {
màu nền. xanh nhạt;
}
h1 {
màu. trắng;
căn chỉnh văn bản. trung tâm;
}
P {
họ phông chữ. rau xanh;
}
Ví dụ JavaScript
Nhấp vào đây
Tự mình thửPHP
Một ngôn ngữ lập trình máy chủ webHọc PHPW3. CSS
Khung CSS cho các trang web phản hồi nhanh hơn và tốt hơnTìm hiểu W3. CSSTheo dõi tiến trình của bạn với chương trình "Học tập của tôi" miễn phí tại W3Schools
Đăng nhập vào tài khoản của bạn và bắt đầu kiếm điểm
Công cụ chọn màu nổi tiếng của W3Schools
Bài tập và câu đố
Kiểm tra kỹ năng của bạn
Bắt đầu sự nghiệp của bạn
Được chứng nhận bằng cách hoàn thành một khóa học
Bắt đầu w3schoolsCERTIFIED. 2022Làm thế nào để phần
Đoạn mã cho HTML, CSS và JavaScript
Ví dụ: cách tạo trình chiếuhọc cách làm
quyết định. Cho dù đó là giấy hay nhựa, cà phê hay trà, gas hay điện. luôn có một quyết định khác chờ đợi xung quanh. Và nếu bạn đến trang này, quyết định tiếp theo của bạn có thể cũng quan trọng như những quyết định được liệt kê trước đó. Snowflake Scripting hoặc JavaScript. Đối với nhiều nhà phát triển và kỹ sư dữ liệu, đó có thể là sự lựa chọn giữa một con đường quen thuộc không đưa bạn đến đích và một con đường xa lạ đưa bạn đến đó. Bất chấp điều đó, đây là quyết định mà bạn không phải đưa ra một mình.
Huy động. Net đã chuyển đổi các ngôn ngữ kịch bản lệnh SQL như PL/SQL, T-SQL và các thủ tục được lưu trữ trong Teradata sang JavaScript được nhúng trong Snowflake SQL trong vài năm nay. [Trên thực tế, chúng tôi đã viết blog về nó trong quá khứ. ] Nhưng một vài tháng trước, Snowflake đã xuất bản rằng Snowflake Scripting hiện đã có sẵn đầy đủ cho bất kỳ người dùng Snowflake nào. [Và trước đây chúng tôi cũng đã viết blog về một số điều bạn có thể làm với Snowflake Scripting. ] Chúng tôi đã hợp tác với Snowflake để làm cho nó trở nên tốt nhất có thể [và sẽ tiếp tục như vậy. ], và nó tiếp tục phát triển và tiến hóa khi ngày càng có nhiều người dùng tận dụng lợi thế của việc viết mã thủ tục chỉ sử dụng một ngôn ngữ, SQL
Nhưng những gì về di cư? . Net và Snowflake đã hợp tác với nhau để phát triển máy gia tốc tốt nhất trên thị trường cho Snowflake, SnowConvert. Chà, SnowConvert đã tự động hóa quá trình chuyển đổi cực kỳ phức tạp của bteq, PL/SQL và T-SQL sang JavaScript được nhúng trong Snowflake SQL trong vài năm nay. Nếu SnowConvert có thể chuyển từ sprocs sang JavaScript, liệu nó có thể chuyển từ sprocs sang Quy trình viết kịch bản Snowflake không? . người tuyết. ? . ] Tất nhiên. Như bạn có thể mong đợi, việc chuyển đổi đơn giản hơn nhiều
Mặc dù vậy, đừng sợ, chúng tôi không chơi yêu thích. Với tất cả các hương vị của SnowConvert, bạn vẫn có thể chọn xem bạn muốn xuất ra JavaScript hay Snowflake Scripting
Chúng ta hãy xem một ví dụ minh họa một yếu tố duy nhất của một chuyển đổi giống nhau về mặt chức năng trong JavaScript do SnowConvert tạo và Snowflake Scripting do SnowConvert tạo, nhưng có khả năng đầu ra đơn giản hơn. Ý tôi là, nếu bạn đã quen viết SQL, thì việc chuyển sang JavaScript có thể gây khó chịu và thường yêu cầu một bộ kỹ năng hoàn toàn khác
Quy trình SQL đối với JavaScript và Snowflake Scripting
Khi huy động. net SnowConvert đánh giá một cơ sở mã, mục tiêu của công cụ tự động hóa là tạo ra sự tương đương về chức năng, chứ không phải tìm điểm tương đương gần nhất trong mục tiêu và bỏ cuộc nếu không có điểm tương đương gần nhất. Do đó, khi chuyển đổi các thủ tục sang JavaScript, SnowConvert tạo các lớp trợ giúp để tạo chức năng không có trong nền tảng đích. Điều này có thể được thực hiện bằng cách sử dụng toàn bộ triển khai JavaScript mà Snowflake hỗ trợ
Tuy nhiên, khi chuyển đổi thủ tục SQL trong nền tảng nguồn sang thủ tục SQL trong Snowflake [Snowflake Scripting], việc chuyển đổi đơn giản hơn nhiều. Chúng ta hãy xem điều này trông như thế nào với một ví dụ rất đơn giản trong Oracle PL/SQL
OraclePL/SQL
Hãy lấy một thủ tục mẫu với câu lệnh RAISE làm ví dụ. [Lưu ý rằng bạn có thể sử dụng mã này để dùng thử. ] Đây là những gì có thể trông như thế nào trong Oracle.
-- Oracle test procedure for RAISE conversion. CREATE OR REPLACE PROCEDURE simple_exception_throw_handle[param1 INTEGER] IS my_exception EXCEPTION; my_other_exception EXCEPTION; BEGIN IF param1 > 0 THEN RAISE my_exception; END IF; EXCEPTION WHEN my_exception THEN IF param1 = 1 THEN RAISE; END IF; RAISE my_other_exception; END; --Completes without issue CALL simple_exception_throw_handle[0]; --Throws my_exception CALL simple_exception_throw_handle[1]; --Throws my_exception, catches then raises second my_other_exception CALL simple_exception_throw_handle[2];
Khá đơn giản, phải không? . Điều này sẽ trông như thế nào trong Snowflake Scripting và Javascript? . rất vui vì bạn đã hỏi. ]
Quy trình SQL bông tuyết [Snowflake Scripting]
Trong Snowflake Scripting, quy trình tương tự sẽ giống như sau
-- Snowflake Scripting test procedure for RAISE conversion. CREATE OR REPLACE PROCEDURE PUBLIC.simple_exception_throw_handle [param1 INTEGER] RETURNS VARCHAR LANGUAGE SQL -- Using Snowflake Scripting. EXECUTE AS CALLER AS $$ DECLARE my_exception EXCEPTION; my_other_exception EXCEPTION; BEGIN IF [:param1 > 0] THEN RAISE my_exception; END IF; EXCEPTION WHEN my_exception THEN IF [param1 = 1] THEN RAISE; END IF; RAISE my_other_exception; END; $$; -- Test it out to see what happens! CALL PUBLIC.simple_exception_throw_handle[0]; CALL PUBLIC.simple_exception_throw_handle[1]; CALL PUBLIC.simple_exception_throw_handle[2];
Nhìn. khá giống với cái đầu tiên, phải không? . Với Snowflake Scripting về cơ bản giống như hàm RAISE trong Oracle. Đó là do thiết kế. SQL đã tồn tại lâu hơn Snowflake và bây giờ Snowflake Scripting đã có ở đây, việc triển khai các quy trình được viết bằng SQL của Snowflake sẽ giống như những gì đã có sẵn. Mã đầu ra trong Snowflake Scripting rất dễ hiểu và dễ thao tác đối với các nhà phát triển quen thuộc với SQL.
Quy trình JavaScript bông tuyết
Bây giờ chúng ta đã thấy quá trình chuyển đổi đơn giản sang Snowflake Scripting, còn JavaScript thì sao? . Net SnowConvert tạo lại chức năng của hàm RAISE trong Oracle PL/SQL với một hàm trợ giúp được viết bằng JavaScript cho Snowflake. Chúng ta hãy xem nó trông như thế nào. [Lưu ý rằng bạn sẽ không thể chạy chương trình này trực tiếp trong Snowflake vì một lượng lớn dòng mã đã bị xóa khỏi lớp trình trợ giúp vì tính ngắn gọn của mã này. ]
-- Snowflake JavaScript test procedure for RAISE conversion. CREATE OR REPLACE PROCEDURE PUBLIC.simple_exception_throw_handle [param1 FLOAT] RETURNS STRING LANGUAGE JAVASCRIPT -- Using JavaScript. EXECUTE AS CALLER AS $$ // REGION SnowConvert Helpers Code // Other helper functions would appear here // The helper class we care about appears here. var RAISE = function [code,name,message] { message === undefined && [[name,message] = [message,name]] var error = new Error[message]; error.name = name SQLERRM = `${[SQLCODE = [error.code = code]]}: ${message}` throw error; }; // END REGION /* ** MSC-WARNING - MSCEWI3052 - EXCEPTION DECLARATION IS HANDLED BY RAISE FUNCTION ** */ /* my_exception EXCEPTION */ ; /* ** MSC-WARNING - MSCEWI3052 - EXCEPTION DECLARATION IS HANDLED BY RAISE FUNCTION ** */ /* my_other_exception EXCEPTION */ ; try { if [PARAM1 > 0] { RAISE[-6512,`MY_EXCEPTION`,`MY_EXCEPTION`]; } } catch[error] { switch[error.name] { case `MY_EXCEPTION`: { if [PARAM1 == 1] { throw error; } RAISE[-6512,`MY_OTHER_EXCEPTION`,`MY_OTHER_EXCEPTION`]; break; } default: { throw error; break; } } } $$; CALL PUBLIC.simple_exception_throw_handle[0]; CALL PUBLIC.simple_exception_throw_handle[1]; CALL PUBLIC.simple_exception_throw_handle[2];
Trong kết quả này, SnowConvert dành cho Oracle tạo một hàm trợ giúp JavaScript có tên là raise sao chép chức năng của hàm RAISE trong SQL. Chức năng của phần còn lại của quy trình được tạo lại trong câu lệnh try [với một số thành phần không cần thiết đã bị xóa cùng với nhận xét từ SnowConvert cho bạn biết điều gì đó đã thay đổi . Đầu ra có chức năng tương đương với hai thủ tục khác [Oracle và Snowflake Scripting] đã nêu ở trên. raise function created above. The output is functionally equivalent to the other two procedures [Oracle and Snowflake Scripting] given above.
Vì thế. thời gian cho một quyết định?
Với ví dụ này, không phải Snowflake Scripting là giải pháp thay thế tốt hơn khi viết mã thủ tục trong Snowflake sao? . Thủ tục trên khá đơn giản. Nó đang đưa ra một ngoại lệ. Nó không thực hiện một loạt thao tác trên hoặc trên cơ sở dữ liệu, vốn thường là mục tiêu của mã thủ tục. Trong phạm vi mà Snowflake Scripting hỗ trợ chức năng tồn tại trong các thủ tục SQL của bạn, thì vâng. Có khả năng Snowflake Scripting sẽ là một quá trình chuyển đổi đơn giản và dễ dàng hơn nhiều từ nền tảng nguồn mà bạn đã quen sử dụng. Tuy nhiên, nếu chức năng đó chưa tồn tại [và chúng tôi có nghĩa là "chưa", vì Snowflake liên tục cập nhật chức năng [và tài liệu tiếp theo] có trong Snowflake Scripting], thì việc triển khai JavaScript của Snowflake cho phép SnowConvert tạo lại chức năng đó và . Tất nhiên, nhược điểm rõ ràng là giờ đây bạn sẽ có nhiều hơn một ngôn ngữ để hỗ trợ [SQL và JavaScript]
Nhưng như chúng tôi đã đề cập ở trên, bạn không cần phải đưa ra những quyết định này một mình. Bạn có thể sử dụng SnowConvert để đánh giá mã bạn có và biết được mức độ chuyển đổi tự động mà bạn có thể mong đợi đối với Snowflake Scripting hoặc JavaScript. Bạn cũng có thể tìm thêm các ví dụ này bằng cách yêu cầu quyền truy cập vào tài liệu tham khảo dịch thuật của chúng tôi [trang web tài liệu công cộng của chúng tôi dành cho SnowConvert có hỗ trợ tuyệt vời, nhưng chúng tôi có thể cung cấp một thư viện sâu hơn nữa]. Hãy cho chúng tôi biết làm thế nào chúng tôi có thể giúp đỡ và chúng tôi sẽ.
Trừ khi đó là về cà phê hoặc trà. Cuộc tranh luận đó tiếp tục diễn ra xung quanh các hội trường bằng gỗ gụ của Huy động. Văn phòng Net và không có kết thúc trong tầm nhìn