Nhập liệu

Nhập liệu trong SQL Server
Nhập liệu trong SQL Server

Sau khi thiết kế CSDL, sử dụng T-SQL để định nghĩa CSDL, các bảng và RBTV của nó. Chúng ta sẽ tiến hành nhập liệu. Sau này, khi các bạn xây dựng các ứng dụng, web, api…vv. Có thể chúng ta không làm việc trực tiếp trên SQL Server Management Studio  nữa. Tuy nhiên, những câu lệnh để nhập liệu và cập nhật dữ liệu, sẽ đi theo chúng ta mãi mãi về sau.

Nhập dữ liệu mới

Để nhập dữ liệu mới cho một bảng, chúng ta sẽ có 2 phương án.

Sử dụng giao diện SQL Server Management Studio

Cách này có vẻ không chính thống lắm, nhưng cũng là một phương án tốt trong một vài trường hợp.

""

Sử dụng ngôn ngữ T-SQL

Cú pháp

Lưu ý một chút, là chúng ta có thể sử dụng cú pháp INSERT để nhập liệu cho nhiều đối tượng trong CSDL. Trong phạm vi bài viết, chúng ta sẽ nhập liệu cho bảng thôi. Dưới đây là cú pháp để nhập liệu cho bảng.

Thoạt nhìn, có vẻ câu lệnh này khá phức tạp. Nhưng khi phân tích kỹ, chúng ta sẽ thấy nó hết sức đơn giản. Câu lệnh này gồm 3 phần chính:

  • INSERT INTO table_name: Phần đầu tiên chỉ định bảng dữ liệu chúng ta muốn nhập dữ liệu vào
  • (column_name, [, …n]): Phần này liệt kê danh sách các thuộc tính (cột) chúng ta muốn nhập dữ liệu. Trong một số trường hợp, các thuộc tính được phép rỗng (NULL) tại thời điểm nhập chúng ta chưa xác định được giá trị của nó. Những thuộc tính như vậy có thể bỏ qua. Ví dụ, trong bảng Employee của chúng ta, chỉ có 3 thuộc tính không cho phép NULL – EmployeeId, LastName, FirstName. Trong điều kiện thiếu dữ liệu, chúng ta chỉ cần nhập trước 3 thuộc tính này. Lúc này, phần danh sách các thuộc tính của chúng ta chỉ bao gồm (EmployeeId, LastName, FirstName)
  • VALUES ({ NULL | expression }): bao gồm từ khóa VALUES và danh sách các giá trị tương ứng với thuộc tính

Ví dụ

Đây là một ví dụ nhập dữ liệu vào bảng Genre.

Quá đơn giản đúng không nào. Tuy nhiên, khi thực hiện các câu lệnh nhập liệu, chúng ta có một vào chú ý nhỏ để tránh sai xót.

  • Nhớ chỉ định CSDL thao tác (lệnh USE)
  • Thêm ký tự N trước chuỗi unicode (phía trên ví dụ)

Nhập liệu cho CSDL Chinook

Bạn có thể tạo 1 CSDL, 1 bảng dữ liệu của riêng mình. Để thao tác làm quen với các lệnh nhập liệu.

Để tránh mất thời gian trong việc nhập liệu mình đã chuẩn bị sẵn script hỗ trợ nhập liệu cho CSDL Chinook của chúng ta. Để sử dụng, các bạn có thể làm 1 trong 2 cách sau:

  • Tải file phía trên về với phần mở rộng .sql rồi mở nó lên bằng SQL Server Management Studio. Thực thi (excute) script
  • Tải file về, mặc định trình duyệt sẽ thêm phần mở rộng .txt cho file vừa được tải về. Các bạn mở nó lên bằng text editor. Copy nội dung và paste vào SQL Server Management Studio. Thực thi đoạn mã

Để mọi thứ thực hiện trơn tru, không xuất hiện lỗi. Các bạn nên đọc kỹ bài định nghĩa dữ liệu và đảm bảo đã thực hiện chính xác các đoạn mã mình đã cung cấp trong bài này.

Sau khi thực thi đoạn scipt thành công (không xuất hiện lỗi). Chúng ta có thể kiểm tra dữ liệu trong các bảng bằng cách sử dụng chức năng ‘Select Top 1000 Rows’.

Kiểm tra dữ liệu trên giao diện SSMS
Kiểm tra dữ liệu trên giao diện SSMS

Cập nhật dữ liệu

Thông qua giao diện SQL Server Management Studio

Đối với các table có ít dữ liệu, cách này sẽ chính xác và an toàn hơn. Bạn có thể thao tác giống với các bước ở mục nhập mới dữ liệu sử dụng giao diện SSMS. Thay vì bạn sử dụng dòng trống để thêm dữ liệu. Bạn có thể sửa trực tiếp các giá trị của các dòng dữ liệu. Và nhớ phải lưu lại trước khi thoát, để dữ liệu được cập nhật.

Sử dụng T-SQL để cập nhật

Trong quá trình nhập liệu và sử dụng dữ liệu. Dữ liệu của chúng ta có thể sai xót, có thể lỗi thời. Do đó, cập nhật dữ liệu cũng là một thao tác vô cùng quan trọng. Để cập nhật dữ liệu, chúng ta sử dụng cú pháp.

Câu lệnh cập nhật gồm 3 phần:

  • UPDATE table_name: chỉ định bảng có dữ liệu cần cập nhật
  • SET { column_name = { expression | NULL } } [ ,…n ]: cập nhật giữ kiệu. Phần này bắt đầu bằng từ khóa SET, kế tiếp là các biểu thức gán lại giá trị cho thuộc tính. Nếu có nhiều hơn một thuộc tính cần cập nhật, chúng sẽ được phân cách với nhau bằng dấu phẩy
  • WHERE <search_condition>: Điều kiện tìm kiếm/lọc dữ liệu. Các dòng dữ liệu thỏa mãn mệnh đề này sẽ được cập nhật.

Dưới đây là một ví dụ nhỏ về cập nhật dữ liệu. Mình sẽ đổi Firstname và email của nhân viên có id = 1 trong bảng Employee

Để câu lệnh cập nhật dữ liệu hoạt động một cách chính xác. Các bạn có thể tham khảo thêm về  mệnh đề WHERE.