Breaking News

Thứ Sáu, 8 tháng 4, 2016

Tổng hợp các câu lệnh SQL cần phải nhớ

Tổng hợp các câu lệnh SQL cần phải nhớ

– Trong phần này giới thiệu các từ khóa nâng cao và cách thức sử dụng chúng trong một số Hệ quản trị CSDL . . .

– Cơ sở dữ liệu trong các ví dụ demo có thể tải về tại đây để thực hành: NorthWind
1. SQL SELECT TOP
Mệnh đề SELECT TOP được sử dụng để xác định số lượng Records trả về. Nó rất hữu ích nếu Table có rất nhiều dữ liệu
Cú Pháp
-SQL Server

 2. SQL LIKE and NOT LIKE

Toán tử LIKE
-Được dùng trong mệnh đề WHERE để tìm kiếm một khuôn mẫu quy định trong một cột
Cú Pháp
– Sử dụng kèm theo ký tự  phần trăm “%”
 Ký tự ‘%’ được hiểu là tất cả kèm theo Ký tự xác định như trên
– Sử dụng NOT LIKE để phủ định lại các ví dụ trên

3. SQL Wildcards – Ký Hiệu

– Các ký hiệu này thường được sử dụng kèm với toán tử LIKE để tìm kiếm dữ liệu trọng bảng
Cú Pháp
– Có 3 ký hiệu chính được sử dụng.
%: được hiểu là 1 chuỗi bất kỳ
_: duy nhất một ký tự bất kỳ
[xxxx] : xxx nằm trong khung [] là các chữ cái
EX:
– Sử dụng “_”
 – Sử dụng [xxxx]

 4. SQL IN

Toán tử IN
– Dùng để chỉ định nhiều giá trị trong mệnh đề WHERE.
Cú pháp
 // Lấy ra tất cả records  nếu FirstName có Phi và Huu

5. SQL BETWEEN

Toán tử BETWEEN
– Dùng để lựa chọn các giá trị trong một phạm vi xác định. Các giá trị xác định có thể là số, văn bản hoặc ngày tháng
Cú pháp
 – Ví dụ khác kết hợp với IN

 6. SQL Aliases – Bí Danh

Được dùng:
– Dùng để tạo một tên tạm thời sử dụng cho 1 bảng hoặc 1 colunm
– Có nhiều hơn một Bảng cần dùng trong một truy vấn
– Kết hợp 2 hoặc nhiều colunm với nhau
Cú pháp :
– Dùng Cho Colunm
 – Dùng Cho Table
Ví dụ sử dụng: CSDL Northwind
 Và câu không dùng bí danh:

7. SQL JOIN

Câu lệnh JOIN
– Được sử dụng để kết hợp các hàng từ hai hoặc nhiều bảng. Dựa trên một trường (field) chung giữa chúng
– Different SQL JOINs – Các loại SQL JOIN khác nhau thường sử dụng
Ví dụ sử dụng: CSDL Northwind

7.1 INNER JOIN:

Là loại phổ biến nhất. Dùng để lấy về tất cả các hàng từ nhiều Bảng nếu điều kiện tham gia được đáp ứng


7.2 LEFT JOIN

Hiểu đơn giản là: Lấy ra tất dữ liệu Bảng 1 Và một phần dữ liệu Bảng 2 trùng với Bảng 1 thỏa với yêu cầu được đáp ứng
Nếu Bảng 2 không có dữ liệu nào thỏa với yêu cầu được đáp ứng. Câu lệnh vẫn lấy ra tất cả dữ liệu Bảng 1 và để NULL  giá trị thuộc Bảng 2
Ex:
Mã SQL trên có thể được viết lại như sau tùy vào các chương trình CSDL:

7.3 RIGHT JOIN

Hiểu đơn giản là: Lấy ra tất dữ liệu Bảng 2 Và một phần dữ liệu Bảng 1 trùng với Bảng 2 thỏa với yêu cầu được đáp ứng
Nếu Bảng 1 không có dữ liệu nào thỏa với yêu cầu được đáp ứng. Câu lệnh vẫn lấy ra tất cả dữ liệu Bảng 2 và để NULL  giá trị thuộc Bảng 1
Ex:
– Trong một vài hệ CSDL thì: RIGHT JOIN còn được gọi là RIGHT OUTER JOIN

7.4 FULL JOIN

Lấy ra tất cả dữ liệu Bang 1 và 2. Tuy nhiên nếu Row của Bảng 1 mà không Match ( Trùng lặp / Thỏa mãn điều kiện) với Bảng 2 hoặc ngược lại. Thì Row đó chỉ hiển thị giá trị hoặc Bảng 1 hoặc bảng 2.


8. SQL UNION

Toán Tử UNION
– Dùng để kết hợp 2 hoặc nhiều câu lệnh SELECT
– Dữ liệu lấy ra phải theo quy tắc sau:
Mỗi câu lệnh SELECT phải có số cột bằng nhau, Chung kiểu dữ liệu, Theo thứ tự
Có 2 lệnh được sử dụng là:
UNION: Lấy ra tất cả giá trị nhưng bỏ qua giá trị trùng lặp
UNION ALL: Lấy ra tất cả giá trị.
Ex:
// Kết quả nhận được là một bảng có cột City chứa dữ liệu của cả 2 Bảng trên

 9.  SQL SELECT INTO

Lệnh SELECT INTO
– Dùng để sao chép một Bảng ra một Bảng mới. Có thể sao chép 1 hoặc tất cả Colunm trong Bảng đó
Cú Pháp:

 10. SQL CREATE DATABASE & TABLE

Lệnh Create Database
– Dùng để tạp mới một CSDL
Cú Pháp: CREATE DATABASE New_Database;// Tạo mới CSDL New_Database
Lệnh Create Table
– Dùng để tạo các Bảng mới trong một CSDL
Cú Pháp:
/ Kết quả là một bảng với dữ liệu trống

11. SQL CONSTRAINTS

Constraints – Các ràng buộc
– Dùng để hạn chế các loại dữ liệu nhất định được phép sử dụng trong CSDL
– Các ràng buộc này được tạo ra khi tạo một bảng mới trên hệ CSDL hoặc trong lệnh CREATE TABLE, sau khi tạo bảng với lệnh ALTER TABLE
Các ràng buộc cơ bản:

NOT NULL

UNIQUE

PRIMARY KEY

FOREIGN KEY

CHECK

DEFAULT

// Nhắc lại: Các ràng buộc có thể tùy chỉnh trực tiếp trên hệ CSDL

11.1 NOT NULL

– Ràng buộc NOT NULL được áp dụng cho Colunm để yêu cầu không được để trống giá trị
Ex:

 11.2. UNIQUE

– Ràng buộc này dùng để buộc các giá trị trong 1 cột không được trùng nhau: Ví dụ: Điện Thoại, Email, Account, CMND . . .
Ex:
 – Sử dụng với tuyên bố ALTER, áp dụng khi muốn thêm vào sau khi bảng đã được tạo.
 – Loại bỏ ràng buộc UNIQUE
Như đã nói bạn có thể tùy chỉnh trực tiếp tại hệ CSDL thì có thể sử dụng các lệnh SQL:


11.3. PRIMARY KEY

Ràng buộc Primary Key- Khóa Chính
– Là duy nhất trong mỗi Bảng
– Cột có khóa chính phải có giá trị là duy nhất, không trùng lặp (Giống UNIQUE)
– Cột khóa chính không thể rỗng (NOT NULL)
– Mỗi Bảng cần có 1 khóa chính và tối đa chỉ 1 khóa chính (Có thể không cần dùng khóa chính)

– Dùng với ALTER sau khi đã tạo Bảng


11.4. FOREIGN KEY

Ràng buộc Foreign Key – Khóa Ngoại
– Chính là khóa chính được sử dụng ở Bảng khác
– Dùng để ngăn chặn việc phá hoại liên kết giữa 2 Bảng. (Ràng buộc giữa 2 bảng)
– Giá trị của khóa chính tương đương Khóa ngoại nằm ở Bảng khác, nên việc nhập dữ liệu phải hợp lệ !
Cú Pháp:
– Tạo khóa ngoại của colunm Bảng 1 cho Bảng 2.

– Sử dụng với ALTER


11.5. CHECK

Ràng buộc Check
– Dùng để giới hạn, quy định phạm vi giá trị được phép của một Colunm (Cột)
Ex:

– Sử dụng với ALTER sau khi đã tạo Bảng: ALTER TABLE Persons DROP CONSTRAINT chk_Person

11.6. DEFAULT

Ràng buộc Default
– Dùng để thiết lập giá trị mặc định của một cột
Ví dụ:  GiớiTính: được mặc định là “Nam”, hoặc Email: mặc định là “Null”
– Sau khi thiết lập giá trị sẽ được thêm vào các records mới ngay sau đó
Ex:

– Sử dụng với ALTER sau khi đã tạo Bảng: ALTER TABLE Persons ALTER COLUMN City SET DEFAULT ‘SANDNES’
– Loại bỏ ràng buộc này: ALTER TABLE Persons ALTER COLUMN City DROP DEFAULT

12. SQL CREATE INDEX

Lệnh Create Index
– Dùng để tạo ra chỉ mục (indexes) trong một Bảng
– Nó giống như tạo đầu mục sách trong thư viện vậy
– Cho phép các ứng dụng CSDL tìm ra dữ liệu nhanh chóng mà không cần lọc tất cả Bảng
– Tất nhiên là bạn sẽ không nhìn thấy giá trị Index này, chỉ có ứng dụng sử dụng nó để tăng tốc độ tìm kiếm
– Tuy nhiên một hạn chế của việc sử dụng giá trị Index là tốc độ load  Bảng sẽ chậm hơn ban đầu. Do đó bạn nên sử dụng Index cho cột nào được tìm kiếm thường xuyên
Cú Pháp:

13. SQL DROP & TRUNCATE

Lệnh DROP
– Dùng để xóa Indexes, Table, Database
– INDEX- Xóa chỉ mục ra khỏi Table
Cú Pháp: DROP INDEX TênBảng.TênIndex
– TABLE- Xóa bảng khỏi CSDL: DROP TABLE TênBảng
– DATABASE – Xóa Database: DROP DATABASE TênDatabase
Lệnh TRUNCATE
– Dùng để xóa toàn bộ dữ liệu của Bảng nhưng không xóa Bảng đó: TRUNCATE TABLE TênBảng

14. SQL ALTER

Lệnh Alter
– Dùng để Thêm, Xóa Và sửa đổi kiểu dữ liệu các cột trong Bảng đã tạo
Cú Pháp:

15. SQL AUTO_INCREMENT / IDENTITY / AUTOINCREMENT

Field Auto Increment
– Sử dụng để tự động tăng một số duy nhất khi thêm mới 1 record
+ Với MySQL
– Giá Trị tự động tăng khởi đầu trong MySQL là: 1
để thay đổi dùng lệnh sau: ALTER TABLE Persons AUTO_INCREMENT = 7

15. SQL VIEWS

Bảng ảo – Virtual Table
– Tạo ra một Table ảo từ 1 hoặc nhiều Table Join với nhau
– Ảo nghĩa là không thật, dữ liệu của nó hoàn toàn được chứa từ Table khác.
– Trong 1 views chứa nhiều lệnh Query để tạo ra một Table ảo với dữ liệu mà người dùng cần sử dụng nhất từ các Table khác
– Bạn đã sử dụng Accsess thì Views tương tự như tạo mới Query trong Accsess vậy !!
– Tốc độ truy vấn từ Bảng Views nhanh hay chậm hơn truy vấn trực tiếp vào Table gốc phụ thuộc vào nhiều yếu tố. Không thể nói bên nào nhanh hơn !
– Ưu điểm không thể phủ nhận của Views là sự tiện dụng.
– Dùng che dấu những Colunm dữ liệu quan trọng trong các Bảng. Tạo Views để hạn chế số Colunm,Row được xem, truy cập
Cú Pháp:
Ví dụ với CSDL NorthWind
– Bạn có thể tạo các điều kiện WHERE khác nhau để tạo Views theo mong muốn !
-Thêm một clounm vào Views đã tạo
– Bạn có thể dùng lệnh ALTER
– Xóa một Views: DROP VIEW view_name
–Hết–

Không có nhận xét nào:

Đăng nhận xét

Ads Inside Post

[Title][featuredpost][random][5]

Flickr User ID

Comments system

Disqus Shortname