Tải bản đầy đủ (.pdf) (16 trang)

Học SQL từ con số không

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (298.6 KB, 16 trang )

SQL BASIC
MỤC LỤC
Thuật ngữ .......................................................................................................... 3
Các thao tác (manipulation) .............................................................................. 3
Tạo bảng........................................................................................................ 4
Thêm một hàng vào bảng (Add a row to the table) ...................................... 5
Lệnh SELECT, FROM ................................................................................. 5
Cập nhật dữ liệu bảng ................................................................................... 6
Thay đổi bảng (ALTER TABLE) ................................................................. 6
Xóa các hàng dữ liệu..................................................................................... 7
Truy vấn (query) ............................................................................................... 7
SELECT ........................................................................................................ 8
SELECT DISTINCT ..................................................................................... 9
WHERE ........................................................................................................ 9
Toán tử LIKE .............................................................................................. 10
BETWEEN.................................................................................................. 11
AND ............................................................................................................ 11
OR ............................................................................................................... 12
ORDER BY ................................................................................................ 12
LIMIT.......................................................................................................... 13
Hàm tổng hợp – Aggregate Functions (AS) ................................................... 13
Count ........................................................................................................... 14
Group By ..................................................................................................... 14
Sum ............................................................................................................. 14
Max ............................................................................................................. 15
Min .............................................................................................................. 15
Average ....................................................................................................... 15
Round .......................................................................................................... 15




Thuật ngữ
- Một relational database (cơ sở dữ liệu quan hệ) là một cơ sở dữ liệu mà
tổ chức thông tin thành một hay nhiều bảng. Ở đây cơ sở dữ liệu quan hệ
chứa một bảng.
- Một bảng (table) là một tập hợp của dữ liệu được tổ chức thành các hàng
và cột. Bảng thỉnh thoảng thường được gọi là quan hệ (relations).
- Một cột (column) là một tập giá trị dữ liệu của một kiểu cụ thể.
- Một hàng (row) là một bản ghi đơn trong một bảng.
- Tất cả dữ liệu được lưu trong cơ sở dữ liệu quan hệ là một kiểu dữ liệu
chắc chắn. Một số kiểu thường được sử dụng
o Integer: số nguyên dương hoặc âm
o Text: chuỗi văn bản
o Date: định dạng YYYY-MM-DD
o Real: giá trị số thực

Các thao tác (manipulation)
Ở trong phần này ta sẽ học 6 lệnh thường được sử dụng để quản lý dữ liệu
được lưu trữ trong cơ sở dữ liệu quan hệ.
Một lệnh (statement) là một chuỗi các ký tự mà cơ sở dữ liệu chấp nhận như
một lệnh hợp lệ.
Lệnh

Chức năng

CREATE TABLE

Tạo một bảng mới

INSERT INTO


Thêm một hàng mới vào một bảng

SELECT

Truy vấn dữ liệu từ một bảng

UPDATE

Chỉnh sửa một hàng trong một bảng


ALTER TABLE

Thay đổi một bảng hiện có

DELETE FROM

Xóa các hàng từ một bảng

Tạo bảng

Đoạn mã bên trên là môt lệnh SQL, Một lệnh (statement) là văn bản nhận
dạng cơ sở dữ liệu như một mệnh lệnh có giá trị. Lệnh luôn luôn kết thúc bằng
dấu “;”.
Bây giờ ta phân tích lệnh trên:
- CREAT TABLE: là một mệnh đề. Mệnh đề thực hiện một tác vụ cụ thể
trong SQL. Theo quy ước, mệnh đề được viết in hoa. Mệnh đề cũng
thường được gọi là lệnh
- table_name: đề cập đến tên của bảng mà lệnh đó áp dụng
- (column_1 data_type, column_2 data_type, column_3 data_type) là một

tham số, đây là một danh sách các cột, kiểu dữ liệu, hoặc giá trị được
truyền đến mệnh đề như một đối số. Ở đây tham số là danh sách các cột
và kiểu dữ liệu liên quan.
Cấu trúc của lệnh SQL khác nhau. Số lượng dòng được sử dụng không
quan trọng. Một lệnh có thể được viết hoàn toàn trên một dòng, hoặc chia
thành nhiều dòng nếu nó dễ đọc.
Ví dụ:


Lệnh này tạo một bảng mới trong cơ sở dữ liệu có tên là celebs.

Thêm một hàng vào bảng (Add a row to the table)

Lệnh INSERT chèn một hàng mới vào bảng. Bạn có thể sử dụng lệnh
INSERT khi muốn thêm một bản ghi (record)
- INSERT INTO: là một mệnh đề để thêm một hoặc nhiều hàng cụ thể
- celebs: là tên của bảng mà hàng đó được thêm vào
- (id, name, age): là một định danh tham số cột mà dữ liệu được chèn vào
- VALUES: là một mệnh đề mà cho biết dữ liệu được chèn vào. (1, ‘Justin
Bieber’, 21) là một định danh tham số các giá trị được chèn vào.

Lệnh SELECT, FROM

Lệnh SELECT được sử dụng để lấy dữ liệu từ một cơ sở dữ liệu. Ở đây, lệnh
SELECT trả về tất cả dữ liệu trong cột NAME của bảng celebs.
- SELECT: là mệnh đề cho biết lệnh là một truy vấn (query). Bạn sẽ sử
dụng SELECT bất cứ khi nào bạn truy vấn dữ liệu từ một cơ sở dữ liệu.
- name: cột cụ thể để truy vấn từ dữ liệu
- FROM celebs: tên bảng cụ thể để truy vấn dữ liệu. Trong lệnh này, dữ
liệu được yêu cầu từ bảng celebs.

Ta cũng có thể truy vấn dữ liệu từ tất cả cột trong một bảng với SELECT


‘*’ là ký tự đặc biệt được sử dụng. Nó cho phép ta chọn tất cả cột trong một
bảng mà không cần phải đặt tên cho mỗi một cột. Ở đây tập kết quả (result set)
chứa tất cả các cột trong bảng celebs.
Lệnh SELECT luôn luôn trả về một bảng mới được gọi là result set.

Cập nhật dữ liệu bảng

Lệnh UPDATE chỉnh sửa một hàng trong bảng. Bạn có thể sử dụng lệnh này
khi bạn muốn thay đổi các bản ghi hiện có.
- UPDATE: là mệnh đề để chỉnh sửa một hàng trong bảng.
- celebs: là tên của bảng.
- SET: là một mệnh đề chỉ ra cột được chỉnh sửa
o age: là tên cột mà bạn sẽ cập nhật
o 22: là giá trị mới sẽ được chèn vào cột age.
- WHERE: là mệnh đề chỉ ra những hàng để cập nhật với giá trị cột mới.
Ở đây, hàng 1 trong cột id là hàng sẽ có age được cập nhật thành 22.

Thay đổi bảng (ALTER TABLE)

Lệnh ALTER TABLE thêm một cột mới vào bảng. Bạn có thể sử dụng lệnh
này khi bạn muốn thêm cột vào một bảng.
- ALTER TABLE: là một mệnh đề cho phép bạn thực hiện những thay
đổi cụ thể.


- cebles: là tên của bảng được thay đổi.
- ADD COLUMN: là một mệnh đề cho phép bạn thêm một cột mới vào

một bảng
o twitter_handle: là tên cột mới được thêm vào
o TEXT: là kiểu dữ liệu của cột mới
- NULL: là giá trị đặc biệt trong SQL, thể hiện cho dữ liệu bị mất hoặc
chưa biết. Ở đây, các hàng tồn tại trước khi cột được thêm vào có giá trị
NULL cho twitter_handle.

Xóa các hàng dữ liệu

Lệnh DELETE FROM xóa một hoặc nhiều hàng từ một bảng. Bạn có thể sử
dụng lệnh này khi bạn muốn xóa những bản ghi hiện có.
- DELETE FROM: là một mệnh đề cho phép bạn xóa các hàng từ một
bảng.
- celebs: là tên bảng chúng ta muốn xóa hàng.
- WHERE: là mệnh đề cho phép bạn chọn các hàng bạn muốn xóa. Ở đây,
chúng ta muốn xóa tất cả những hàng ở cột twitter_handle có giá trị
NULL
- IS NULL: là một điều kiện trong SQL, trả về true khi giá trị là NULL,
ngược lại trả về false.

Truy vấn (query)
Trong phần này ta sẽ nói về các lệnh SQL khác nhau để truy vấn một bảng
đơn trong một cơ sở dữ liệu.
Một trong những mục đích cốt lõi của ngôn ngữ SQL là truy hồi thông tin
được lưu trữ trong một cơ sở dữ liệu. Việc này thường được gọi là truy vấn.


Truy vấn cho phép chúng ta giao tiếp với cơ sở dữ liệu bằng việc hỏi các câu
hỏi và tập kết quả trả về liên quan đến câu hỏi. Trong phần này, ta sẽ truy vấn
một cơ sở dữ liệu với một bảng tên là “movies”.

Những mệnh đề hoặc toán tử mà ta sẽ nói đến trong phần này
- SELECT: là mệnh đề bạn sử dụng mỗi khi bạn muốn truy vấn thông tin
từ cơ sở dữ liệu.
- WHERE: là câu lệnh thông dụng cho phép lộc kết quả của truy vấn dựa
trên những điều kiện cụ thể.
- LIKE và BETWEEN: là toán tử đặc biệt có thể được sử dụng trong
mệnh đề WHERE.
- AND và OR: là toán tử đặc biệt mà bạn có thể sử dụng với WHERE để
lộc câu truy vấn có từ 2 điều kiện trở lên.
- ORDER BY: cho phép bạn sắp xếp kết quả của truy vấn theo thứ tự giảm
dần hoặc tăng dần.
- LIMIT: cho phép bạn xác định cụ thể số hàng lớn nhất mà truy vấn trả
về. Toán tử này đặc biệt quan trọng trong những bảng lớn có hàng ngàn
hay thậm chí hàng triệu hàng.

SELECT

Trong phần trước ta biết rằng SELECT được sử dụng khi nào ta muốn truy
vấn dữ liệu từ một cơ sở dữ liệu.
Nhiều cột có thể được truy vấn trong một lần bằng cách phân biệt các cột
bằng dấu ‘,’. Như ở trong câu lệnh trên, tập kết quả chứa cột name và
imdb_rating.


SELECT DISTINCT

SELECT DISTINCT được sử dụng để trả về giá trị duy nhất trong tập kết
quả. Ở đây tập kết quả thiết lập mỗi genre trong bảng movies đúng một lần. Có
thể hiểu là nếu có các hàng trùng nhau thì nó chỉ lấy kết quả một hàng.
- SELECT DISTINCT: quy định cụ thể rằng một truy vấn sẽ trả về giá trị

duy nhất trong một cột cụ thể.
- genre: tên bảng để hiển thị trong tập kết quả
- FROM movies: cho biết tên bảng để truy vấn
Lộc kết quả của một truy vấn là một kỹ năng quan trọng trong SQL. Rất dễ
để nhìn thấy những thể loại phim khác nhau sau dữ liệu được lộc, hơn là quét tất
cả các dòng trong bảng
Những mục tiếp theo sẽ nói về các lệnh khác trong SQL để lộc các kết quả
của một truy vấn.

WHERE

Lênh này lộc tập kết quả để chỉ bao gồm các bộ phim có rating IMDb lớn hơn
8. Vậy nó làm việc như thế nào?
- WHERE: là mệnh đề cho biết bạn muốn lộc tập kết quả để chỉ chứa
những hàng mà điều kiện là đúng.
- imdb_rating > 8: là điều kiện để lộc tập kết quả. Ở đây, chỉ những hàng
với giá trị lớn hơn 8 trong cột imdb_rating sẽ được trả về trong tập kết
quả.


- ‘>’ : là một toán tử. Các toán tử làm cho điều kiện có thể được đánh giá
là đúng hay sai. Những toán tử thường được sử dụng: =, !=, >, <, >=, <=

Toán tử LIKE

LIKE là một toán tử hữu ích khi bạn muốn so sánh những giá trị giống nhau.
Ở đây, ta đang so sánh hai bộ phim cùng tên nhưng được đánh vần khác nhau.
- LIKE: là một toán tử đặc biệt được sử dụng với mệnh đề WHERE để
tìm kiếm những mẫu cụ thể trong một cột.
- name LIKE ‘Se_en’: là một điều kiện đánh giá cột name cho một mẫu

cụ thể.
- Se_en: đại diện một mẫu với ký tự đại diện. ‘_’ nghĩa là bạn có thể thay
bất kỳ ký tự riêng nào ở đây mà không phá vỡ mẫu. Tên Seven và Se7en
là phù hợp
% là một ký tự cá nhân khác có thể được sử dụng với LIKE.

Lệnh này lộc tập kết quả để chỉ bao gồm những phim có tên bắt đầu với ký tự
‘A’.
‘%’ là một ký tự để so trùng không hoặc nhiều ký tự còn thiếu trong mẫu
- A% : so trùng với tất cả tên phim bắt đầu với ‘A’
- %a : so trùng với tất cả tên phim kết thức với ‘a’


Ta có thể sử dụng ‘%’ cả trước và sau một mẫu. Ở lệnh trên, bất kì tên phim
nào có chứa từ ‘man’ sẽ được trả về trong tập kết quả. Chú ý rằng, LIKE không
phân biệt chữ hoa thường, Cả ‘Batman’ và ‘Man Of Steel’ đều xuất hiện trong
tập kết quả.

BETWEEN
Toán tử BETWEEN được sử dụng để lọc tập kết quả trong một miền chắc
chắn. Giá trị có thể là số, text hoặc ngày.

Lệnh này lộc tập kết quả chỉ bao gồm những tên phim giữa chữ cái ‘A’ đến
nhưng không bao gồm chữ cái ‘J’

Trong lệnh này, toán tử BETWEEN được sử dụng để lộc kết quả chỉ bao gồm
những bộ phim nằm giữa năm 1990 cho đên và bao gồm 2000.

AND


Thỉnh thoảng bạn muốn kết hợp nhiều điều kiện trong lệnh WHERE để làm
cho kết quả cụ thể và hữu ích hơn. Một cách làm việc này là sử dụng toán tử
AND
- Year BETWEEN 1990 AND 2000: là điều kiện đầu tiên của mệnh đề
WHERE
- AND genre = ‘comedy’: là điều kiện thứ hai


- AND: là toán tử kết hợp hai điều kiện, cả hai điều kiện phải đúng cho
hàng trả về trong tập kết quả.

OR

Toán tử OR cũng được sử dụng để kết hợp nhiều điều kiện trong một mệnh
đề WHERE. Toán tử OR đánh giá mỗi điều kiện riêng biệt và nếu bất kỳ điều
kiện nào đúng thì hàng được thêm vào tập kết quả.
- WHERE genre = ‘comedy’: là điều kiện đầu tiên của mệnh đề WHERE
- OR year < 1980: là điều kiện thứ 2 của mệnh đề WHERE
- OR: là toán tử lọc tập kết quả để chỉ bao gồm những hàng điều kiện là
đúng. Ở đây, kết quả trả về những phim có thể loại ‘comedy’ hoặc phát
hành trước năm 1980

ORDER BY

Ta có thể sắp xếp kết quả của câu truy vấn sử dụng ORDER BY. Việc sắp
xếp kết quả thường làm cho dữ liệu hữu ích và dễ phân tích hơn.
- ORDER BY: là một mệnh đề cho biết bạn muốn sắp xếp tập kết quả của
một cột cụ thể hoặc theo bảng chữ cái hoặc theo số lượng.
- imdb_rating: là tên của cột sẽ được sắp xếp
- DESC: là từ khóa trong SQL được sử dụng với ORDER BY để sắp xếp

kết quả theo thứ tự giảm dần - descending order (từ cao xuống thấp hoặc


Z  A). Ở đây, nó sắp xếp tất cả phim từ cao nhất xuống thấp nhất theo
IMDb rating.
Ta cũng có thể sắp xếp kết quả theo thứ tự tăng dần – ascending order, sử
dụng từ khóa ASC.

LIMIT

Thỉnh thoảng kết quả lộc thậm chí có thể trả về hàng ngàn hàng trong cơ sở
dữ liệu lớn. Trong những tình huống như thế này việc giới hạn số lượng hàng
trong một tập kết quả sẽ rất quan trọng.
LIMIT là một toán tử cho phép ta chỉ định số lượng hàng tối đa mà tập kết
quả sẽ có. Ở đây, chúng ta xác định rằng các tập kết quả không thể có nhiều hơn
3 hàng.

Hàm tổng hợp – Aggregate Functions (AS)
Trong phần trước chúng ta đã học cách viết các truy vấn để truy hồi thông tin
từ cơ sở dữ liệu. Trong phần này chúng ta sẽ học cách để thực hiện tính toán sử
dụng SQL.
AS tính toán một kết quả duy nhất từ tập kết quả đầu vào. Ví dụ, ta cần tổng
hoặc trung bình cộng của một cột, chúng ta có thể sử dụng AS để tính toán
nhanh chóng kết quả cho chúng ta. Chúng ta sẽ học về nhữn AS khác nhau
trong phần này
Trong phần này, chúng ta sẽ thao tác trên một bảng có tên là fake_apps được
tạo thành từ dữ liệu của ứng dụng di động fake.


Count


Cách tốt nhất để tính toán số hàng trong một bảng là sử dụng hàm COUNT().
Hàm COUNT() là một hàm xem tên một cột như một tham số và đếm số
lượng hàng của cột không phải NULL. Ở đây ta muốn đếm từng hàng vì vậy ta
truyền ‘*’ như một tham số.

Group By

AS thường được hữu ích khi chúng ta tổ chức dữ liệu thành nhóm.
Group By là một mệnh đề trong SQL mà chỉ được sử dụng với AS. Nó được
sử dụng phối hợp với lệnh SELECT để sắp xếp dữ liệu giống hệt nhau thành các
nhóm.
Ở đây, AS của chúng ta là COUNT() và chúng ta truyền price như là một
tham số đến Group By. SQL sẽ tính toán tổng số ứng dụng cho một giá trong
bảng.
Nó thường hữu ích để SELECT cột bạn truyền qua như một tham số đến
Group By. Ở đây, chúng ta chọn price và COUNT(*). Ta có thể thấy rằng các
tập kết quả được tổ chức thành hai cột, nên rất dễ dàng để xem số lượng ứng
dụng tại mỗi mức giá.

Sum


Trong SQL, rất dễ dàng để để tính tổng tất cả các giá trị trong một cột cụ thể
sử dụng SUM().
SUM() là hàm sử dụng tên của cột như một tham số và trả về tổng tất cả giá
trị trong một cột. Ở đây nó tính tổng tất cả các giá trị trong cột downloads.

Max


Ta có thể tính giá trị lớn nhất trong một cột sử dụng MAX()
MAX() là hàm sử dụng tên cột như một tham số và trả về giá trị lớn nhất
trong cột. Ở đây, ta truyền vào tham số downloads vì vậy nó sẽ trả về giá trị lớn
nhất trong cột này.

Min

Tương tự như hàm MAX(). Nhưng là tính giá trị nhỏ nhất trong cột.

Average

Lệnh này trả về trung bình số lượng tải xuống của một ứng dụng trong cơ sở
dữ liệu. SQL sử dụng hàm AVG() để tính toán nhanh chóng giá trị trung bình
của một cột cụ thể.
Hàm AVG() làm việc bằng cách sử dụng tên cột như một tham số và trả về
giá trị trung bình của cột.

Round

Mặc định, SQL cố gắng để có được các giá trị càng chính xác càng tốt mà
không làm tròn. Ta có thể thiết lập để kết quả dễ đọc hơn bằng cách sử dụng
hàm ROUND().


Hàm này sử dụng tên cột và một số nguyên như một đối số. Nó làm tròn giá
trị trong cột với số thập phân theo quy định của số nguyên. Ở chúng ta làm tròn
AVG(downloads) với 2 chữ số thập phân. SQL đầu tiên tính giá trị downloads
trung bình sau đó làm tròn kết quả.




Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×