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

HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

76 296 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 76
Dung lượng 1,57 MB

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

Nội dung

Nội dung chủ yếu: Giới thiệu về hệ quản trị cơ sở dữ liệu; Tạo và quản lý cơ sở dữ liệu; Tạo và quản lý các bảng; Truy vấn dữ liệu; Tạo và quản lý các chỉ mục; Tạo và quản lý các khung

Trang 1

TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN HỆ THỐNG THÔNG TIN

-*** -

BÀI GIẢNG

HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

TÊN HỌC PHẦN : HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

TRÌNH ĐỘ ĐÀO TẠO : ĐẠI HỌC CHÍNH QUY

DÙNG CHO SV NGÀNH : CÔNG NGHỆ THÔNG TIN

HẢI PHÒNG - 2011

Trang 2

2

MỤC LỤC

Chương I Giới thiệu 8

1.1 Giới thiệu về hệ quản trị 8

1.2 Tổng quan SQL Server 2005 10

1.3 Giới thiệu SQL Management Tool 10

1.4 Ngôn ngữ vấn tin có cấu trúc 11

Chương II Tạo và quản lý cơ sở dữ liệu 12

2.1 Các tệp tin cơ sở dữ liệu (Database files) 12

2.2 Tạo cơ sở dữ liệu (Database) 12

2.3 Sửa cơ sở dữ liệu 14

2.4 Xóa cơ sở dữ liệu 15

2.5 Các system database đặc biệt 16

Chương III Tạo và quản lý các bảng 18

3.1 Tạo bảng (CREATE TABLE) 18

3.2 Định nghĩa các cột (Columns) 19

3.3 Định nghĩa các ràng buộc (Constrains) 20

3.4 Sửa bảng (ALTER TABLE) 21

3.5 Xóa bảng (DROP TABLE) 22

3.6 Thêm bản ghi mới (INSERT) 23

3.7 Cập nhật bản ghi (UPDATE) 25

3.8 Xóa bản ghi (DELETE) 25

Chương IV Truy vấn dữ liệu 27

4.1 Truy vấn cơ bản 27

4.2 Sử dụng biểu thức và hàm 30

4.3 Truy vấn từ nhiều bảng 33

4.4 Truy vấn lồng nhau 37

Chương V Tạo và quản lý các chỉ mục 40

5.1 Các kiểu chỉ mục (Indexes) 40

5.2 Tạo các chỉ mục 40

5.3 Quản lý và gỡ bỏ các chỉ mục 42

Trang 3

3

Chương VI Tạo và quản lý khung nhìn 45

6.1 Định nghĩa 45

6.2.Mục đích sử dụng: 45

6.3 Tạo các khung nhìn (Views) 46

6.4 Quản lý các khung nhìn 47

Chương VII Tạo và quản lý các thủ tục thường trú 50

7.1 Giới thiệu 50

7.2 Tạo các thủ tục thường trú 51

7.3 Thực thi thủ tục thường trú 51

7.4 Quản lý các thủ tục thường trú 52

7.5 Tham số vào và ra 53

7.6 Thủ tục thường trú hệ thống 54

Chương VIII Tạo và quản lý hàm người dùng định nghĩa 56

8.1 Các kiểu hàm người dùng định nghĩa (User-defined functions) 56

8.2 Tạo hàm người dùng định nghĩa 56

8.3 Quản lý hàm người dùng định nghĩa 57

Chương IX Tạo và quản lý các Trigger 60

9.1 Tạo các Trigger thao tác dữ liệu (DML Triggers) 60

9.2 DDL Trigger và DML Trigger 62

9.3 Sử dụng các Trigger lồng nhau (Nested Triggers) 63

9.4 Sử dụng các Trigger đệ quy: 64

Trang 4

4

Tên học phần: Hệ quản trị Cơ sở dữ liệu Loại học phần: 4

Bộ môn phụ trách giảng dạy: Hệ thống Thông tin Khoa phụ trách: CNTT

Học phần học trước: Không yêu cầu

Học phần tiên quyết: Không yêu cầu

Học phần song song: Không yêu cầu

Mục tiêu của học phần:

Cung cấp cho sinh viên những kiến thức cơ bản về hệ quản trị cơ sở dữ liệu; Các chức năng

và công cụ cần thiết để quản trị cơ sở dữ liệu cho người phát triển hệ thống

Nội dung chủ yếu:

Giới thiệu về hệ quản trị cơ sở dữ liệu; Tạo và quản lý cơ sở dữ liệu; Tạo và quản lý các bảng; Truy vấn dữ liệu; Tạo và quản lý các chỉ mục; Tạo và quản lý các khung nhìn; Tạo và quản lý các thủ tục thường trú; Tạo và quản lý các hàm người dùng định nghĩa; Tạo và quản

1.1 Hệ quản trị cơ sở dữ liệu Microsoft SQL Server

(2005)

1.2 Các thành phần cơ bản trong Microsoft SQL Server

(2005)

1.3 Ngôn ngữ truy vấn dữ liệu có cấu trúc (SQL)

Chương 2 Tạo và quản lý cơ sở dữ liệu 10 6 4

2.1 Các tệp tin cơ sở dữ liệu (Database files)

2.2 Tạo cơ sở dữ liệu (Database)

2.3 Quản lý cơ sở dữ liệu

2.4 Xóa cơ sở dữ liệu

Trang 5

3.3 Định nghĩa các ràng buộc (Constrains)

3.4 Sửa bảng (ALTER TABLE)

3.5 Xóa bảng (DROP TABLE)

3.6 Thêm bản ghi mới (INSERT)

3.7 Cập nhật bản ghi (UPDATE)

3.8 Xóa bản ghi (DELETE)

4.3 Truy vấn lồng nhau (Subqueries)

Chương 5 Tạo và quản lý các chỉ mục 5 3 2

Trang 6

Chương 7 Tạo và quản lý các thủ tục thường trú 5 3 2

7.1 Tạo các thủ tục thường trú (Stored procedures)

7.2 Thực thi các thủ tục thường trú

7.3 Xem và sửa các thủ tục thường trú

7.4 Tham số vào và ra (Parameters)

7.5 Các thủ tục thường trú của hệ thống

Chương 8 Tạo và quản lý hàm người dùng định nghĩa 5 3 2

8.1 Các kiểu hàm người dùng định nghĩa (User-defined

functions)

8.2 Tạo hàm người dùng định nghĩa

8.3 Quản lý hàm người dùng định nghĩa

Chương 9 Tạo và quản lý các Trigger 5 3 2

9.1 Tạo các Trigger thao tác dữ liệu (DML Triggers)

9.2 Tạo các Trigger định nghĩa dữ liệu (DDL Triggers)

9.3 Sử dụng các Trigger lồng nhau (Nested Triggers)

9.4 Sử dụng các Trigger đệ quy (Recursive Triggers)

Nhiệm vụ của sinh viên:

Tham dự các buổi học lý thuyết và thực hành, làm các bài tập được giao, làm các bài thi giữa học phần và bài thi kết thúc học phần theo đúng quy định

Tài liệu học tập:

Dương Quang Thiện, SQL Server 2000: Lập trình T - SQL, NXB Văn hóa Sài Gòn, 2007 Ray Rankins, Paul Bertucci, Chris Gallelli, Alex T.Silverstein, Microsoft SQL Server 2005 Unleashed, Sams Publishing, 2007

Brian Knightet al, Professional SQL Server 2005 Administration, Wrox Press, 2007

Paul Turley & Dan Wood, Beginning Transact-SQL with SQL Server 2000 and 2005, Wrox

Press, 2006

Hình thức và tiêu chuẩn đánh giá sinh viên:

Trang 7

7 Hình thức thi: thi viết hoặc vấn đáp

Tiêu chuẩn đánh giá sinh viên: căn cứ vào sự tham gia học tập của sinh viên trong các buổi học lý thuyết và thực hành, kết quả làm các bài tập được giao, kết quả của các bài thi giữa học phần và bài thi kết thúc học phần

Thang điểm: Thang điểm chữ A, B, C, D, F

Điểm đánh giá học phần: Z = 0,4X + 0,6Y

Bài giảng này là tài liệu chính thức và thống nhất của Bộ môn Hệ thống Thông tin, Khoa

Công nghệ Thông tin và được dùng để giảng dạy cho sinh viên

Ngày phê duyệt: / /

Trưởng Bộ môn

Trang 8

8

Chương I Giới thiệu

1.1 Giới thiệu về hệ quản trị

1.1.1 CSDL quan hệ là gì?

 Dữ liệu có thể được hiểu như mọi thông tin nói chung

 Tập hợp các dữ liệu liên quan với nhau được tổ chức thành CSDL

có duy nhất 1 bản ghi cha

• Mô hình mạng: Mô hình này tương tự mô hình phân cấp Mô hình phân cấp là 1 trường hợp đặc biệt của mô hình mạng Trong mô hình mạng dữ liệu được tổ chức liên kết vật lý theo dạng tập hợp 1 bản ghi cha có quyền có nhiều bản ghi con và 1 bản ghi con có quyền có nhiều bản ghi cha

• Mô hình quan hệ Mô hình quan hệ là mô hình dữ liệu được tổ chức dựa trên mô hình của đại số quan hệ Trong đó, dữ liệu được tổ chức thành các bảng dữ liệu Mỗi bảng

dữ liệu gồm có các cột hay còn gọi là các trường và các dòng hay còn gọi là các bản ghi Mối liên hệ giữa các bản ghi được tổ chức theo dạng logic thông qua các cột giá trị chung

 Cơ sở dữ liệu quan hệ là cơ sở dữ liệu được tổ chức theo mô hình quan hệ

1.1.2 Hệ quản trị CSDL quan hệ là gì?

 Hệ quản trị CSDL là một hệ thống bao gồm các CSDL và phần mềm cho phép tạo lập CSDL và điều khiển mọi truy nhập đối với CSDL đó

 Hệ quản trị CSDL quan hệ là hệ quản trị CSDL dùng để quản lý CSDL quan hệ

1.1.3 Các khả năng của hệ quản trị CSDL:

 Khả năng quản lý dữ liệu tồn tại lâu dài: đặc điểm này chỉ ra rằng có một cơ sở dữ liệu tồn tại trong một thời gian dài, nội dung của cơ sở dữ liệu này là các dữ liệu mà

hệ quản trị CSDL truy nhập và quản lý

 Khả năng truy nhập các khối lượng dữ liệu lớn một cách hiệu quả

 Hỗ trợ ít nhất một mô hình dữ liệu hay một sự trừu tượng toán học mà qua đó người

sử dụng có thể quan sát dữ liệu

 Đảm bảo tính độc lập dữ liệu hay tính bất biến của chương trình ứng dụng đối với các thay đổi về cấu trúc trong mô hình dữ liệu

Trang 9

1.1.4 Sơ đồ tổng quát của một hệ quản trị CSDL

1.1.5 Hoạt động của hệ quản trị CSDL

Trang 10

10

1.2 Tổng quan SQL Server 2005

 Microsoft SQL Server 2005 là một hệ quản trị cơ sở dữ liệu quan hệ (Relation Database Management System - RDBMS), cung cấp cách tổ chức dữ liệu bằng cách lưu chúng vào các bảng Dữ liệu quan hệ được lưu trữ trong các bảng và các quan hệ

đó được định nghĩa giữa các bảng với nhau

 Một số tính năng mới được đưa ra trong phiên bản này như dịch vụ thông báo, dịch

vụ, dịch vụ báo cáo, môi giới dịch vụ, sự cải tiến database engine

 Các phiên bản của Microsoft SQL Server 2005

• SQL Server 2005 Enterprise Edition

• SQL Server 2005 Standard Edition

• SQL Server 2005 Workgroup Edition

• SQL Server 2005 Developer Edition

• SQL Server 2005 Express Edition

1.3 Giới thiệu SQL Management Tool

 Microsoft SQL SQL Server Management Studio (SSMS), là công cụ mới trên Microsoft SQL Server 2005, nó là một môi trường được tích hợp cho việc truy xuất, cấu hình, quản trị và phát triển tất cả các thành phần của SQL Server SSMS kết hợp các tính năng của Enterprise Manager, Query Analyzer, và Analysis Manager, được bao hàm trong các phiên bản trước của SQL Server, thành một môi trường đơn mà cung cấp truy xuất SQL Server để phát triển và quản trị tất cả các mức kỹ năng trên

 SQL Server Configuration Manager cung cấp các quản trị cấu hình cơ sở cho các dịch vụ SQL Server (SQL Server services), các giao thức server (server protocols), các giao thức client (client protocols) và các bí danh client (client aliases)

Trang 11

1.4 Ngôn ngữ vấn tin có cấu trúc

Mỗi hệ quản trị CSDL có một ngôn ngữ định nghĩa dữ liệu riêng (DDL - Data Definition Languague) Đây là ngôn ngữ dùng để định nghĩa, khai báo cấu trúc của

CSDL.Những người thiết kế và quản trị CSDL thực hiện các công việc khai báo cấu trúc CSDL Các chương trình khai báo cấu trúc CSDL được viết bằng ngôn ngữ DDL

mà hệ quản trị CSDL cho phép

 Các chương trình ứng dụng được viết bằng các ngôn ngữ lập trình

C++/C#/Java/Delphi… kết hợp với các ngôn ngữ thao tác dữ liệu (DML - Data

Manipulation Language) thông qua các thư viện hoặc đối tượng kết nối CSDL được ngôn ngữ lập trình hỗ trợ: ODBC, RDO, ADO,… Các hệ quản trị CSDL quan hệ ngày nay phổ biến sử dụng các ngôn ngữ DDL và DML dựa trên ngôn ngữ SQL

 Đối với hệ quản trị CSDL SQL Server thì ngôn ngữ dùng để tương tác với cơ sở dữ liệu là T – SQL Đây là một phiên bản của ngôn ngữ SQL Ngôn ngữ T – SQL trên SQL Server bao gồm nhiều câu lệnh khác nhau, có thể chia thành 3 nhóm:

• Nhóm ngôn ngữ định nghĩa dữ liệu DDL: với các lệnh cho phép tạo, thay đổi cấu trúc và xóa bỏ các đối tượng cơ sở dữ liệu như: view, table, database,…

• Nhóm ngôn ngữ thao tác dữ liệu DML: với các lệnh như SELECT /INSERT /UPDATE /DELETE cho phép lấy về dữ liệu cụ thể, thay đổi giá trị của dữ liệu

• Nhóm ngôn ngữ điều khiển dữ liệu DCL: với các lệnh cho phép hay ngăn chặn

người dùng thao tác dữ liệu

Bài tập

Câu 1: Trình bày khái niệm về cơ sở dữ liệu quan hệ Cơ sở dữ liệu quan hệ có những điểm

khác biệt gì so với hệ thống xử lý file truyền thống?

Câu 2: Trình bày khái niệm về hệ quản trị cơ sở dữ liệu quan hệ

Câu 3: Nêu các thành phần cơ bản của hệ quản trị CSDL SQL Server

Câu 4: Trình bày những đặc điểm cơ bản của ngôn ngữ vấn tin SQL

Trang 12

12

Chương II Tạo và quản lý cơ sở dữ liệu

2.1 Các tệp tin cơ sở dữ liệu (Database files)

 Một cơ sở dữ liệu có thể có tối đa 32726 file Có thể chia làm 3 loại:

• Primary Files Mỗi database phải có ít nhất một tập tin Primary data file với phần mở

rộng là MDF Tập tin này ngoài nhiệm vụ cất trữ dữ liệu thuần túy còn nhiệm vụ lưu trữ thông tin liên quan đến cấu trúc và đặc điểm của chính database đó (lưu trong các system tables) Ta tuyệt đối không nên can thiệp vào các system tables này vì việc này có thể phá hỏng database

• Secondary Files Mỗi database có thể không có hoặc có nhiều Secondary Data File

Các tập tin này chỉ thuần túy lưu trữ dữ liệu và có phần mở rộng là NDF

• Log Files Mỗi database phải có ít nhất một transaction log file (có phần mở rộng là

.LDF) Log file làm nhiệm vụ lưu trữ thông tin liên quan các giao dịch (transaction) thực hiện trên database đó Thông tin này một phần phục vụ cho thao tác Roll Back khi có lỗi giao dịch xảy ra

Các tập tin CSDL được tổ chức thành file group(nhóm)theo nguyên tắc:

Một CSDL có thể có một hay nhiều file group Trong đó bắt buộc phải có một file group chính gọi là PRIMARY

Mỗi file group có thể chứa một hay nhiều file(.MDF, NDF) Trong đó phải có ít nhất

1 tập tin Primary File (.MDF) nằm trong group chính PRIMARY

Các tập tin Log không thuộc về một file group nào cả

2.2 Tạo cơ sở dữ liệu (Database)

2.2.1 Sử dụng lệnh CREATE DATABASE

CREATE DATABASE <Tên CSDL>

[ON PRIMARY <Khai báo tập tin MDF>, [<Khai báo tập tin NDF>,]…]

[FILEGROUP <Tên file group>

<Khai báo tập tin NDF>, [<Khai báo tập tin NDF>,]…]

[LOG ON <Khai báo tập tin LDF>, [<Khai báo tập tin LDF>,]…]

 Mỗi tập tin trong CSDL (.MDF,.NDF,.LDF) đêu có 5 thuộc tính cơ bản:

• NAME: Tên logic của tập tin

• FILENAME: Đường dẫn đầy đủ (tên vật lý)

• SIZE: Kích thước ban đầu của tập tin (KB, MB, GB, TB)

• MAXSIZE: Kích thước tối đa cho phép của tập tin (KB, MB, GB,TB)

• FILEGROWTH : Tốc độ gia tăng kích thước của tập tin (KB, MB, GB, TB,%)

Trang 14

14

2.3 Sửa cơ sở dữ liệu

2.3.1 Sử dụng lệnh ALTER DATABSE

ALTER DATABASE <tên CSDL>

[ ADD FILE <Khai báo tập tin MDF,.NDF> [, ] [ TO FILEGROUP <Tên File

Group>] ]

[ADD LOG FILE <Khai báo tập tin LDF> [, ]]

[ADD FILEGROUP <Tên File Group>]

[REMOVE FILE <Tên logic của tập tin>]

[REMOVE FILEGROUP <Tên File Group>]

[MODIFY NAME = <Tên mới cho Database>]

[MODIFY FILE <Khai báo tập tin>]

[MODIFY FILEGROUP <Tên File Group> <Thuộc tính File Group>|NAME = <Tên

mới>]

[COLLATE <Tên collation>]

<Thuộc tính File Group> bao gồm:

• READONLY: Khi một file group bị đánh dấu READONLY thì mọi thao tác cập nhật

dữ liệu trên các tập tin thuộc file group này đều không thể thực hiện được Không được phép áp dụng thuộc tính này cho Primary Group

• READWRITE: Ngược lại với READONLY

• DEFAULT: Đánh dấu file group như là file group mặc định của database hiện thời

Trang 15

2.3.2 Sửa đổi cơ sở dữ liệu bằng Management Tool

2.4 Xóa cơ sở dữ liệu

2.4.1 Sử dụng lệnh DROP DATABASE trên Query Analyzer

DROP DATABASE <tên CSDL>

Ví dụ: DROP DATABASE QLBH

Trang 16

16

2.4.2 Xóa CSDL sử dụng Management Tool:

2.5 Các system database đặc biệt

 Ngay sau khi SQL Server mới được cài đặt xong, có 6 database tự động được cung cấp Người ta gọi những database này là các system database để phân biệt với các database do người dùng tự tạo ra sau này (user database) Các system database bao gồm:

• Khoảng trống đĩa (space disk)

• Cấp phát tập tin

• Cài đặt để cấu hình toàn hệ thống

• Tài khoản đăng nhập

Trang 17

17

• Sự hiện hữu của các database khác

• Sự hiện hữu của các SQL Server khác (trong các giao dịch phân tán)

 Mỗi khi tạo một database mới, thay đổi cấu hình, tài khoản đăng nhập,… tất cả thông tin đều được cập nhật vào Master database

Model database

 Đóng vai trò như một khuôn mẫu (template) Mỗi lần người dùng tạo mới một user database thì SQL Server sẽ dùng Model database làm “khuôn mẫu” cho việc tạo mới user database Mỗi user database lúc mới tạo sẽ kế thừa các thuộc tính và có cấu trúc giống như Model database Nếu ta muốn mỗi user database lúc mới tạo ra đã có sẵn một số đặc điểm nào đấy, ta có thể thiết lập các đặc điểm đó trên Model database Các user database được tạo ra sau này sẽ tự động được kế thừa các đặc điểm đó

Tempdb database

 Là một database để lưu trữ dữ liệu tạm thời (tempotary) Nó được dùng để lưu trữ:

 Những dữ liệu tam thời (bảng tạm) do người dùng tạo ra

 Những kết quả trung gian phục vụ cho quá trình xử lý của nội bộ SQL Server: xử lý các câu truy vấn (Query), sắp xếp (Sorting),…

 Mặc định mỗi khi SQL Server được khởi động thì Tempdb database được tái tạo lại, mới hoàn toàn, mọi dữ liệu (bảng tạm) do người dùng lưu trữ lên Tempdb database trước đó sẽ biến mất

Câu 1: Trình bày về tổ chức tập tin trong cơ sở dữ liệu SQL Server Phân loại tập tin trong

SQL Server Cách khai báo đặc tả tập tin trong SQL Server (5 thuộc tính)

Câu 2: Nêu chức năng các cơ sở dữ liệu hệ thống trong SQL Server

Câu 3: Trình bày cú pháp đầy đủ của lệnh CREATE DATABASE và giải thích ý nghĩa các

tham số

Trang 18

18

Chương III Tạo và quản lý các bảng

3.1 Tạo bảng (CREATE TABLE)

[ON <tên filegroup> | DEFAULT]

 Đối với các cột cần khai báo các thuộc tính chính sau:

• Kiểu dữ liệu: Kiểu dữ liệu của các giá trị trong cột

• Tên cột dữ liệu

• Thuộc tính (nếu có): Các thuộc tính được định nghĩa trên cột

• Một số kiểu dữ liệu thường gặp:

• Kiểu dữ liệu xâu chuỗi văn bản: char, varchar, text, nchar, nvarchar, ntext

• Dữ liệu kiểu số: tinyint, smallint, int, bigint, decimal, numeric, smallmoney, money,

real, bit, binary

• Dữ liệu kiểu thời gian: datetime, smalldatetime

• Dữ liệu kiểu đặc biệt: image, Uniqueidentifier

 Một số kiểu thuộc tính thường gặp

Thuộc tính cho phép trống dữ liệu: Null, Not null

Thuộc tính tự tăng: Identity

Thuộc tính duy nhất toàn cục: UniqueIdentifier

Trang 20

20

MaNhaCungCap INT IDENTITY(1,1),

TenNhaCungCap NVARCHAR(50) Not Null,

TenNguoiLienHe NVARCHAR(50) Not Null,

DiaChi NVARCHAR(100) Not Null,

DienThoai VARCHAR(15) Not Null,

Fax VARCHAR(15) Null,

Website VARCHAR(100) Null,

CONSTRAINT PK_NhaCungCap PRIMARY KEY(MaNhaCungCap)

)

3.3 Định nghĩa các ràng buộc (Constrains)

3.3.1 Định nghĩa rằng buộc bằng câu lệnh:

CONSTRAINT <Tên rằng buộc> <Kiểu rằng buộc> [Thông tin rằng buộc]

Ví dụ:

CREATE TABLE HangHoa

(

MaHangHoa INT IDENTITY(1,1),

TenHangHoa NVARCHAR(50) Not Null,

MaNhaCungCap INT Not Null,

MaLoaiHang INT Not Null,

CONSTRAINT PK_HangHoa PRIMARY KEY(MaHangHoa),

CONSTRAINT FK_HHLH FOREIGN KEY(MaLoaiHang) REFERENCES

LoaiHang(MaLoaiHang),

CONSTRAINT FK_HHNCC FOREIGN KEY(MaNhaCungCap) REFERENCES

NhaCungCap(MaNhaCungCap)

)

 Một số kiểu rằng buộc thường gặp

• Kiểu rằng buộc khóa: Primary Key, Foreign Key

• Kiểu rằng buộc giá trị: Check, Default

3.3.2 Định nghĩa rằng buộc bằng Management Tool:

Trang 21

| ALTER COLUMN <Tên cột> <Kiểu dữ liệu> [<Các thuộc tính khác>]

| DROP COLUMN <Tên cột>

| ADD CONSTRAINT <Tên ràng buộc> <Định nghĩa ràng buộc>

| DROP CONSTRAINT <Tên ràng buộc>

Ví dụ:

ALTER TABLE HangHoa ADD COLUMN SoLuong INT;

ALTER TABLE HangHoa DROP COLUMN SoLuong;

3.4.2 Sửa đổi bảng dữ liệu sử dụng Management Tool

Trang 22

DROP TABLE HangHoa;

DROP TABLE LoaiHang;

DROP TABLE NhaCungCap;

Trang 23

23

3.5.2 Sử dụng Management Tool

3.6 Thêm bản ghi mới (INSERT)

Dữ liệu trong các bảng được thể hiện dưới dạng các dòng (bản ghi) Để bổ sung thêm các dòng dữ liệu vào một bảng, ta sử dụng câu lệnh INSERT Hầu hết các hệ quản trị CSDL dựa trên SQL cung cấp các cách dưới đây để thực hiện thao tác bổ sung dữ liệu cho bảng:

• Bổ sung từng dòng dữ liệu với mỗi câu lệnh INSERT Đây là các sử dụng thường gặp nhất trong giao tác SQL

• Bổ sung nhiều dòng dữ liệu bằng cách truy xuất dữ liệu từ các bảng dữ liệu khác

3.6.1 Bổ sung dữ liệu với lệnh INSERT

Để bổ sung một dòng dữ liệu mới vào bảng, ta sử dụng câu lệnh INSERT với cú pháp như sau:

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

Ví dụ:

INSERT LoaiHang (TenLoaiHang,MoTa) VALUES (N„Bánh kem‟,N‟Hộp‟);

INSERT NhaCungCap (TenNhaCungCap,TenNguoiLienLac,DiaChi,DienThoai)

VALUES (N„Hải Châu‟,N‟Vũ Hải Châu‟,N‟Trần Phú – Hải Phòng‟,‟123456‟);

INSERT HangHoa (TenHangHoa,MaNhaCungCap,MaLoaiHang) VALUES (N„Bánh kem

Hải Châu‟,1,1);

Lưu ý:

 Khi Insert tất cả các trường đều có giá trị vào thì không cần danh sách cột và các giá trị sẽ được điền vào theo đúng thứ tự các cột trong CSDL

Trang 24

24

 Ngược lại thì cần có danh sách cột và giá trị phải sắp xếp theo thứ tự danh sách cột truyền vào

Bổ sung nhiều dòng dữ liệu từ bảng khác

INSERT <Tên bảng>[(<Danh sách cột>)] <câu lệnh SELECT>

3.6.2 Bổ sung dữ liệu sử dụng Management Tool

Trang 25

SET <Tên cột>=<Giá trị> [,<Tên cột>=<Giá trị>]

[FROM <Danh sách bảng>][WHERE <Điều kiện>]

Ví dụ:

UPDATE LoaiHang SET TenLoaiHang=N‟Kem tươi‟ WHERE MaLoaiHang=1;

UPDATE HangHoa SET TenHangHoa=N‟Kem tươi Hải Châu‟

FROM HangHoa

INNER JOIN LoaiHang ON HangHoa.MaLoaiHang = LoaiHang.MaLoaiHang

WHERE LoaiHang.TenLoaiHang=N‟Kem tươi‟;

Lưu ý:

 Khi không có điều kiện where thì câu lệnh sẽ thực hiện trên toàn bảng dữ liệu

 Sử dụng from để thực hiện update với điều kiện mở rộng hơn

3.8 Xóa bản ghi (DELETE)

Để xoá dữ liệu trong một bảng, ta sử dụng câu lệnh DELETE Cú pháp của câu lệnh này như sau:

INNER JOIN LoaiHang ON HangHoa.MaLoaiHang = LoaiHang.MaLoaiHang

WHERE LoaiHang.TenLoaiHang=N‟Kem tươi‟;

DELETE LoaiHang WHERE MaLoaiHang=1;

Lưu ý:

 Khi không có điều kiện where thì câu lệnh sẽ thực hiện trên toàn bảng dữ liệu

 Sử dụng from để thực hiện update với điều kiện mở rộng hơn

Xoá toàn bộ dữ liệu trong bảng

Trang 26

26 Câu lệnh DELETE không chỉ định điều kiện đối với các dòng dữ liệu cần xoá trong mệnh

đề WHERE sẽ xoá toàn bộ dữ liệu trong bảng Thay vì sử dụng câu lệnh DELETE trong trường hợp này, ta có thể sử dụng câu lệnh TRUNCATE có cú pháp như sau:

TRUNCATE TABLE <tên bảng>

Bài tập

Câu 1: Phân biệt user table và system table trong cơ sở dữ liệu SQL Server Các system

table thường lưu trữ những thông tin gì?

Câu 2: Liệt kê và phân loại các kiểu dữ liệu mà SQL Server 2000 hỗ trợ

Câu 3: Trình bày cú pháp đầy đủ của lệnh CREATE TABLE và giải thích chức năng của

từng tham số

Câu 4: Tạo cơ sở dữ liệu với các bảng dữ liệu sau đây:

KhachHang(MaKH, TenKH, DiaChi)

NhaCungCap(MaNCC, TenNCC, DiaChi)

MatHang(MaMH,TenMH,DonViTinh, DonGia, MaNCC)

HoaDon(MaHD, MaKH, NgayGiaoDich)

ChiTietHoaDon(MaHD, MaMH, SoLuong)

(Sinh viên tự xác định kiểu dữ liệu và mối liên kết giữa các bảng)

Trang 27

Cú pháp câu lệnh SELECT:

SELECT [ALL | DISTINCT] [TOP <số lượng>] <Danh sách chọn>

[INTO <Tên bảng mới>]

FROM <Danh sách bảng/Khung_nhìn>

[WHERE <Điều kiện>]

[GROUP BY <Danh sách cột> [HAVING <Điều kiện>]]

[ORDER BY <Cột sắp xếp>]

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

Điều cần lưu ý đầu tiên đối với câu lệnh này là 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)

4.1.2 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 và khung nhìn tham gia vào truy vấn, tên của các bảng và khung nhìn được phân cách nhau bởi dấu phẩy

Ví dụ

SELECT * FROM NhaCungCap

Lưu ý: Ta có thể sử dụng các bí danh cho các bảng hay khung nhìn trong câu lệnh

SELECT Bí danh được gán trong mệnh đề FROM bằng cách chỉ định bí danh ngay sau tên bảng

SELECT * FROM NhaCungCap AS NCC

Trang 28

SELECT * FROM NhaCungCap WHERE MaNhaCungCap=1

SELECT * FROM NhaCungCap WHERE MaNhaCungCap>1 AND MaNhaCungCap<5 SELECT * FROM NhaCungCap WHERE MaNhaCungCap BETWEEN 1 AND 5

SELECT * FROM NhaCungCap WHERE MaNhaCungCap IN (2, 3, 4)

SELECT * FROM NhaCungCap WHERE TenNhaCungCap LIKE N‟LÊ%‟

SELECT * FROM NhaCungCap WHERE Fax IS NULL

Lưu ý: Trong mệnh đề WHERE thường sử dụng

 Các toán tử logic (AND, OR, NOT)

 Các toán tử so sánh (>, <, =,>=,<=,<>,!>,!<)

 Kiểm tra giới hạn của dữ liệu (BETWEEN, NOT BETWEEN)

 Kiểm tra danh sách (IN, NOT IN)

 Kiểm tra khuôn dạng dữ liệu (LIKE)

• Chuỗi ký tự bất kỳ gồm 0 hoặc nhiều ký tự %

• Ký tự đơn bất kỳ _

• Ký tự đơn bất kỳ trong giới hạn [] ([a-f] hoặc [abcdef])

• Ký tự đơn bất kỳ không trong giới hạn [^] ([^a-f] hoặc [^abcdef])

 Kiểm tra giá trị NULL

4.1.4 Mệnh đề ORDER BY

Mặc định, các dòng dữ liệu trong kết quả của câu truy vấn tuân theo thứ tự của chúng trong bảng dữ liệu hoặc được sắp xếp theo chỉ mục (nếu trên bảng có chỉ mục) Trong trường hợp muốn dữ liệu được sắp xếp theo chiều tăng hoặc giảm của giá trị của một hoặc nhiều trường, ta sử dụng thêm mệnh đề ORDER BY trong câu lệnh SELECT

Ví dụ

SELECT * FROM NhaCungCap ORDER BY TenNhaCungCap

SELECT * FROM NhaCungCap ORDER BY TenNhaCungCap DESC, MaNhaCungCap ASC

Trang 29

29

Lưu ý: Sau ORDER BY là danh sách các cột cần sắp xếp (tối đa là 16 cột) sắp xếp ưu

tiên theo thứ tự từ trái qua phải Dữ liệu được sắp xếp có thể theo chiều tăng (ASC) hoặc giảm (DESC), mặc định là sắp xếp theo chiều tăng

4.1.5 Mệnh đề GROUP BY và HAVING

Giới thiệu về mệnh đề GROUP BY trong câu lệnh select

Ngoài khả năng thực hiện các yêu cầu truy vấn dữ liệu thông thường (chiếu, chọn, nối,…) như đã đề cập như ở các phần trước, câu lệnh SELECT còn cho phép thực hiện các thao tác truy vấn và tính toán thống kê trên dữ liệu như: cho biết tổng số tiết dạy của mỗi giáo viên, điểm trung bình các môn học của mỗi sinh viên,…

Mệnh đề GROUP BY sử dụng trong câu lệnh SELECT nhằm phân hoạch các dòng dữ liệu trong bảng thành các nhóm dữ liệu, và trên mỗi nhóm dữ liệu thực hiện tính toán các giá trị thống kê như tính tổng, tính giá trị trung bình,

Các hàm gộp được sử dụng để tính giá trị thống kê cho toàn bảng hoặc trên mỗi nhóm dữ liệu Chúng có thể được sử dụng như là các cột trong danh sách chọn của câu lệnh SELECT hoặc xuất hiện trong mệnh đề HAVING, nhưng không được phép xuất hiện trong mệnh đề WHERE

Giới thiệu về mệnh đề HAVING trong câu lệnh select

Mệnh đề HAVING được sử dụng nhằm chỉ định điều kiện đối với các giá trị thống kê được sản sinh từ các hàm gộp tương tự như cách thức mệnh đề WHERE thiết lập các điều kiện cho câu lệnh SELECT Mệnh đề HAVING thường không thực sự có nghĩa nếu như không

sử dụng kết hợp với mệnh đề GROUP BY Một điểm khác biệt giữa HAVING và WHERE

là trong điều kiện của WHERE không được có các hàm gộp trong khi HAVING lại cho phép sử dụng các hàm gộp trong điều kiện của mình

Ví dụ

SELECT NCC.MaNhaCungCap, TenNhaCungCap, Count(MaSanPham)

FROM NhaCungCap AS NCC, SanPham AS SP

WHERE SP.MaNhaCungCap = NCC.MaNhaCungCap

GROUP BY NCC.MaNhaCungCap, TenNhaCungCap

HAVING NOT(Fax IS NULL)

Lưu ý: Các hàm gộp thường sử dụng

 SUM ([ALL | DISTINCT] <biểu thức>) Tính tổng

 AVG ([ALL | DISTINCT] <biểu thức>) Tính trung bình

 COUNT ([ALL | DISTINCT] <biểu thức>) Đếm số giá trị biểu thức

 MAX (<biểu thức>) Tìm giá trị lớn nhất

 MIN (<biểu thức>) Tìm giá trị nhỏ nhất

Trang 30

30

4.2 Sử dụng biểu thức và hàm

4.2.1 Một số hàm xử lý chuỗi và ký tự

ASCII(<chuỗi ký tự>) Trả về mã ASCII của ký tự ngoài cùng bên trái chuỗi

Char(<mã ASCII>) Trả về ký tự có mã ASCII tương ứng

NChar(<mã Unicode>) Trả về ký tự có mã Unicode tương ứng

Upper(<chuỗi ký tự>) Trả về chuỗi với tất cả các ký tự biến thành chữ hoa

Lower(<chuỗi ký tự>) Trả về chuỗi với tất cả các ký tự bị biến thành chữ thường

Len(<chuỗi ký tự>) Trả về chiều dài chuỗi

Ltrim(<chuỗi ký tự>) Loại bỏ các dấu cách trống ở đầu bên trái chuỗi

Rtrim(<chuỗi ký tự>) Loại bỏ các dấu cách trống ở đầu bên phải chuỗi

Replace(<chuỗi 1>,

<chuỗi 2>,<chuỗi 3>)

Thay thế các chuỗi 2 trong chuỗi 1 bởi chuỗi 3

Reverse(<chuỗi ký tự>) Trả về chuỗi đảo ngược của chuỗi ký tự

Space(n) Trả về chuỗi với n khoảng trắng

Str(number) Chuyển kiểu số number thành chuỗi

Unicode(<chuỗi ký tự>) Trả về mã Unicode của ký tự ngoài cùng bên trái chuỗi

Left(<chuỗi ký tự>, n) Trả về phần chuỗi bên trái tính từ đầu đến vị trí thứ n

Right(<chuỗi ký tự>, n) Trả về phần chuỗi bên phải tính từ đầu đến vị trí thứ n

Trang 31

Day(<ngày tháng>) Trả về ngày của ngày tháng

Month(<ngày tháng>) Trả về tháng của ngày tháng

Year(<ngày tháng>) Trả về năm của ngày tháng

Cast(<biểu thức> as <kiểu dữ

liệu>)

Chuyển đổi biểu thức sang kiểu dữ liệu được chỉ định

Convert(<kiểu dữ liệu>, <biểu

thức> [,<kiểu chuyển đổi>])

Trả về phần chuỗi bên trái tính từ đầu đến vị trí thứ

Trang 33

4.3.1 Truy vấn dữ liệu với JOIN

Khi cần thực hiện một yêu cầu truy vấn dữ liệu từ hai hay nhiều bảng, ta phải sử dụng đến phép nối Phép nối là cơ sở để thực hiện các yêu cầu truy vấn dữ liệu liên quan đến nhiều bảng Một câu lệnh nối thực hiện lấy các dòng dữ liệu trong các bảng tham gia truy vấn, so sánh giá trị của các dòng này trên một hoặc nhiều cột được chỉ định trong điều kiện nối và kết hợp các dòng thoả mãn điều kiện thành những dòng trong kết quả truy vấn

Để thực hiện được một phép nối, cần phải xác định được những yếu tố sau:

• Những cột nào cần hiển thị trong kết quả truy vấn

• Những bảng nào có tham gia vào truy vấn

• Điều kiện để thực hiện phép nối giữa các bảng dữ liệu là gì

Các loại truy vấn sử dụng phép nối

Phép nối trong INNER JOIN

Phép nối ngoài OUTER JOIN

• Phép nối ngoài trái LEFT OUTER JOIN

• Phép nối ngoài phải RIGHT OUTER JOIN

• Phép nối ngoài đầy đủ FULL OUTER JOIN

Trang 34

34

4.3.1.1 Phép nối trong INNER JOIN

Phép nối thực hiện nối nhiều bảng trong đó những dòng có giá trị trong các cột được chỉ định thoả mãn điều kiện kết nối mới được hiển thị trong kết quả truy vấn, phép nối này loại

bỏ thông tin chứa trong những dòng không thoả mãn điều kiện nối Cú pháp nối trong:

<Bảng 1> INNER JOIN <Bảng 2> ON <Điều kiện nối>

4.3.1.2 Phép nối ngoài trái LEFT OUTER JOIN

Phép nối này thực hiện nối nhiều bảng trong đó chứa tất cả các dòng dữ liệu của bảng nằm bên trái trong phép nối cho dù những dòng này không thoả mãn điều kiện của phép nối Cú pháp nối ngoài trái:

<Bảng trái> LEFT OUTER JOIN <Bảng phải> ON <Điều kiện nối>

4.3.1.3 Phép nối ngoài phải RIGHT OUTER JOIN

Phép nối này thực hiện nối nhiều bảng trong đó chứa tất cả các dòng dữ liệu của bảng nằm bên phải trong phép nối cho dù những dòng này không thoả mãn điều kiện của phép nối Cú pháp nối ngoài phải:

<Bảng trái> RIGHT OUTER JOIN <Bảng phải> ON <Điều kiện nối>

Trang 35

35 Phép nối này thực hiện nối nhiều bảng trong đó chứa tất cả các dòng dữ liệu của bảng nằm trong phép nối cho dù những dòng này không thoả mãn điều kiện của phép nối Cú pháp nối ngoài đầy đủ:

<Bảng 1> FULL OUTER JOIN <Bảng 2> ON <Điều kiện nối>

4.3.2 Truy vấn dữ liệu với UNION

Phép hợp được sử dụng trong trường hợp ta cần gộp kết quả của hai hay nhiều truy vấn thành một tập kết quả duy nhất SQL cung cấp toán tử UNION để thực hiện phép hợp Cú pháp như sau:

<Câu lệnh SELECT 1>

UNION [ALL] <Câu lệnh SELECT 2>

[UNION [ALL] <Câu lệnh SELECT 3>]

Lưu ý của UNION:

• Danh sách cột trong các truy vấn thành phần phải có cùng số lượng

• Các cột tương ứng trong tất cả các bảng, hoặc tập con bất kỳ các cột được sử dụng trong bản thân mỗi truy vấn thành phần phải cùng kiểu dữ liệu

Trang 36

36

• Các cột tương ứng trong bản thân từng truy vấn thành phần của một câu lệnh UNION phải xuất hiện theo thứ tự như nhau Nguyên nhân là do phép hợp so sánh các cột từng cột một theo thứ tự được cho trong mỗi truy vấn

• Khi các kiểu dữ liệu khác nhau được kết hợp với nhau trong câu lệnh UNION, chúng sẽ được chuyển sang kiểu dữ liệu cao hơn (nếu có thể được)

• Tiêu đề cột trong kết quả của phép hợp sẽ là tiêu đề cột được chỉ định trong truy vấn đầu tiên

• Truy vấn thành phần đầu tiên có thể có INTO để tạo mới một bảng từ kết quả của chính phép hợp

• Mệnh đề ORDER BY và COMPUTE dùng để sắp xếp kết quả truy vấn hoặc tính toán các giá trị thống kê chỉ được sử dụng ở cuối câu lệnh UNION Chúng không được sử dụng ở trong bất kỳ truy vấn thành phần nào

• Mệnh đề GROUP BY và HAVING chỉ có thể được sử dụng trong bản thân từng truy vấn thành phần Chúng không được phép sử dụng để tác động lên kết quả chung của phép hợp

• Phép toán UNION có thể được sử dụng bên trong câu lệnh INSERT

• Phép toán UNION không được sử dụng trong câu lệnh CREATE VIEW

Lưu ý về hàm compute:

Nếu sử dụng mệnh đề COMPUTE BY thì cũng phải sử dụng mệnh đề ORDER BY Các cột liệt kê trong COMPUTE … BY phải giống hệt hay là một tập con của những gì được liệt kê sau ORDER BY Chúng phải có cùng thứ tự từ trái qua phải, bắt đầu với cùng một biểu thức và không bỏ qua bất kỳ một biểu thức nào

Trang 37

37

4.4 Truy vấn lồng nhau

4.4.1 Truy vấn lồng nhau Subquery

Truy vấn con là một câu lệnh SELECT được lồng vào bên trong một câu lệnh SELECT, INSERT, UPDATE, DELETE hoặc bên trong một truy vấn con khác Loại truy vấn này được sử dụng để biểu diễn cho những truy vấn trong đó điều kiện truy vấn dữ liệu cần phải

sử dụng đến kết quả của một truy vấn khác

Cú pháp của truy vấn con như sau:

(SELECT [ALL | DISTINCT] <Danh sách chọn>

FROM <Danh sách bảng>

[WHERE <Điều kiện>]

[GROUP BY <Danh sách cột> [HAVING <Điều kiện>]])

4.4.2 Khi sử dụng truy vấn con cần lưu ý một số quy tắc sau

• Một truy vấn con phải được viết trong cặp dấu ngoặc Trong hầu hết các trường hợp, một truy vấn con thường phải có kết quả là một cột (tức là chỉ có duy nhất một cột trong danh sách chọn)

• Mệnh đề COMPUTE và ORDER BY không được phép sử dụng trong truy vấn con

• Các tên cột xuất hiện trong truy vấn con có thể là các cột của các bảng trong truy vấn ngoài

• Một truy vấn con thường được sử dụng làm điều kiện trong mệnh đề WHERE hoặc HAVING của một truy vấn khác

• Nếu truy vấn con trả về đúng một giá trị, nó có thể sử dụng như là một thành phần bên trong một biểu thức (chẳng hạn xuất hiện trong một phép so sánh bằng)

4.4.3 Ví dụ sử dụng truy vấn lồng nhau

Sử dụng ALL

SELECT SP.TenSanPham, SP.TenNhaCungCap FROM SanPham AS SP

WHERE SP.MaNhaCungCap>ALL (SELECT MaNhaCungCap FROM NhaCungCap WHERE Fax IS NULL)

Sử dụng ANY

SELECT SP.TenSanPham, SP.TenNhaCungCap FROM SanPham AS SP

WHERE SP.MaNhaCungCap>ANY(SELECT MaNhaCungCap FROM NhaCungCap WHERE Fax IS NULL)

Sử dụng IN

SELECT SP.TenSanPham, SP.TenNhaCungCap FROM SanPham AS SP

Ngày đăng: 02/04/2016, 05:15

HÌNH ẢNH LIÊN QUAN

Hình thức và tiêu chuẩn đánh giá sinh viên: - HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
Hình th ức và tiêu chuẩn đánh giá sinh viên: (Trang 6)
1.1.4. Sơ đồ tổng quát của một hệ quản trị CSDL - HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
1.1.4. Sơ đồ tổng quát của một hệ quản trị CSDL (Trang 9)

TỪ KHÓA LIÊN QUAN

w