NGÔN NGỮ THAO TÁC DỮ LIỆU (DML)

Ngày đăng: 14/11/2020   -    Cập nhật: 14/11/2020


Sau khi hoàn tất việc khởi tạo bảng như đã giới thiệu trong bài CREAT TABLE. Nhưng nếu chỉ có bảng không thôi thì không có ý nghĩa gì cả - một bảng có giá trị là bảng có đầy đủ dữ liệu cần thiết cho quá trình xây dựng và phát triển phần mềm.


Nhưng làm sao để đưa được dữ liệu vào bảng đó là nội dung chính của phần này mà mình muốn chia sẻ với bạn - Ngôn ngữ thao tác dữ liệu (DML)


[Một số bảng, thuộc tính, dữ liệu trong các ví dụ không có sẵn. Bạn hãy thêm vào để kiểm tra nhé.]


1. Lệnh INSERT


INSERT là một lệnh trong 4 tuỳ chọn của DML dùng để thao tác với dữ liệu trong SQL. INSERT dùng để thêm một dòng dữ liệu vào bảng.


INSERT có 2 loại cú pháp tương ứng với 2 cách sử dụng :



  • Không chỉ ra tên cột :


INSERT INTO <tên bảng> VALUES (giá trị 1, giá trị 2, …, giá trị n);


  • Chỉ ra tên cột :


INSERT INTO <tên bảng> (cột 1, cột 2, …, cột n) VALUES (giá trị 1, giá trị 2, …, giá trị n);


Ví dụ: Thêm dữ liệu vào bảng CONGTY theo cả hai cách trên (có thể sử dụng lại bảng đã tạo ở phần trước hoặc tự tạo mới)



INSERT INTO CONGTY (MCT, tencty, nuoc) VALUES (1'Air France''Phap');
INSERT INTO CONGTY VALUES (3'Qantas''Uc');
INSERT INTO CONGTY VALUES (2'British Airways''Anh');
INSERT INTO CONGTY VALUES (4'Easy Jet''EU');
 


Khi dùng INSERT mà không chỉ ra tên cột cụ thể, các giá trị được thêm vào phải sắp xếp đúng thứ tự như trong lúc tạo bảng và tuân thủ các ràng buộc nếu có.


Nếu lệnh:




INSERT INTO CONGTY VALUES (3'Qantas''Uc');
 


Được viết như thế này (Các giá trị của cột không đúng thứ tự):



INSERT INTO CONGTY VALUES ('Qantas''Uc'3);
 


Thì MS SQL Server sẽ báo lỗi, chưa kể đến các ràng buộc riêng về MCT và tên nước.

2. Lệnh UPDATE


Lệnh UPDATE là một trong 4 tuỳ chọn của DML dùng để thao tác với dữ liệu trong SQL. UPDATE dùng để sửa nội dung của một hoặc nhiều dòng dữ liệu.


Cú pháp lệnh UPDATE:



UPDATE <tên bảng> SET cột1 = giá trị 1, cột2 = giá trị 2, …, cột n = giá trị n
[ WHERE <điều kiện> ]


Trong trường hợp câu lệnh UPDATE không có WHERE thì dữ liệu của tất cả các dòng sẽ được cập nhật. Thứ tự các cột = giá trị không ảnh hưởng đến kết quả chung của câu lệnh.


Nếu một bảng có nhiều cột (n cột) thì chúng ta có thể cập nhật đến n-1 giá trị và chỉ giữ lại một giá trị làm mốc để đạt điều kiện.


Ví dụ:




UPDATE CONGTY SET tencty = 'VIETNAM AIRLINE'
WHERE tencty ='Easy Jet';

UPDATE CONGTY SET tencty = 'VIETNAM AIRLINE', nuoc = 'Việt Nam'
WHERE MCT = 4;

UPDATE CONGTY SET tencty = 'VIETNAM AIRLINE', MCT = 100
WHERE nuoc = 'Uc';
 


Trường hợp MCT được đặt ràng buộc là kí tự số, nhưng nếu bạn muốn cập nhật giá trị MCT = MA100 thì MS – SQL sẽ báo lỗi ngay.



UPDATE CONGTY SET tencty = 'VIETNAM AIRLINE', MCT = MA100
WHERE nuoc = 'Uc'-- Invalid column name 'MA100'.
 


Đến đây, bạn cần lưu ý với lệnh INSERT và lệnh UPDATE về vấn đề ràng buộc hoặc điều kiện được thiết lập lúc tạo bảng hoặc sự khác biệt về kiểu dữ liệu cũng là vấn đề dễ phát sinh lỗi.

3. Lệnh DELETE


Lệnh DELETE là một trong 4 tuỳ chọn của DML dùng để thao tác với dữ liệu trong SQL. DELETE dùng để xoá nội dung của một hoặc nhiều dòng dữ liệu.


Cú pháp :



DELETE FROM <tên bảng> [ WHERE <điều kiện> ]


Trong trường hợp câu lệnh DELETE không có WHERE thì dữ liệu của tất cả các dòng sẽ bị xoá. (BÙM!!! một cái bạn có thể mất việc, bồi thường hoặc ngồi tù nếu làm “bay hơi” dữ liệu trọng yếu của doanh nghiệp 😊). Thế nên, hãy cẩn thận khi xóa bất cứ thứ gì trên Database)


Ví dụ:




DELETE FROM CONGTY;
DELETE FROM CONGTY WHERE tencty = 'Easy Jet';
 


Ngoài ra, điều kiện trong WHERE có thể kết hợp nhiều giá trị khác nhau – có thể áp dụng cho bất cứ câu lệnh nào có WHERE thông qua toán tử ANDOR hoặc các phép toán khác. (Phần này chúng ta sẽ tìm hiểu sâu hơn ở phần sau)


Ví dụ:




DELETE FROM CONGTY WHERE tencty = 'Easy Jet' AND nuoc = 'EU';
DELETE FROM CONGTY WHERE tencty = 'Janpan AriLine' OR nuoc = 'Nhật Bản';
 


Nhìn chung, ở mức độ đơn giản – CSDL có ít bảng và ít ràng buộc liên kết thì câu lệnh DELETE dễ sử dụng hơn INSERT và UPDATE nhưng nguy hiểm và mang tính chất phiêu lưu hơn -> đòi hỏi sự tập trung và tỉ mỉ cao độ.


Trong một số trường hợp các nhiều bảng và có ràng buộc khoá ngoại với nhau, việc xoá dữ liệu của một bảng có liên kết có thể phát sinh lỗi – dòng muốn xoá có khoá ngoại là khoá chính của một bảng khác -> Bạn cần phải xác định được đâu là trường gây lỗi, sau đó tìm và xoá dữ liệu ở bảng mà trường đó là khoá chính, rồi quay lại bảng hiện tại.


Trong SQL hay lập trình các phần mềm, giai đoạn xoá này chỉ cách nhau một dấu chấm phẩy nên mắt thường chúng ta không cảm nhận được quá trình phức tạp bên trong.


Tổng kết


Ba lệnh INSERT, UPDATE, DELETE trong SQL có tác dụng trực tiếp làm thay đối dữ liệu của bảng – do đó cũng đóng vai trò cực kỳ quan trọng trong quá trình tương tác với dữ liệu của các lập trình viên.


Một sự hiểu biết chưa tới có thể mang đến thảm họa không thể lường trước được, dữ liệu là vô cùng quan trọng – là tài sản, là mạng sống của các doanh nghiệp nên mọi thao tác có ảnh hưởng trực tiếp cũng đòi hỏi sự cẩn thận hết mức có thể.


Mặc dù không phải là Database Admin (DBA) hay một chuyên gia dữ liệu, nhưng lập trình viên như chúng ta nên thận trọng từng câu lệnh một khi gặp phải các chuỗi truy vấn như thế này.


---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0914939543
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
 
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python
Bình luận Facebook
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!