Chương 5: Tìm Hiểu Về SQL (Ngôn Ngữ Truy Vấn Cấu Trúc)

Chuyên khảo phân tích Ctt102 chuong 5 sql, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu tiếp theo., phục vụ nghiên cứu và ứng dụng thực tiễn

Trường đại học

Trường Đại Học

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

tài liệu

2023

154
4
0

Phí lưu trữ

45 Point

Mục lục chi tiết

5. CHƯƠNG 5: SQL (Structured Query Language)

5.1. Giới thiệu

5.2. Định nghĩa dữ liệu

5.3. Truy vấn dữ liệu

5.4. Cập nhật dữ liệu

5.5. Khung nhìn (view)

5.6. Chỉ mục (index)

Tóm tắt

I. Hướng Dẫn Chi Tiết Về SQL Tổng Quan Về Ngôn Ngữ ĐSQH

SQL (Structured Query Language) là ngôn ngữ được sử dụng để quản lý và truy vấn cơ sở dữ liệu. Được phát triển bởi IBM vào những năm 1970, SQL đã trở thành tiêu chuẩn cho việc tương tác với cơ sở dữ liệu. Ngôn ngữ này cho phép người dùng thực hiện các thao tác như truy vấn, cập nhật và quản lý dữ liệu một cách hiệu quả.

1.1. Định Nghĩa SQL và Lịch Sử Phát Triển

SQL, ban đầu được gọi là SEQUEL, đã được ANSI công nhận và phát triển thành các chuẩn như SQL-86, SQL-92 và SQL-99. Ngôn ngữ này cung cấp các lệnh để định nghĩa và thao tác dữ liệu.

1.2. Các Thành Phần Chính Của SQL

SQL bao gồm các thành phần như Định Nghĩa Dữ Liệu (DDL), Thao Tác Dữ Liệu (DML) và Định Nghĩa Khung Nhìn. Mỗi thành phần có vai trò quan trọng trong việc quản lý cơ sở dữ liệu.

II. Những Thách Thức Khi Sử Dụng SQL Trong Quản Lý Dữ Liệu

Mặc dù SQL rất mạnh mẽ, nhưng người dùng thường gặp phải một số thách thức khi sử dụng. Các vấn đề như hiệu suất truy vấn, quản lý dữ liệu lớn và bảo mật thông tin là những vấn đề cần được giải quyết.

2.1. Vấn Đề Hiệu Suất Truy Vấn

Khi làm việc với cơ sở dữ liệu lớn, hiệu suất truy vấn có thể bị ảnh hưởng. Việc tối ưu hóa câu lệnh SQL là cần thiết để đảm bảo tốc độ truy xuất dữ liệu.

2.2. Quản Lý Dữ Liệu Lớn

Quản lý dữ liệu lớn đòi hỏi người dùng phải có kiến thức về các phương pháp tối ưu hóa và cấu trúc dữ liệu để tránh tình trạng tràn bộ nhớ.

III. Phương Pháp Tối Ưu Hóa SQL Để Nâng Cao Hiệu Suất

Tối ưu hóa SQL là một phần quan trọng trong việc cải thiện hiệu suất truy vấn. Các phương pháp như sử dụng chỉ mục, tối ưu hóa câu lệnh và phân vùng dữ liệu có thể giúp tăng tốc độ truy xuất.

3.1. Sử Dụng Chỉ Mục Để Tăng Tốc Độ Truy Vấn

Chỉ mục giúp tăng tốc độ truy vấn bằng cách giảm thiểu số lượng bản ghi cần phải quét. Việc tạo chỉ mục cho các cột thường xuyên được truy vấn là rất quan trọng.

3.2. Tối Ưu Hóa Câu Lệnh SQL

Việc viết câu lệnh SQL một cách tối ưu có thể giúp giảm thiểu thời gian thực thi. Sử dụng các phép toán hợp lý và tránh lặp lại các truy vấn không cần thiết là những cách hiệu quả.

IV. Ứng Dụng Thực Tiễn Của SQL Trong Quản Lý Dữ Liệu

SQL được ứng dụng rộng rãi trong nhiều lĩnh vực như quản lý doanh nghiệp, phân tích dữ liệu và phát triển phần mềm. Các ứng dụng này giúp tổ chức quản lý và phân tích dữ liệu một cách hiệu quả.

4.1. Quản Lý Doanh Nghiệp Với SQL

Nhiều doanh nghiệp sử dụng SQL để quản lý thông tin khách hàng, sản phẩm và doanh thu. Điều này giúp họ đưa ra quyết định dựa trên dữ liệu chính xác.

4.2. Phân Tích Dữ Liệu Với SQL

SQL cho phép phân tích dữ liệu một cách nhanh chóng và hiệu quả. Các công cụ phân tích dữ liệu thường tích hợp SQL để truy xuất và xử lý thông tin.

V. Kết Luận Tương Lai Của SQL Trong Quản Lý Dữ Liệu

SQL sẽ tiếp tục đóng vai trò quan trọng trong quản lý dữ liệu trong tương lai. Với sự phát triển của công nghệ, SQL sẽ được cải tiến để đáp ứng nhu cầu ngày càng cao của người dùng.

5.1. Xu Hướng Phát Triển SQL

Các xu hướng như tích hợp AI và machine learning vào SQL sẽ giúp nâng cao khả năng phân tích và xử lý dữ liệu.

5.2. Tầm Quan Trọng Của SQL Trong Kỷ Nguyên Dữ Liệu

Trong kỷ nguyên dữ liệu, SQL sẽ vẫn là công cụ chính để quản lý và phân tích thông tin, giúp các tổ chức đưa ra quyết định dựa trên dữ liệu.

15/07/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 5 SQL (Structured Query Language) Nội dung  Giới thiệu  Định nghĩa dữ liệu  Truy vấn dữ liệu  Cập nhật dữ liệu  Khung nhìn (view)  Chỉ mục (index) 2 Giới thiệu  Ngôn ngữ ĐSQH - Cách thức truy vấn dữ liệu - Khó khăn cho người sử dụng  SQL (Structured Query Language) - Ngôn ngữ cấp cao - Người sử dụng chỉ cần đưa ra nội dung cần truy vấn - Được phát triển bởi IBM (1970s) - Được gọi là SEQUEL - Được ANSI công nhận và phát triển thành chuẩn  SQL-86  SQL-92  SQL-99 3 Giới thiệu (tt)  SQL gồm - Định nghĩa dữ liệu (DDL) - Thao tác dữ liệu (DML) - Định nghĩa khung nhìn Lý thuyết : Chuẩn SQL-92 - Ràng buộc toàn vẹn - Phân quyền và bảo mật - Điều khiển giao tác  SQL sử dụng thuật ngữ Thương mại : SQL Server - Bảng ~ quan hệ - Cột ~ thuộc tính - Dòng ~ bộ 4 Nội dung chi tiết  Giới thiệu  Định nghĩa dữ liệu - Kiểu dữ liệu - Các lệnh định nghĩa dữ liệu  Truy vấn dữ liệu  Cập nhật dữ liệu  Khung nhìn (view)  Chỉ mục (index) 5 Định nghĩa dữ liệu  Là ngôn ngữ mô tả - Lược đồ cho mỗi quan hệ - Miền giá trị tương ứng của từng thuộc tính - Ràng buộc toàn vẹn - Chỉ mục trên mỗi quan hệ  Gồm - CREATE TABLE (tạo bảng) - DROP TABLE (xóa bảng) - ALTER TABLE (sửa bảng) - CREATE DOMAIN (tạo miền giá trị) - CREATE DATABASE 6 Kiểu dữ liệu  Số (numeric) - INTEGER - SMALLINT - NUMERIC, NUMERIC(p), NUMERIC(p,s) - DECIMAL, DECIMAL(p), DECIMAL(p,s) - REAL - DOUBLE PRECISION - FLOAT, FLOAT(p) 7 Kiểu dữ liệu (tt)  Chuỗi ký tự (character string) - CHARACTER hoặc CHAR - CHARACTER(n) hoặc CHAR (n) - CHARACTER VARYING(n) hoặc VARCHAR(n) - NATIONAL CHARACTER (n) hoặc NCHAR(n)  Chuỗi bit (bit string) - BIT, BIT(x) - BIT VARYING(x)  Ngày giờ (datetime) - DATE gồm ngày, tháng và năm - TIME gồm giờ, phút và giây - TIMESTAMP gồm ngày và giờ - DATETIME: gồm DATE và TIME (Chỉ có trong SQL của SQL 8 Server) Lệnh tạo bảng  Để định nghĩa một bảng - Tên bảng - Các thuộc tính  Tên thuộc tính  Kiểu dữ liệu  Các RBTV trên thuộc tính  Cú pháp CREATE TABLE <Tên_bảng> ( <Tên_cột> <Kiểu_dữ_liệu> [<RBTV>], <Tên_cột> <Kiểu_dữ_liệu> [<RBTV>], … [<RBTV>] ) 9 Ví dụ - Tạo bảng  Tạo bảng lưu trữ thông tin giáo viên với các thuộc tính và quy định sau:  MaGV : Khoá chính  HoTen: Họ tên của giáo viên không được để trống  Luong: Mặc định là 1000  Phai: Phải là Nam hoặc Nữ  NgaySinh: Ngày tháng năm sinh của giáo viên  SoNha, Duong, Quan, ThanhPho : địa chỉ của giáo viên  GVQLCM: mã giáo viên quản lý chuyên môn của giáo viên (khoá ngoại)  MaBM: mã bộ môn của giáo viên (khoá ngoại) 10 Ví dụ - Tạo bảng CREATE TABLE GIAOVIEN ( MaGV CHAR(9), HoTen NVARCHAR(50), Luong INT, Phai CHAR(3), NgaySinh DATETIME, SoNha NVARCHAR(10), Duong NVARCHAR(50), Quan NVARCHAR(50), ThanhPho NVARCHAR(50), GVQLCM CHAR(9), MaBM CHAR(9) ) 11 Lệnh tạo bảng (tt)  <RBTV> - NOT NULL - NULL - UNIQUE - DEFAULT - PRIMARY KEY - FOREIGN KEY / REFERENCES - CHECK  Đặt tên cho RBTV CONSTRAINT <Ten_RBTV> <RBTV> 12 Ví dụ - RBTV CREATE TABLE GIAOVIEN ( MAGV CHAR(9) PRIMARY KEY, HOTEN NVARCHAR(50) NOT NULL, LUONG INT DEFAULT (1000), PHAI CHAR(3) CHECK (PHAI IN(‘Nam’, ‘Nu’)), NGAYSINH DATETIME, SONHA NVARCHAR(10), DUONG NVARCHAR(50), QUAN NVARCHAR(50), THANHPHO NVARCHAR(50), GVQLCM CHAR(9), 13 MABM CHAR(9) Ví dụ - RBTV CREATE TABLE CONGVIEC ( MADT VARCHAR(10), STT INT, TENCV NVARCHAR(50), NGAYBD DATETIME, NGAYKT DATETIME, PRIMARY KEY(MADT, STT) ) CREATE TABLE DETAI ( MADT VARCHAR (10) PRIMARY KEY, TENDT NVARCHAR (50) UNIQUE, KINHPHI INT, CAPQL NVARCHAR (50), NGAYBD DATETIME, NGAYKT DATETIME, MACD VARCHAR (10), GVCNDT CHAR (9) 14 ) Ví dụ - Đặt tên cho RBTV CREATE TABLE GIAOVIEN ( MAGV CHAR(9) CONSTRAINT PK_GV PRIMARY KEY, HOTEN NVARCHAR(50) CONSTRAINT NN_HOTEN NOT NULL, LUONG INT CONSTRAINT DE_LUONG DEFAULT (10000), PHAI CHAR(3) CONSTRAINT CK_PHAI CHECK (PHAI IN('Nam', 'Nu')) CONSTRAINT NN_PHAI NOT NULL, NGAYSINH DATETIME, SONHA NVARCHAR(10), DUONG NVARCHAR(50), QUAN NVARCHAR(50), THANHPHO NVARCHAR(50), GVQL CHAR(9), MABM CHAR(9) 15 ) Ví dụ - Đặt tên cho RBTV CREATE TABLE CONGVIEC( MADT VARCHAR(10), STT INT, TENCV NVARCHAR(50), NGAYBD DATETIME, NGAYKT DATETIME, CONSTRAINT PK_CV PRIMARY KEY(MADT, STT), CONSTRAINT FK_CONGVIEC_DETAI FOREIGN KEY MADT REFERENCES DETAI(MADT) ) 16 Lệnh sửa bảng  Được dùng để  Thay đổi cấu trúc bảng  Thay đổi RBTV  Thêm cột ALTER TABLE <Tên_bảng> ADD <Tên_cột> <Kiểu_dữ_liệu> [<RBTV>]  Xóa cột ALTER TABLE <Tên_bảng> DROP COLUMN <Tên_cột>  Cập nhật cột ALTER TABLE <Tên_bảng> ALTER COLUMN <Tên_cột> <Kiểu_dữ_liệu_mới> 17 Lệnh sửa bảng (tt)  Thêm RBTV ALTER TABLE <Tên_bảng> ADD CONSTRAINT <Ten_RBTV> <RBTV>, CONSTRAINT <Ten_RBTV> <RBTV>, …  Xóa RBTV ALTER TABLE <Tên_bảng> DROP <Tên_RBTV> 18 Ví dụ - Thay đổi cấu trúc bảng ALTER TABLE GIAOVIEN ADD TUOI INT CONSTRAINT CK_TUOI CHECK (TUOI >= 23 AND TUOI <=60) NOT NULL ALTER TABLE GIAOVIEN DROP COLUMN HOTEN ALTER TABLE GIAOVIEN ALTER COLUMN HOTEN NVARCHAR(100) 19 Ví dụ - Thay đổi RBTV CREATE TABLE BOMON( MABM INT NOT NULL, Phải xác định NOT NULL TENBM NVARCHAR(50), trước khi tạo khóa chính PHONG CHAR(10), DIENTHOAI CHAR(15), TRUONGBM CHAR(9), MAKHOA CHAR(4), NGAYNHANCHUC DATETIME ) ALTER TABLE BOMON ADD CONSTRAINT PK_BOMON PRIMARY KEY (MABM), CONSTRAINT FK_TRBOMON FOREIGN KEY (TRUONGBM) Cần có bảng REFERENCES GIAOVIEN(MAGV), GIAOVIEN trước CONSTRAINT UNI_TENBM UNIQUE(TENBM), CONSTRAINT DF_NGAYNHANCHUC DEFAULT(GETDATE()) FOR NGAYNHANCHUC20 Lệnh xóa bảng  Được dùng để xóa cấu trúc bảng  Tất cả dữ liệu của bảng cũng bị xóa  Cú pháp DROP TABLE <Tên_bảng>  Ví dụ DROP TABLE GIAOVIEN DROP TABLE BOMON DROP TABLE THAMGIADT 21 Lệnh xóa bảng (tt) GIÁOVIÊN MãGV HọTên Lương Phái NgàySinh SốNhà Đường Quận ThànhPhố GVQL MãBM BỘMÔN MãKhoa TrưởngBM NgàyNhậnChức ĐiệnThoại MãBM TênBM Phòng KHOA TrưởngKhoa NgàyNhậnChức TênKhoa NămTL Phòng ĐiệnThoại MãKhoa 22 Lệnh tạo miền giá trị  Tạo ra một kiểu dữ liệu mới kế thừa những kiểu dữ liệu có sẳn  Cú pháp CREATE DOMAIN <Tên_kdl_mới> AS <Kiểu_dữ_liệu>  Ví dụ CREATE DOMAIN MyString30 AS VARCHAR(30) 23 Nội dung chi tiết  Giới thiệu  Định nghĩa dữ liệu  Truy vấn dữ liệu  Truy vấn cơ bản  Tập hợp, so sánh tập hợp và truy vấn lồng  Hàm kết hợp và gom nhóm  Một số kiểu truy vấn khác  Cập nhật dữ liệu  Khung nhìn (view)  Chỉ mục (index) 24 Truy vấn dữ liệu  Là ngôn ngữ rút trích dữ liệu thỏa một số điều kiện nào đó  Dựa trên Phép toán ĐSQH  Một số bổ sung  Cho phép 1 bảng có nhiều dòng trùng nhau  Bảng là bag  quan hệ là set 25 Truy vấn cơ bản  Gồm 3 mệnh đề SELECT <danh sách các cột> FROM <danh sách các bảng> WHERE <điều kiện>  <danh sách các cột>  Tên các cột cần được hiển thị trong kết quả truy vấn  <danh sách các bảng>  Tên các bảng liên quan đến câu truy vấn  <điều kiện>  Biểu thức boolean xác định dòng nào sẽ được rút trích  Nối các biểu thức: AND, OR, và NOT  Phép toán:  ,  ,  ,  ,  , , LIKE và BETWEEN 26 Truy vấn cơ bản (tt)  SQL và ĐSQH  SELECT <danh sách các cột>  FROM <danh sách các bảng> WHERE <điều kiện>  SELECT L FROM R WHERE C L (C (R)) 27 Mệnh đề SELECT Lấy ra tất cả các cột Lấy tất cả các cột của quan hệ SELECT * kết quả FROM KHOA WHERE PHONG='I53' AND NAMTL = '1995' MaKhoa TenKhoa Phong NamTL DienThoai TruongKhoa NgayNhanChuc CNTT Công nghệ thông tin I53 1995 08313964145 GV130 01/01/2007 SH Sinh học B32 1975 08313123545 GV250 01/01/1990  PHG='I53'NamTL='1995' (KHOA) 28 Mệnh đề SELECT (tt) Lấy ra một số cột SELECT MAKHOA, TENKHOA, PHONG FROM KHOA WHERE PHONG='I53' AND NAMTL = '1995' MaKhoa TenKhoa Phong CNTT Công nghệ thông tin I53  MAKHOA, TENKHOA, PHONG(  PHG='I53'NamTL='1995' (KHOA)) 29 Mệnh đề SELECT (tt) Tên bí danh SELECT MAKHOA AS 'Mã khoa', TENKHOA AS 'Tên khoa', PHONG AS 'Mã phòng' FROM KHOA WHERE PHONG='I53' AND NAMTL = '1995' Mã Tên khoa Mã phòng khoa CNTT Công nghệ thông I53 tin  Mã khoa, Tên khoa, Mã phòng(  MAKHOA,TENKHOA,PHONG(  PHG='I53'NamTL='1995' (KHOA))) 30 Mệnh đề SELECT (tt) Mở rộng SELECT MAGV, HOTEN, SONHA + ',' + DUONG + ',' + ',' + QUAN + ',' + THANHPHO AS 'DIA CHI' FROM GIAOVIEN WHERE PHAI='Nam' MAGV HOTEN DIA CHI GV001 Nguyễn Văn A 123 Phan Đăng Lưu, Q.Phú Nhuận, TP.Hồ Chí Minh  MAGV,HOTEN,DIA CHI(  MAGV,HOTEN,SONHA+DUONG+QUAN+THANHPHO( PHAI=‘Nam’(GIAOVIEN))) 31 Mệnh đề SELECT (tt) Mở rộng SELECT MAGV, LUONG*1.1 AS 'LUONG10%' FROM GIAOVIEN WHERE PHAI='Nam' MAGV LUONG10% GV001 550000  MAGV,LUONG10%(  MAGV,LUONG*1.1( PHAI=‘Nam’(GIAOVIEN))) 32 Mệnh đề SELECT (tt) Loại bỏ các dòng trùng nhau SELECT LUONG SELECT DISTINCT LUONG FROM GIAOVIEN FROM GIAOVIEN WHERE PHAI=‘Nam’ WHERE PHAI=‘Nam’ LUONG LUONG 30000 30000 25000 25000 25000 38000 38000 - Tốn chi phí - Người dùng muốn thấy 33 Ví dụ  Cho biết MAGV và TENGV làm việc ở bộ môn ‘Hệ thống thông tin’ R1  GIAOVIEN GIAOVIEN.MABM BOMON KQ    MAGV, HOTEN ( TENBM='Hệ thống thông tin' (R1)) SELECT MAGV, HOTEN FROM GIAOVIEN, BOMON WHERE TENBM= N'Hệ thống thông tin' AND GIAOVIEN.MABM 34 Mệnh đề WHERE  Sử dụng các phép toán AND, OR để nối các biểu thức điều kiện lại với nhau SELECT MAGV, HOTEN FROM GIAOVIEN, BOMON TRUE Biểu WHERE TENBM = 'Hệ thống thông tin' thức AND luận lý AND GIAOVIEN.MABM TRUE 35 Mệnh đề WHERE (tt) Độ ưu tiên SELECT MAGV, HOTEN FROM GIAOVIEN, BOMON WHERE (TENBM = 'Hệ thống thông tin' OR TENBM = 'Mạng máy tính') AND GIAOVIEN.MABM Độ ưu tiên mặc định của các phép toán: từ trái qua phải. Nên sử dụng dấu ngoặc thể hiện tường minh sự ưu tiên của các phép toán. 36 Mệnh đề WHERE (tt) BETWEEN SELECT MAGV, HOTEN FROM GIAOVIEN WHERE LUONG >= 20000 AND LUONG <= 30000 SELECT MAGV, HOTEN FROM GIAOVIEN WHERE LUONG BETWEEN 20000 AND 30000 37 Mệnh đề WHERE (tt) NOT BETWEEN SELECT MAGV, HOTEN FROM GIAOVIEN WHERE LUONG NOT BETWEEN 20000 AND 30000 SELECT MAGV, HOTEN FROM GIAOVIEN WHERE LUONG < 20000 OR LUONG > 30000 38 Mệnh đề WHERE (tt) LIKE SELECT MAGV, HOTEN FROM GIAOVIEN HOTEN LIKE ‘nguyen _ _ _ _’ WHERE HOTEN LIKE ‘Nguyen _ _ _ _’ 4 ký tự bất kỳ SELECT MAGV, HOTEN FROM GIAOVIEN WHERE HOTEN LIKE ‘Nguyen %’ Chuỗi bất kỳ 39 Mệnh đề WHERE (tt) NOT LIKE SELECT MAGV, HOTEN FROM GIAOVIEN WHERE HOTEN LIKE ‘Nguyen’ phủ định SELECT MAGV, HOTEN FROM GIAOVIEN WHERE HOTEN NOT LIKE ‘Nguyen’ 40 Mệnh đề WHERE (tt) charlist MAGV HOTEN GV001 Nguyễn Văn A GV002 Hoàng Thị C SELECT * SELECT * FROM GIAOVIEN GV FROM GIAOVIEN GV WHERE GV.HOTEN LIKE N'[n]%' WHERE GV.HOTEN LIKE N'[nh]%' MAGV HOTEN MAGV HOTEN GV001 Nguyễn Văn A GV001 Nguyễn Văn A GV002 Hoàng Thị C 41 Mệnh đề WHERE (tt) charlist MAGV HOTEN GV001 Nguyễn Văn A GV002 Hoàng Thị C SELECT * SELECT * FROM GIAOVIEN GV FROM GIAOVIEN GV WHERE GV.HOTEN LIKE N'[^h]%' WHERE GV.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu Hướng Dẫn Chi Tiết Về SQL Trong Chương 5 cung cấp một cái nhìn sâu sắc về ngôn ngữ truy vấn cấu trúc (SQL), giúp người đọc nắm vững các khái niệm cơ bản và nâng cao trong việc quản lý cơ sở dữ liệu. Tài liệu này không chỉ giải thích các lệnh SQL cơ bản mà còn đi sâu vào các kỹ thuật tối ưu hóa truy vấn, giúp người dùng cải thiện hiệu suất làm việc với dữ liệu.

Đặc biệt, tài liệu này mang lại lợi ích lớn cho những ai muốn phát triển kỹ năng lập trình SQL của mình, từ việc tạo bảng, chèn dữ liệu cho đến việc thực hiện các truy vấn phức tạp. Để mở rộng kiến thức của bạn về SQL, bạn có thể tham khảo tài liệu Sql cơ bản và nâng cao, nơi cung cấp những kiến thức bổ sung và nâng cao hơn về SQL, giúp bạn trở thành một chuyên gia trong lĩnh vực này.

Hãy khám phá thêm để nâng cao kỹ năng và hiểu biết của bạn về SQL!