MySQL có thể làm được nhiều hơn là chỉ lưu trữ và truy xuất dữ liệu. Chúng tôi cũng có thể thực hiện các thao tác trên dữ liệu trước khi lấy hoặc lưu nó. Đó là nơi các Hàm MySQL xuất hiện. Các hàm chỉ đơn giản là các đoạn mã thực hiện một số thao tác và sau đó trả về kết quả. Một số chức năng chấp nhận tham số trong khi các chức năng khác không chấp nhận tham số Show
Hãy xem xét ngắn gọn một ví dụ về chức năng của MySQL. Theo mặc định, MySQL lưu các kiểu dữ liệu ngày ở định dạng “YYYY-MM-DD”. Giả sử chúng ta đã xây dựng một ứng dụng và người dùng của chúng ta muốn ngày được trả về ở định dạng “DD-MM-YYYY”, chúng ta có thể sử dụng hàm DATE_FORMAT tích hợp trong MySQL để đạt được điều này. DATE_FORMAT là một trong những hàm được sử dụng nhiều nhất trong MySQL. Chúng tôi sẽ xem xét nó chi tiết hơn khi chúng tôi mở bài học Tại sao sử dụng chức năng?Dựa trên ví dụ được đưa ra trong phần giới thiệu, những người có kinh nghiệm về lập trình máy tính có thể nghĩ “Tại sao phải bận tâm đến các Hàm của MySQL? Quay trở lại ví dụ về NGÀY của chúng tôi trong phần giới thiệu, để người dùng của chúng tôi nhận được dữ liệu ở định dạng mong muốn, lớp nghiệp vụ sẽ phải thực hiện các xử lý cần thiết Điều này trở thành một vấn đề khi ứng dụng phải tích hợp với các hệ thống khác. Khi chúng tôi sử dụng các chức năng của MySQL như DATE_FORMAT, thì chúng tôi có thể nhúng chức năng đó vào cơ sở dữ liệu và bất kỳ ứng dụng nào cần dữ liệu sẽ nhận được nó ở định dạng bắt buộc. Điều này làm giảm việc làm lại trong logic nghiệp vụ và giảm sự không nhất quán của dữ liệu Một lý do khác tại sao chúng ta nên cân nhắc sử dụng các chức năng của MySQL là nó có thể giúp giảm lưu lượng mạng trong các ứng dụng máy khách/máy chủ. Tầng nghiệp vụ sẽ chỉ cần thực hiện cuộc gọi đến các chức năng được lưu trữ mà không cần thao tác dữ liệu. Tính trung bình, việc sử dụng các chức năng có thể giúp cải thiện đáng kể hiệu năng tổng thể của hệ thống Các loại chức năngChức năng tích hợp sẵnMySQL đi kèm với một số chức năng tích hợp. Các chức năng tích hợp chỉ đơn giản là các chức năng đã được triển khai trong máy chủ MySQL. Các chức năng này cho phép chúng tôi thực hiện các loại thao tác khác nhau trên dữ liệu. Về cơ bản, các chức năng tích hợp có thể được phân loại thành các danh mục được sử dụng nhiều nhất sau đây
Bây giờ chúng ta hãy xem xét chi tiết từng chức năng được đề cập ở trên. Chúng tôi sẽ giải thích các chức năng được sử dụng nhiều nhất bằng cách sử dụng “Myflixdb” của chúng tôi Hàm chuỗiChúng ta đã xem các hàm chuỗi làm gì. Chúng ta sẽ xem xét một ví dụ thực tế sử dụng chúng. Trong bảng phim của chúng tôi, tiêu đề phim được lưu trữ bằng cách sử dụng kết hợp chữ thường và chữ in hoa. Giả sử chúng ta muốn nhận danh sách truy vấn trả về tiêu đề phim bằng chữ in hoa. Chúng ta có thể sử dụng chức năng “UCASE” để làm điều đó. Nó nhận một chuỗi làm tham số và chuyển đổi tất cả các chữ cái thành chữ hoa. Tập lệnh hiển thị bên dưới minh họa việc sử dụng chức năng “UCASE” SELECT `movie_id`,`title`, UCASE(`title`) FROM `movies`; NƠI ĐÂY
Thực thi tập lệnh trên trong bàn làm việc của MySQL đối với Myflixdb mang lại cho chúng tôi các kết quả sau được hiển thị bên dưới movie_id title UCASE('title') 16 67% Guilty 67% GUILTY 6 Angels and Demons ANGELS AND DEMONS 4 Code Name Black CODE NAME BLACK 5 Daddy's Little Girls DADDY'S LITTLE GIRLS 7 Davinci Code DAVINCI CODE 2 Forgetting Sarah Marshal FORGETTING SARAH MARSHAL 9 Honey mooners HONEY MOONERS 19 movie 3 MOVIE 3 1 Pirates of the Caribean 4 PIRATES OF THE CARIBEAN 4 18 sample movie SAMPLE MOVIE 17 The Great Dictator THE GREAT DICTATOR 3 X-Men X-MEN MySQL hỗ trợ một số hàm chuỗi. Để biết danh sách đầy đủ tất cả các hàm chuỗi tích hợp, hãy tham khảo liên kết này http. // nhà phát triển. mysql. com/doc/refman/5. 0/vi/hàm chuỗi. html trên trang web MySQL hàm sốNhư đã đề cập trước đó, các hàm này hoạt động trên các kiểu dữ liệu số. Chúng ta có thể thực hiện các phép tính toán học trên dữ liệu số trong các câu lệnh SQL toán tử số học MySQL hỗ trợ các toán tử số học sau đây có thể được sử dụng để thực hiện tính toán trong các câu lệnh SQL TênMô tảDIVIChia số nguyên/Phép chia–Phép trừ+Cộng*Nhân% hoặc MODModulusBây giờ chúng ta hãy xem các ví dụ của từng toán tử trên Phân chia số nguyên (DIV) SELECT 23 DIV 6 ; Thực thi đoạn script trên cho chúng ta kết quả như sau 3 Toán tử chia (/) Bây giờ chúng ta hãy xem ví dụ về toán tử chia. Chúng tôi sẽ sửa đổi ví dụ DIV SELECT 23 / 6 ; Thực thi đoạn script trên cho chúng ta kết quả như sau 3. 8333 Toán tử trừ (-) Bây giờ chúng ta hãy xem ví dụ về toán tử trừ. Chúng tôi sẽ sử dụng các giá trị giống như trong hai ví dụ trước SELECT 23 - 6 ; Thực thi đoạn script trên cho chúng ta 17 Toán tử cộng (+) Bây giờ chúng ta hãy xem ví dụ về toán tử cộng. Chúng tôi sẽ sửa đổi ví dụ trước SELECT 23 + 6 ; Thực thi đoạn script trên cho chúng ta 29 Toán tử nhân (*) Bây giờ hãy xem ví dụ về toán tử nhân. Chúng tôi sẽ sử dụng các giá trị giống như trong các ví dụ trước SELECT 23 * 6 AS `multiplication_result`; Thực thi đoạn script trên cho chúng ta kết quả như sau phép nhân_result138Toán tử modulo (-) Toán tử modulo chia N cho M và cho chúng ta phần còn lại. Bây giờ chúng ta hãy xem ví dụ về toán tử modulo. Chúng tôi sẽ sử dụng các giá trị giống như trong các ví dụ trước SELECT 23 % 6 ; HOẶC LÀ ________số 8_______ Thực thi đoạn script trên cho chúng ta 5 Bây giờ chúng ta hãy xem xét một số hàm số phổ biến trong MySQL Tầng - chức năng này loại bỏ các vị trí thập phân khỏi một số và làm tròn nó đến số thấp nhất gần nhất. Kịch bản hiển thị bên dưới thể hiện cách sử dụng của nó SELECT FLOOR(23 / 6) AS `floor_result`; Thực thi đoạn script trên cho chúng ta kết quả như sau Floor_result3Làm tròn – hàm này làm tròn một số có vị trí thập phân thành số nguyên gần nhất. Kịch bản hiển thị bên dưới thể hiện cách sử dụng của nó movie_id title UCASE('title') 16 67% Guilty 67% GUILTY 6 Angels and Demons ANGELS AND DEMONS 4 Code Name Black CODE NAME BLACK 5 Daddy's Little Girls DADDY'S LITTLE GIRLS 7 Davinci Code DAVINCI CODE 2 Forgetting Sarah Marshal FORGETTING SARAH MARSHAL 9 Honey mooners HONEY MOONERS 19 movie 3 MOVIE 3 1 Pirates of the Caribean 4 PIRATES OF THE CARIBEAN 4 18 sample movie SAMPLE MOVIE 17 The Great Dictator THE GREAT DICTATOR 3 X-Men X-MEN0 Thực thi đoạn script trên cho chúng ta kết quả như sau Round_result4Rand – hàm này được sử dụng để tạo một số ngẫu nhiên, giá trị của nó thay đổi mỗi khi hàm được gọi. Kịch bản hiển thị bên dưới thể hiện cách sử dụng của nó movie_id title UCASE('title') 16 67% Guilty 67% GUILTY 6 Angels and Demons ANGELS AND DEMONS 4 Code Name Black CODE NAME BLACK 5 Daddy's Little Girls DADDY'S LITTLE GIRLS 7 Davinci Code DAVINCI CODE 2 Forgetting Sarah Marshal FORGETTING SARAH MARSHAL 9 Honey mooners HONEY MOONERS 19 movie 3 MOVIE 3 1 Pirates of the Caribean 4 PIRATES OF THE CARIBEAN 4 18 sample movie SAMPLE MOVIE 17 The Great Dictator THE GREAT DICTATOR 3 X-Men X-MEN1 chức năng lưu trữCác chức năng được lưu trữ giống như các chức năng tích hợp ngoại trừ việc bạn phải tự xác định chức năng được lưu trữ. Khi một hàm được lưu trữ đã được tạo, nó có thể được sử dụng trong các câu lệnh SQL giống như bất kỳ hàm nào khác. Cú pháp cơ bản để tạo một hàm được lưu trữ như dưới đây movie_id title UCASE('title') 16 67% Guilty 67% GUILTY 6 Angels and Demons ANGELS AND DEMONS 4 Code Name Black CODE NAME BLACK 5 Daddy's Little Girls DADDY'S LITTLE GIRLS 7 Davinci Code DAVINCI CODE 2 Forgetting Sarah Marshal FORGETTING SARAH MARSHAL 9 Honey mooners HONEY MOONERS 19 movie 3 MOVIE 3 1 Pirates of the Caribean 4 PIRATES OF THE CARIBEAN 4 18 sample movie SAMPLE MOVIE 17 The Great Dictator THE GREAT DICTATOR 3 X-Men X-MEN2 NƠI ĐÂY
Bây giờ chúng ta hãy xem một ví dụ thực tế triển khai một chức năng tích hợp. Giả sử chúng ta muốn biết những bộ phim đã thuê nào đã quá hạn trả lại. Chúng ta có thể tạo một hàm được lưu trữ chấp nhận ngày trả về làm tham số và sau đó so sánh nó với ngày hiện tại trong máy chủ MySQL. Nếu ngày hiện tại nhỏ hơn ngày quay lại phim, thì chúng tôi trả về “Không”, ngược lại, chúng tôi trả về “Có”. Kịch bản hiển thị bên dưới giúp chúng tôi đạt được điều đó movie_id title UCASE('title') 16 67% Guilty 67% GUILTY 6 Angels and Demons ANGELS AND DEMONS 4 Code Name Black CODE NAME BLACK 5 Daddy's Little Girls DADDY'S LITTLE GIRLS 7 Davinci Code DAVINCI CODE 2 Forgetting Sarah Marshal FORGETTING SARAH MARSHAL 9 Honey mooners HONEY MOONERS 19 movie 3 MOVIE 3 1 Pirates of the Caribean 4 PIRATES OF THE CARIBEAN 4 18 sample movie SAMPLE MOVIE 17 The Great Dictator THE GREAT DICTATOR 3 X-Men X-MEN3 Việc thực thi tập lệnh trên đã tạo hàm được lưu trữ `sf_past_movie_return_date` Bây giờ hãy kiểm tra chức năng được lưu trữ của chúng tôi movie_id title UCASE('title') 16 67% Guilty 67% GUILTY 6 Angels and Demons ANGELS AND DEMONS 4 Code Name Black CODE NAME BLACK 5 Daddy's Little Girls DADDY'S LITTLE GIRLS 7 Davinci Code DAVINCI CODE 2 Forgetting Sarah Marshal FORGETTING SARAH MARSHAL 9 Honey mooners HONEY MOONERS 19 movie 3 MOVIE 3 1 Pirates of the Caribean 4 PIRATES OF THE CARIBEAN 4 18 sample movie SAMPLE MOVIE 17 The Great Dictator THE GREAT DICTATOR 3 X-Men X-MEN4 Thực thi đoạn mã trên trong bàn làm việc của MySQL đối với myflixdb mang lại cho chúng tôi các kết quả sau movie_id title UCASE('title') 16 67% Guilty 67% GUILTY 6 Angels and Demons ANGELS AND DEMONS 4 Code Name Black CODE NAME BLACK 5 Daddy's Little Girls DADDY'S LITTLE GIRLS 7 Davinci Code DAVINCI CODE 2 Forgetting Sarah Marshal FORGETTING SARAH MARSHAL 9 Honey mooners HONEY MOONERS 19 movie 3 MOVIE 3 1 Pirates of the Caribean 4 PIRATES OF THE CARIBEAN 4 18 sample movie SAMPLE MOVIE 17 The Great Dictator THE GREAT DICTATOR 3 X-Men X-MEN5 Hàm do người dùng định nghĩaMySQL cũng hỗ trợ các chức năng do người dùng xác định để mở rộng MySQL. Các hàm do người dùng xác định là các hàm mà bạn có thể tạo bằng ngôn ngữ lập trình như C, C++, v.v. và sau đó thêm chúng vào máy chủ MySQL. Sau khi được thêm vào, chúng có thể được sử dụng giống như bất kỳ chức năng nào khác Chức năng MySQL do người dùng định nghĩa là gì?MySQL cũng hỗ trợ các chức năng do người dùng xác định giúp mở rộng MySQL. Các hàm do người dùng định nghĩa là các hàm mà bạn có thể tạo bằng ngôn ngữ lập trình như C, C++, v.v. rồi thêm chúng vào máy chủ MySQL . Sau khi được thêm vào, chúng có thể được sử dụng giống như bất kỳ chức năng nào khác.
Vai trò người dùng MySQL là gì?Vai trò là gì? . Quản trị viên có thể gán đặc quyền cho các vai trò giống như cách họ gán đặc quyền cho tài khoản người dùng. an entity that functions as a container or collection of privileges. Administrators can assign privileges to roles in the same way that they assign privileges to user accounts.
Làm cách nào để tạo một hàm do người dùng xác định trong MySQL?Sau đây là cú pháp cơ bản để tạo MySQL User-define function. Đầu tiên, chúng ta cần chỉ định tên của hàm do người dùng định nghĩa mà bạn muốn tạo sau câu lệnh CREATE FUNCTION. Thứ hai, liệt kê tất cả các tham số đầu vào của hàm do người dùng xác định bên trong dấu ngoặc đơn theo sau là tên hàm
Làm cách nào để kiểm tra vai trò người dùng trong MySQL?TỔNG CẤP HIỂN THỊ MySQL . Đầu tiên, chỉ định tên của tài khoản người dùng hoặc vai trò mà bạn muốn hiển thị các đặc quyền đã được cấp trước đó cho tài khoản hoặc vai trò người dùng sau từ khóa FOR. . Thứ hai, sử dụng mệnh đề USING để kiểm tra các đặc quyền liên quan đến vai trò của người dùng |