"Chuyên trang dành cho kỹ thuật viên tin học" CHIA SẺ - KINH NGHIỆM - HỌC TẬP - THỦ THUẬT SQL Server - Part 3 - Overview SQL Language Giới thiệu: SQL Structured Query Language - ngôn ngữ
Trang 1"Chuyên trang dành cho kỹ thuật viên tin học"
CHIA SẺ - KINH NGHIỆM - HỌC TẬP - THỦ THUẬT
SQL Server - Part 3 - Overview SQL Language
Giới thiệu:
SQL (Structured Query Language - ngôn ngữ truy vấn mang tính cấu trúc) là một loại ngôn ngữ máy tính phổ biến để tạo, sửa, và lấy dữ liệu từ một hệ quản trị cơ sở dữ liệu quan hệ Ngôn ngữ này phát triển vượt xa so với mục đích ban đầu là để phục vụ các hệ quản trị cơ sở dữ liệu đối
tượng-quan hệ Nó là một tiêu chuẩn ANSI/ISO
Các từ khóa SQL:
Từ khóa SQL chia thành nhiều nhóm:
1) Lấy dữ liệu
Thao tác sử dụng nhiều nhất trong một cơ sở dữ liệu dựa trên giao dịch là thao tác lấy dữ liệu
thường dùng nhất của ngôn ngữ sửa đổi dữ liệu (tạm dịch) (tiếng Anh: Data Manipulation Language
- DML) Trong việc tạo ra câu truy vấn SELECT, người sử dụng phải đưa ra mô tả cho những dữ liệu
mình muốn lấy ra chứ không chỉ ra những hành động vật lý nào bắt buộc phải thực hiện để lấy ra kết quả đó Hệ thống cơ sở dữ liệu, hay chính xác hơn là bộ tối ưu hóa câu truy vấn sẽ dịch từ câu truy vấn sang kế hoạch truy vấn tối ưu
Những từ khóa liên quan tới SELECT bao gồm:
+ FROM dùng để chỉ định dữ liệu sẽ được lấy ra từ những bảng nào, và các bảng đó quan hệ với
nhau như thế nào
+ WHERE dùng để xác định những bản ghi nào sẽ được lấy ra, hoặc áp dụng với GROUP BY.
+ GROUP BY dùng để kết hợp các bản ghi có những giá trị liên quan với nhau thành các phần tử của
một tập hợp nhỏ hơn các bản ghi
+ HAVING dùng để xác định những bản ghi nào, là kết quả từ từ khóa GROUP BY, sẽ được lấy ra + ORDER BY dùng để xác định dữ liệu lấy ra sẽ được sắp xếp theo những cột nào.
Trang 2Ví dụ sau về việc sử dụng câu lệnh SELECT để lấy danh sách những cuốn sách có giá trị Câu truy vấn này sẽ truy lục tất cả các bản ghi trong bảng tblSach với giá trị của cột Giaca lớn hơn 100 Kết quả sẽ được sắp xếp theo thứ tự tăng dần của các giá trị trong cột Tensach Dấu (*) trong phần select list cho biết tất cả các cột của bảng tblSach sẽ được lấy ra và thể hiện ở kết quả.
SELECT * FROM tblSach WHERE Giaca > 100 ORDER BY Tensach;
Hay dịch nôm nay theo tiếng Việt là:
CHỌN * TỪ tblSach Ở ĐÂU Giaca > 100 XẾP THEO Tensach;
Trong đó dấu * mang ý nghĩa là chọn tất cả những cột có trong bảng tblSach
2) Sửa đổi dữ liệu
Ngôn ngữ sửa đổi dữ liệu (Data Manipulation Language - DML), là môt phần nhỏ của ngôn ngữ, có những thành phần tiêu chuẩn dùng để thêm, cập nhật và xóa dữ liệu delete data
+ INSERT dùng để thêm dữ liệu vào một bảng đã tồn tại.
+ UPDATE dùng để thay đổi giá trị của một tập hợp các bản ghi trong một bảng.
+ MERGE dùng để kết hợp dữ liệu của nhiều bảng Nó được dùng như việc kết hợp giữa hai phần tử
INSERT và UPDATE
+ DELETE xóa những bản ghi tồn tại trong một bảng.
+ TRUNCATE Xóa toàn bộ dữ liệu trong một bảng (không phải là tiêu chuẩn, nhưng là một lệnh SQL
phổ biến)
Trang 33) SQL Injection
Là một cách chèn đoạn lệnh SQL vào để thực hiện việc vượt qua sự kiểm tra của mệnh đề WHERE.
Ví dụ một câu truy vấn lấy tài khỏa người dùng:
SELECT ID, Name FROM Users WHERE Username='JONH' AND Password='1234'
Câu trên chỉ có thể đúng nếu thỏa cặp Usernamevà Password tồn tại trong cơ sở dữ liệu Câu trên có thể viết injection như sau : thay cụm từ JONH thành : ' OR 1=1 or''=' (lưu ý ký tự nháy đơn ') khi đó câu SQL sẽ trở thành :
SELECT ID, Name FROM Users WHERE Username='' OR 1=1 OR''='' AND Password='1234'
Đoạn mã này hoạt động với bất cứ password nào Việc phòng chống SQL Injection cũng không quá khó, chỉ cần chú ý khi viết là có thể chống lại được
4) Môi trường ứng dụng
Câu lệnh SQL được dùng để truy vấn dữ liệu ở các môi trường khác nhau như môi trường Website, chương trình ứng dụng các dữ liệu dùng SQL để truy vấn hoặc thêm bớt được lưu trữ tại một hoặc
Trang 4một tập hợp tác tập tin được gọi là cơ sở dữ liệu Các cơ sở dữ liệu được vận hành bởi các hệ quản
trị cơ sở dữ liệu đây là các phần mềm hay hệ thống được thiết kế để quản trị một cơ sở dữ liệu.
Có rất nhiều dạng cơ sở dữ liệu khác nhau lấy SQL làm nền tảng nhưng phổ biến nhất trên thế giới
hiện nay là Các hệ quản trị CSDL phổ biến được nhiều người biết đến là MySQL, Oracle,
PostgreSQL, SQL Server, DB2, Infomix, v.v.
Phần lớn các hệ quản trị CSDL kể trên hoạt động tốt trên nhiều hệ điều hành khác nhau như Linux, Unix và MacOS ngoại trừ SQL Server của Microsoft chỉ chạy trên hệ điều hành Windows
OK mình vừa trình bày xong phần tìm hiểu về ngôn ngữ SQL
Công ty TNHH đầu tư phát triển tin học GC Com Chuyên trang kỹ thuật máy vi tính cho kỹ thuật viên tin học Điện thoại: (073) - 3.511.373 - 6.274.294 Website: http://www.gccom.net