Các khái niệm về hệ quản trị csdl


KIỂM TRA SỰ TIẾN BỘ CỦA HỌC VIÊN



tải về 1.1 Mb.
trang8/15
Chuyển đổi dữ liệu17.08.2016
Kích1.1 Mb.
1   ...   4   5   6   7   8   9   10   11   ...   15

KIỂM TRA SỰ TIẾN BỘ CỦA HỌC VIÊN

  1. ____________ câu lệnh trả về một số bản ghi hoặc số phần trăm bản ghi trong bảng.

  1. OUTPUT

  2. TOP

  3. TABLESAMPLE

  4. WITH

  1. ___________ là toán tử chuyển đổi hàng thành cột.

  1. UNPIVOT

  2. ANY

  3. PIVOT

  4. SOME

  1. ____________ là các câu lệnh dùng để thiết lập bảo mật CSDL.

  1. DDL

  2. DML

  3. Batch

  4. DCL

  1. __________ là toán tử làm việc với một toán hạng.

  1. Bitwise

  2. Gán

  3. Quan hệ

  4. Phép toán một ngôi



  1. _________ là một tập lệnh gồm một hoặc nhiều lệnh Transact-SQL được gửi một lần đến SQL Server để yêu cầu xử lý.

  1. Batch

  2. Group

  3. Order

  4. Collection

  1. __________ là hàm dùng để thống kê dữ liệu.

  1. Tập hợp

  2. Hệ thống

  3. Chuyển đổi kiểu

CHƯƠNG 6 – NGÔN NGỮ TRANSACTION SQL

(THỰC HÀNH)

Mục tiêu :


Kết thúc chương này, các bạn sẽ có thể:

  • Sử dụng câu lệnh Transact SQL với SQL Server 2005

  • Viết các câu lệnh, các hàm, và các biểu thức

  • Thực thi câu lệnh trong nhóm

  • Tạo và thực thi các kịch bản

Phần I – 90 phút
Bài tập 1:Sử dụng các câu lệnh Transact SQL

Để nhìn thấy cách làm việc của các câu lệnh Transact SQL, CSDL AdventureWorks sẽ được sử dụng. CSDL bao gồm nhiều bảng xây dựng sẵn. Viết các câu lệnh phù hợp để thực hiện các công việc sau đây:

  • Hiển thị chi tiết của tất cả mọi người từ bảng Person.Contact

  • Hiển thị Title, FirstName, MiddleName, LastName và EmailAddress từ bảng Person.Contact

  • Hiển thị Title, FirstName, LastName như là một chuỗi nối nhằm dễ đọc và cung cấp tiêu đề cho cột tên (PersonName).

  • Hiển thị chi tiết địa chỉ của tất cả các nhân viên trong bảng Person.Address

  • Liệt kê tên của các thành phố từ bảng Person.Address và bỏ đi phần lặp lại.

  • Hiển thị chi tiết của 10 bảng ghi đầu tiên của bảng Person.Address.

  • Hiển thị chi tiết chỉ 25% số bảng ghi của bảng Person.Address

  • Hiển thị trung bình của tỷ giá (Rate) từ bảng HumanResources.EmployeePayHistory.

  • Hiển thị tổng số nhân viên từ bảng HumanResources.Employee.

Giải pháp:

Câu lệnh SELECT phải được sử dụng ở nhiều dạng khác nhau để hoàn thành các tác vụ.

Các bước được yêu cầu để mở chương trình Microsoft SQL Server Management Studio và làm cho AdventureWorks trở thành CSDL hiện hành là:


  1. Kích chọn Start -> Programs -> Microsoft SQL Server 2005 -> SQL Server Management Studio để mở cửa sổ Microsoft SQL Server Management Studio.

  2. Gõ câu lệnh: Use AdventureWorks trong cửa sổ Query Editor.

Kết quả của câu lệnh như hình 6.1



Hình 6.1: Truy cập CSDL AdventureWorks

Để lấy chi tiết của bảng Person.Contact,các bước sau cần được thực hiện:



  1. Viết câu lệnh sau:

SELECT * FROM Person.Contact

  1. Nhấn F5 để thực thi câu lệnh.

Kết quả câu lệnh được nhìn thấy như hình 6.2:



Hình 6.2: Câu lệnh SELECT

Để lấy các trường Title, FirstName, MiddleName, LastName, EmailAddress từ bảng Person.Contact, phải thực hiện các bước như sau:



  1. Viết câu lệnh SELECT dưới đây

SELECT Title, FirstName, MiddleName, LastName, EmailAddress

FROM Person,Contact

2. Nhấn phím F5 để thực thi câu lệnh.

Kết quả câu lệnh như hình 6.3





Hình 6.3: Câu lệnh SELECT hiển thị các cột được lấy ra

Để lấy thông tin các trường Title, FirstName, LastName từ bảng Person.Contact và hiển thị nó như là một chuỗi ghép với tên cột là “PersonName”, cần thực hiện các bước sau:

1. Viết câu lệnh SELECT như sau:

SELECT Title +’.’+FirstName+’ ’+LastName AS ‘PersonName’

FROM Person.Contact

2.Nhấn phím F5 để thực thi câu lệnh.

Kết quả câu lệnh như hình 6.4



Hình 6.4: Câu lệnh SELECT với các cột được nối vào.

Để lấy các chi tiết từ bảng Person.Address, các bước cần thực hiện là:

1. Viết câu lệnh SELECT như sau:

SELECT * FROM Person.Address

2. Nhấn phím F5 để thực thi câu lệnh.

Màn hình xuất ra như hình 6.5:





Hình 6.5: Câu lệnh SELECT

Để lấy tên của tất cả các thành phố khác nhau từ bảng Person.Address, các bước cần thực hiện.

1. Viết câu lệnh SELECT như sau:

SELECT DISTINCT {City} FROM Person.Address

2.Nhấn phím F5 để thực thi câu lệnh.

Kết quả như hình 6.6:





Hình 6.6: Câu lệnh SELECT sử dụng mênh đề DISTINCT

Để lấy thông tin chi tiết của 10 bản ghi trên cùng từ bảng Person.Address, thực hiện các bước như sau:

1. Viết câu lệnh SELECT như sau:

SELECT TOP 10 * FROM Person.Address

2. Nhấn phím F5 để thực thi câu lệnh.

Kết quả xuất ra như hình 6.7.





Hình 6.7: Câu lệnh SELECT sử dụng mệnh đề TOP

Để lấy thông tin chi tiết của 25% bản ghi trên cùng từ bảng Person.Address, các bước thực hiện như sau:

1. Viết câu lệnh SELECT như sau:

SELECT TOP 25 PERCENT * FROM Person.Address

2. Nhấn phím F5 để thực thi câu lệnh.

Kết quả xuất ra màn hình như hình 6.8.





Hình 6.8: Câu lệnh SELECT sử dụng mệnh đề PERCENT

Để lấy trung bình tỷ giá từ bảng Person.EmployeePayHistory, các bước cần thực hiện như sau:

1. Viết câu lệnh SELECT như sau:

SELECT AVG(Rate) FROM HumanResources.EmployeePayHistory



  1. Nhấn phím F5 để thực thi câu lệnh.

Kết quả xuất ra màn hình như hình 6.9



Hình 6.9: Câu lệnh SELECT sử dụng hàm AVG

Để lấy tổng số nhân viên từ bảng HumanResources.Employee, các bước cần thực hiện như sau:



  1. Viết câu lệnh SELECT như sau:

SELECT COUNT (EmployeeID) AS TitleCount

FROM HumanResources.Employee.

2. Nhấn phím F5 để thực thi câu lệnh.

Kết quả xuất ra màn hình như hình 6.10





Hình 6.10: Câu lệnh SELECT sử dụng hàm COUNT

Bài tập 2: Sử dụng câu lệnh Transact SQL như các khối

Đại học St. Michaels cảm thấy cần phải lưu trữ chi tiết các thông tin về những sinh viên của họ trong bảng Student trong CSDL AdventureWorks. Điều này sẽ giúp họ bảo trì dữ liệu một cách chính xác và toàn vẹn.

Trường này muốn thực hiện các tác vụ trên các bản ghi được bảo trì trong bảng Student:


  • Hiển thị tất cả các bản ghi từ bảng Student

  • Định dạng bảng Student và chèn vào một cột. ‘Country’ của kiểu nvarchar và kích cỡ là 20.

  • Cập nhật cột ‘country’ với giá trị ‘USA’.

  • Thực thi tất cả câu lệnh này như là một khối.

Giải pháp:

Một bảng Student chứa cấu trúc được định nghĩa trong bảng 6.1 được tạo ra.





Bảng 6.1: Bảng Student

Tiếp theo, các chi tiết về sinh viên phải được nhập vào bằng cách sử dụng mệnh đề INSERT.





Bảng 6.2: Các bản ghi Student

Sau đó, để thực thi các tác vụ còn lại, câu lệnh SELECT và ALTER TABLE phải được thực thi.

Cuối cùng, tất cả các tác vụ này phải được thực thi như là một khối lệnh. Vì vậy để thực thi tất cả các hoạt động này, cần thực hiện các bước dưới đây:

1. Viết câu lệnh tạo bảng trong cửa sổ soạn thảo truy vấn.

CREATE TABLE Student

(StudNo int Primary Key,

StudName nvarchar (50) NOT NULL,

StudAddr nvachr (50),

StudPhone bigint,

BirthDate DateTime);



  1. Viết câu lệnh GO để tách rời các câu lệnh CREATE TABLE từ các câu lệnh khác trong khối File.

  2. Viết câu lệnh INSERT trong cửa sổ soạn thảo truy vấn.

INSERT INTO Student values(1, ’Michael John’,

’New York’, 9145247891, ’12-01-1989’);

INSERT INTO Student values(2, ’ Anna Lombard’,

‘Alabama’, 8942574632, ’08-25-1989’);

INSERT INTO Student values(3, ‘Peter Dawson’,

‘California’, 9165688471, ’02-15-1963’);

INSERT INTO Student values(4, ‘Leonard Thornton’,

‘New Jersey’, 9142563422,’12-20-1991’);

INSERT INTO Student values(5, ‘Elizabeth Isaac’,

‘Atlanta’, 9149655771, ’07-11-1990’);



  1. Viết câu lệnh SELECT để hiển thị tất cả các bản ghi.

SELECT * FROM Students

5. Viết câu lệnh ALTER TABLE để thêm một cột mới ‘Country’

ALTER TABLE Student ADD Country nvarchar (20) NULL

6. Viết câu lệnh UPDATE để thêm giá trị ‘USA’ cho cột mới ‘Country’

UPDATE Student SET Country =’ USA’

7. Viết câu lệnh SELECT để hiển thị các chi tiết của tất cả các bản ghi sau khi bảng được cập nhật với giá trị mới.

SELECT * FROM Student

Hình 6.11 hiển thị khối các câu lệnh.







Hình 6.11: Khối các câu lệnh

8. Nhấn phím F5 để thực thi khối câu lệnh trong file.

Màn hình hiển thị như hình 6.12 sau khi thực thi các câu lệnh.



Hình 6.12: Kết quả xuất ra.

Bài tập 3: Sử dụng các câu lệnh Transact SQL trong một file kịch bản.

Đại học St.Michaels muốn lưu trữ các chi tiết của các lớp trong trường của họ. Họ muốn thực thi các tác vụ sau:



  • Hiển thị các chi tiết các lớp trong trường.

  • Hiển thị sự khác nhau giữa ngày bắt đầu và ngày kết thúc của tất cả các lớp.

  • Tìm sự tổng kết số giờ (sử dụng câu lệnh PIVOT).

Giải pháp:

Tạo một bảng có tên ‘Batch’ với cấu trúc được mô tả trong bảng 6.3



FieldName

Type

Size

Description

BatchNo

nvarchar

5

Định danh các lớp học

Subject

nvarchar

25

Lưu trữ tên môn học

SubjDesc

nvarchar

25

Lưu trữ mô tả của môn học

StartDt

DateTime




Lưu trữ ngày bắt đầu của lớp

EndDt

DateTime




Lưu trữ ngày kết thúc của lớp

Hours

int




Lưu trữ tổng số giờ cho mỗi khóa

Bảng 6.3: Cấu trúc của bảng Batch

Tiếp theo, thông tin chi tiết của lớp phải được nhập vào bằng cách sử dụng câu lệnh INSERT được mô tả như bảng 6.4





Bảng 6.4: Các bản ghi của bảng Batch.

Sau đó, để thực hiện các tác vụ còn lại, câu lệnh SELECT và PIVOT phải được sử dụng.

Cuối cùng, tất cả các tác vụ này phải được thực thi bằng cách sử dụng một file kịch bản. Vì vậy, để thực thi tất cả các hoạt động này, các bước cần thực hiện như sau:

1. Viết câu lệnh CREATE TABLE trong cửa sổ soạn thảo truy vấn.

CREATE TABLE Batch

(BatchNo nvarchar(5) ,

Subject nvarchar (25) ,

SubjDesc nvarchar (25) ,

StartDt DateTime ,

EndDt DateTime,

Hours int) ;

2. Viết câu lệnh INSERT để chèn các bản ghi vào trong bảng.

INSERT INTO Batch values(‘A01’, ‘Java’, ‘Database’,

’12-01-2006’, ’03-15-2006’, 96);

INSERT INTO Batch values(‘A02’, ‘Oracle’, ‘Forms’,

’08-25-2006’, ’11-02-2006’, 55);

INSERT INTO Batch values(‘A03’,‘SQL Server 2005’,

‘Queries’,’05-15-2006’,’06-06-2006’,46);

INSERT INTO Batch values(‘A04’, ’Net’, ’ WinForms’,

’06-20-2005’, ’08-16-2005’, 48);

INSERT INTO Batch values(‘A05’, ‘JSF & Sture’,

‘CustomControls’, ’09-07-2005’,’10-18- 2005’, 120);

3. Viết câu lệnh SELECT để hiển thị tất cả các bản ghi trong bảng.

SELECT * FROM Batch

4. Viết câu lệnh SELECT như sau để hiển thị sự khác nhau về thời gian giữa ngày bắt đầu và ngày kết thúc từ bảng Batch.

SELECT DATEDIFF(month, StartDt, EndDt) FROM Batch



  1. Viết câu lệnh PIVOT để hiển thị dữ liệu hiện tại trong hàng ,cột của tất cả các bản ghi.

SELECT BatchNo, [2005] Y2005, [2006] Y2006 From

(SELECT YEAR (StartDt) StartYear, BatchNo,

Hours FROMBatch) pft

PIVOT


(

SUM (Hours)

FOR StarYear in ([2005], [2006])

)pst


  1. Viết câu lệnh GO để thực thi tất cả các câu lệnh như một khối trong file kịch bản.

  2. Lưu tập tin này với tên là: Batch.sql

  3. Đóng tập tin

  4. Mở tập tin Batch.sql bằng cách sử dụng tuỳ chọn Menu

Hình 6.13 hiển thị các câu lệnh được lưu trữ trong tập tin Batch.sql.





Hình 6.13: Batch.sql

  1. Nhấn phím F5 để thực thi câu lệnh trong tập tin Batch.sql

  2. Màn hình xuất ra như hình 6.14 sau khi thực thi câu lệnh như sau:





Hình 6.14: Màn hình xuất ra khi thực thi khối lệnh

Phần II – 30 phút

1. Người điều hành “World Class Travel and Tours” muốn lưu trữ thông tin của tất cả các chuyến bay quan trọng trên thế giới. Người điều hành này còn muốn cung cấp các thông tin sớm nhất cho hành khách. Tạo một bảng Flights như bảng 6.5 để lưu trữ chi tiết tất cả các chuyến bay.





Hình 6.5: Cấu trúc bảng Flights

2. Bảng Flights chứa đựng các thông tin sau:





Hình 6.6: Các bản ghi bảng Flights

3. Sử dụng câu lệnh thích hợp để hiển thị các tác vụ sau:



  • Hiển thị tất cả các bản ghi từ bảng Flights

  • Hiển thị AircraftCode, Source, Destination, và DepTime từ bảng Flights

  • Chèn một bản ghi có cùng thông tin chi tiết như bản ghi đầu tiên.

  • Hiển thị 65% số bản ghi trên bảng Flights

  • Hiển thị hai bản ghi đầu tiên từ bảng Flights

  • Hiển thị tổng số các chuyến bay từ bảng Flights

  • Nếu giá của một giờ bay là $150, sau đó tính giá của mỗi chuyến bay và hiển thị các chi tiết chuyến bay cùng với giá từ bảng Flights.

Gợi ý:

  • Sử dụng mệnh đề TOP

  • Sử dụng hàm COUNT.

Bài tập tự làm

  1. Tạo bảng Passenger có cấu trúc sau:

FieldName

Type

Size

Description

PNRNo

int




Định danh máy bay

TicketNo

int




Lưu trữ mã mã vé

PassName

nvarchar

25

Lưu trữ tên của hành khách

Age

Int




Lưu trữ tuổi của hành khách

Sex

char

6

Giới tính của hành khách

Bảng 6.7: Cấu trúc của bảng Passenger

2. Chèn các chi tiết sau vào bảng Passenger như sau:





Bảng 6.8: Các bản ghi của Passenger

  • Hiển thị PassName, Age và Sex từ bảng Passenger

  • Chèn một bản ghi cho người có thông tin chi tiết giống với’Stefa Jones’.

  • Hiển thị tất cả các bản ghi nhưng không hiển thị các bản ghi trùng nhau.

  • Hiển thị tổng số hành khách.

  • Hiển thị trung bình tuổi của các hành khách từ bảng Passenger

  • Hiển thị 3 bản ghi trên cùng bằng cách khai báo biến integer và sử dụng nó với mệnh đề TOP.

  • Tạo một bảng NewPassenger với cùng cấu trúc như bảng Passenger và chèn 3 bản ghi đầu tiên vào bảng NewPassenger từ bảng Passenger.

3. Tạo một bảng Reservation chứa đựng cấu trúc sau:

FieldName

Type

Size

Description

PNRNo

int




Lưu trữ PNRNo

AircraftCode

nvarchar

10

Lưu trữ mã máy bay

JourneyDt

dateTime




Lưu trữ ngày đi

NoOfSeats

int




Lưu trữ số chỗ ngồi

Address

nvarchar

50

Lưu trữ địa chỉ

ContactNo

int




Lưu trữ số điện thoại của khách hàng

Status

char

2

Lưu trữ trạng thái của chuyến bay

: files
files -> Sạt-đe rằng: Nầy là lời phán của Đấng có bảy vì thần Đức Chúa Trời và bảy ngôi sao
files -> HƯỚng dẫn càI ĐẶt và SỬ DỤng phần mềm tạo bài giảng e-learning
files -> VIỆn chăn nuôi trịnh hồng sơn khả NĂng sản xuất và giá trị giống của dòng lợN ĐỰc vcn03 luậN Án tiến sĩ NÔng nghiệp hà NỘI 2014
files -> ĐẠi học quốc gia hà NỘi trưỜng đẠi học khoa học tự nhiên nguyễn Thị Hương XÂy dựng quy trình quản lý CÁc công trìNH
files -> PHỤ LỤC 2 TỔng hợp danh mục tài liệu tham khảO
files -> BÁo cáo quy hoạch vùng sản xuất vải an toàn tỉnh bắc giang đẾn năM 2020 (Thuộc dự án nâng cao chất lượng, an toàn sản phẩm nông nghiệp và phát triển chương trình khí sinh học ) Cơ quan chủ trì
files -> BỘ TÀi nguyên và MÔi trưỜng
files -> 1. Mục tiêu đào tạo: Mục tiêu chung


1   ...   4   5   6   7   8   9   10   11   ...   15


Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2019
được sử dụng cho việc quản lý

    Quê hương