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

Bài 8 Quản trị dữ liệu trong SQL Server pps

14 681 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

Định dạng
Số trang 14
Dung lượng 335,9 KB

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

Nội dung

Bài 8 Quản trị dữ liệu trong SQL ServerMục tiêu: Hoàn thành bài này chúng ta có thể – Làm việc được với biểu thức điều kiện và các toán tử logic trong T-SQL Sử dụng T-SQL để chèn dữ li

Trang 1

Bài 8 Quản trị dữ liệu trong SQL Server

Mục tiêu:

Hoàn thành bài này chúng ta có thể –

Làm việc được với biểu thức điều kiện và các toán tử logic trong T-SQL

Sử dụng T-SQL để chèn dữ liệu vào bảng

Cách cập nhật dữ liệu đã có trong bảng

Cách xóa dữ liệu trong bảng

Cách export và import dữ liệu bằng công cụ Enterprise Manager

Giới thiệu

Trong phần trước chúng ta đã biết cách thiết kế, tạo và quản lý bảng sử dụng công cụ Enterprise Manager cũng như T-SQL và công cụ Query Analyzer Chúng ta cũng đã hiểu các khái niệm toàn vẹn thực thể (Entity Intergrity) và toàn vẹn Domain, biết được cách triển khai chúng Cuối cùng

là cách xóa và sửa thiết kế của một bảng

Trong bài này chúng ta sẽ học cách thêm, sửa và xóa dữ liệu từ các bảng Chúng ta cũng sẽ nắm được sự đa dạng của các câu lệnh điều kiện và các toán tử được hỗ trợ bởi SQL Server 2000 Chúng ta sẽ nghiên cứu cú pháp của các câu lệnh INSERT, UPDATE và DELETE và áp dụng nó vào các ví dụ minh họa Khái niệm join các bảng cũng sẽ được giới thiệu và cuối cùng chúng ta

sẽ học cách import và export dữ liệu từ SQL Server 2000 sử dụng DTS Wizard

8.1 Biểu thức điều kiện và các toán tử logic trong T-SQL

Như chúng ta đã biết, Transact-SQL (T-SQL) là một tập hợp các câu lệnh mở rộng của Microsoft

Nó cho phép chúng ta có thể thực hiện các chức năng lập trình bên trong các CSDL quan hệ được cung cấp bởi SQL Server 2000

Mệnh đề WHERE được sử dụng để lọc dữ liệu Mệnh đề WHERE cho phép sử dụng các biểu

thức điều kiện kết hợp với các toán tử logic Một biểu thức (expression) được cấu thành từ các

toán tử và các toán hạng, nó được SQL Server tính toán sau đó trả về một giá trị Biển thức đơn giản có thể là một hằng số (constant), biến (variable), cột (column), hoăc một giá trị vô hướng Các toán tử có thể được dùng để nối hai hay nhiều biểu thức đơn giản thành một biểu thức phức tạp

Mệnh đề WHERE sẽ được nói chi tiết hơn trong bài sau

Một biểu thức có thể gồm có một trong những thành phần sau:

Constant: là một ký hiệu diễn tả một giá trị xác định Constant có thể bao gồm ký tự và chữ

số (a-z, A-Z, và n 0-9) hoặc các ký hiệu (!, @, #, ) Các hằng ký tự và hằng datetime phải nằm trong dấu nháy đơn, trong khi các hằng chuỗi nhị phân (binary strings) và hằng số (numeric) thì không cần dấu nháy

Trang 2

Column: Tên cột trong bảng Trong biểu thức có thể sử dụng tên cột; không nhất thiết phải

chỉ rõ tên cột gồm đầy đủ bốn phần như tên Server, tên CSDL, tên owner

Unary Operator: Toán tử mả chỉ làm việc với một toán hạng (toán tử một ngôi):

Toán tử + xác định một số dương Toán tử – xác định một số Toán tử ~ xác định phần bù của một số Toán tử một ngôi chỉ áp dụng với các biểu thức được đánh giá theo kiểu numeric

Binary Operator: Là toán tử xác định cách kết hợp 2 biểu thức để mang lại một kết quả đơn

(toán tử hai ngôi) Một binary _operator có thể là một toán tử số học, toán tử gán(=), toán tử bít, toán tử so sánh, toán tử logíc, toán tử kết hợp các chuỗi (+), hoặc toán tử đơn nguyên Có thể xem thêm Operators để biết thêm chi tiết

Bảng 8.1 liệt kê các toán tử so sánh có thể sử dụng được trong các câu lệnh T-SQL cùng với

WHERE

>= Lớn hơn hoặc bằng

<= Nhỏ hơn hoặc bằng

<> Khác

Bảng 8.1 Các toán tử so sánh

Ví dụ:

PRICE >100

NAME LIKE ‘DAVID’

GRADE <> ‘FAIL’

Cũng có thể sử dụng các toán tử đại diện(wildcard operators) trong bảng 8.2

‘_’ Một ký tự Select UDesc From UserTypes

Where UDesc Like ‘C_’

% Nhiều ký tự Select UserName From Users

Where UserName Like ‘'AL%'’ [] Một ký tự thuộc khoảng đặt trong

ngoặc vuông

Select * from CourseMaterial where YearSem Like 'Sem[1-2]'

[^] Một ký tự mà không thuộc khoảng

đặt trong ngoặc vuông

Select * from CourseMaterial where YearSem Like 'Sem[^1-2]'

Bảng 8.2: Các toán tử đại diện

Trang 3

Với nhu cầu chọn lọc dữ liệu Mệnh đề WHERE sủ dụng trong câu lệnh T-SQL sẽ hoạt động như

một bộ lọc và hoàn toàn thỏa mãn các nhu cầu chọn lọc dữ liệu Nó không thể đứng đơn lẻ nhưng lại rất hữu ích khi kết hợp với các câu lênh T-SQL Mệnh đề Where có thể coi như là mệnh đề để phát biểu điều kiện tìm kiếm

8.1.2

Logical operators

Các toán tử logíc được hỗ trợ bới T-SQL là AND, OR, và NOT

Toán tử AND và OR được sử dụng để kết hợp các biểu thức điều kiện trong mệnh đề WHERE

NOT phủ định điều kiện tìm kiếm AND kết hợp hai điều kiện và trả về TRUE khi và chỉ khi cả

hai điều kiện đều là true, OR cũng kết hợp hai đièu kiện, nhưng nó trả về TRUE khi một trong

hai điều kiện là true

Nếu trong câu lệnh sử dụngnhiều hơn một toán tử logíc, NOT được đánh giá đầu tiên, sau đó là AND, và cuối cùng là OR

8.2 Sử dụng T-SQL để chèn dữ liệu

Chúng ta đã biết cách tạo bảng, sửa cấu trúc của bảng và thêm các ràng buộc, bây giờ chúng ta sẽ học cách thêm dữ liệu vào bảng Chúng ta có thể thêm dữ liệu vào bảng hay cũng có thể lấy dữ liệu từ một bảng đã tồn tại để đưa vào một bảng mới

8.2.1

Sử dụng INSERT để chèn dữ liệu

Cú pháp để thêm dữ liệu vào bảng sử dụng T-SQL là:

Cú pháp:

INSERT [INTO] <Table_name> VALUES <values>

Trong đó:

[INTO] là một từ khoá tuỳ chọn (optional keyword) đặt giữa INSERT và bảng đích.

<Table_name> là tên bảng mà dữ liệu sẽ được chèn vào.

<Values> danh sách các giá trị cho các cột của bảng.

Ví dụ:

INSERT INTO jobs VALUES (‘Graphics Artist’, 25, 100)

Bảng jobs bao gồm 4 cột: job_id, job_desc, min_lvl, max_lvl Trong đó, cột job_id được thiết đặt

là cột Identity, vì vậy câu lệnh trên chèn một dòng với 3 giá trị ứng với 3 cột còn lại trong bảng

jobs Hình 8.1 chỉ ra cách thực thi câu lệnh trên trong trình Query Analyzer

Trang 4

Hình 8.1: Thêm dữ liệu vào bảng

Chúng ta có thể xem dữ liệu mới được thêm vào bằng công cụ Enterprise Manager

Hình 8.2: Xem kết quả nhập liệu 8.2.2

Sử dụng SELECT INTO để thêm dữ liệu từ một bảng vào một bảng khác

Một cách nhập liệu nữa, chúng ta có thể lấy dữ liệu từ một bảng đã tồn tại để thêm vào một bảng mới bằng câu lệnh INSERT SELECT

Cú pháp như sau

INSERT <table name> SELECT <column list> FROM <tablename2>

Trong đó, table name là tên của bảng mà ta muốn thêm dữ liệu, column list là danh sách cột được chọn từ bảng nguồn và tablename2 là tên bảng nguồn.

CREATE TABLE author_details ( au_id varchar(11), au_lname varchar(40))

GO

INSERT author_details SELECT authors.au_id, authors.au_lname FROM authors

Trang 5

Hình 8.3: Thêm dữ liệu từ một bảng vào bảng khác

Chúng ta cũng có thể lấy dữ liệu từ một bảng để thêm vào một bảng khác như dưới đây: INSERT INTO Sales (Stor_id) SELECT stor_id FROM Stores

Trong ví dụ này, chỉ dữ liệu trong cột stor_id của bảng Stores sẽ được thêm vào bảng Sales chứ không phải dữ liệu của tất cả các cột sẽ đựoc thêm vào

8.3 Sử dụng T-SQL để cập nhật dữ liệu vào bảng

Bên cạnh việc thêm dữ liệu vào bảng ta còn có thể chỉnh sửa dữ liệu bằng câu lệnh UPDATE

Việc cập nhật là cần thiết với bất cứ khi nào dữ liệu cần được thay đổi Ví dụ địa chỉ của một sinh viên bất kỳ có thể thay đổi hoặc Batchno cũng có thể bị thay đổi Trong mọi trường hợp chúng ta

sẽ không thêm dữ liệu để thể hiện các thay đổi mà thay vào đó ta sẽ sửa trực tiếp vào dữ liệu có sẵn

8.3.1

Cập nhật dữ liệu cho một dòng

Cú pháp cập nhật dữ liệu cho một dòng sử dụng T-SQL là:

Cú pháp:

UPDATE <Table_name>

SET <Column_name = Value>

[WHERE <Search condition>]

Tham số được mô tả như sau:

<Table_name> là tên bảng nơi dữ liệu được cập nhật.

<Value> giá trị mới sẽ được thay vào.

Giả sử chúng ta muốn tăng giá của một quyển sách lên 25% Chúng ta cũng biết title id của quyển sách đó và biết cả tên trường chứa giá Câu lệnh để thực hiện sẽ là:

UPDATE titles set price=price + (25/100*price) where title_id='TC7777'

Dữ liệu trong bảng trước và sau khi cập nhật có thể xem bằng công cụ Enterprise Manager Câu lệnh T-SQL được thực hiện trong công cụ Query Analyzer như trong hình 8.5

Trang 6

Hình 8.4: Dữ liệu trước khi cập nhật

Hình 8.5: Cập nhật dữ liệu vào một dòng

Hình 8.6: Dữ liệu sau khi cập nhật 8.3.2

Câp nhật nhiều dòng trong một bảng

Chúng ta có thể cập nhật nhiều dòng trong một bảng bằng cách bỏ mệnh đề WHERE hoặc sử dụng điều kiện kết hợp trong WHERE để cập nhật nhiều dòng dữ liệu Khi chúng ta không sử dụng mệnh đề WHERE, tất cả các dòng trong bảng sẽ được tác động bởi câu lệnh UPDATE

Ví dụ,

UPDATE publishers

SET city = 'Atlanta', state = 'GA'

Sẽ cập nhật tất cả các giá trị của city thành Atlanta và giá trị của state thành GA.

Trang 7

Hình 8.7: Cập nhật nhiều dòng

Tương tự, để thay tất cả phiên bản (edition) của các quyển sách thành 1, chúng ta sử dụng câu lệnh sau:

UPDATE Books

SET Edition = 1

8.3.3

Cập nhật với mệnh đề JOIN

Chúng ta cũng có thể thay đổi dữ liệu dựa trên dữ liệu từ 2 bảng khác nhau Có thể làm được việc

này bằng cách sử dụng mệnh đề Join JOINS được sử dụng để lấy dữ liệu từ 2 hoặc nhiều bảng

dựa trên quan hệ logíc giữa các bảng Đặc trưng của Join là chỉ ra một Khóa Ngoại (Foreign key) liên quan giữa các bảng Nó định nghĩa cách mà 2 bảng được quan hệ với nhau trong câu truy vấn:

 Chỉ ra cột liên quan giữa các bảng để JOIN Đặc trưng của JOIN là chỉ định một Khóa Ngoại (Foreign Key) từ một bảng và các trường khoá liên quan tới nó từ bảng kia

 Chỉ ra toán tử so sánh giữa các cột

JOIN có thể sử dụng cùng với FROM hoặc WHERE với cú pháp như sau:

Table_A AS Table_Alias_A

<join_type>

Table_B AS Table_Alias_B

ON

Table_Alias_A.<Common_Field> = Table_Alias_B.<Common_Field>

Trong đó,

Table_A và Table_B – Tên của các bảng để join

AS Table_Alias – bí danh (alias) của bảng Một bí danh định nghĩa trong một truy vấn có thể sử

dụng thay cho tên bảng và như vậy không cần phải chi rõ tên đầy đủ của bảng

Có 3 kiểu JOINS khác nhau:

Trang 8

 Inner Joins

 Outer Joins

 Self Joins

A Inner Joins

Trong Inner Join các dòng của 2 bảng được kết hợp lại và đưa vào trong kết quả nếu các dòng của

cả 2 bảng thoả mãn điều kiện kết hợp dựa trên cột kết hợp

Một ví dụ của cập nhật các dòng sử dung Inner Join như sau:

Hình 8.8: Cập nhật sử dụng INNER Join

B Outer Joins

Inner Join trả về dòng chỉ khi có ít nhât một dòng của cả 2 bảng thoả mãn điều kiện kết hợp Inner Joins loại bỏ những dòng mà không thoả mãn điều kiện kết hợp Outer Joins, trả về tất cả các dòng của ít nhất một trong những bảng xuất hiện sau FROM thêm vào đó là những dòng phù hợp với bất kỳ điều kiện đặt trong WHERE hoặc HAVING

Left Outer Join trả về tất cả các dòng ở bảng bên trái và những dòng thoả mãn điều kiện kết hợp ở bảng bên phải

The Right Outer Join trả về tất cả các dòng ở bảng thứ 2 và bỏ qua những dòng không thoả mãn điều kiện kết hợp ở bảng đầu tiên

Hình 8.9: Outer Joins

C Self Join

Self-join là một kiểu của inner join Được sử dụng để tìm những dòng trong một bảng mà có quan

hệ với các dòng khác trong chính bảng đó Một bảng mà được Join với chính nó thì được gọi là self-join

Trang 9

8.4 Sử dụng T-SQL để xoá dữ liệu khỏi bảng

Chúng ta không chỉ có thể thay đổi dữ liệu trong bảng của SQL Server 2000, mà chúng ta còn có thể xóa dữ liệu khỏi bảng Xoá dữ liệu bằng câu lệnh T-SQL là rất đơn giản như mô tả sau đây

8.4.1

Xoá một dòng

Cú pháp để xoá một dòng khỏi bảng sử dụng T-SQL như sau:

Cú pháp:

DELETE FROM <Table_name> [WHERE <Search_Condition>]

Ở đây <Table_name> là tên bảng sẽ được xoá bớt các dòng WHERE được sử dụng để đưa ra

các điều kiện Điều kiện phải trả về dòng sẽ bị xoá

Ví dụ:

DELETE FROM pub_info WHERE pub_id=9999

Câu lệnh dưới đây sẽ xoá dòng có publisher id là 9999

Hình 8.10: Xoá một dòng khỏi bảng

Chú ý: Trong khi xoá dòng khỏi bảng, cần xem xét sự toàn vẹn tham chiếu có được duy trì

không Nếu có những dòng của bảng khác đang được liên kết với dòng bị xoá, sẽ không thể xoá được các dòng này nếu như nó gây ra sự không toàn vẹn trong tham chiếu

8.4.2

Xoá nhiều dòng

Nếu WHERE không được sử dụng trong câu lệnh DELETE, tất cả các dòng trong bảng sẽ bị xoá hết Thông thường, mệnh đề WHERE được sử dụng để lọc ra những dòng dữ liệu cần phải xóa

Hình 8.11: Xoá nhiều dòng khỏi bảng

Trang 10

8.4.3

Sử dụng TRUNCATE TABLE để xoá tất cả dữ liệu khỏi bảng

TRUNCATE TABLE là câu lệnh mà chúng ta có thể sử dụng để xoá tất cả các dòng khỏi bảng Câu lệnh TRUNCATE TABLE chạy nhanh hơn và sử dụng ít tài nguyên hệ thống và transaction log hơn câu lệnh DELETE

Mặc dù TRUNCATE TABLE loại bỏ hoàn toàn các dòng khỏi bảng, tuy nhiên cấu trúc bảng và các cột, các ràng buộc, indexes, … là vẫn còn nguyên

Hình 8.12 chỉ ra câu lệnh được thực hiện trong công cụ Query Analyzer

Hình 8.12: Truncate table 8.5 Importing và Exporting dữ liệu trên SQL Server 2000

Có thể sử dụng các nguồn dữ liệu từ bên ngoài đưa vào trong SQL Server 2000 Quá trình này

được gọi là importing dữ liệu Cũng có thể gửi dữ liệu từ SQL Server 2000 ra các nguồn khác Quá trình này được gọi là exporting dữ liệu.

Chúng ta có thể import và export dữ liệu bằng một trong hai cách sau:

Chọn Import/Export công cụ trong bộ công cụ Microsoft SQL Server hoặc

Chọn Import/Export trong công cụ Enterprise Manager

Chọn Import/Export trong bộ công cụ Microsoft SQL Server sẽ khởi động Data

Transformation Services (DTS) Import/Export Wizard Công cụ wizard sẽ hướng dẫn người

sử dụng thực hiện các chức năng của DTS gồm import, export, … dữ liệu và các đối tượng giữa nhiều nguồn dữ liệu khác nhau

Cách khác là chúng ta có thể chọn một bảng riêng và chọn Import/Export rồi gọi Data

Transformation Services (DTS) Import/Export Wizard sau đó thực hiện các bước theo hướng

dẫn của DTS để import hoặc export dữ liệu

Hình 8.13 chỉ cách DTS được sử dụng để import hoặc export dữ liệu

Trang 11

Figure 8.13: Data Transformation Services Import/Export Wizard

Nguồn dữ liệu đích của quá trình export có thể là CSDL MS Access, bảng tính Excel hoặc thậm chí cả các tệp văn bản thông thường SQL Server 2000 hỗ trợ khá nhiều nguồn dữ liệu để export Tương tự như vậy chúng ta cũng có thể import dữ liệu từ các nguồn ở trên

Trang 12

Tóm tắt

 T-SQL cung cấp nhiều toán tử và nhiều biểu thức điều kiện có thể làm việc cùng nhau

Mệnh đề WHERE hoạt động như một bộ lọc trong các câu lệnh T-SQL.

Các toán tử logíc được hỗ trợ bởi T-SQL là AND, OR, và NOT

Các toán tử AND và OR được sử dụng để kết hợp các biểu thức điều kiện trong câu lệnh WHERE NOT phủ định biểu thức điều kiện AND kết hợp 2 điều kiện và trả về TRUE khi

và chỉ khi cả hai điều kiện đều là true OR cũng kết hợp 2 điều kiện nhưng nó trả về TRUE

khi một trong 2 điều kiện là true

 Câu lệnh T-SQL để thêm dữ liệu vào bảng là INSERT [INTO] <Table_name> VALUES

<values>

 Câu lệnh T-SQL để lấy dữ liệu từ một bảng đã có thêm vào một bảng mới là INSERT <table name> SELECT <column list> FROM <tablename2>

 Câu lệnh T-SQL để cập nhật một dòng trong bảng là UPDATE <Table_name> SET

<Column_name = Value> [WHERE <Search condition>]

 Nếu WHERE không được sử dụng trong câu lệnh UPDATE, thì tất cả các dòng trong bảng sẽ

bị cập nhật

Mệnh đề Joins được sử dụng để lấy dữ liệu từ 2 hay nhiều bảng dựa trên quan hệ logíc giữa

các bảng

 Câu lệnh để xoá một dòng khỏi bảng là DELETE FROM <Table_name> [WHERE

<Search_Condition>]

 TRUNCATE TABLE là câu lệnh chúng ta có thể sử dụng để xoá tất cả các dòng trong bảng

 Chúng ta có thể import và export dữ liệu bằng một trong 2 cách sau:

Chọn Import/Export trong bộ công cụ Microsoft SQL Server hoặc

Chọn Import/Export trong công cụ Enterprise Manager

Ngày đăng: 21/07/2014, 23:21

HÌNH ẢNH LIÊN QUAN

Bảng 8.2: Các toán tử đại diện - Bài 8 Quản trị dữ liệu trong SQL Server pps
Bảng 8.2 Các toán tử đại diện (Trang 2)
Bảng 8.1 liệt kê các toán tử so sánh có thể sử dụng được trong các câu lệnh T-SQL cùng với  WHERE. - Bài 8 Quản trị dữ liệu trong SQL Server pps
Bảng 8.1 liệt kê các toán tử so sánh có thể sử dụng được trong các câu lệnh T-SQL cùng với WHERE (Trang 2)
Hình 8.1: Thêm dữ liệu vào bảng - Bài 8 Quản trị dữ liệu trong SQL Server pps
Hình 8.1 Thêm dữ liệu vào bảng (Trang 4)
Hình 8.2: Xem kết quả nhập liệu 8.2.2 - Bài 8 Quản trị dữ liệu trong SQL Server pps
Hình 8.2 Xem kết quả nhập liệu 8.2.2 (Trang 4)
Hình 8.3: Thêm dữ liệu từ một bảng vào bảng khác - Bài 8 Quản trị dữ liệu trong SQL Server pps
Hình 8.3 Thêm dữ liệu từ một bảng vào bảng khác (Trang 5)
Hình 8.4: Dữ liệu trước khi cập nhật - Bài 8 Quản trị dữ liệu trong SQL Server pps
Hình 8.4 Dữ liệu trước khi cập nhật (Trang 6)
Hình 8.5: Cập nhật dữ liệu vào một dòng - Bài 8 Quản trị dữ liệu trong SQL Server pps
Hình 8.5 Cập nhật dữ liệu vào một dòng (Trang 6)
Hình 8.7: Cập nhật nhiều dòng - Bài 8 Quản trị dữ liệu trong SQL Server pps
Hình 8.7 Cập nhật nhiều dòng (Trang 7)
Hình 8.9: Outer Joins - Bài 8 Quản trị dữ liệu trong SQL Server pps
Hình 8.9 Outer Joins (Trang 8)
Hình 8.10: Xoá một dòng khỏi bảng - Bài 8 Quản trị dữ liệu trong SQL Server pps
Hình 8.10 Xoá một dòng khỏi bảng (Trang 9)
Hình 8.11: Xoá nhiều dòng khỏi bảng - Bài 8 Quản trị dữ liệu trong SQL Server pps
Hình 8.11 Xoá nhiều dòng khỏi bảng (Trang 9)
Hình 8.12 chỉ ra câu lệnh được thực hiện trong công cụ Query Analyzer. - Bài 8 Quản trị dữ liệu trong SQL Server pps
Hình 8.12 chỉ ra câu lệnh được thực hiện trong công cụ Query Analyzer (Trang 10)

TỪ KHÓA LIÊN QUAN