1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng hệ quản trị cơ sở dữ liệu

122 716 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 122
Dung lượng 2,59 MB

Nội dung

Bài giảng hệ quản trị cơ sở dữ liệu . sinh vieencasc trường đại hocjc ao ddawngrm chuyên ngành công nghệ thông tin, sinh viên các truwongf đại hoc cao đẳng Bài giảng hệ quản trị cơ sở dữ liệu Bài giảng hệ quản trị cơ sở dữ liệu Bài giảng hệ quản trị cơ sở dữ liệu

Trang 1

TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT

ĐẶNG HỮU NGHỊ HOÀNG KIM BẢNG BÙI THỊ VÂN ANH

BÀI GIẢNG

HỆ QUẢN TRỊ

CƠ SỞ DỮ LIỆU

Trang 2

MỤC LỤC

MỤC LỤC 0

Chương I : Những khái niệm cơ bản về cơ sở dữ liệu 4

I Cơ sở dữ liệu là gì? 4

1 Hệ quản trị cơ sở dữ liệu 4

2 Bản ghi và trường 4

II Thiết kế cơ sở dữ liệu .4

1 Các mối quan hệ 6

2 Sử dụng tính toàn vẹn tham chiếu để duy trì tính nhất quán 6

3 Chuẩn hoá 7

Chương 2 : Giới thiệu về SQL Server 2005 10

I SQL Server 2005 10

II Bắt đầu với SQL Server Management Studio Express 11

Chương 3: Một số thao tác cơ bản trên SQL Server 2005 Express Edition 17

1 Tạo một CSDL mới .17

2 Tạo bảng mới 18

3 Thay đổi cấu trúc của bảng 25

4 Lược đồ CSDL 26

5 Nhập dữ liệu cho bảng 31

6 Xóa bảng, xóa CSDL 31

7 Mở một query editor để viết câu lệnh SQL 31

Chương 4: Các câu lệnh SQL cơ bản 35

I Giới thiệu sơ lược về Transact SQL (T-SQL) .35

II Ngôn ngữ thao tác dữ liệu 35

1 Câu lệnh Select 35

2 Truy vấn dữ liệu từ nhiều bảng 45

3 Thêm dữ liệu vào bảng 48

4 Cập nhật dữ liệu 50

5 Xóa dữ liệu 50

III Ngôn ngữ định nghĩa dữ liệu 51

1 Tạo bảng 51

2 Sửa đổi định nghĩa bảng 53

3 Xóa bảng 54

4 Khung nhìn - VIEW 54

Chương 5: Một số hàm trong SQL Server 58

I Các hàm trên dữ liệu kiểu số 58

1 Hàm ABS 58

2 Hàm CEILING 58

Trang 3

4 Hàm ROUND 58

5 Hàm SQUARE 58

6 Hàm SQRT 58

7 Hàm isNumeric: 58

II Nhóm hàm thống kê 58

1 Hàm COUNT: 58

2 Hàm MAX: 58

3 Hàm MIN: 58

4 Hàm SUM: 58

5 Hàm AVG: 58

II Nhóm hàm xử lý chuỗi kí tự 59

1 Hàm LEFT 59

2 Hàm RIGHT 59

3 Hàm LEN 59

4 Hàm LTRIM 59

5 Hàm RTRIM 59

6 Hàm LOWER 59

7 Hàm UPPER 59

8 Hàm SUBSTRING 59

9 Hàm Replace 59

10 Hàm STR 59

III Nhóm hàm ngày tháng .60

1 Hàm GETDATE: 60

2 Hàm DATEPART 60

3 Hàm DAY( ): 60

4 Hàm MONTH( ): 60

5 Hàm YEAR( ): 60

6 DATEADD 61

7 DATEDIFF 61

IV Hàm CAST và CONVERT 61

Chương 6: Thủ tục lưu trữ, hàm và trigger 63

I Thủ tục lưu trữ (Stored Procedure) 63

1 Tạo thủ tục lưu trữ bằng Lệnh CREATE 63

2 Biến trong thủ tục lưu trữ 64

3 Giá trị trả về trong thủ tục lưu trữ 65

4 Các lệnh điều khiển 66

5 Thay đổi thủ tục lưu trữ 69

Trang 4

2 Hàm Inline Table-Valued 70

3 Hàm Multi-Statement Table-Valued 70

III Trigger 71

1 Tạo các Trigger 73

2 Trigger cho hành động thêm bản ghi 74

3 Trigger cho hành động cập nhật bản ghi 76

4 Trigger cho hành động xóa bản ghi 76

Chương 7: SQL Server và lập trình ứng dụng 78

I Mô hình kết nối ứng dụng đến SQL server 78

1 Mô hình ADO 78

2 Mô hình ADO.NET 79

3 Khác biệt giữa ADO và ADO.NET 80

II Truy cập dữ liệu với VB 6 và ADO 81

1 ADO 81

2 VÍ DỤ 86

III Truy cập dữ liệu với VB.NET và ADO.NET 92

1 ADO.NET 92

PHỤ LỤC 106

Trang 5

Chương I : Những khái niệm cơ bản về cơ sở dữ liệu

I Cơ sở dữ liệu là gì?

Cơ sở dữ liệu là một kho chứa thông tin Có nhiều loại cơ sở dữ liệu, nhưng

ta chỉ đề cập đến cơ sở dữ liệu quan hệ, là kiểu cơ sở dữ liệu phổ biến nhất hiện nay Một cơ sở dữ liệu quan hệ:

Chứa dữ liệu trong các bảng, được cấu tạo bởi các dòng còn gọi là các bản ghi, và cột gọi là các trường

ƒ Cho phép lấy về (hay truy vấn) các tập hợp dữ liệu con từ các bảng

ƒ Cho phép liên kết các bảng với nhau cho mục đích truy cập các bản ghi liên quan với nhau chứa trong các bảng khác nhau

1 Hệ quản trị cơ sở dữ liệu

Hệ quản trị cơ sở dữ liệu (Database Management System - DBMS): Là một

hệ thống phần mềm cho phép tạo lập cơ sở dữ liệu và điều khiển mọi truy nhập đối với cơ sở dữ liệu đó

Trên thị trường phần mềm hiện nay ở Việt Nam đã xuất hiện khá nhiều phần mềm hệ quản trị cơ sở dữ liệu như: Microsoft Access, Foxpro, DB2, SQL Server, Oracle,.v.v…

- Hệ quản trị cơ sở dữ liệu quan hệ (Relation Database Management System

- RDBMS) là một hệ quản trị cơ sở dữ liệu theo mô hình quan hệ

2 Bản ghi và trường

Các cơ sở dữ liệu được cấu tạo từ các bảng dùng thể hiện các phân nhóm dữ liệu Ví dụ, nếu ta tạo một cơ sở dữ liệu để quản lý tài khoản trong công việc kinh doanh ta phải tạo một bảng cho khách hàng, một bảng cho Hoá đơn và một bảng cho nhân viên Bảng có cấu trúc định nghĩa sẵn và chứa dữ liệu phù hợp với cấu trúc này

Bảng: Chứa các bản ghi tin là các mẩu riêng rẽ bên trong phân nhóm dữ liệu Bản ghi: Chứa các trường Mỗi trường thể hiện một bộ phận dữ liệu trong một bản ghi Ví dụ như mỗi bản ghi thể hiện một mục trong danh bạ địa chỉ chứa trong trường Họ và tên, địa chỉ, và số điện thoại

Trang 6

Sau đó, ta thiết kế cơ sở dữ liệu, tạo bảng chứa các trường định nghĩa kiểu dữ liệu

sẽ có Sau khi tạo ra cấu trúc cơ sở dữ liệu, tạo bảng chứa các trường định nghĩa kiểu dữ liệu sẽ có Sau khi tạo ra cấu trúc cơ sở dữ liệu, cơ sở dữ liệu có thể chứa dữ liệu dưới dạng bản ghi Ta không thể đưa dữ liệu vào mà không có bảng hay định nghĩa trường vì dữ liệu sẽ không có chỗ để chứa.Do đó, thiết kế cơ sở dữ liệu cực

kỳ quan trọng, nhất là rất khó thay đổi thiết kế một khi ta đã tạo xong nó

Ví dụ ta tạo một bảng sau:

Bảng khách hàng Bảng tblRegion

tblCustomer TblRegion

CustomerID State FirstName RegionName LastName

Company Address City State Zip Phone Fax Email

Có quan hệ giữa 2 bảng thông qua trường State Đây là mối quan hệ một - nhiều, đối với một bản ghi trong tblRegion, có thể không có, hoặc có nhiều bản ghi tương ứng trong bảng tblCustomer

Cụm từ “tbl” thể hiện tên bảng, tên trường hiển thị đầy đủ, không chứa khoảng trắng hay những ký tự đặc biệt khác như dấu gạch dưới

Bảng hoá đơn:

TblOrder

ID CustomerID OrderDate ItemID Amount Khóa chính: là kiểu chỉ mục đặc biệt Một trường được chỉ ra như là khóa chính của một bảng phục vụ cho việc xác định duy nhất bản ghi Vì vậy không như các kiểu chỉ mục khác, sẽ không có hai bản ghi trong cùng một bảng mà có cùng giá trị cho trường khóa chính Khi thiết kế một trường làm khóa chính, không có bản ghi nào chứa giá trị rỗng (giá trị NULL) ở trường này Khi chỉ ra một trường là khóa chính của bảng ta có thể tạo mối quan hệ giữa bảng này với một bảng khác

Trang 7

1 Các mối quan hệ

Mối quan hệ là một cách đinh nghĩa chính thức hai bảng liên hệ với nhau

như thế nào Khi ta định nghĩa một mối quan hệ, ta đã thông báo với bộ máy cơ sở

dữ liệu rằng hai trường trong hai bảng liên quan được nối với nhau

Hai trường liên quan với nhau trong một mối quan hệ là khoá chính và khoá ngoại Khoá ngoại là khoá trong bảng liên quan chứa bản sao của khoá chính của bảng chính

Sau đó mối quan hệ báo cho bộ máy cơ sở dữ liệu hai bảng liên quan với nhau trong mối quan hệ và khoá ngoại nào liên quan với khoá chính nào

Ngoài việc ghép các bản ghi liên quan trong các bảng riêng biết, ta còn định nghĩa mối quan hệ để tận dụng thế mạnh của tính toàn vẹn tham chiếu, một thuộc tính của bộ máy cơ sở dữ liệu duy trì các dữ liệu trong một cơ sở dữ liệu nhiều bảng luôn luôn nhất quán Khi tính toàn vẹn tham chiếu tồn tại trong một cơ sở dữ liệu,

bộ máy cơ sở dữ liệu sẽ ngăn cản ta xoá một bản ghi khi có các bản ghi khác tham chiếu đến nó trong cơ sở dữ liệu

Sau khi đã định nghĩa một mối quan hệ trong cơ sở dữ liệu, việc định nghĩa mối quan hệ này sẽ được lưu trữ cho đến khi ta xóa nó

2 Sử dụng tính toàn vẹn tham chiếu để duy trì tính nhất quán

Khi các bảng nối kết với nhau thông qua mối quan hệ, dữ liệu trong mỗi bảng phải duy trì sự nhất quán trong các bảng liên kết Tính toàn vẹn tham chiếu quản lý công việc này bằng cách theo dõi mối liên hệ giữa các bảng và ngăn cấm các kiểu thao tác nào đó trên các bản ghi

Ví dụ, giả định rằng ta có một bảng gọi là tblCustomer và một bảng khác là tblOrder Hai bảng này quan hệ với nhau qua trường chung là CustomerID

Giả thiết ở đây là ta tạo các khách hàng chứa trong tblCustomer rồi tạo các hoá đơn trong tblOrder Nhưng điều gì sẽ xảy ra nếu ta tiến hành xoá một khách hàng có hoá đơn chưa xử lý chứa trong bàng hoá đơn? Hoặc là nếu ta tạo một hoá đơn mà không có một CustomerID hợp lệ gắn liền với nó? Mục hoá đơn không có CustomerID thì không thể gửi đi, bởi vì địa chỉ gửi là một trường của mẩu tin trong tblCustomer Khi dữ liệu trong các bảng quan hệ gặp phải rắc rối này, ta nói nó ở trọng thái không nhất quán

Một điểu rất quan trọng là cơ sở dữ liệu không được trở nên không nhất quán, bộ máy cơ sở dữ liệu cung cấp một cách để ta định nghĩa mối quan hệ trong

Trang 8

mỗi khi ta thi hành một hành động nào đó làm cho dữ liệu rơi vào trạng thái không nhất quán Ví dụ, trong cơ sở dữ liệu có tính toàn vẹn tham chiếu đang hoạt động, nếu ta cố tạo một hoá đơn chứa một CustomerID của khách hàng đối với một khách hàng không tồn tại, ta sẽ nhận một thông báo lỗi và hoá đơn sẽ không thể tạo ra

3 Chuẩn hoá

Chuẩn hoá là một khái niệm liên quan đến mối quan hệ Về cơ bản, nguyên tắc của chuẩn hoá phát biểu rằng các bảng cơ sở dữ liệu sẽ loại trừ tính không nhất quán và giảm thiểu sự kém hiệu quả

Các cơ sở dữ liệu được mô tả là không nhất quán khi dữ liệu trong một bảng không tương ứng với dữ liệu nhập vào trong bảng khác Ví dụ, Nếu phân nửa số người nghĩ rằng Arkansr ở miền Trung Tây và một nửa nghĩ rằng nó nằm ở phía Nam và nếu cả hai nhóm nhân viên nhập liệu theo ý kiến riêng của họ, khi ấy báo cáo cơ sở dữ liệu trình bày những việc xảy ra ở miền Trung Tây là vô nghĩa

Một cơ sở dữ liệu kém hiệu quả không cho phép ta trích ra các dữ liệu chính xác mà ta muốn Một cơ sở dữ liệu chứa toàn bộ dữ liệu trong một bảng có thể buộc

ta phải vất vả duyệt qua một lượng lớn tên các khách hàng, địa chỉ và lịch sử liên hệ chỉ để lấy về 1 số điện thoại của một khách hàng nào đó Mặt khác, một cơ sở dữ liệu được chuẩn hoá đầy đủ chứa từng mẩu thông tin của cơ sở dữ liệu trong bảng riêng và xa hơn, các định từng mẩu thông tin duy nhất thông qua khoá chính của nó

Các cơ sở dữ liệu chuẩn hoá cho phép ta tham chiếu đến một mẩu thông tin trong một bảng bất kỳ chỉ bằng khoá chính của thông tin đó

Ta quyết định cách thức chuẩn hoá của một cơ sở dữ liệu khi ta thết kế và khởi tạo một cơ sở dữ liệu Thông thường, mọi thứ về ứng dụng cơ sở dữ liệu - từ thiết kế bảng cho đến thiết kế truy vấn, từ giao diện người sử dụng đến cách hoạt động của báo cáo - đều xuất phát từ cách chuẩn hoá cơ sở dữ liệu

Là một lập trình viên cơ sở dữ liệu, thỉnh thoảng bạn sẽ chợt nảy ra ý nghĩ

về cơ sở dữ liệu vẫn chưa được chuẩn hoá vì lý do này hay lý do khác Sự thiếu chuẩn hoá có thể do chủ ý, hoặc có thể là do kết quả của sự thiếu kinh nghiệm hoặc

sự khộng thận trọng trong việc thiết kế cơ sở dữ liệu ban đầu Dù ở mức độ nào, nếu

đã chọn chuẩn hoá một cơ sở dữ liệu đã tồn tại, ta nên thực hiện sớm (bởi vì mọi thứ khác thực hiện trong cơ sở dữ liệu đều phụ thuộc vào cấu trúc bảng của cơ sở

dữ liệu) Hơn nữa, ta sẽ thấy những câu truy vấn hành động là công cụ rất hữu ích trong việc sắp xếp lại một cơ sở dữ liệu thiết kế thiếu sót Truy vẫn là hành động cho phép ta đi chuyển các trường từ bảng này sang bảng khác như là thêm, cập nhật

và xoá bản ghi từ các bảng dựa trên các tiêu chỉ nêu ra

Trang 9

a Quan hệ Một - Một

Là loại quan hệ dễ hiểu và dễ thực hiện nhất, bởi vì trong những mối quan hệ như vậy, một bảng sẽ lấy vị trí của một trường trong một bảng khác, trường liên quan cũng dễ nhận dạng Tuy nhiên, quan hệ một - một không phải là mối quan hệ thông dụng nhất trong ứng dụng cơ sở dữ liệu Do 2 nguyên nhân:

1 Hầu như ta không cần biểu diễn mối quan hệ một một với hai bảng Ta có thể dùng nó để cải tiến khả năng hoạt động, ví dụ ta mất tính linh hoạt khi chứa các dữ liệu liên hệ trong một bảng tách biệt Trong ví dụ trước, thay vì có các bảng nhân viên và công việc chứa trong bảng nhân viên

2 Thể hiện quan hệ một - nhiều thì cũng khá dễ (nhưng linh hoạt hơn nhiều) quan hệ một - một

c Quan hệ nhiều nhiều

Quan hệ nhiều - nhiều là bước phát triển của quan hệ một - nhiều ví dụ cổ điển của quan hệ nhiều nhiều là học sinh và lớp Mỗi học sinh có nhiều lớp, mỗi lớp

có nhiều học sinh

Để thiết lập quan hệ nhiều nhiều, ta có thể sửa lại ví dụ trước sao cho cơ sở

dữ liệu có thể chứa nhiều người bán cho một người mua Mỗi người bán có nhiều khách hàng, và mỗi khách hàng có nhiều người bán

Trang 10

Bài Tập

1 Nêu các đặc trưng chính của Khóa chính (primary key)

2 Khóa ngoại (foreign key) là gì

3 Mục đích của việc thiết kế CSDL quan hệ là gì?

.

Trang 11

Chương 2 : Giới thiệu về SQL Server 2005

I SQL Server 2005

SQL Server 2005 là một hệ thống quản l cơ sở dữ liệu (Relational Database Management System (RDBMS)) sử dụng Transact-SQL để trao đổi dữ liệu giữa Client computer và SQL Server computer Một RDBMS bao gồm databases, database engine và các ứng dụng dùng để quản trị dữ liệu và các bộ phận khác nhau trong RDBMS

SQL Server 2005 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user SQL Server 2005 có thể kết hợp "ăn " với các server khác như Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server Các phiên bản của SQL Server 2005:

• SQL Server 2005 Express Edition

• SQL Server 2005 Enterprise Edition

• SQL Server 2005 Standard Edition

• SQL Server 2005 Workgroup Edition

• SQL Server 2005 Developer Edition

• SQL Server 2005 Mobile Edition

Enterprise: Hỗ trợ không giới hạn số lượng CPU và kích thước Database Hỗ trợ không

giới hạn RAM (nhưng tùy thuộc vào kích thước RAM tối đa mà HĐH hỗ trợ)

SQL Server 2005 Express Edition

SQL Server 2005 Express cung cấp một phương tiện tuyệt vời cho những

Trang 12

SQL Server Một số lợi thế khác của SQL Server Express bao gồm dễ dàng cài đặt,

dễ dàng quản lí

Trong giáo trình này chúng ta sẽ tập trung nghiên cứu về SQL Server 2005 Express

II Bắt đầu với SQL Server Management Studio Express

SQL Server Management Studio Express là công cụ mà bạn sử dụng để quản

lý SQL Server và các đối tượng của nó Sử dụng công cụ này, bạn có thể tạo và làm việc với cơ sở dữ liệu, bảng biểu, các thủ tục lưu trữ, các chỉ mục, và nhiều hơn nữa

Để khởi động SQL Server Management Studio Express bạn thực hiện theo các bước sau:

Vào Start/Programs/Microsoft SQL Server 2005/ SQL Server Management

Studio Express, xuất hiện hộp thoại Connect to Server

Trong đó:

• Server type: Chọn Database Engine để kết nối đến cỗ máy cơ sở dữ liệu

• Server name: Chọn hoặc nhập tên server, bạn nhập tên server ở dạng

Tenmay\TenTheHien Ví dụ để kết nối tới thể hiện có tên SQLEXPRESS

trên máy MDC-FCE bạn nhập: MDC-FCE\ SQLEXPRESS

• Authentication: Chọn chế độ xác thực là Windows Authentication hoặc SQL Server Authentication, nếu chọn SQL Server Authentication thì ta

Trang 13

• Password: Mật khẩu của tên đăng nhập

• Remember password: Tùy chọn được chọn để là đăng nhập sau không phải đánh mật khẩu

Sau khi nhập xong các thông tin ta nhấn nút Connect, giao diện sau khi đăng nhập thành công như sau:

Các đối tượng trong một CSDL

Các đối tượng hệ thống và đối tượng của người sử dụng

CSDL hệ thống (System databases) bao gồm Master, Model, MSDB, Resource, TempDB, và Distribution SQL tạo ra các CSDL này trong quá trình cài đặt Như tên gọi của chúng, chúng là một phần của hệ thống, và hầu hết trong số chúng được sử dụng để cho phép máy chủ hoạt động

Trang 14

Bên cạnh các đối tượng hệ thống là một phần của hệ thống SQL Server bạn

có thể tạo các đối tượng của người sử dụng Các đối tượng của người sử dụng bao gồm các CSDL, các thủ tục lưu trữ, các hàm, và các dối tượng CSDL khác Bạn có thể thêm hoặc xóa các đối tượng này khi cần thiết

Bảng (Table)

Trang 15

ví dụ một bảng chứa thông tin về khách hàng, một bảng khác chứa thông tin về đơn đặt hàng Mỗi bảng trong CSDL phải có tên duy nhất

Lược đồ CSDL (Database Diagram)

Lược đồ CSDL thể hiện cấu trúc của CSDL dưới dạng đồ họa, nó biểu diễn mối quan hệ giữa các bảng trong CSDL Sử dụng lược đồ CSDL bạn có thể chỉnh sửa bảng, các cột, mối quan hệ, khóa, và các chỉ mục v.v

Khung nhìn (View):

Khung nhìn là một bảng tạm thời, có cấu trúc như một bảng Nội dung của khung nhìn dựa trên một truy vấn (query), nó chỉ tồn tại trong bộ nhớ Dữ liệu trong một khung nhìn có thể đến từ một hoặc nhiều bảng trong CSDL Nó cũng có thể đến từ các khung nhìn khác thậm chí đến từ dữ liệu trong các CSDL khác

Trang 16

Thủ tục lưu trữ (Stored Procedure)

Thủ tục lưu trữ là một đối tượng trong CSDL, bao gồm nhiều câu lệnh SQL được tập hợp lại với nhau thành một nhóm, và tất cả các lệnh này sẽ được thực thi khi thủ tục lưu trữ được thực thi

Trang 17

T-Hàm do người dùng định nghĩa (Function):

Hàm do người dùng tự định nghĩa (ở đây ta gọi tắt là hàm) là một thủ tục cho phép chấp nhận các tham số đầu vào, thực hiện một số các thao tác và trả về kết quả của các thao tác như một giá trị Kết quả trả về có thể là một giá trị hoặc một tập các giá trị Hàm có rất nhiều lọi ích, cũng giống như các thủ tục lưu trữ chúng cho phép

ta modul hóa chương trình nghĩa là ta có thể gọi nó ở bất cứ điểm nào trong chương trình

Trigger

Trigger là một dạng đặc biệt của thủ tục lưu trữ, nó được thực hiện khi một

sự kiện ngôn ngữ thực thi Có 2 loại trigger: DML triggers and DDL triggers DDL trigger được Microsoft giới thiệu trong SQL server 2005 Chúng được thực hiện khi

có sự thay đổi cấu trúc của CSDL Ví dụ khi ai đó cố gắng xóa một trường của một bảng, bạn có thể viết một DDL trigger để ngăn chặn việc xóa một trường nếu trường đó có chứa dữ liệu Bạn cũng có thể sử dụng DDL trigger để thống kê các thay đổi về cấu trúc của CSDL

DML trigger được gọi khi một sự kiện DML (Data Manipulation Language) diễn ra trong CSDL Các sự kiện DML bao gồm các lệnh INSERT, UPDATE, and

Trang 18

Chương 3: Một số thao tác cơ bản trên SQL Server 2005 Express

Edition

Microsoft SQL Server Management Studio Express cung cấp một giao diện thân thiện giúp cho người dùng thực hiện các thao tác một cách dễ dàng Một số các thao tác cơ bản bao gồm: tạo CSDL mới, xóa CSDL, tạo bảng, xóa bảng…Cũng cần lưu ý rằng các thao tác thực hiện thông qua giao diện thì đều có thể được thực hiện được bằng các câu lệnh SQL

Trang 19

2 Tạo bảng mới

Bảng được tạo thành từ các hàng và các cột Mỗi cột hay còn gọi là trường (field) gồm tên cột (Column Name), kiểu dữ liệu (Data Type) và một giá trị cho biết cột đó có thể chứa giá trị NULL hay không

Để tạo bảng ta thực hiện theo các bước sau:

• Kích chuột phải vào mục Table trong CSDL mà bạn muốn thêm bảng mới sau đó chọn New Table

• Cửa sổ thiết kế bảng xuất hiện

Trang 20

• Nhập tên cột, kiểu dữ liệu và độ dài của mỗi trường trong trong bảng

• Chỉ định cột có cho phép chứa giá trị NULL hay không

• Thiết lập các thuộc tính cho cột trong phần Column Properties

Một trong những thuộc tính quan trọng nhất của cột là kiểu dữ liệu của cột

Có các kiểu dữ liệu sau:

bigint Các số nguyên từ -263 đến 263-1 8 bytes binary(n) Dữ liệu nhị phân với độ dài cố định n byte (1

≤ n ≤ 8000)

n+ 4 bytes

bit Kiểu bit (có giá trị 0 hoặc 1) 1 byte

char(n) Kiểu chuỗi có chiều dài n kí tự cố định (1 ≤ n

decimal(p,s) Dữ liệu số thập phân p là tổng số ký tự số có

thể được lưu, s là số chữ số thập phân

Phụ thuộc vào độ chính xác

float Dữ liệu số số thực dấu phẩy động có phạm vi

từ -1.79E+308 đến 1.79E+308

8 bytes

image Dữ liệu nhị phân Có thể lưu trữ tối đa

2,147,483,647 bytes dữ liệu nhị phân

Phụ thuộc dữ liệu

int Số nguyên có giá trị từ -231 đến 231 - 1 4 bytes

money Dữ liệu kiểu tiền tệ từ -263 đến 263 8 bytes nchar(n) Dữ liệu chuỗi, có chiều dài cố định n (1 ≤ n ≤

Trang 21

smallint Số nguyên từ -215 đến 215 -1 2 bytes

smallmoney Dữ liệu kiểu tiền tệ từ - 214,748.3648 đến

214,748.3647

4 bytes

sql_variant Cho phép giữ các giá trị của các kiểu dữ liệu

khác nhau (tất cả các kiểu dữ liệu hệ thống khác)

text Dữ liệu kiểu chuỗi, có thể lưu trữ tối đa

2,147,483,647 kí tự Không hỗ trợ Unicode

Mỗi kí tự chiếm

1 bytes timestamp Cột timestamp được cập nhật tự động mỗi khi

dòng đượcthêm hoặc được cập nhật Mỗi bảng chỉ có thể có 1 cột timestamp

8 bytes

tinyint Số nguyên có giá trị từ 0 đến 255 1 byte

unique-dentifier Là số định danh duy nhất toàn cục (GUID)

Nó được tự động sinh ra mỗi khi hàm NEWID( ) được sử dụng

Cột nhận dạng (Identity Columns)

Cột nhận dạng trong một bảng là cột mà SQL tự động cung cấp dữ liệu Cột nhận dạng có dữ liệu kiểu số, giá trị của nó được tăng tự động khi một hàng mới được thêm vào Mặc định giá trị đầu tiên là 1, mỗi giá trị tiếp theo tăng lên 1 Người thiết kế CSDL có thể chỉ ra giá trị bắt đầu và giá trị bước tăng Cột nhận dạng thường có kiểu dữ liệu int Ta có thiết lập cột này là khóa chính Để thiết lập một là cột nhận dạng và giá trị bước tăng ta thay đổi các giá trị trong phần Indenty

Trang 22

Cột được tính toán (Computed Column)

Với cột được tính toán, bạn có thể tạo ra một cột mà dữ liệu của nó được tính toán từ các cột khác SQL tự động cập nhật giá trị của cột được tính toán khi giá trị của các cột phụ thuộc thay đổi.Ví dụ giá trị của cột ThanhTien được trả về bởi tích của cột DonGia và cột SoLuong Để tạo cột bạn nhập công thức vào thuộc tính (Formula) trong của cột

Trang 23

Các ràng buộc(Constraints)

Constraints là những thuộc tính (properties) mà ta áp đặt lên một table hay một cột để tránh việc lưu dữ liệu không chính xác vào database (invalid data) Các ràng buộc có tác dụng hạn chế hoặc điều khiển kiểu dữ liệu mà người sử dụng có thể nhập vào trong bảng Có một số ràng buộc chính như sau:

Primary Key Constraint:

Một table thường có một hay nhiều cột có giá trị mang tính duy nhất để xác định một hàng bất kỳ trong table Ta thường gọi là Primary Key (Khóa chính) và được tạo ra khi ta tạo hay thay đổi một bảng với Primary Key Constraint

Một bảng chỉ có thể có một Primary Key constraint Có thể có nhiều cột tham gia vào việc tạo nên một Primary Key, các cột này không thể chứa giá trị Null

và giá trị trong các cột thành viên có thể trùng nhau nhưng giá trị của tất cả các cột tạo nên Primary Key phải mang tính duy nhất Mỗi bảng trong CSDL nên có một khóa chính, để xác định các cột trong bảng làm khóa chính ta thực hiện như sau:

9 Chọn cột hoặc các cột làm khóa chính

9 Kích chuột vào nút Set Primary Key trên thanh công cụ

Cột làm khóa chính sẽ có biểu tượng chìa khóa trước tên cột

Unique Constraint

Bạn có thể tạo Unique Constraint để đảm bảo giá trị của một cột nào đó không bị trùng lập Tuy Unique Constraint và Primary Key Constraint đều đảm bảo tính duy nhất nhưng bạn nên dùng Unique Constraint trong những trường hợp sau:

9 Nếu một cột (hay một sự kết hợp giữa nhiều cột) không phải là Primary key Nên nhớ chỉ có một Primary Key Constraint trong một table trong

Trang 24

Bạn tạo một Unique Constraint bằng cách tạo một unique index

Foreign Key Constraint

Foreign Key (Khóa ngoại) là một cột hay một sự kết hợp của nhiều cột được

sử dụng để áp đặt mối liên kết dữ liệu giữa hai bảng Foreign key của một bảng sẽ giữ giá trị của Primary key của một bảng khác và chúng ta có thể tạo ra nhiều Foreign key trong một bảng Foreign key có thể reference (tham chiếu) vào Primary Key hay cột có Unique Constraints Foreign key có thể chứa giá trị Null Mặc dù mục đích chính của Foreign Key Constraint là để kiểm soát dữ liệu chứa trong bảng

có Foreign key (tức bảng con) nhưng thực chất nó cũng kiểm soát luôn cả dữ liệu trong bảng chứa Primarykey (tức bảng cha) Ví dụ nếu ta xóa dữ liệu trong bảng cha thì dữ liệu trong bảng con trở nên "mồ côi" (orphan) vì không thể reference ngược

về bảng cha Do đó Foreign Key constraint sẽ đảm bảo điều đó không xảy ra Nếu bạn muốn xóa dữ liệu trong bảng cha thì trước hết bạn phải xóa Foreign key trong bảng con trước

Default Constraints

Default Constraints (Giá trị ngầm định) là giá trị mà SQL server tự động gán cho một cột nào đó trong bảng Giá trị ngầm định có thể là một hằng, NULL hoặc một hàm, trong trường hợp người sử dụng không nhập dữ liệu cho cột thì cột sẽ nhận giá trị ngầm định Bạn có thể nhập nhập giá trị ngầm định cho một cột tại thuộc tính Default Value or Binding trong cửa sổ Column Properties

Trang 25

có thể áp đặt một Check Constraint lên cột NgayDatHang chỉ chứa các giá trị là ngày trước ngày hiện hành Để nhập một Check Constraint ta thực hiện như sau:

9 Kích chuột vào nút Manage Check Constraints trên thanh công cụ

9 Hộp thoại Check Constraints xuất hiện, tại đây ta kích nút Add để tạo contraint mới

Trang 26

9 Nhập tên và biểu thức ràng buộc

9 Kích vào nút Close để thêm ràng buộc và đóng hộp thoại

Sau khi thiết kế xong bảng ta vào kích vào biểu tượng Save trên thanh công

cụ sẽ xuất hiện hộp thoại Choose Name cho phép ta nhập vào tên bảng sau đó kích

OK

3 Thay đổi cấu trúc của bảng

Để thay đổi cấu trúc bảng trong SQL Server Management Studio ta thực hiện các bước sau:

• Mở rộng các đối tượng trên thể hiện của SQL trong cửa sổ Object Explorer muốn thay đổi cấu trúc bảng

• Mở rộng mục Database và chọn cơ sở dữ liệu và bảng cần thay đổi cấu trúc Kích chuột phải lên bảng đó và chọn Modify xuất hiện cửa sổ thiết kế table

và ta thực hiện các thay đổi đối với cấu trúc bảng như cách tạo bảng

Trang 27

4 Lược đồ CSDL

a) Thiết lập mối quan hệ giữa các bảng

Sau khi thêm các bảng vào CSDL bạn thiết lập mối quan hệ giữa các bảng

Để thiết lập mối quan hệ giữa các bảng bạn tạo một lược đồ CSDL (Database Diagram) Để tạo một lược đồ CSDL ta thực hiện các bước sau:

Mở rộng CSDL mà bạn muốn tạo lược đồ CSDL, ví dụ ở đây ta tạo lược đồ CSDL cho CSDL QLDH

Trang 28

Xuất hiện hộp thoại sau:

Chọn Yes, xuất hiện hộp thoại Add Table cho phép ta chọn các bảng để đưa vào lược đồ

Chọn các bảng sau đó kích nút Add Kích nút Close để đóng hộp thoại, xuất hiện cửa sổ Diagram như sau:

Trang 29

Ta thực hiện thiết kế mối quan hệ giữa các bảng trong cơ sở dữ liệu bằng việc kéo và giữ trường khóa chính của bảng này thả sang trường khóa ngoại tương ứng của bảng khác xuất hiện cửa sổ Table and Columns

Ta thực hiện điều chỉnh các tham số cho mối quan hệ đó sau đó kích OK, xuất hiện hộp thoại Foreign Key Relationship

Hộp thoại này cho phép ta thay đổi các thuộc tính của mối quan hệ sau đó kích OK để quay trở lại cửa sổ Diagram

Để kiểm soát sự thay đổi dữ liệu trong các bảng dữ liệu có quan hệ ràng buộc trong CSDL, bạn có thể sử dụng khái niệm cascade giữa hai bảng

Để mỗi khi bản ghi trong bảng cha bị xóa thì những bản ghi trong bảng con

Trang 30

bảng cha bị thay đổi thì những bản ghi trong bản ghi có khóa ngoại bằng khóa chính của bản ghi đang thay đổi cũng thay đổi theo, bạn cần khai báo Cascaden cho trường hợp Update

Để làm điều này tachọn hai thuộc tính Delete Rule và Update Rule ứng với trường hợp Delete và Update

Khi bạn đóng cửa sổ Diagram, xuất hiện hộp thoại thông báo bạn có muốn lưu lược đồ hay không

Ta chọn Yes, xuất hiện hộp thoại cho phép ta nhập tên của lược đồ sau đó kích OK

Trang 31

Xuất hiện hộp thoại Save, tại đây ta kích Yes

Xóa quan hệ: Kích chuột phải lên quan hệ muốn xóa và chọn Delete Relationship from Database

Chỉnh sửa lại quan hệ: Kích chuột phải lên một bảng bất kì trong lược đồ sau

đó chọn Relationship, xuất hiện hộp thoại Foreign Key Relationships Lựa chọn mối quan hệ mà bạn muốn chỉnh sửa, thực hiện các chỉnh sửa sau đó kích Close

Trang 32

5 Nhập dữ liệu cho bảng

Để nhập dữ liệu cho bảng trong SQL Server Management Studio ta kích chuột phải vào tên bảng cần nhập dữ liệu và chọn Open Table sẽ xuất hiện cửa sổ nhập dữ liệu cho bảng

6 Xóa bảng, xóa CSDL

Click chuột phải lên bảng hay CSDL muốn xóa -> Delete - >OK Trong

trường hợp xóa một CSDL, nên chọn dấu tích vào Close existing connections Khi

đó SQL Server 2005 sẽ ngắt tất cả các kết nối vào CSDL này và việc xóa sẽ không gây báo lỗi

7 Mở một query editor để viết câu lệnh SQL

Một trong những công việc quan trọng nhất đối với các hệ quản trị CSDL là truy vấn (query) CSDL Để soạn thảo các truy vấn ta có thể mở bộ soạn thảo theo một số cách sau (Ví dụ ta thực hiện truy vấn trên CSDL QLDH):

Kích chuột phải vào CSDL mà bạn muốn thực hiện các truy vấn sau đó chọn New Query

Trang 33

Xuất hiện hộp thoại sau:

Bạn cũng có thể mở bộ soạn thảo truy vấn bằng cách kích vào nút New Query trên thanh công cụ sau đó chọn CSDL mà ta muốn thực hiện các truy vấn

Để mở và kích hoạt CSDL bạn sử dụng lệnh USE, ví dụ trong cửa sổ soạn thảo bạn gõ:

Trang 34

Để lưu trữ truy vấn bạn vào File và chọn Save SQLQuery1.sql hoặc kích vào biểu tượng Save trên thanh công cụ Xuất hiện hộp thoại cho phép bạn nhập tên của query và thư mục để lưu trữ query

Trang 35

9 Trường Address: Kiểu dữ liệu là VarChar(200)

9 Trường State: Kiểu dữ liệu Char(2) Tạo ràng buộc để đảm bảo dữ liệu trong cột là CA, UT, AZ, WY, OR, hoặc WA Ngầm định là CA

9 Trường IntroDate: Kiểu dữ liệu là DateTime, giá trị ngầm định là ngày hiện hành Thêm ràng buộc để đảm bảo rằng ngày nhập vào là sau trước hiện hành

9 Trường CreditLimit: Kiểu dữ liệu tiền tệ, giá trị ngầm định là 500.000 Tạo ràng buộc để đảm bảo rằng dữ liệu nhập vào luôn nằm trong khoảng giữa 0 và 10.000.000

Lưu trữ và nhập dữ liệu để kiểm tra các ràng buộc và giá trị ngầm định

Trang 36

Chương 4: Các câu lệnh SQL cơ bản

I Giới thiệu sơ lược về Transact SQL (T-SQL)

Transact SQL hay còn gọi là T-SQL thực hiện ngôn ngữ truy vấn có cấu trúc (Structured Query Language -SQL) của Microsft T-SQL được thiết kế để nhận, tương tác và thêm dữ liệu vào CSDL SQL Server

T-SQL có thể được phân loại như sau :

• Ngôn ngữ định nghĩa dữ liệu (Data Definition Language - DDL): Các

lệnh dùng để tạo, sửa, xóa các đối tượng trong CSDL như database, table, index, view, stored procedures và các đối tượng khác

• Ngôn ngữ thao tác dữ liệu (Data Manipulation Language - DML):

Chứa các lệnh thao tác với dữ liệu như truy xuất, thêm, sửa, xoá dữ liệu

• Ngôn ngữ điều khiển dữ liệu (Data Control Language - DCL): Chứa

các lệnh điều khiển, phân quyền truy xuất dữ liệu

II Ngôn ngữ thao tác dữ liệu

SQL được xem như là công cụ hữu hiệu để thực hiện các yêu cầu truy vấn và thao tác trên dữ liệu Nhóm các câu lệnh này được gọi chung là ngôn ngữ thao tác

dữ liệu (DML Data Manipulation Language) bao gồm các câu lệnh sau:

SELECT: Sử dụng để truy xuất dữ liệu từ môt hoặc nhiều bảng

INSERT: Thêm dữ liệu

Cú pháp chung của câu lệnh SELECT có dạng:

Trang 37

FROM <danh sách bảng/khung nhìn>

[WHERE <Biểu thức điều kiện>]

[GROUP BY <danh sách cột>]

[HAVING <điều kiện>]

[ORDER BY <Tên cột/ Số thứ tự cột/Biểu thức> [ASC/DESC]]

[COMPUTE <danh sách hàm gộp [BY <danh sách cột>]>]

Các thành phần nằm trong cặp dấu [ ] là tùy chọn tức là có thể có hoặc không Các thành phần trong câu lệnh SELECT nếu được sử dụng phải tuân theo đúng thứ tự như trong cú pháp Nếu không, câu lệnh sẽ được xem là không hợp lệ

Câu lệnh SELECT được sử dụng để tác động lên các bảng dữ liệu và kết quả của câu lệnh cũng được hiển thị dưới dạng bảng, tức là một tập hợp các dòng và các cột (ngoại trừ trường hợp sử dụng câu lệnh SELECT với mệnh đề COMPUTE)

Trong phần này chúng tôi sử dụng cơ sở dữ liệu về quản lí đơn hàng (QLDH) để làm ví dụ

a Mệnh đề From

Mệnh đề FROM trong câu lệnh SELECT được sử dung nhằm chỉ định các bảng và khung nhìn cần truy xuất dữ liệu Sau FROM là danh sách tên của các bảng

Trang 38

Ví dụ lệnh sau hiển thị họ đệm, tên và địa chỉ của các khách hàng được lưu trữ trong bảng KhachHang

select HoDem, Ten , DiaChi from KhachHang

Ta cũng có thể hiển thị tất cả các cột của bảng bằng cách sử dụng lệnh sau: select from KhachHang

Nếu tên bảng chứa khoảng trắng ta phải đặt tên bảng trong cặp [ ] hoặc “ “ như sau:

select from [Khach Hang]

Hoặc

select from “Khach Hang“

Đổi tên các cột trong kết quả hiển thị

Khi kết quả được hiển thị, tiêu đề của các cột mặc định sẽ là tên của các cột khi bạn tạo bảng Tuy nhiên, để các tiêu đề trở nên thân thiện hơn, ta có thể đổi tên các tiêu đề của các cột khi hiển thị Để làm được việc này, ta có thể sử dụng một trong hai cách viết sau:

<tiêu đề cột> = <tên cột>

hoặc:

<tên cột> <tiêu đề cột>

Trang 39

Tên cho tiêu đề cột Ten và Địa chỉ thay cho tiêu đề cột DiaChi khi kết quả đươc

hiển thị:

Hoặc:

Kết quả hiển thị như sau:

Sử dụng tên giản đồ

Trong SQL Server 2005 các tên bảng có thể có phần tiền tố là tên giản đồ, phân cách giữa tên giản đồ và tên bảng là dấu chấm Mục đích của giản đồ là để nhóm các đối tượng theo loại và làm cho CSDL phức tạp và lớn trở lên dễ quản lí hơn Nếu bạn là người quản trị thì dbo (database owner) là giản đồ ngầm định

Trang 40

select from khachhang k

where k MaKhachHang = 2

Cấu trúc CASE

Trong câu lệnh SELECT, ta có thể sử dụng cấu trúc CASE để thay đổi cách hiển thị kết quả ra màn hình Ví dụ các câu lệnh sau cho biết họ đệm, tên, địa chỉ và giới tính của khách hàng nhưng với giới tính thay vì hiển thị giá trị là 1 hoặc 0 sẽ hiển thị là “Nam” hoặc “Nữ”

select 'Họ đệm' HoDem , 'Tên' = Ten , 'Địa chỉ' = DiaChi ,

'Giới tính' =

case when GioiTinh = 1 then N 'Nam' when GioiTinh = 0 then N 'Nữ' else N 'Không có dữ liệu'

end from KhachHang

Kí tự N trước một chuỗi chỉ ra chuỗi này có định dạng Unicode

Danh sách chọn trong câu lệnh SELECT có thể có các biểu thức số học Khi

đó kết quả của biểu thức sẽ là một cột trong kết quả truy vấn Ví dụ:

select 'Họ và tên' HoDem + ' ' Ten , 'Địa chỉ' DiaChi

from KhachHang

Từ khóa Top

Từ khoá TOP được sử dụng trong câu lệnh SELECT để chỉ định tập hợp các dòng đầu tiên được trả về trong truy vấn Tập hợp các dòng đó có thể là một con số hoặc theo tỷ lên phần trăm các dòng dữ liệu

Ví dụ bạn muốn nhận được 10 dòng đầu tiên từ bảng KhachHang bạn thực hiện câu lệnh truy vấn sau:

select Top 10 * from KhachHang

Nếu bạn muốn số dòng kết quả nhận được bằng 5% tổng số dòng của bảng bạn thực hiện như sau:

select Top 5 percent from KhachHang

Ngày đăng: 30/06/2014, 12:21

HÌNH ẢNH LIÊN QUAN

Bảng khách hàng  Bảng tblRegion - Bài giảng hệ quản trị cơ sở dữ liệu
Bảng kh ách hàng Bảng tblRegion (Trang 6)
Bảng hoá đơn: - Bài giảng hệ quản trị cơ sở dữ liệu
Bảng ho á đơn: (Trang 6)
Bảng được tạo thành từ các hàng và các cột. Mỗi cột hay còn gọi là trường  (field) gồm tên cột (Column Name), kiểu dữ liệu (Data Type) và một giá trị cho biết  cột đó có thể chứa giá trị NULL hay không - Bài giảng hệ quản trị cơ sở dữ liệu
ng được tạo thành từ các hàng và các cột. Mỗi cột hay còn gọi là trường (field) gồm tên cột (Column Name), kiểu dữ liệu (Data Type) và một giá trị cho biết cột đó có thể chứa giá trị NULL hay không (Trang 19)
Bảng cha bị thay đổi thì những bản ghi trong bản ghi có khóa ngoại bằng khóa chính  của bản ghi đang thay đổi cũng thay đổi theo, bạn cần khai báo Cascaden cho  trường hợp Update - Bài giảng hệ quản trị cơ sở dữ liệu
Bảng cha bị thay đổi thì những bản ghi trong bản ghi có khóa ngoại bằng khóa chính của bản ghi đang thay đổi cũng thay đổi theo, bạn cần khai báo Cascaden cho trường hợp Update (Trang 30)
Hình : Xem tổng con bằng COMPUTE BY - Bài giảng hệ quản trị cơ sở dữ liệu
nh Xem tổng con bằng COMPUTE BY (Trang 46)
Hình  BOF và EOF trong một Recordset. - Bài giảng hệ quản trị cơ sở dữ liệu
nh BOF và EOF trong một Recordset (Trang 86)
Bảng KhachHang lên điều khiển lưới - Bài giảng hệ quản trị cơ sở dữ liệu
ng KhachHang lên điều khiển lưới (Trang 98)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w