1. Trang chủ
  2. » Tất cả

Báo cáo bài tập lớn môn cơ sở dữ liệu nâng cao đề tài t sql

42 10 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề T-SQL
Tác giả Vũ Trung Hiếu, Phạm Ngọc Thi Thư
Người hướng dẫn TS. Nguyễn Thị Thanh Huyền, ThS. Nguyễn Danh Tú
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Toán Tin
Thể loại Báo cáo
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 42
Dung lượng 1,19 MB

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

Nội dung

Lệnh Create Database Lệnh Create Database sẽ tạo một database mới, cú pháp của nó như sau: Trong đó:  databasename là tên database cần tạo Ví dụ: Tạo database tên là QLHS 3.2.2.. Create

Trang 1

BÁCH KHOA HÀ NỘI VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC

□ & □

-BÁO CÁO BÀI TẬP LỚN MÔN CƠ SỞ DỮ LIỆU NÂNG CAO

Nhóm 13: T-SQL

Giảng viên hướng dẫn:

TS NGUYỄN THỊ THANH HUYỀN

Trang 2

Hà Nội, tháng 6/2022

Trang 3

LỜI MỞ ĐẦU

Trang 4

Bảng phân công công việc

Phần 1,2,3 Chương 2: Phần 1,2,3,4,5,6

Trang 5

CHƯƠNG I: GIỚI THIỆU CHUNG

1 SQL và SQL server là gì?

SQL là viết tắt của Structure Query Language, nó là một công cụ quản lý dữ liệu được sửdụng phổ biến ở nhiều lĩnh vực Hầu hết các ngôn ngữ bậc cao đều có trình hỗ trợ SQL nhưVisual Basic,Oracle,Visual C

Trong Oracle tất cả các chương trình và người sử dụng phải sử dụng SQL để truy nhập vào

dữ liệu trong CSDL của Oracle Các chương trình ứng dụng và các công cụ Oracle cho phépngười sử dụng truy nhập tới CSDL mà không cần sử dụng trực tiếp SQL Nhưng những ứngdụng đó khi chạy phải sử dụng SQL

SQL server là một hệ thống quản lý cơ sở dữ liệu ( RDBMS – Relational DatabaseManagement System ) và sử dụng Transact-SQL để thao tác dữ liệu trên các máy khách vàmáy chủ

Một RDBMS bao gồm những database, data engine, các ứng dụng dùng quản lý dữ liệu vàcác bộ phận khác nhau trong RDBMS

SQL server được tối ưu nhằm tăng khả năng quản lý một khối lượng cơ sở dữ liệu rất lớn( very large database environment) Cỡ vào khoảng hàng Tera-Byte và đồng thời phục vụhàng ngàn user Ngoài ra, SQL server còn có thể cùng thao tác với các loại server khác nhưIIS ( Microsoft Internet Information Server), E-Commerce

2 Các thành phần cơ bản trong hệ thống SQL Server

Một hệ thống SQL Server có tương đối nhiều thành phần Dưới đây mô tả chúng:

Trang 6

- Relational Database Engine: đây là thành phần cơ bản nhất của SQL Server Nó có khảnăng chứa dữ liệu ở các quy mô khác nhau như dạng bảng hay các kiểu kết nối thôngdụng của Microsoft ( ADO-Activex Data Object, OLE DB, ODBC- Open DatabaseConnectivity) Bên cạnh đó, nó có khả năng tự điều chỉnh như thêm tài nguyên của máykhi cần và trả lại tài nguyên cho hệ điều hành khi user log off.

Trang 7

- Replication: khả năng nhân bản Nếu một user có một database dùng chứa dữ liệu đượccác ứng dụng thường truy cập tới Tuy nhiên, có lúc user muốn dùng database này trênserver khác để tạo ra một báo cáo nhằm tránh ảnh hưởng cho server chính Điều này gây

ra một khó khăn là làm thế nào để cập nhập database này trên server chính Cơ chế nhânbản cho phép thực hiện điều này

- DTS ( Data Transformation Service): dịch vụ chuyển giao dữ liệu Khi có người dùng sửdụng trong một công ty có các dữ liệu được lưu trữ tại nhiều nơi và tại các dạng khácnhau như Oracle, Microsoft Access, DB2 thì làm thế nào để chuyển dữ liệu giữa cácserver có các dữ liệu khác nhau về định dạng như thế này? Chức năng DTS cho phépchuyển đổi cả về vị trí lẫn chuyển giao các định dạng cho nhau

- Analysis Service: dịch vụ phân tích dữ liệu Đây là một dịch vụ được cung cấp rất hiệuquả trong việc tìm được những thông tin cần thiết trong database dựa vào khái niệm khối

đa chiều (multiple-dimension cube) và khai phá dữ liệu (data-mining)

- English Query: những người đã từng học SQL thì rõ ràng đây là một phần không thểthiếu Chúng là những câu lệnh truy vấn thao tác cơ sơ dữ liệu

- Meta Data Service: đây là một dịch vụ giúp cho lưu trữ và xử lý Meta data dễ dàng hơn.Chúng ta nên hiểu rằng Meta data là những thông tin mô tả cấu trúc của dữ liệu trongdatabase như dữ liệu kiểu cột nào có thuộc tính khoá chính Những kiểu dữ liệu nàycũng được lưu trữ trong database nhưng khác với những loại dữ liệu thông thường nêngọi là Meta data

- SQL Server Tools: những công cụ cho người quản trị cơ sở dữ liệu Chúng có một sốcông cụ dưới đây:

o Enterprise Manager: cho người dùng toàn cảnh hệ thống cơ sở dữ liệu một cáchtrực quan Nó quan trọng với những người mới học SQL

o Query Analyzer: cho phép sửa lỗi câu lệnh SQL rất quan trọng đối với nhữngngười quản trị hệ thống

o SQL Profiler: có khả năng bắt các sự kiện hay hoạt động diễn ra trên một SQLserver và lưu lại dưới dạng text hữu dụng trong việc kiểm soát server

- Data Warehousing Framework: là tập hợp các thành phần và các API thực thi các tínhnăng lưu trữ dữ liệu của SQL Server 2000 Nó cung cấp một giao diện chung vốn được

sử dụng bởi nhiều thành phần khác nhau để tạo và sử dụng một nơi lưu trữ dữ liệu

3 Sự khác biệt giữa SQL và T-SQL

Trang 8

CHƯƠNG II: NGÔN NGỮ T-SQL

1 Khái niệm về Transact SQL (T-SQL)

Thực chất T-SQL là một dạng mở rộng của chuẩn SQL theo ISO ( International Organizationfor Standardization) và ANSI ( American National Standards Institute) được sử dụng trongcác SQL Server (nó khác với Procedural-SQL dùng trong Oracle)

Có thể hiểu T-SQL là một ngôn ngữ chính giúp người dùng giao tiếp với SQL Server

2 Thực thi lệnh trong SQL Server

2.1 Lệnh đơn

Đầu tiên, 1 lệnh đơn được phân tích cú pháp thông qua một bộ phân tích cú pháp là Parser.Tiếp đến, SQL Optimizer sẽ thực thi tối ưu câu lệnh nhằm tăng tốc độ và ít tốn tài nguyên.Sau đó, SQL Server Engine sẽ thực hiện và trả về kết quả

2.2 Tập nhóm lệnh

SQL Server cũng thực hiện tối ưu cho tập lệnh như các lệnh đơn và tìm cách thực thi tối ưunhất Đồng thời, chứa các lệnh trên đã biên dịch trong bộ nhớ Sau đó, nếu các lệnh trên đượcgọi lại thì nó sẽ được chạy nhanh hơn nhờ không phải biên dịch lại

Bên cạnh đó, còn 1 lệnh mà không thuộc T-SQL Đó là lệnh GO Lệnh này thông báo chobiết kết thúc một tập nhóm lệnh để thực thi tập lệnh

3 Table queries

Trang 9

3.1 Phiên làm việc là gì trong SQL

Phiên làm việc hay còn gọi là session, đây là một khoảng thơi gian được giới hạn bởi thời gian bắt đầu (time start) và thời gian kết thúc (time end) với thời gian bắt đầu chính là khoảng thời gian bạn kết nối vào hệ thống CSDL và thời gian kết thúc là khoảng thời gian bạn ngắt kết nối

Ví dụ trong SQL Server khi bạn mở công cụ SSMS và kết nối vào thì đó là bắt đầu phiên làmviệc, và khi bạn tắt SSMS hoặc disconnect thì bạn đã kết thúc phiên làm việc đó

Tất cả các ngôn ngữ lập trình đều hỗ trợ bạn hai phương thức đó là connect và disconnect vào các hệ quản trị CSDL, và khi bạn sử dụng hai phương thức này thì tạo ra một phiên làm việc

3.2 Create và Drop Database trong SQL

3.2.1 Lệnh Create Database

Lệnh Create Database sẽ tạo một database mới, cú pháp của nó như sau:

Trong đó:

 databasename là tên database cần tạo

Ví dụ: Tạo database tên là QLHS

3.2.2 Lệnh Drop Database

Lệnh Drop Database dùng để xóa một database đã tồn tại, cú pháp như sau:

Trong đó databasename là tên của db cần xóa Lệnh này sẽ xóa dữ liệu vĩnh viễn

Ví dụ: Xóa database QLHS

Trang 11

3.3.5 Unicode Character Strings

Là kiểu ký tự, nó có hỗ trợ tiếng Việt nên thông thường với tiếng Việt thì ta nên chọn kiểu này

3.3.6 Binary Strings

Kiểu này lưu trữ dữ liệu dạng binary, có thể là file ảnh hoặc một file bất kì

3.4 Lệnh Create Table trong SQL

3.4.1 Cú pháp lệnh Create Table trong T-SQL

Dưới đây là cú pháp tạo bảng

Trong đó:

 Table_name là tên bảng, nó phải là duy nhất trong một CSDL

Trang 12

 column (1, 2, 3 n) là danh sách các column, mỗi column sẽ được thiết lập kiểu dữ liệu datatype

 column_list trong dòng primary key là danh sách các column được xác định là khóa chính, có thể có 1 hoặc nhiều column

Ví dụ:

3.4.2 Create Table kết hợp Select

Nếu bạn muốn tạo một table với cấu trúc từ một table khác thì có thể kết hợp nó với lệnh SELECT, danh sách các columns của table mới chính là các column trả về của lệnh Select,

cú pháp như sau:

Câu lệnh trên được sử dụng trong MySQL

3.5 Lệnh Drop Table trong SQL

Trong T-SQL, công dụng của lệnh này là xóa toàn bộ dữ liệu và cấu trúc của bảng ra khỏi hệ thống

Ví dụ: Xóa bảng khách hàng ra khỏi hệ thống dữ liệu

Lệnh này rất nguy hiểm nên cần cẩn trọng khi sử dụng lệnh này

3.6 Primary Key trong SQL

3.6.1 Tạo Primary Key

Trang 13

Ví dụ:

3.6.2 Tạo Primary Key bằng Alter Table

Giả sử ta cần tạo khóa chính cho column ID nằm trong bảng Person thì cách làm như sau:

3.6.3 Xóa Primary Key

Để xóa khóa chính Primary Key thì ta sử dụng lệnh Alter Table

3.7 Khóa ngoại Foreign Key trong SQL

3.7.1 Tạo Foreign Key trong lệnh CREATE TABLE

Bạn có thể tạo khóa ngoại ngay trong lệnh tạo bảng Create Table, cách làm như sau:

Trang 14

Để đặt tên cho khóa ngoại thì ta viết như sau:

3.7.2 Tạo Foreign Key bằng lệnh Alter Table

Lệnh Alter Table cho phép bạn tạo khóa ngoại, lệnh này được dùng sau khi bạn đã tạo bảng

3.7.3 Xóa khóa ngoại

Để xóa thì bạn sử dụng đoạn code sau:

Một số lưu ý khi xóa khóa ngoại:

 Sau khi xóa xong thì giữa hai bảng sẽ không còn ràng buộc, vì vậy dữ liệu cho column khóa ngoại của bảng con được tự do, không bắt buộc phải nằm trong phạm vi của bảng cha

 Phải chắc chắn là tên của khóa ngoại tồn tại, nếu không thì sẽ nhận thông báo lỗi

3.8 Ràng buộc Check trong SQL

3.8.1 Tạo ràng buộc CHECK trong lệnh CREATE TABLE

Trang 15

Trong ví dụ dưới đây sẽ tạo ràng buộc CHECK ở column age, vì là bảng lưu trữ nhân viên nên bắt buộc chỉ tuyển những người trên 18 tuổi.

3.8.2 Tạo ràng buộc CHECK trong lệnh ALTER TABLE

Lệnh Alter Table được sử dụng rất nhiều trong việc thay đổi cấu trúc của table, và nó cũng được dùng để tạo CHECK sau khi bạn đã tạo xong table

3.8.3 Xóa ràng buộc CHECK ra khỏi table

Nếu bạn đã tạo CHECK rồi nhưng sau đó không muốn có ràng buộc đó nữa thì hãy sử dụng lệnh ALTER TABLE kết hợp với từ khóa DROP nhé

Trang 16

Ví dụ:

Giả sử ta có bảng dữ liệu như sau:

Bây giờ chạy lệnh INSERT như sau:

Lúc này tổng dữ liệu của bảng sẽ là:

4.1.2 Thêm dữ liệu từ lệnh SELECT

Bạn có thể lấy dữ liệu từ một bảng khác để thêm vào bằng cách kết hợp với lệnh SELECT

Ví dụ:

Trang 17

4.2 Lệnh SELECT trong SQL

4.2.1 Cú pháp lệnh SELECT

Dưới đây là cú pháp của lệnh SELECT:

Trong đó column (1 n) là danh sách các column cần lấy, và table_name là bảng muốn lấy Trường hợp bạn muốn lấy tất cả các column có trong bảng thì có thể dùng dấu * để thay thế

Ví dụ:

Giả sử ta có bảng dữ liệu sau:

Bây giờ mình sẽ thực hiện lấy ID, NAME, SALARY từ bảng này

Kết quả:

Trang 18

Nếu bạn muốn lấy hết thì chỉ cần  chạy lệnh sau:

Nó sẽ trả về danh sách tất cả khách hàng đang có trong bảng

4.3 Mệnh đề WHERE trong SQL

4.3.1 Tìm hiểu Lệnh Where trong T-SQL

Lệnh WHERE được dùng để kết hợp trong lệnh SELECT và vị trí được đặt sau lệnh FROM

để lọc dữ liệu, cú pháp như sau:

Ví dụ:

Giả sử ta có bảng dữ liệu như sau:

Trang 19

Bây giờ mình cần truy vấn lấy các columns ID, Name and Salary của những khách hàng nào

có mức lương lớn hơn 3000

Kết quả sẽ trả về như sau:

4.3.2 Where với hơn một điều kiện

Nếu bạn muốn truy vấn với nhiều hơn một điều kiện thì sao? Lúc này bạn phải sử dụng đến hai toán tử thông dụng nhất là OR hoặc AND

 AND sẽ trả về TRUE nếu cả hai vế phải và vế trái đều đúng, ngược lại một trong hai vế sai thì sẽ trả về FALSE

 OR  sẽ trả về TRUE nếu ít nhất một trong hai vế phải và trái đúng, và trả về FALSE nếu

cả hai vế đều sai

Ví dụ: (sử dụng data ở phần trên) Lấy danh sách khách hàng có salary > 4500 và ID > 4

Trang 20

Kết quả như sau:

4.4 Lệnh Update trong SQL

4.4.1 Cú pháp Update trong T-SQL

Để sử dụng lệnh update thì bạn xem cú pháp sau:

Ví dụ:

Giả sử ta có bảng dữ liệu CUSTOMER sau:

Cập nhật địa chỉ thành "Pune" cho khách hàng có ID = 6 

Lúc này dữ liệu trong bảng customer sẽ có một sự thay đổi ở row có id = 6

Trang 21

Nếu bạn muốn cập nhật nhiều field thì chỉ cần đặt cặp giá trị cách nhau bởi dấu phẩy Ví dụ giờ mình muốn tăng salary lên 9000 và address thành New York cho khách hàng có ID = 2 thì viết như sau:

Ví dụ: Xóa sạch dữ liệu trong bảng CUSTOMERS

4.6 Sắp xếp dữ liệu với ORDER BY trong SQL

Nếu bạn muốn sắp xếp dữ liệu trả về theo tăng dần hoặc giảm dần thì có thể sử dụng lệnh ORDER BY, lệnh này được đặt cuối của câu truy vấn SELECT và có hai tham số truyền vào,

cú pháp như sau:

Trong đó:

 column1, column2, columnN là danh sách các column sẽ được sắp xếp

 [ASC | DESC] là kiểu sắp xếp, nếu bạn chọn ASC thì tăng dần, còn DESC là giảm dần

4.7 Lọc dữ liệu trùng với DISTINCT trong SQL

4.7.1 Cú pháp lệnh DISTINCT

Trang 22

Cú pháp:

4.7.2 Lệnh DISTINCT lọc dữ liệu bị trùng

DISTINCT có công dụng là xóa đi những dòng dữ liệu trùng nhau và chỉ để lại một dòng duynhất Dữ liệu trùng nhau là phải giống ở mọi column, dù khác chỉ 1 column thôi cũng không được gọi là trùng nhau

Giả sử ta có bảng dữ liệu như sau:

Nhìn vào bảng thì ta thấy khóa chính là ID và nó tăng tự động nên chắc chắn là dữ liệu ở mỗirecord sẽ không bị trùng Tuy nhiên bạn hãy xét ví dụ sau đây: hãy lấy danh sách  mức tiền của các khách hàng và chỉ trả về mỗi cột SALARY mà thôi Lúc này rõ ràng dữ liệu sẽ bị trùng

Kết quả:

Để giải quyết ta sử dụng DISTINCT như sau:

Trang 23

Kết quả trả về sẽ như sau:

4.8 Gộp dữ liệu với UNION và UNION ALL trong SQL

4.8.1 Gộp kết quả với UNION

Cú pháp:

UNION có tác dụng kết quả hai lệnh SELECT và loại bỏ đi những dòng bị trùng lặp chỉ để lại một dòng duy nhất, tuy nhiên không phải lệnh nào cũng gộp được mà phải thoả điều kiện sau:

 Tên của các column phải giống nhau

 Thứ tự các column phải giống nhau

 Tổng các column phải bằng nhau

4.8.2 Gộp kết quả với UNION ALL

Có cú pháp và tác dụng tương tự như UNION, chỉ có điều là lệnh UNION ALL sẽ giữ lại tất

cả dữ liệu kể cả những dòng bị trùng lặp

Cú pháp như sau:

Trang 25

UNION ALL

Kết quả:

Kết quả trả về vẫn giữ nguyên như cũ

Như vậy lệnh UNION và UNION đều có công dụng là gộp kết quả từ hai câu lệnh select, nhưng có điểm khác biệt là UNION sẽ loại bỏ dữ liệu trùng lặp còn UNION ALL thì giữ lại tất cả

4.9 Tìm hiểu ALIAS (AS) trong SQL

4.9.1 ALIAS là gì?

Alias dịch ra tiếng Việt có nghĩa là bí danh, dùng trong SQL thì có nghĩa là sử dụng bí danh cho một đối tượng cụ thể nào đó Bạn có thể sử dụng alias cho column, table hay một tên bất

Trang 26

kì, và kí hiệu của nó trong SQL là AS Lệnh này sẽ tạo ra một tên tạm và chỉ tồn tại trong quátrình chạy câu truy vấn, sau đó nó sẽ được giải phóng khỏi bộ nhớ.

Trong đó:

 column_new_name là tên mới của column

 table_new_name là tên mới của table

4.9.2 Sử dụng Alias với Column

Tại sao lại cần alias? Như trong phân tích thiết kế database thì trong một bảng tên các

columns phải là duy nhất, nhưng ở 2 bảng khác nhau thì tên column có thể sẽ bị trùng tên nênviệc này sẽ gây ra lỗi nếu bạn không chỉ định rõ column của bảng nào

Hoặc nếu bạn kết hợp với lệnh AS để tạo tên mới thì sẽ chuyên nghiệp hơn rất nhiều

Kết quả sẽ trả về danh sách gồm 2 column: a_name | b_name

4.9.3 Sử dụng Alias với Table

Bạn cũng có thể sử dụng Alias để đôi tên cho table

Như vậy lệnh ALIAS giúp ta viết câu  truy vấn sạch sẽ hơn. 

5 Condition & Operator

Trang 27

5.1 Toán tử AND và OR trong SQL

5.1.1 Toán tử AND trong SQL

AND dịch ra tiếng Anh có nghĩa là "và", ý nghĩa của nó là kết nối hai mệnh đề lại với nhau

đó là mệnh đề bên phải và mệnh đề bên trái, hay còn gọi là vế phải và vế trái Kết quả của AND sẽ trả về đúng (TRUE) nếu cả hai vế đều đúng, và sai (false) nếu một trong hai vế sai

Ta có hai kí tự đại diện đó là:

 _ là ký tự đại diện cho một ký tự bất kỳ

 _ là ký tự dại diện cho một hoặc nhiều ký tự bất kì

Cú pháp:

Trang 28

Trong đó chuoi_mau là chuỗi mà bạn tạo ra để so sánh với chuỗi gốc, còn column_name và table_name là tên các columns và tên table.

Ví dụ: Lấy danh sách khách hàng có họ Nguyễn

5.2.2 Not Like trong T-SQL

NOT LIKE sẽ có tác dụng phủ định với lệnh LIKE, tức là nếu biểu mẫu so khớp sai thì dòng

dữ liệu đó sẽ được chọn

Ví dụ: Lấy danh sách sinh viên có tên không được bắt đầu bằng chữ A

5.3 Toán tử IN và NOT IN trong SQL

5.3.1 Lệnh IN trong SQL

IN dịch ra tiếng Anh có nghĩa là "trong", và ý nghĩa của nó trong SQL là kiểm tra có nằm

trong một dãy giá trị hay không Cú pháp:

Trong đó list_value là tập các giá trị được cách nhau bởi dấu phẩy

Ví dụ: kiểm tra điểm của giáo viên chấm có nằm trong khoảng từ 0 đến 10 hay không, nếu khác tức là giáo viên chấm sai

5.3.2 Lệnh NOT IN trong SQL

Ngày đăng: 17/03/2023, 21:43

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

w