1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng quản trị cơ sở dữ liệu chương 3 ngôn ngữ SQL

22 329 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 63,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các câu lệnh trong ngôn ngữ SQL được chia thành hai loại:• Các câu lệnh định nghĩa dữ liệu cho phép tạo các thành phần trong CSDL như bảng, cột thuộc tính và các chỉ dẫn.. FROM Xác định

Trang 1

CHƯƠNG III: NGÔN NGỮ SQL

SQL (Structured Query Language) – ngôn ngữ truy vấn có cấu trúc là ngôn ngữ con dữ liệu

quan hệ rất mạnh, dễ sử dụng Hiện nay SQL được được cài đặt trong hầu hết các phần mềm hệ quản trị CSDL như Oracle, Dbase,

Access, Foxpro, SQL server

Trang 2

Các câu lệnh trong ngôn ngữ SQL được chia thành hai loại:

• Các câu lệnh định nghĩa dữ liệu cho phép tạo các thành phần trong CSDL như bảng, cột (thuộc tính) và các chỉ dẫn.

• Các câu lệnh thao tác dữ liệu để lấy về

các mẫu tin (bản ghi) từ cơ sở dữ liệu

Trang 3

3.1 Các câu lệnh định nghĩa

dữ liệu:

Trang 4

Tạo bảng

Câu lệnh tạo bảng có dạng tổng quát:

CREATE TABLE Tablename(FieldName

DataType [Not null], )

Trong đó:

• FieldName là một từ đơn không có

khoảng trống, bắt đầu là chữ cái tiếp theo

là chữ cái (hoa hoặc thường) hoặc chữ số hoặc dấu nối.

• DataType là kiểu dữ liệu

Trang 5

Ví dụ:

CREATE TABLE Sinhvien(Masv

smalliterger, Ho char(18), Ten char(8),

Ngsinh date, Gtinh char(3), Mtinh char(3), Mhuyen char(3), Mlop char(3), Cogiadinh logical)

Trang 6

Thêm một trường mới

ALTER TABLE <Table_Name> ADD [COLUMN]

<New_Field_Name_1> DATATYPE(<width>) … ADD [COLUMN] <New_Field_Name_n>

DATATYPE(<width>)

Thêm vào bảng <Table_Name> các trường mới

có tên là < New_Field_Name_1> … <

New_Field_Name_n> có kiểu dữ liệu là

DATATYPE với độ rộng là <width> một cách

tương ứng

Ví dụ:

ALTER TABLE Sinhvien ADD Nganh char(3) ADD

Ngaynhaphoc date

Trang 7

Xoá bảng

DROP TABLE TableName

Xoá bảng được chỉ định bởi tên (TableName) ra khỏi CSDL

• Ví dụ:

• DROP TABLE SINHVIEN

Trang 8

3.2 Các câu lệnh truy tìm

dữ liệu

Trang 9

Dạng tổng quát của câu lệnh truy

tim dữ liệu có dạng:

SELECT *|[Field1|Expression1 [AS alias1],

Field2| Expression2 [AS alias2], …FieldN|

ExpressionN [AS aliasN]] [ DISTINCT ]

[ FROM Table1 | View1, Table2 | View2,

…,TableN | ViewN]

[ WHERE <Condition_Expression>]

[ GROUPE BY Field1, Field2,…,FieldN]

[ HAVING <Condition_Expression>]

[ ORDER BY <Field_Name| Field_order |

Expression> [ASC | DESC]]

Trang 10

Giải thích ý nghĩa các thành phần

SELECT Xác định, tìm kiếm nội dung thông tin từ các trường:

Dấu “*” hiểu là từ tất cả các trường.

FROM Xác định nguồn thông tin:

Thông tin có thể từ các bảng hoặc các khung nhìn trong danh sách liệt kê

WHERE Xác định điều kiện:

Điều kiện là một biểu thức Boolean, chỉ các bản ghi (bộ|hàng) thoả mãn điều kiện mới được đưa ra

Mẫu câu lệnh thường dùng nhất là:

SELECT *|[Field1|Expression1 [AS alias1], Field2| Expression2 [AS alias2], …FieldN| ExpressionN [AS aliasN]] [DISTINCT]

[FROM Table1 | View1, Table2 | View2,…,TableN | ViewN]

[WHERE <Condition_Expression>]

Trang 11

• GROUPE BY Phân nhóm hoặc gộp nhóm dữ liệu trong bảng:

Có nghĩa rằng các bản ghi (bộ|hàng) có cùng giá trị trường sẽ được gộp thành nhóm, trong quan hệ kết quả ta chỉ thấy các giá trị đại diện của nhóm Chú ý rằng danh sách cột sau mệnh đề GROUPE BY phải bao hàm danh sách trường sau mệnh đề SELECT

• HAVING <Condition_Expression> thường đi kèm với GROUPE BY trong đó biểu thức điều kiện <Condition_Expression>, trong quan hệ kết quả chỉ chứa các hàng thoả điều kiện <Condition_Expression> Trong biểu thức điều kiện (xem…) nếu có chứa toán hạng là một biến trường thì biến trường đó phải có mặt trong danh sách trường sau mệnh đề GROUPE BY

• ORDER BY <Field_List| Field_order | Expression> [ASC | DESC] Khi tìm kiếm thông tin, các thông tin lấy về sẽ được sắp xếp theo giá trị của các cột chỉ ra trong danh sách theo thứ tự tăng nếu dùng ASC, giảm nếu dùng DESC (mặc định là ASC), các giá trị bằng nhau được sắp liên tiếp liền kề nhau Nếu có nhiều trường thứ tự sắp xếp ưu tiên theo danh sách trường từ trái sang phải Nếu trong lệnh có dùng

GROUPE BY việc sắp xếp sẽ chỉ có tác dụng cho từng nhóm được tạo ra bởi GROUPE BY

Trang 12

Câu lệnh SQL với những

tình huống phổ biến

Trang 13

• SELECT * FROM <Table_Name>

Câu lệnh này có nghĩa rằng trả về tất cả các bản ghi với đầy đủ các trường của bảng chỉ ra bởi <Table_Name>.

Ví dụ: SELECT * FROM Sinhvien

• SELECT <Field_List> FROM <Table_Name>

Câu lệnh này có nghĩa rằng trả về tất cả các bản ghi với các trường chỉ ra trong danh sách <Field_List> của bảng chỉ ra bởi <Table_Name>

Ví dụ: SELECT ho, ten, lop, nganh FORM Sinhvien

• SELECT <Field_List> DISTINCT FROM <Table_Name>

Câu lệnh này có nghĩa rằng trả về bản ghi với các trường chỉ ra trong danh sách <Field_List> của bảng chỉ ra bởi <Table_Name> và không có bản ghi (bộ) nào trùng nhau.

Ví dụ: SELECT Tinh, Huyen DISTINCT FROM Sinhvien

Tìm kiếm không điều kiện

Trang 14

Tìm kiếm theo điều kiện

Ví dụ:

SELECT Ho, Ten, Lop FROM Sinhvien WHERE Mtinh BETWEEN

“01” and “03” and nganh IN (“101”,”103”)

trong quan hệ kết quả gồm các cột ho, ten, lop các sinh viên có que

Trang 15

Các câu lệnh truy vấn lồng

Trong câu lệnh truy vấn (chính) thành phần sau HAVING hoặc WHERE ta lại

có một câu lệnh SELECT gọi là câu

lệnh SELECT phụ và ta nói có câu lệnh

SELECT lồng

Trang 16

Biểu thức so sánh sau HAVING hoặc WHERE

của các câu lệnh lồng có thể như sau:

e[ANY | ALL | SOME] (SELECT…)ANY | ALL | SOME] (SELECT…)SELECT…))

trong đó e là biểu thức,  là phép so sánh nào đó, ANY hoặc SOME được hiểu là bất kỳ, ALL là tất cả

Kết quả truy vấn ta sẽ được các mẩu tin của câu lệnh

SELECT chính thoả mãn phép so sánh với bất kỳ (ANY | SOME) hoặc tất cả (ALL) mẩu tin thu được từ câu lệnh SELECT phụ

Ví dụ:

SELECT sobaodanh,hoten,nganh FROM Tuyensinh

WHERE diemtong>= ALL(SELECT diemtong FROM

Tuyensinh)

Câu lệnh trên sẽ cho kết quả là danh sách những thí

Trang 17

e [ANY | ALL | SOME] (SELECT…)NOT] IN (SELECT…)SELECT…))

WHERE (MãsốDA, Sốgiờ)

Trang 18

[ANY | ALL | SOME] (SELECT…)NOT] EXISTS (SELECT…)SELECT…))

Kết quả của truy vấn là những bản ghi có mặt trong kết quả của câu SELECT phụ

Trang 19

Nối nhiều bảng với mệnh đề

INNER JOIN

SELECT … FROM Tablename1 INNER JOIN Tablename2 ON Tablename1.fieldname1 

Tablename2.fieldname2 … [WHERE …]

Câu lệnh này tổ hợp bản ghi từ hai bảng

Tablename1và Tablename2 nếu có giá trị so khớp bởi phép so sánh  các giá trị trên trường fieldname1 của bảng Tablename1 với trường fieldname2 của bảng Tablename2

Trang 20

Ví dụ có hai bảng sau

KHACHHANG

Makhach Hoten Congty

001 Trần Văn Chung Hoàng Hà

002 Nguyễn Tứ Kỳ Đông Đô

003 Lê Hồng Hải Bình Minh

Trang 21

Câu lệnh sau:

SELECT Makhach, Hoten, Congty, Sodonhang FROM Khachhang INNER JOINT Donhang ON Khachhang.Makhach=Donhang.Makhach

sẽ cho kết quả là:

Trang 22

Các câu lệnh cập nhật dữ liệu

INSERT INTO TableName(Field1, Fiel2, Fieldn) VALUES (Val1,

Val2, Valn)

Khi các trường có vị trí cố định thì lệnh nhập có thể viết ngắn gọn:

INSERT INTO TableName VALUES (Val1, Val2, Valn)

Ví dụ:

DELETE FROM <Table_Name> [WHERE <Condition_Expression>]

Xoá bản ghi thoả mãn điều kiện của mệnh đề WHERE của bảng

<Table_Name>

Ví dụ:

UPDATE <Table_Name> SET <Field_Name1=Exp1, Field_Name1=Exp2, … Field_Name1=Exp3> WHERE <Condition_Expression>.

Các trường (sau SET) của những bản ghi thoả mãn <Condition_Expression>

Ngày đăng: 03/12/2015, 00:24

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm