Tổng hợp các câu lệnh, cú pháp SQL cơ bản và cách sử dụng có ví dụ chi tiết

0
1636
Tổng hợp các câu lệnh cú pháp SQL cơ bản và cách sử dụng

SQL là ngôn ngữ để sử dụng tạo lập, chỉnh sửa một cơ sở dữ liệu (database). Trong bài viết này mình sẽ giới thiệu cho các bạn những cú pháp, câu lệnh SQL cơ bản, giúp các bạn hiểu, nắm qua về SQL. Các câu lệnh mình giới thiệu tổng hợp từ nhiều nguồn khác nhau, rất mong được các bạn góp ý để bài chia sẻ của mình hoàn thiện hơn.

1. Nhóm câu lệnh khởi tạo

1.1 Cú pháp tạo database

Database là một cơ sở dữ liệu , hay Cơ sở dũ liệu là cách viết khác của database. Database được người dùng tạo ra để lưu trữ, truy suất thông tin cho từng mục đích cụ thể khác nhau. Một Database có thể có nhiều bảng và liên kết với nhau
(Trong bài viết mình có dùng cả hai từ “cú pháp” và “lệnh”, các bạn hiểu hai từ này có nghĩa giống nhau giúp mình nhé)
Cú pháp tạo Database :

create database <Tên database >

Ví dụ:

create database quanlytaisan

Ở ví dụ trên, khi chạy sẽ tạo ra database có tên “quanlytaisan

Note: Các từ khóa trong câu lệnh không phân biệt chữ hoa hay chữ thường, bạn có thể viết toàn bộ bằng chữ thường, toàn bộ bằng chữ hoa hoặc bằng cả chữ thường và chữ hoa. Trong ví dụ trên mình có thể viết thành:

CREATE database quanlytaisan

hai cú pháp trên đều có chung một kết quả như nhau.

1.2 Cú pháp tạo bảng và khai báo cấu trúc bảng

Tạo bảng là cú pháp để tạo ra bảng, còn khai báo cấu trúc bảng là để định nghĩa cấu trúc của bảng như số cột (thuộc tính), kiểu dữ liệu nhập vào, khóa chính hay ràng buộc của bảng .v.v..

Cú pháp tạo bảng:

CREATE TABLE <Tên của bảng>
{ Các câu lệnh định nghĩa cấu trúc bảng}

Ví dụ:

Create table DsPhong{

}

Cú pháp định nghĩa cấu trúc bảng:

a, Cột chọn làm khóa chính (chỉ đối với bảng có một thuộc tính khóa)
Cú pháp:

<name cột> <loại dữ liệu> primary key,

Ví dụ:

MaP char(10) primary key,

lưu ý nhỏ: cuối mỗi câu lệnh trong phần này phải có dấu “, nếu sau câu lệnh đó vẫn còn có câu lệnh định nghĩa cấu trúc khác.
b, Cột bình thường
Cú pháp:

<name cột> <loại dữ liệu> not null,

not null là phần định nghĩa có cho phép ô dữ liệu này được bỏ trống hay không, nếu bạn không viết, thì tức là được phép để trống
Ví dụ:

Tenphong nvarchar(50) not null,

c, Cú pháp định nghĩa khóa chính (đối với bảng có hai thuộc tính khóa trờ lên

Để hiểu được phần khóa này chúng ta cần hiều ý nghĩa của khóa chính
– Khóa chính là thành phần chính của bảng, từ khóa chính này có thể phân biệt được các bộ dữ liệu trong bảng. Ví dụ ta có bảng thông tin cá nhân, lấy số CMND làm khóa chính, dựa vào số CMND sẽ xác định được tất cả các thông tin liên quan. Khóa chính còn là công để liên kết giữa các bảng với nhau. Khóa chính có thể có một hoặc nhiều thuộc tính khóa.
– Thuộc tính khóa là gì?
Thuộc tính khóa là các thành phần dữ liệu để tạo thành khóa chính, ở ví dụ bên trên số CMND sẽ là khóa có 1 thuộc tính. Ví dụ ta có bảng phân phối tài sản, trong bảng gồm có thuộc tính MaP, MaTS, để xác định được tài sản ở từng phòng cần biết thông tin về phòng dựa vào MaP, cần biết thông tin tài sản dựa vào MaTS. Hai thuộc tính vừa kể trên sẽ tạo thành khóa chính.
Cú pháp:

constraint <tên khóa chính> primary key (<thuộc tính 1>,<thuộc tính 2>,<thuộc tính n>),

Ví dụ:
Khóa ngoài là thành phần dùng để liên kết các bảng lại với nhau.
Giả sử trong database quanlytaisan có bảng DsPhong có MaP làm khóa chính, bàng DsTaiSan có MaTS làm khóa chính
Giả sử đã tạo ra bảng PhanPhoi với các thuộc tính MaP, MaTS,…

constraint n1 primary key (MaP,MaTS)

d, Cú pháp định nghĩa khóa ngoài
Cú pháp:

constraint <tên khóa ngoài> foreign key (<thuộc tính khóa>) references <tên bảng liên kết>(<tên thuộc tính khóa>),

Tất cả các bài tập cần tạo bảng có hai thuộc tính khóa thì chắc chắn đều phải định nghĩa khóa ngoài để liên kết các bảng lại với nhau.

Ví dụ:
Vẫn sử dụng bảng và database đang xét phía trên.

constraint n2 foreign key MaP references DsPhong(MaP),
constraint n3 foreign key MaTS references DsTaiSan(MaTS)

2. Thêm dữ liệu vào bảng

Thêm dữ liệu mới vào bảng là phần quan trọng, khi database không có dữ liệu, thì mọi thao tác liên quan đến dữ liệu đểu không có kết quả

Để thêm dữ liệu vào bảng, chúng ta dùng câu lệnh INSERT
Cú pháp:

INSERT INTO <tên bảng>(<danh sách cột>)
VALUES (<danh sách các giá trị>)

Ví dụ:

insert into DsPhong(MaP,TenP,DiaChi)
values('P01','Hanh Chinh','Nha A1')

với ví dụ như trên, chúng ta đã chèn 1 hàng dữ liệu vào bảng DsPhong, có mã phòng là P01, tên phòng là Hanh Chinh, địa chỉ là Nha A1.

3. Lệnh sửa cấu trúc bảng cơ sở dữ liệu – ALTER TABLE

Lệnh ALTER TABLE dùng để thay đổi cấu trúc bảng. Sử dụng ALTER TABLE để sửa hoặc xóa cột trong bảng cũng như các rang

3.1 Thêm cột mới trong bảng

Khi muốn thêm một cột vào một bảng có trước, chúng ta sử dụng lệnh này.
Cú pháp:

ALTER TABLE <tên bảng>
ADD <Tên cột> <Kiểu dữ liệu>

Ví dụ:

ALTER TABLE DsPhong
ADD SoNhanVien real not null

ở ví dụ trên chúng ta đã thêm cột SoNhanVien vao bang DsPhong

3.2 Thêm ràng buộc khóa chính

Trong trường hợp khi tạo bảng chúng ta quên chưa chọn cột làm khóa chính chúng ta có thể sử dụng lệnh này
Cú pháp:

ALTER TABLE <tên bàng>
ADD CONSTRAINT <tên ràng buộc> PRIMARYKEY (danh sách thuộc tinh khóa)

Ví dụ:

ALTER TABLE DsPhong
ADD n1 PRIMARYKEY(MaP)

3.3 Thêm ràng buộc khóa ngoài

Thêm ràng buộc khóa ngoài để có thể liên kết các bảng lại với nhau
Cú pháp:

ALTER TABLE <tên bảng>
ADD CONSTRAINT <tên ràng buộc> FOREIGN KEY (<tên thuộc tính khóa ngoài>) REFERENCES <tên bảng liên kết> (<tên thuộc tính liên kết>)

Ví dụ:

ALTER TABLE PhanPhoi
ADD CONSTRAINT n2 FOREIGN KEY (MaP) REFERENCES DsPhong(MaP)

3.4 Sửa đổi kiểu dữ liệu của cột

Khi sử dụng bảng ta thấy kiểu dữ liệu không hợp lý có thể đổi kiểu dữ liệu của từng cột
cú pháp:

ALTER TABLE <tên bảng>
ALTER COLUMN <tên cột> <kiểu dữ liệu mới
>

Ví dụ:

ALTER TABLE DsPhong
ALTER COLUMN DiaChi char(10)

Ở ví dụ trên, ta đã đổi kiểu dữ liệu của cột DiaChi thành char(10)

3.5 Xóa cột hiện có trong bảng

Khi quản lý ta thấy cột dữ liệu không hợp lý, ta có thể xóa cột trong bảng đi
Cú pháp:

ALTER TABLE
DROP COLUMN <tên cột>

Ví dụ:


alter table DsPhong
drop column DiaChi

3.6 Xóa ràng buộc hiện có trong bảng

Cấu trúc:

ALTER TABLE <tên bảng>
DROP CONSTRAINT <tên ràng buộc>

Ví dụ:

ALTER TABLE PhanPhoi
DROP CONSTRAINT n2

4. Lệnh xóa cấu trúc cơ sở dữ liệu, bảng cơ sở dữ liệu.

4.1 Xóa cấu trúc cơ sở dữ liệu- DROP DATABASE

Lệnh DROP DATABASE dùng để xóa cơ sở dữ liệu, khi xóa cơ sở dữ liệu tất cả các đối tượng trong cơ sở dữ liệu và quyền chỉ định cơ sở dữ liệu đều bị xóa.
Cú pháp:

DROP DATABASE <tên database>


DROP DATABASE tailieu.pro

4.2 Xóa cấu trúc bảng cơ sở dữ liệu – DROP TABLE

Lệnh DROP TABLE dùng để xóa bảng ra khỏi cơ sở dữ liệu, khi xóa bảng, tất cả các thành phần thuộc về bảng đã xóa đểu không thể sử dụng được.
Cú pháp:

DROP TABLE <tên bảng>

Ví dụ:


DROP TABLE DsPhong

với câu lệnh trên đã xóa đi bảng DsPhong khỏi database.

5. Lệnh truy vấn dữ liệu

Câu lệnh SELECT dùng để rút (truy vấn) dữ liệu từ cơ sở dữ liệu, lệnh này cho chúng ta trích dẫn một hàng, hoặc nhiều hàng, một cột hoặc nhiều cột.
Câu lệnh SELECT có ứng dụng phạm vi rất rộng, hầu hết các bài tập đều cần đến câu lệnh này.

Cú pháp thường sử dụng nhất :

SELECT <các kiểu chọn> <danh sách chọn>
FROM <danh sách bảng>
WHERE <điểu kiện>

Các kiểu chọn ở đây có thể là, chọn tất cả các thành phần bảng, chọn từng thành phần muốn, chọn hai cột từ hai bảng khác nhau .v.v. . Danh sách chọn có thể có hoặc không, tùy từng trường hợp mà cách chọn khác nhau.

Ví dụ 1:

SELECT *
FROM DsPhong
WHERE MaP like 'P01'

Ở ví dụ trên chúng ta đã chọn tất cả các cột trong bảng DsPhong, lấy hàng nào có mã phòng là P01

Ví dụ 2:

SELECT DsPhong.*
From DsPhong, PhanPhoi
WHERE DsPhong.MaP=PhanPhoi.MaP and MaTS like 'TS01'

Ở ví dụ 2, chúng ta chọn lấy dữ liệu ở bảng DsPhong truy vấn qua hai bảng DsPhong và PhanPhoi, điều kiện là ở bảng PhanPhoi MaTS phải là TS01, hơi khó hiểu chút nhưng khi sử dụng là biết ngay.

Truy vấn lồng ?

Truy vấn lồng là sử dụng lồng ghép nhiều câu lệnh SELECT khác nhau, các bạn chỉ cần nhìn kĩ ví dụ cụ thể của mình dưới đây là có thể hiểu.


select *from DsPhong
Where MaP IN (select MaP from PhanPhoi where MaTS like 'TS01')

Kết quả thu được sẽ giống hệt với ví dụ 2 ở phần trên. Ở trong ví dụ này mình sử dụng 2 câu lệnh select lồng nhau, từ khóa “IN” là từ khóa để liên kết hai câu lệnh SELECT này, IN có nghĩa là nếu ở bên trong. Trong trường hợp này chọn bộ dữ liệu có MaP nếu MaP ở trong câu lệnh truy vấn thứ 2 ( nếu MaP ở bảng PhanPhoi có MaTS là T01). Tương tự như vậy các bạn cũng có thể truy vấn lồng nhiều bậc hơn nữa.
Có hai từ khóa liên kết thường dùng đó là “IN” và “NOT IN” nghĩa lần lượt là ở trong và không ở trong.

Note về từ khóa “LIKE”

Từ khóa like dùng để so sánh giống nhau giữa hai giá trị nếu chúng là kiểu chữ ( char, nvarchar .v.v.)
Nếu hai giá trị cần so sánh là kiểu số, ta thay “LIKE” thành dấu “=”.
Lưu ý nhó khi sử dụng kiểu chữ để so sánh, ta cần để giá trị trong dấu ‘ ‘

HẾT
Chúc các bạn học tập thành công!

LEAVE A REPLY

Please enter your comment!
Please enter your name here