Sử dụng SQL server

Sử dụng SQL server

Insert, Delete, Update Table trong SQL Server Insert, Delete, Update Table trong SQL Server Insert, Delete, Update Table trong SQL Server Insert, Delete, Update Table trong SQL Server Insert, Delete, Update Table trong SQL Server 4.7/5 (116 reviews)

Insert, Delete, Update Table trong SQL Server

Đã đăng 2017-03-25 17:57:10 bởi Kteam
9 bình luận 38156 lượt xem
Insert, Delete, Update Table trong SQL Server 4.7 /5 stars (3 reviews)
 

Dẫn nhập

Như trong bài KHỞI TẠO, XÓA, SỬA TABLE đã đề cập, một Table (Bảng) bao gồm các Column (Trường thuộc tính) và các Record (Bản ghi). Trong đó, các Record chính là dữ liệu đưa vào các Table tương ứng cấu trúc của dữ liệu định sẳn của các Column.

Tuy nhiên, trong quá trình lưu trữ dữ liệu, ta thấy rõ không chỉ lưu trữ mà Table còn cần phát sinh các hoạt động THÊM, XÓA, SỬA DỮ LIỆU với một hay nhiều dữ liệu trong Table. Sau đây, chúng ta sẽ cùng tìm hiểu các thao tác trên.


Nội dung chính

Để theo dõi tốt nhất bài này, bạn nên xem qua các bài:

Trong bài này, chúng ta sẽ cùng nhau tìm hiểu một số vấn đề sau: 

  • Database mẫu
  • Thao tác với dữ liệu bằng giao diện Table.
  • Thao tác với dữ liệu bằng Code.

Database mẫu

Để thao tác tốt với bài này, chúng ta sử dụng database TRUONGHOC sau. Hoặc bạn có thể tự khởi tạo Database có các Table tượng tự để nhớ bài tốt hơn.

--khởi tạo database TRUONGHOC
CREATE DATABASE TRUONGHOC
GO
-- Sử dụng database
USE TRUONGHOC
GO 
-- Tạo bảng HOCSINH
CREATE TABLE HOCSINH
(
	MAHS CHAR(5),
	TEN NVARCHAR(30),
	NAM BIT, -- Column giới tính Nam: 1 - đúng, 0 - sai
	NGAYSINH DATETIME,
	DIACHI VARCHAR(20),
	DIEMTB FLOAT,
)
GO
-- Tạo bảng GIAOVIEN
CREATE TABLE GIAOVIEN
(
	MAGV CHAR(5),
	TEN NVARCHAR(30),
	Nam BIT, -- Column giới tính Nam: 1 - đúng, 0 - sai
	NGAYSINH DATETIME,
	DIACHI VARCHAR(20),
	LUONG MONEY
)
GO
-- Tạo bảng LOPHOC
CREATE TABLE LOPHOC
(
	MALOP CHAR(5),
	TENLOP NVARCHAR(30),
	SOLUONG INT
)
GO

Thao tác với dữ liệu bằng giao diện Table

Thêm/ Sửa/ Cập nhập dữ liệu vào Table (Insert/ Update Record)

Để thêm hoặc sửa dữ liệu bằng giao diện, chúng ta tìm tới Table cần thêm/ sửa > Chuột phải > Edit top 200 rows.

kteam, howkteam, insert, delete, update, table, sql, sql server

Giao diện thêm/sửa dữ liệu trên table hiển thị như sau

  • Tạo một Record mới tại dòng có vị trí dấu * phía trước. Sau khi nhập đủ dữ liệu thành phần cần thiết > Enter.
  • Giá trị mặc định tại các trường thuộc tính ban đầu là NULL
  • Dòng có dấu mũi tên phía trước, biểu thị Record hiện hành bạn đang chọn. Tại đây bạn có thể thêm/sửa một hay nhiều thành phần trong Record.

kteam, howkteam, insert, delete, update, table, sql, sql server

Trong quá trình thêm/ sửa dữ liệu, bạn cần lưu ý nhập dữ liệu theo cấu trúc của kiểu dữ liệu đã chọn trong quá trình khởi tạo Table ( Các kiểu dữ liệu đã giới thiệu trong bài KIỂU DỮ LIỆU TRONG SQL


Xoá dữ liệu trên Table (Delete Record)

Xóa một record

Để xóa một record đã có trong Table, tại record cần xóa > chuột phải > Delete.

kteam, howkteam, insert, delete, update, table, sql, sql server

Hoặc bạn có thể nhấp chuột trái vào phía trước record cần xóa.  > phím Delete. Cửa sổ thông báo xác nhận xuất hiện  > Yes để hoàn tất thao tác xóa một record.

kteam, howkteam, insert, delete, update, table, sql, sql server

Xóa đồng thời nhiều Record

Nếu bạn muốn xóa cùng lúc nhiều Record, nhấp giữ chuột trái vào phía trước Record cần xóa kéo đến hết các record muốn xóa > phím Delete. Tương tự, cửa sổ thông báo yêu cầu xác nhận thao tác xóa.

kteam, howkteam, insert, delete, update, table, sql, sql server


Thao tác với dữ liệu bằng code

Để việc thao tác với dữ liệu bằng code được dễ dàng và nhanh chóng hơn, Kteam khuyến khích bạn dùng công cụ hỗ trợ nhắc lệnh đã được hướng dẫn cài đặt trong bài HƯỚNG DẪN CÀI ĐẶT CÔNG CỤ SQL TOOLBELT.

Một số cấu trúc nhập dữ liệu bằng code cần lưu ý

Như bài KIỂU DỮ LIỆU TRONG SQL đã đề cập, trong quá trình khởi tạo Table, mỗi column được gán một kiểu dữ liệu riêng. Vì vậy, quá trình nhập liệu cũng cần tuân thủ nguyên tắc để dữ liệu nhập vào không bị lỗi. Sau đây là một số cấu trúc nhập liệu cơ bản:

 

 

 


Thêm dữ liệu vào Table (Insert Record)

Cú Pháp:

Thêm Record theo column tùy chọn:

INSERT INTO <Tên Table>

        ( column1, column2, column3, … , columnn, )

VALUES  (

Gợi ký nhập dữ liệu, -- Tên column1 – kiểu dữ liệu tương ứng column1

Gợi ký nhập dữ liệu, -- Tên column2 – kiểu dữ liệu tương ứng column2

Gợi ký nhập dữ liệu, -- Tên column3 – kiểu dữ liệu tương ứng column3

 …        

          )

Thêm Record theo thứ tự cấu trúc mặc định Column:

INSERT INTO <Tên Table>

VALUES  (

Gợi ký nhập dữ liệu, -- Tên column1 – kiểu dữ liệu tương ứng column1

Gợi ký nhập dữ liệu, -- Tên column2 – kiểu dữ liệu tương ứng column2

Gợi ký nhập dữ liệu, -- Tên column3 – kiểu dữ liệu tương ứng column3

 …        

          )

Khi sử dụng công cụ nhắc lệnh, thao tác thêm record > SQL sẽ hiển thị cấu trúc mặc định của dữ liệu mới theo kiểu dữ liệu của column trong Table:

kteam, howkteam, insert, delete, update, table, sql, sql server


Ví dụ: 

Thêm một Record mới vào table HOCSINH theo đúng thứ tự mặc định của Table

--Thêm một Record mới vào Table HOCSINH theo đúng thứ tự mặc định của Table

INSERT dbo.HOCSINH

VALUES  ( 'CS002' , -- MAHS - char(5)
          N'KIM LONG' , -- TEN - nvarchar(30)
          1 , -- NAM - bit
          '19940226', -- NGAYSINH - datetime
          'DONGNAI' , -- DIACHI - varchar(20)
          9.0  -- DIEMTB - float
        )

Lưu ý:

  • Từ khóa INTO có hoặc không đều không gây ảnh hưởng đến cấu trúc lệnh.
  • Dữ liệu nhập liệu cần được lưu tuần tự tương ứng thứ tự column đã chọn.

Xóa dữ liệu trong Table (Delete Record)

Xóa toàn bộ dữ liệu bằng lệnh TRUNCATE và DELETE

Nếu bạn để ý, trong bài KHỞI TẠO, XÓA, SỬA TABLE TRONG SQL; Kteam đã đề cập đến lệnh TRUNCATE để xóa tất cả dữ liệu trong Table với cú pháp :

TRUNCATE TABLE <Tên TABLE>

Trong bài này, Kteam sẽ giới thiệu lệnh DELETE cũng có chức năng xóa tất cả dữ liệu trong Table với cú pháp:

DELETE <Tên TABLE>

Câu hỏi đặt ra là:

Nếu chúng có cùng chức năng, tại sao cần phải sử dụng hai lệnh xóa dữ liệu riêng biệt? Vậy chúng có gì khác nhau? Sự khác biệt đó có ảnh hưởng gì đến thao tác truy vấn của bạn trong SQL. Hãy cùng Kteam tìm hiểu một số khác biệt cơ bản giữa hai lệnh này!

 
kteam, howkteam, operator, insert, delete, update, table, sql server,truncate
kteam, howkteam, operator, insert, delete, update, table, sql server,
kteam, howkteam, operator, insert, delete, update, table, sql server,

Một số toán tử điều kiện

Trong quá trình truy vấn, bạn dễ thấy cần có nhiều hơn một điều kiện cần để truy vấn, vậy để liên kết, kết hợp các điều kiện đó trong SQL, cụ thể trong phần này là ở câu lệnh WHERE chúng ta sử dụng một số toán tử sau:

 

kteam, howkteam, operator, insert, delete, update, table, sql server,
kteam, howkteam, operator, insert, delete, update, table, sql server,

 
Phía trên là các toán tử thường sử dụng trong quá trình truy vấn, ngoài ra bạn có thể tham khảo thêm chi tiết các toán tử khác tại TÀI LIỆU THAM KHẢO từ tutorialspoint.com

Một số ví dụ về xóa dữ liệu có điều kiện

Ở phần này, chúng ta thực hiện một số ví dụ sau để hiểu rõ hơn về cách xóa dữ liệu trong Table. Nhập dữ liệu vào Database TRUONGHOC đầu bài để bạn có thể thao tác dễ dàng hơn với các lệnh truy vấn sau. Dưới đây là database mẫu đã được cập nhập dữ liệu

kteam, howkteam, insert, delete, update, table, sql, sql server

Ví dụ 1: Xóa tất cả dữ liệu trong Table HOCSINH, ta sử dụng lệnh:

DELETE dbo.HOCSINH

Hoặc

TRUNCATE TABLE dbo.HOCSINH

Ví dụ 2: Xóa những giáo viên có lương hơn 5000:

DELETE dbo.GIAOVIEN WHERE LUONG >5000

Ví dụ 3: Xóa những giáo viên có lương hơn 5000 và mã số giáo viên <15

DELETE dbo.GIAOVIEN WHERE LUONG > 5000 AND MAGV < 15

Ví dụ 4: Xóa những học sinh có điểm TB là 1; 8; 9.

DELETE dbo.HOCSINH WHERE DIEMTB IN (1,8,9)

Ví dụ 5: Xóa những học sinh có mã học sinh thuộc danh sách FD001, FD002, FD003

SELECT* FROM dbo.HOCSINH WHERE MAHS IN ('FD002','FD001')

Ví dụ 6: Xóa những học sinh có điểm trong khoảng 1 đến 8

DELETE dbo.HOCSINH WHERE DIEMTB BETWEEN 1 AND 8

Ví dụ 7:  Xóa những học sinh có địa chỉ không phải ở Đà Lạt.

DELETE dbo.HOCSINH WHERE DIACHI NOT LIKE 'DALAT'

Cập nhập dữ liệu trong Table (Update Record)

Cú pháp:

UPDATE <Tên Table>

SET <thuộc tính 1 = giá trị 1>, <thuộc tính 2 = giá trị 2>,…,<thuộc tính n = giá trị n>,

WHERE <điều kiện cập nhập>

Lưu ý:

Nếu bạn không sử dụng WHERE trong lệnh sửa dữ liệu > tất cả các Record trong Table đều bị cập nhập dữ liệu.

Ví dụ minh họa:

Với Table GIAOVIEN ban đầu có dữ liệu như sau

kteam, howkteam, insert, delete, update, table, sql, sql server

Ví dụ 1: Cập nhập Lương của tất cả giáo viên thành 10000

UPDATE dbo.GIAOVIEN SET LUONG = 10000

kteam, howkteam, insert, delete, update, table, sql, sql server

Ví dụ 2: Cập nhập lương của tất cả giáo viên thành 10000 và địa chỉ tại DALAT

UPDATE dbo.GIAOVIEN SET LUONG = 10000, DIACHI ='DALAT'

kteam, howkteam, insert, delete, update, table, sql, sql server

Ví dụ 3: Cập nhập lương của những giáo viên nam thành 1

UPDATE dbo.GIAOVIEN SET LUONG = 1
WHERE Nam='1'

kteam, howkteam, insert, delete, update, table, sql, sql server


Kết

Trong bài này, chúng ta đã biết cách thêm, xóa sửa dữ liệu SQL.

Bài sau, chúng ta sẽ bắt đầu tìm hiểu về KHÓA CHÍNH TRONG SQL.

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.

 



Tài liệu 

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học THÊM, XÓA, SỬA DỮ LIỆU dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên like hoặc +1 Google để ủng hộ Kteam và tác giả nhé! 


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng. 

 

Chia sẻ:
Thảo luận Hỏi và đáp Báo lỗi bài viết
Hủy bỏ   hoặc  
Insert, Delete, Update Table trong SQL Server
rubyintheair 2018-03-08 11:32:51

Nếu mình muốn chọn update giá trị NULL thì như thế nào ạ? Mình thử 3 cách nhưng không được

C1: UPDATE HOCSINH SET TEN = 'Nguyen Van A' WHERE MAHS = ' '

C2: UPDATE HOCSINH SET TEN = 'Nguyen Van A' WHERE MAHS = '  '

C3: UPDATE HOCSINH SET TEN = 'Nguyen Van A' WHERE MAHS IS NULL 

0 bình chọn
Reply
Insert, Delete, Update Table trong SQL Server
cactus_165 2018-02-20 18:57:28

done 

0 bình chọn
Reply
Insert, Delete, Update Table trong SQL Server
muigiosobay 2017-09-23 10:57:00

thầy cho em xin link phần mềm SQL PROMPT như trong video vs ạ và thầy làm video hướng dẫn cài đi ạ

0 bình chọn
Reply
View all 1 comments
Kteam - Howkteam Free Education
huycari97 2017-09-28 09:35:16
https://www.howkteam.com/course/huong-dan-cai-dat/huong-dan-cai-dat-sql-toolbelt-103 có bài hướng dẫn lâu rồi mà bạn :)))
0 bình chọn
Reply
Insert, Delete, Update Table trong SQL Server
Nhật Minh 2017-08-19 07:44:05

cho mình hỏi là sau khi mình viết code như thế này, mình muốn nhập dữ liệu dưới dạng bảng làm như thế nào?

0 bình chọn
Reply
Insert, Delete, Update Table trong SQL Server
LNTA 2017-05-26 10:53:47

Mình chỉ đọc trước phần này, mình chưa thực hành nhưng mình có thắc mắc vầy:

Khi mình insert nhiều record theo cấu trúc mặc định của column, mình cũng phải nhập theo cú pháp như trên thì những cái như --MAHS-char(5), --TEN - nchar(30),... sẽ lặp lại rất nhiều lần. Đôi khi làm mình rối mắt dễ bị nhầm.

Mình có cách nào insert cho nhanh không? Ví dụ chỉ cần nhập những giá trị này

VALUES  ( 'CS002' , N'KIM LONG' , 1 , '19940226',  'DONGNAI' , 9.0  )

0 bình chọn
Reply
View all 1 comments
Kteam - Howkteam Free Education
LNTA 2017-05-26 14:58:25
ờ. mình biết dòi
0 bình chọn
Reply
Insert, Delete, Update Table trong SQL Server
LNTA 2017-05-26 10:36:34

ví dụ như sau khi lọc ra kết quả rồi, mình muốn nó chạy kết quả ra file excel được không nhỉ?

0 bình chọn
Reply
Insert, Delete, Update Table trong SQL Server
13tranvanduong13 2017-04-02 13:10:33
tuyệt vời
1 bình chọn
Reply
Hủy bỏ   hoặc  
Hủy bỏ   hoặc  

Chiến dịch

Kteam - Howkteam Free Education