SQL là gì? SQL là viết tắt của từ Structured Query Language, nghĩa là ngôn ngữ truy vấn cơ sở dữ liệu. Có thể coi SQL là ngôn ngữ chung mà bất cứ hệ thống cơ sở dữ liệu quan hệ (RDBMS) nào cũng phải đáp ứng.

Đọc bài phỏng vấn của ITviec với anh Hồng Minh Trí – người có hơn 7 năm làm việc với SQL để biết đầy đủ về SQL là gì và Những tài liệu học SQL tham khảo cho người mới bắt đầu tìm hiểu về ngôn ngữ SQL.

Xem thêm việc làm SQL Developer trên ITviec

SQL là gì?

Trước khi tìm hiểu SQL là gì, ta cần biết đến các khái niệm cơ bản sau về cơ sở dữ liệu:

  • Cơ sở dữ liệu (Database) là tập hợp dữ liệu có cấu trúc được lưu trữ và truy cập từ hệ thống máy tính.
  • Truy vấn cơ sở dữ liệu được hiểu đơn giản là một “bộ lọc” có khả năng thu thập thông tin từ nhiều bảng trong một hệ cơ sở dữ liệu và thiết lập các các tiêu chí để hệ quản trị cơ sở dữ liệu thích hợp.

SQL là gì? SQL là viết tắt của Structured Query Language, nghĩa là ngôn ngữ truy vấn cơ sở dữ liệu. Có thể coi ngôn ngữ SQL là ngôn ngữ chung mà bất cứ hệ thống cơ sở dữ liệu quan hệ (RDBMS) nào cũng phải đáp ứng, điển hình như: Oracle Database, SQL Server, MySQL… (Còn “SQL Server là gì” sẽ được giải đáp ngay phần sau dưới đây của bài viết nhé.)

Bất kì công ty nào lớn cũng cần xây dựng một hệ thống để lưu trữ cơ sở dữ liệu. Mọi thứ trong cơ sở dữ liệu này sẽ được quy ra thành nhiều bảng, có mối quan hệ với nhau. SQL giúp quản lý hiệu quả và truy vấn cơ sở dữ liệu thông tin nhanh hơn, giúp bảo trì thông tin dễ dàng hơn.

Khi doanh nghiệp lưu trữ thông tin dạng truyền thống như giấy hay file Excel thì sẽ có nhiều rủi ro như bị mất, sửa, xóa… cũng như phải mất rất nhiều thời gian để lục lại hồ sơ. Chưa kể, một số trường hợp sau khi thêm hoặc sửa thông tin, hồ sơ sẽ không còn hợp lệ.

Trong khi, nếu lưu trữ thông tin vào một hệ thống cơ sở dữ liệu, bạn chỉ cần gõ một câu lệnh SQL ngắn là đã có thể trích xuất được thông tin em cần. Việc thêm/xóa/sửa cũng được thực hiện một cách dễ dàng, nhanh chóng.

Để truy vấn cơ sở dữ liệu và lấy dữ liệu từ các bảng này (nhằm tổng hợp thành thông tin hữu ích nào đó), người ta dùng đến SQL thông qua các câu query.

SQL Server là gì?

SQL Server là gì? SQL Server – một phần mềm do Microsoft phát triển vào năm 1989, là hệ thống quản trị cơ sở dữ liệu quan hệ hay còn gọi là RDBMS (Relational Database Management System).

SQL Server được dùng vào việc tạo, duy trì và lưu trữ, phân tích và trích xuất cơ sở dữ liệu theo yêu cầu.

Các phiên bản hiện tại của SQL Server là gì? Hiện nay, Microsoft đang cung cấp các phiên bản SQL Server như sau được thiết kế cho từng đối tượng riêng biệt:

Phiên bản SQL Server

Miêu tả phiên bản SQL Server

SQL Server Enterprise

Phiên bản SQL Server dành cho doanh nghiệp này cung cấp đầy đủ các chức năng với hiệu suất cực nhanh, trực quan hóa thông tin không giới hạn và cho phép người dùng có toàn quyền truy cập thông tin chi tiết về dữ liệu.

SQL Server Standard

Phiên bản SQL Server tiêu chuẩn cho phép người dùng quản lý cơ sở dữ liệu ở mức cơ bản để chạy các ứng dụng và hỗ trợ các công cụ phát triển phổ biến cho on-premise và cloud, phù hợp với các công ty quy mô nhỏ hoặc có nguồn nhân lực IT hạn chế.

SQL Server Web

Phiên bản SQL Server Web là một lựa chọn với chi phí hợp lý dành cho các Web hoster và Web VAP, cung cấp khả năng mở rộng và khả năng quản lý cho các Web properties có quy mô từ nhỏ đến lớn.

SQL Server Developer

Phiên bản SQL Server Developer cho phép developer xây dựng bất kỳ loại ứng dụng nào trên SQL Server. Phiên bản này bao gồm tất cả các chức năng của phiên bản Enterprise, nhưng được cấp phép để sử dụng như một hệ thống phát triển và testing, không phải như một production server.

SQL Server Express

Phiên bản SQL Server Express là phiên bản đơn giản, dễ dùng nhất, thích hợp cho các nhà phát triển phần mềm độc lập và những người mới tìm hiểu về SQL.

Nếu cần các tính năng nâng cao hơn, bạn có thể nâng cấp SQL Server Express lên các phiên bản SQL Server cao cấp hơn dễ dàng.

PL/SQL là gì?

PL/SQL là gì? PL/SQL là viết tắt của Procedural Language/Structured Query Language – một loại ngôn ngữ thủ tục dùng cho Oracle. PL/SQL là một extension (mở rộng) của riêng Oracle.

PL/SQL ra đời để hỗ trợ thêm cho web service. Nếu như SQL có nhiệm vụ truy vấn đến các bảng để trả về dữ liệu thì PL/SQL sẽ thực hiện những công đoạn tiếp theo như: đóng gói kết quả, xử lý cách hiển thị trên giao diện…

Công việc của SQL Developer

Công việc của một SQL Developer tùy thuộc vào yêu cầu của mỗi công ty. Anh Trí chia sẻ,

Về cơ bản, SQL giống như một kỹ năng. Hầu như developer nào cũng sẽ làm việc với SQL dù ít hay nhiều.

Chỉ có ngân hàng hoặc những công ty có hệ thống dữ liệu cực lớn như thì họ mới tuyển developer chuyên làm việc với SQL và chỉ duy nhất SQL mà thôi.

Công việc của một SQL Devloper sẽ:

  • Thường xuyên trích xuất dữ liệu, tổng hợp các báo cáo
  • Phân tích và dự đoán về tình hình tài chính doanh nghiệp
  • Đưa ra kế hoạch hoặc định hướng để cải thiện tình hình tài chính doanh nghiệp

Còn lại, công việc của một SQL cũng sẽ giống như những lập trình viên khác. Anh Trí chia sẻ thêm về công việc hiện tại của anh khi làm theo mô hình Scrum, chia ra làm nhiều Sprint khác nhau:

Mỗi sáng, anh thường họp với văn phòng bên Úc để báo cáo tình hình công việc: Hôm qua đã làm những gì, hôm nay sẽ làm gì tiếp theo, có khó khăn nào cần hỗ trợ không… rồi mới bắt đầu vào công việc chính.

Công việc của anh là giải quyết từng story cụ thể trong từng Sprint mà Scrum Master đã phân bổ cho mọi người. Những story này thường sẽ được chia điểm tùy theo mức độ phức tạp của requirement.

Phía khách hàng cũng có ràng buộc là trong một Sprint, mỗi một developer phải làm ít nhất bao nhiêu point đó, chứ không ít hơn được.

Để giải quyết story, thời gian của anh vẫn xoay quanh việc coding và unit test (test lại các chức năng cơ bản sau khi develop một chức năng nào đó), sau đó bàn giao lại cho Tester kiểm thử requirement.

Thỉnh thoảng, bọn anh cũng sẽ review code chéo cho nhau khi được yêu cầu để đảm bảo mọi người đều có thể cải thiện kỹ năng coding.

Chia sẻ từ anh Hồng Minh Trí về truy vấn cơ sở dữ liệu và SQL
Ngoài giờ làm, anh Trí có sở thích chụp ảnh và đi du lịch đây đó

Những tố chất nên có khi làm SQL là gì?

Theo anh Trí, một người muốn làm về SQL thì nên sở hữu 3 tố chất sau đây:

  • Thứ nhất, nên có tư duy lập trình cơ bản:

Khi có tư duy lập trình, có nền tảng học về IT tại trường đại học rồi thì bạn sẽ làm quen với SQL rất nhanh. Về cơ bản, các ngôn ngữ lập trình chỉ khác nhau về cú pháp còn bản chất hay logic thì khá tương đồng.

Tuy nhiên, anh Trí cũng chia sẻ thêm rằng điều này cũng không phải yếu tố bắt buộc vì anh thấy có nhiều bạn học kinh tế nhưng chuyển qua học và làm SQL cũng “ổn áp”.

  • Thứ hai, cần có khả năng tiếng Anh:

Theo anh Trí, việc học tiếng Anh có nhiều lợi ích:

  1. Hầu hết các tài liệu học SQL hay đều được viết bằng tiếng Anh. Có nhiều bài được dịch sang tiếng Việt nhưng vẫn chưa thật sự “chuẩn” và dễ hiểu.
  2. Khi làm việc trong môi trường công ty nước ngoài, việc phải giao tiếp, tham dự các cuộc họp với người nước ngoài là chuyện đương nhiên nên khả năng tiếng Anh tốt sẽ là một lợi thế khi làm việc.

Nói về kinh nghiệm học tiếng Anh của mình thì anh chia sẻ rằng anh chủ yếu học qua trung tâm. Anh thực hành nói chuyện với thầy cô người bản xứ, làm bài tập về nhà, coi phim không phụ đề trên Youtube, cứ nghe đi nghe lại nhiều lần.

  • Thứ ba, cần có tính cẩn thận và tỉ mỉ:

Làm việc với dữ liệu mà sai một ly là đi một dặm.

Anh Trí khuyến khích người mới làm về SQL nên thường xuyên đọc lại log server để biết được nguyên nhân sâu xa gây phát sinh lỗi. Biết được nguyên nhân thì lần sau mới tránh lặp lại lỗi tương tự.

Xem thêm việc làm SQL Developer trên ITviec

Lộ trình sự nghiệp khi theo SQL là gì?

Cá nhân anh Trí thấy SQL Developer nói riêng, và Database Developer nói chung, có thể phát triển theo 2 hướng phát triển:

  • Với những ai có thiên hướng kỹ thuật:

Bước tiếp theo thì bạn có thể phấn đấu để trở thành Data Architect – người thiết kế ra cơ sở dữ liệu cho doanh nghiệp. Muốn làm Data Architect thì yêu cầu bắt buộc là phải nắm rõ được hệ thống trước đã nhé.

Ngoài ra, Data Scientist cũng là vị trí đáng cân nhắc. Ngoài kiến thức về SQL, em còn phải biết về xác suất thống kê và ngôn ngữ lập trình khác, thường là Python.

Anh nhận định Data Scientist là hướng đi khá hay và tiềm năng, không chỉ với mảng database mà còn với ngành IT nói chung.

  • Với những ai có thiên hướng về quản lý:

Những SQL Developer phát triển theo hướng quản lý thì có thể làm Business Analyst hoặc Project Manager.

Đọc thêm: Công việc của Business Analyst là gì? Kỹ năng cần thiết để trở thành Business Analyst?

Tài liệu học SQL tham khảo

Nếu bạn muốn tìm đọc sách về SQL là gì thì anh Trí gợi ý những tài liệu học SQL sau đây sẽ phù hợp với người mới bắt đầu:

  • SQL For Dummies: Hướng dẫn cách sử dụng SQL để xây dựng hệ thống quản lý cơ sở dữ liệu, thiết kế database, truy xuất thông tin khi cần…

Còn nếu muốn tìm hiểu riêng về Oracle SQL (cụ thể là PL/SQL), anh gợi ý như sau:

  • Oracle PL/SQL For Dummies: Giải đáp tất tần tật các câu hỏi của những người mới bắt đầu về PL/SQL, kèm hướng dẫn thực hành cụ thể.
  • Oracle PL/SQL Programming: Người đọc sẽ hiểu hơn về lập trình PL/SQL và có những kiến thức nhất định về cách làm việc hiệu quả với PL/SQL thông qua các ví dụ minh họa.
  • Learn About Oracle Database: Không thể bỏ qua trang chủ của Oracle với rất nhiều các kiến thức liên quan đến SQL, PL/SQL và Oracle Database.

Tham khảo thêm: 50 câu phỏng vấn SQL thường gặp

SQL Developer trong ngành IT nói gì?

Anh Minh Trí chia sẻ về 3 lưu ý dành cho SQL Developer nhưng không ai dạy bạn cả:

  • “SQL sẽ không bao giờ chết”

Anh Trí chia sẻ rằng,

Anh thấy SQL ra đời rất lâu đời rồi và anh nhận định là SQL sẽ không bao giờ chết.

Hầu hết các ngân hàng, công ty tài chính lớn đều đang sử dụng SQL để phục vụ cho hệ thống quản trị cơ sở dữ liệu Oracle. Mà em biết rồi đó, cái gì họ đã đầu tư nhiều tiền thì rất ít khi họ muốn thay đổi.

Tuy nhiên, thực tế thì mình học cái gì cũng vậy, nên nhìn ra thị trường và tiên đoán xem ngành mình đang làm có còn chỗ đứng trong 5-10 năm nữa hay không, có còn phát triển được nữa hay không.

Nên mình có thể linh hoạt đáp ứng được xu thế của thị trường vì thị trường không thể đứng im mãi một chỗ được. Nên anh cũng khẳng định rằng các ngôn ngữ truy vấn cơ sở dữ liệu khác rất cần thiết cho developer.

Đọc thêm bài viết: “Tôi không muốn học ngôn ngữ truy vấn rác nào khác, ngoài SQL” – Erik Bernhardsson

  • Câu query có chạy tốt hay không phụ thuộc vào dữ liệu ở mỗi môi trường

Anh Trí kể về một trong những sai lầm mà anh đã từng mắc phải trong quá trình làm việc,

Anh nhớ trước đây có một câu query anh viết chưa thực sự tối ưu nên anh quyết định thêm Oracle hint (diễn giải dùng để hướng dẫn Oracle chạy theo ý mình) thì thấy code chạy nhanh hơn hẳn.

Ỷ y là code của mình ngon rồi, cool rồi, anh đưa lên môi trường UAT (User Acceptance Testing). Đây là môi trường để mình test trước khi demo cho khách hàng.

Lúc này, những nhân viên ở các phòng ban khác cùng truy xuất vào câu query của anh để test thử thì bị treo, bị đơ toàn tập.

Sau khi tìm hiểu, anh phát hiện nguyên nhân bị lỗi nằm ở chính cái hint mà anh đã thêm vào. Nó chỉ chạy tốt trong môi trường development – nơi chỉ có 1 user là anh đang làm việc. Còn ở môi trường như UAT – nơi có nhiều user hoạt động cùng lúc thì nó lại chạy rất chậm.

Chính về thế, SQL Developer nên nhớ là câu query có chạy tốt hay không còn phụ thuộc vào dữ liệu ở mỗi môi trường. Không nên dựa hoàn toàn vào môi trường development. Dữ liệu ở môi trường này ít hơn hẳn so với môi trường production.

Kinh nghiệm của anh là nên chủ động test tất cả các trường hợp có thể xảy ra trên nhiều môi trường nhất có thể. Không nên thụ động, không chờ Tester la làng thì mới bắt tay vào sửa.

  • Đi làm và đi học sẽ rất khác nhau

Có một sự thật ai cũng biết nhưng cũng cần phải nhắc lại đó là đi học và đi làm là hai môi trường hoàn toàn khác nhau.

Anh Trí kể về câu chuyện của bản thân khi đi đến với “phát hiện” này:

Khi học ở trường, anh phải tự thiết kế ra cơ sở quản lý dữ liệu riêng, phục vụ cho đề án chứ không có cơ sở quản lý dữ liệu thực tế của doanh nghiệp để thực hành. 

Anh không biết một hệ thống lớn sẽ hoạt động ra sao, chưa được tiếp xúc với performance issue, không biết câu query của mình sẽ chạy nhanh hay chậm khi đưa vào môi trường có lượng dữ liệu lên đến hàng trăm GB…

Rồi đó, đi làm mới nhận ra thực tế phũ phàng. Câu query của mình không hiệu quả, không trích xuất được đúng dữ liệu mình cần.

Cảm ơn anh Trí vì những chia sẻ rất chân thật và hữu ích!

Tiểu sử:

Anh Hồng Minh Trí tốt nghiệp đại học Huflit ngành Software Engineering năm 2011. Anh đã từng làm việc cho rất nhiều công ty như FE Credit, Cosatech, BPC Banking Technologies, Amaris và hiện là PL/SQL Developer ở Hansen Technologies.

Tính đến nay, anh Trí đã có hơn 7 năm kinh nghiệm làm việc với SQL, PL/SQL cũng như hệ thống quản trị cơ sở dữ liệu Oracle Database.

Robby2

Nếu bạn nghĩ những chia sẻ này có thể giúp ích cho bạn bè hoặc đồng nghiệp, đừng quên nhấn nút Share bên dưới nhé!

Và đừng quên tham khảo việc làm SQL Developer tại ITviec!