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

Hướng dẫn thực hành SQL

84 140 1

Đ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 84
Dung lượng 2,24 MB

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

Nội dung

Tạo với các ràng buộccreate table SinhVien MaSV int primary key, TenSV nvarchar50 not null, QueQuan int references DiaPhuongMaDP drop table: xóa bảng alter table..add: thêm cột Thêm cột

Trang 1

THỰC HÀNH HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL

BÀI TẬP THỰC HÀNH

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

GVHD: Th.S Vũ Thị Thương

Trang 2

THỰC HÀNH HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL

B

Tóm tắt các câu lệnh TSQL đã học

1) Trên cơ sở dữ liệu (database)

Các phiên bản của SQL Server: Enterprise, Personal, Desktop, Developer,

Các bộ phận của SQL Server: Enterprise Manager, Query Analyzer, Books Online, Các loại tập tin của SQL Server: data file (primary, secondary), log file

Các loại cơ sở dữ liệu của SQL Server: system database, user database

create database: tạo cơ sở dữ liệu

drop database: xóa cơ sở dữ liệu

alter database: sửa các thông tin của cơ sở dữ liệu

exec sp_dboption: sửa các thông tin của cơ sở dữ liệu

dbcc: điều khiển cơ sở dữ liệu

2) Trên bảng (table)

Nhớ các kiểu số liệu: text, binary, numberic, money, datetime, bit, variant

Nhớ các các ràng buộc: default, check, unique, foreign, primary

Nhớ các kiểu toàn vẹn: entity, domain, referential, user

Nhớ các thuộc tính bổ trợ: identity, null

create database HoSoSinhVien

create database HoSoSinhVien

on (name=’HSSV_data’, filename=’c:\HSSV_data.mdf’) log on

drop database HoSoSinhVien

alter database

HoSoSinhVien

exec sp_dboption HoSoSinhVien, ‘read only’,

‘true’ exec sp_dboption HoSoSinhVien,

‘autoshrink’, ‘true’ exec sp_dboption

dbcc shrinkdatabase(HoSoSinhVien, 10)

Trang 3

THỰC HÀNH HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL

create table: tạo bảng

Tạo bảng với các cột

create table SinhVien (

MaSV int, TenSV nchar(50)

Trang 4

Tạo với các ràng buộc

create table SinhVien (

MaSV int primary key, TenSV nvarchar(50) not null,

QueQuan int references DiaPhuong(MaDP)

drop table: xóa bảng

alter table add: thêm cột

Thêm cột bằng cách dùng lệnh alter table

alter table SinhVien

add QueQuan int

alter table drop column: xóa cột

alter table alter column: thêm thuộc tính not null

alter table add primary key: thêm khóa chính

Thêm ràng buộc khóa chính cần phải biến một cột null thành not null trước khi thêm.Nếu để lệnh chuyển đổi thuộc tính not null ngay cạnh lệnh thêm khóa chính thì phải chèn

từ khóa go vào vì có thể lệnh trên chưa được thực hiện do đó lệnh dưới báo lỗi

alter table SinhVien

alter column MaSV int not nullgo

alter table SinhVien

add primary key (MaSV)

drop table SinhVien

alter table SinhVien

drop column QueQuan

alter table SinhVien

alter column TenSV nchar(50) not null

Trang 5

alter table add foreign key: thêm ràng buộc khóa ngoài

alter table SinhVien

add foreign key (QueQuan) references DiaPhuong(MaDP)

Trang 6

alter table add default: thêm ràng buộc mặc định

exec sp_help: xem thông tin bảng

3) Trên bản ghi (record)

Nhớ thêm phần biểu thức điều

kiện Nhớ thêm phần ký tự thay thế

insert values: thêm các bản ghi vào bảng

insert select: thêm các bản ghi từ bảng khác vào bảng

select into: đưa kết quả lựa chọn vào bảng mới

delete: xóa các bản ghi từ bảng

alter table SinhVien

add default 'khong ten' for TenSV

exec sp_help SinhVien

insert into SinhVien (MaSV, TenSV,

QueQuan) values (1, N’Nguyễn Văn

insert into DocGia

select MaSV, TenSV, QueQuan from SinhVien insert into DocGia

select MaGV, TenGV, QueQuan from GiaoVien

select MaSV, TenSV,

Diem into SinhVienKha fromSinhVien where

delete from SinhVien

delete from SinhVien where MaSV=1234

Trang 7

truncate: xóa toàn bộ bản ghi của bảng

update: sửa các bản ghi trong bảng

truncate table SinhVien

update SinhVien

set NhomTruong =

1 where MaSV < 4

Trang 8

update SinhVien

set NhomTruong = 4where (MaSV > 3 and MaSV < 8)

4) Truy vấn (query)

Hỗ trợ truy vấn: distinct, top, as,

identity Phép toán tập hợp: in, like,

between

Các hàm tổng nhóm: sum, max, min, avg

4.1) Truy vấn đơn giản

select *: Hiện tất cả bảng

select: Hiện một số cột

select where: Hiện một số dòng / bản ghi

select order by: Hiện và sắp xếp theo điểm rồi theo tên

select *

from SinhVien

select TenSV,

DiemTB from SinhVien

select TenSV,

DiemTB from SinhVien where

select TenSV,

DiemTB from SinhVienorder by DiemTB desc, TenSV asc

Trang 9

select distinct: Hiện danh sách giá trị không trùng lặp

select top: Hiện các dòng đầu tiên trong bảng

select distinct

QueQuan from

select top 3 TenSV,

DiemTB from SinhVienorder by DiemTB desc, TenSV asc

Trang 10

4.2) Truy vấn lồng nhau (nested query)

select where (select)

Hiện tất cả những người trong bảng nhân viên có lương bằng lương lớn nhất của

những người có trong công ty:

select TenNV, Luong from NhanVienwhere Luong = (select max(Luong) from

select where (in)

Hiện tất cả những người trong bảng nhân viên có lương lớn nhất hoặc lớn nhì của

những người có trong công ty:

select TenNV, Luong from NhanVienCâu lệnh select trong sẽ tạo ra một tập hai giá trị (top 2) đó là lương lớn nhất và lươnglớn nhì Và câu lệnh select thứ nhất sẽ chọn ra những người mà lương nằm trong tập lớn nhất và lớn nhì

select where (in sub)

Hiện ra tất cả những người có lương lớn nhất phòng của anh ta (không phải lớn nhất trong công ty mà lớn nhất trong phòng hoặc đơn vị mà anh ta thuộc về)

select nv1.TenNV, nv1.Luong from NhanVien as nv1where nv1.Luong = (select max(Luong) from NhanVien

where Phong=nv1.Phong)Câu lệnh select trong sẽ trả về giá trị lương lớn nhất nhưng không phải lớn nhất trongtoàn công ty mà lớn nhất trong phòng của nv1 Sau đó câu lệnh select ngoài cùng sẽ xácđịnh xem nv1 có được chọn không bằng cách kiểm tra lương anh ta với lương lớn nhấtcủa phòng anh ta

4.3) Truy vấn tổng nhóm (subtotal query / grouping query)

select group by: Thống kê theo tiêu chí

Hiện ra số lượng các nhân viên ứng với từng quê

select QueQuan, count(*) from NhanVien

Đếm số nam và số nữ trong công ty

Trang 12

select Phong, sum(Luong) from NhanVien

select having: Hiện ra một số nhóm phù hợp

Chỉ đếm số lượng người ở Hải Phòng và số lượng người ở Hà nội

select QueQuan,

count(*) from NhanViengroup by QueQuanhaving (QueQuan = ‘HP’, QueQuan = ‘HN’)Chỉ hiện ra những phòng nào có tổng thu nhập lớn hơn 500000

select Phong,

sum(Luong) from NhanVien

group by Phonghaving sum(Luong) > 5000000Chỉ hiện ra những tỉnh nào có số lượng người lớn hơn 10

select QueQuan,

count(*) from NhanViengroup by

4.4) Truy vấn liên bảng (cross table query / joining query)

select inner join: ghép các cặp bản ghi thỏa mãn điều kiện

Ghép bảng nhân viên và hiện ra tên nhân viên và tên địa phương

select NhanVien.TenNV, DiaPhuong.TenDP

from NhanVien inner join DiaPhuong on NhanVien.QueQuan

= DiaPhuong.MaDP

select left outer join: lấy tất cả phía trái và ghép (nếu có) với phải

Lấy tất cả những nhân viên kể cả những nhân viên có quê quán không hợp lệ (nghĩa là

mã quê quán không có trong bảng địa phương)

Trang 13

select NhanVien.TenNV, DiaPhuong.TenDP

from NhanVien left outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP

select right outer join: lấy tất cả phía phải và ghép (nếu có) với phía trái

Lấy tất cả những địa phương ghép với nhân viên, các địa phương không hợp lệ sẽđược ghép với bộ dữ liệu rỗng Không hiện ra các nhân viên không có mã quê quán phùhợp

Trang 14

select NhanVien.TenNV, DiaPhuong.TenDP

from NhanVien right outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP

select full outer join: lấy từ hai phía và ghép nếu có

Lấy tất cả những nhân viên (nếu không có quê quán phù hợp thì ghép với bộ dữ liệu rỗng) và tất cả những địa phương kể cả không có nhân viên

select NhanVien.TenNV, DiaPhuong.TenDP

from NhanVien right outer join DiaPhuong on NhanVien.QueQuan = DiaPhuong.MaDP

select cross join: trả về tất cả các cặp có thể ghép

Ghép từng nhân viên với tất cả các địa phương Như vậy nếu có m nhân viên và có nđịa phương thì bảng đích sẽ có m*n dòng n dòng đầu cho nhân viên thứ nhất ghép vớicác địa phương n dòng sau cho nhân viên thứ hai ghép với các địa phương và tiếp tụcnhư thế tới nhân viên thứ m

select NhanVien.TenNV,

DiaPhuong.TenDP from NhanVien

ref: Tham khảo thêm một số lệnh

Xem tất cả các CƠ SỞ DỮ LIỆU người dùng trong MÁY CHỦ

Mỗi khi một cơ sở dữ liệu được tạo ra, bảng sysdatabase trong cơ sở dữ liệu master sẽchứa thông tin về bảng mới tạo ra đó Do vậy chúng ta có thể liệt kê tất cả các cơ sở dữliệu trong một máy chủ bằng cách liệt kê các bản ghi trong bảng sysdatabase

select *

from master.dbo.sysdatabases

Xem tất cả các BẢNG người dùng trong CƠ SỞ DỮ LIỆU

Mỗi khi một bảng được tạo ra trong một cơ sở dữ liệu, thông tin về bảng đó sẽ đượcchứa trong bảng sysobjects của chính cơ sở dữ liệu chứa bảng vừa tạo Vì vậy chúng ta

có thể xem danh sách các bảng trong cơ sở dữ liệu bằng cách truy vấn bảng sysobjects.Các bảng do người dùng tạo có kiểu là ‘U’

Trang 15

select *

from Northwind.dbo.sysobjects Trong ví dụ này, chúng ta lấy tất cả các bản ghi bảng sysobjects của cơ sở dữ liệu

Northwind nhưng chỉ lấy những bảng người dùng, nghĩa là những bảng có xtype là ‘U’

Xem tất cả các CỘT thuộc về một BẢNG

Mỗi khi một cột trong bảng được tạo, bảng syscolumns trong cơ sở dữ liệu sẽ chứa thông tin về cột vừa tạo Thuộc tính id của cột sẽ chứa định danh của bảng mà cột đó

Trang 16

thuộc về Vì vậy để xem các cột trong một bảng dữ liệu, chúng ta có thể truy vấn bảng syscolumns

declare @x int

set @x = (select id from sysobjects where name='Employees')

select * from syscolumns where id = @x

Trong ví dụ này, ta khai báo biến @x kiểu int, sau đó lấy id của bảng Employees vàobiến @x, rồi ta lấy tất cả các cột trong bảng syscolumns mà có id bằng @x, cũng cónghĩa là id của bảng Employees Do vậy ta sẽ liệt kê được tất cả các cột trong bảngEmployees

Sử dụng bảng tạm

Khai báo bảng, cập nhật bảng, và hiện bảng

declare @x table(MaSV int, TenSV nvarchar(20))

insert into @x values(1, N'Thưởng') insert into @x values(2, N'Yến')

Khai báo bảng, tải bảng khác từ trong cơ sở dữ liệu lên bảng vừa khai báo, và hiện bảng

declare @x table(MaSV int, TenSV nvarchar(20))

insert into @xselect EmployeeID, firstname from Northwind.dbo.Employees

Sử dụng biến tạm

ref: Các khái niệm cơ bản của cơ sở dữ liệu

Các mô hình dữ liệu (data model)

+ Mô hình thứ bậc (hierarchical)

+ Mô hình mạng lưới (network)

+ Mô hình quan hệ (relational)

Các vấn đề của lưu trữ

declare @t money

set @t = (select max(UnitPrice) from

Northwind.dbo.products) select * from

Trang 17

+ Sự dư thừa (redundance)

+ Sự nhất quán (consistence)

+ Tính toàn vẹn (integrity)

Trang 18

+ Sự an toàn (security)

+ Sự chia sẻ (sharing)

Các khái niệm cơ bản

+ Cơ sở dữ liệu (database)

+ Bảng (table) hoặc quan hệ (relation)

+ Bản ghi (record) hoặc dòng (row) hoặc bộ (tuple)

+ Trường (field) hoặc cột (column)

+ Mối quan hệ (relationship) được biểu hiện bằng bảng (table) hoặc khóa (key)

Mối quan hệ giữa các

+ Tại sao phải lưu mối quan hệ

+ Phương pháp lưu các mối quan hệ (dùng khóa, dùng bảng)

+ Khóa chính (primary key) và khóa ngoài (foreign key)

+ Vấn đề toàn vẹn tham chiếu (referential integrity)

Ngôn ngữ định nghĩa và xử lý dữ liệu

+ Thao tác trên các đối tượng như cơ sở dữ liệu, bảng, cột

+ Phần định nghĩa cơ sở dữ liệu và bảng: create, drop, alter

+ Phần cập nhật dữ liệu: insert, delete, update

+ Phần truy vấn dữ liệu: join, union, projection, selection, sort, group

+ Phần lập trình và thao tác: declare, set, use, go

ref: Liên quan tới định nghĩa bảng

Các vấn đề về toàn vẹn dữ liệu

+ Toàn vẹn thực thể (entity integrity): primary key, unique, identity

+ Toàn vẹn tham chiếu (referential integrity): foreign key, check

+ Toàn vẹn miền dữ liệu (domain integrity): default, foreign key, check, not null

+ Toàn vẹn người dùng (user integrity): rules, stored procedures, triggers

Các hỗ trợ với toàn vẹn

+ Ràng buộc kiểm tra (check constraint): phải thỏa mãn điều kiện nào đó

+ Ràng buộc mặc định (default constraint): phải có một giá trị mặc định

+ Ràng buộc duy nhất (unique constraint): các giá trị trong cột không được trùng lặp

+ Ràng buộc khóa ngoài (foreign key constraint): các giá trị phải hợp lệ với cột khóa chính tương ứng

+ Ràng buộc khóa chính (primary key constraint): phải duy nhất và không trống

+ Thuộc tính định danh (identity property): có thể được tăng tự động

+ Thuộc tính không trống (not null property): không được phép để trống

Các kiểu dữ liệu

Giá trị nhị phân: bit

Trang 19

THƯC HÀNH HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL

Các số nguyên: bigint, int, smallint, tinyint Các số

thực xấp xỉ: float, real

Giá trị số thực chính xác: decimal, numberic Giá trị

tiền tệ: money, smallmoney

Giá trị hời gian: datetime, smalldatetime

Các chuỗi: char, varchar, text, nchar, nvarchar, ntext, Các chuỗi

nhị phân: binary, varbinary, image

Các kiểu khác: cursor, table, variant, timestamp, uniqueidentifier

Trang 20

THƯC HÀNH HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL

TỔNG QUAN VỀ SQL SERVER

Bài thực hành 1 Tạo CSDL đơn giản bằng SQL Server Management Studio

Trong bài này, bạn sẽ được hướng dẫn cách thức tạo một CSDL đơn giản có tên

Contacts để quản lý thông tin danh bạ được dùng cho các công việc liên hệ thường ngày của bạn CSDL này đơn giản chỉ chứa một bảng Contacts với các thông tin danh

bạ được lưu trữ gồm: Họ và tên (First_Name, Last_Name, Middle_Name), Công ty(Company), Nghề nghiệp (Job_Title) , Số điện thoại (Business_Phone, Home_Phone, Mobile_Phone), Số fax (Fax_Number), Địa chỉ (Address), Tỉnh\Thành (City\Province), Thư điện tử (email), trang web (webpage) Các danh bạ được phân loại thành 3 loại (Category) là Business (công việc), Personal (Riêng tư) và Family (Gia đình).

Để thực hiện việc tạo CSDL Contacts, bạn cần thực hiện tuần tự các bước sau:

1. Khởi động Management Studio

2. Kết nối vào Database Engine

3. Tạo CSDL Contacts

4. Tạo Bảng Contacts

5. Nhập dữ liệu và chỉnh sửa dữ liệu trong bảng Contacts

1. Bước 1: Khởi động Management Studio

Mục tiêu :

Kết thúc bài này, bạn sẽ có thể:

 Tạo CSDL Contacts quản lý danh bạ

 Nhập dữ liệu và chỉnh sửa dữ liệu trong bảng

Trang 21

Để khởi động Management Studio,vào Start\ All Programs\ Microsoft SQL Server

2008\ SQL Server Management Studio.

2. Bước 2: Kết nối vào Database Engine

Sau khi khởi động Management Studio, hộp thoại ‘Connect to Server’ hiện ra, bạn

cần nhập chính xác các thông tin để có thể kết nối tới SQL Server Các thông tin baogồm:

Server type: Để như mặc định (là Database Engine)

Server name: chỉ đến SQL Server 2008 Database Engine

mà bạn kết nối đến

Lưu ý, trên máy có thể tồn tại nhiều Engine (được gọi là Instance), bạn cần chỉ rõ

cả Instance name và host name để kết nối thành công Như trong hình dưới đây,

chúng ta sẽ kết nối vào máy chủ có tên là srv (đây chính là hostname, thường

trùng với tên máy tính, hoặc tên miền); instance được kết nối có tên SQLSERVER.

Authentication: Chọn loại xác thực, bạn có thể dùng Windows Authentication

(như trong hình) hoặc SQL Server Authentication Trong trường hợp bạn dùngSQL Server Authentication, hãy hỏi quản trị hệ thống để biết tài khoản để đăngnhập vào SQL Server

Trang 22

Giao diện Management Studio sau khi đăng nhập thành công:

3. Bước 3: Tạo CSDL Contacts

Để tạo mới CSDL, nhấn phải chuột vào nút Databases rồi chọn New Database

Trang 23

Trong hộp thoại ‘New Database’, nhập tên (Database name) cho CSDL, đặt tên CSDL là ‘Contacts’; rồi nhấn OK.

Trang 24

4. Bước 4: Tạo Bảng Contacts

Sau khi tạo xong CSDL Contacts, trong cửa sổ Object Browser, mở nút Contacts(nhấn vào dấu +), rồi nhấn phải chuột vào nút Tables, chọn ‘New Table’

4.1 Thêm các cột cho bảng Contacts

Cửa sổ Table Designer sẽ hiện ra như hình dưới, bạn nhập tên các cột (ColumnName) và kiểu dữ liệu (Data Type) tương ứng cho cột để thiết kế bảng Contacts.Trước hết, bạn đặt tên cột đầu tiên của bảng là id, kiểu dữ liệu là int Cột này sẽđược dùng để lưu trữ mã số cho từng danh bạ, nó sẽ được SQL Server tự sinh

tự động

Trang 25

Để thiết lập cơ chế sinh tự động cho cột id, trong cửa sổ Column Properties ở bên dưới, mở nút ‘Identity Specification’, đặt giá trị ‘Is Identity’ là Yes.

Hình: đặt identity cho cột id

Trang 26

Hình: cột id đã được thiết lập identity

Bạn nhập thêm các cột còn lại của bảng Contacts như trong hình dưới đây:

Lưu ý, trong khi nhập kiểu dữ liệu cho từng cột, bạn cần chỉ rõ kích thước từng

cột Ví dụ, khai báo kiểu dữ liệu cho Last_Name là nvarchar(50) có nghĩa là cột Last_Name có kiểu dữ liệu là nvarchar, cột này có thể lưu trữ tới 50 kí tự

unicode Ý nghĩa chi tiết của từng loại kiểu dữ liệu CSDL sẽ được chỉ rõ kĩ trong các giờ học sau.

Sau khi nhập xong các cột và kiểu dữ liệu tương ứng, trước khi lưu bảng

Contacts, ta sẽ thiết lập một số ràng buộc đơn giản cho các cột đặc biệt của bảng Contacts (Kĩ thuật thiết lập ràng buộc nâng cao cho các trường dữ liệu củaSQL Server sẽ được đề cập trong các bài sau)

Trang 27

4.2 Đặt khóa chính cho cột id: nhấn phải chuột vào cột id, chọn ‘Set Primary

Key’

4.4 Giới hạn giá trị nhập vào cột Category

Cột Category được dùng để phân loại các danh bạ Như trên đã nói, các contactđược phân thành 3 loại là ‘Personal’, ‘Business’ và ‘ Family’; do đó, các giá trịnhập vào cột Category chỉ có thể là ‘Personal’, ‘Business’ hoặc ‘ Family’ Để thiếtlập được ràng buộc như vậy, ta thực hiện các bước: chọn cột Category, nhấnphải chuột, chọn ‘Check Constraints’;

Trang 28

trong phần Expression của General, nhấn nút ;

nhập biểu thức như trong hình dưới đây, rồi nhấn OK:

Trang 29

Lưu ý, nếu bạn nhập sai biểu thức, SQL Server sẽ thông báo lỗi như hình dướiđây:

4.5 Yêu cầu nhập dữ liệu với một số trường chính: bỏ dấu kiểm (check) trong cột

Allow Nulls trên các cột Last_Name, First_Name và eMail Khi lưu dữ liệu vàobảng Contacts, ta không được bỏ trống (null) các cột này

Trang 30

Nhập tên Contacts vào hộp thoại ‘Choose Name’ để đặt tên cho bảng, rồi nhấn

OK để lưu bảng

4.7 Chèn thêm một cột vào bảng

Bạn có thể để ý thấy trong danh sách các cột của Contacts được tạo ra ở trongcác bước trên còn thiếu một cột Middle_Name Ta sẽ chèn thêm cột này vào saucột Last_Name và trước cột First_Name Để thực hiện được việc này, chọn cộtFirst_Name, nhấn phải chuột, chọn ‘Insert Column’;

Ngay sau khi nhấn ‘Insert Column’, một cột mới được chèn thêm vào giữa haicột Nhập Middle_Name vào Column Name và nvarchar(50) vào cột Data Type

Trang 31

Bảng Contacts hoàn chỉnh:

5 Bước 5 - Nhập dữ liệu và chỉnh sửa dữ liệu trong bảng Contacts

Để nhập dữ liệu vào bảng, ta cần mở cửa sổ nhập liệu bằng cách nhấn phảichuột vào bảng Contacts, chọn ‘Open Table’

Trang 32

THỰC HÀNH HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL

Trên cửa sổ nhập liệu, ta có thể chỉnh sửa dữ liệu trên một ô bất kì, cũng như

xóa một dòng dữ liệu

Trang 33

Mục tiêu :

Kết thúc bài này, các bạn sẽ có thể:

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

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

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

Trang 34

THỰC HÀNH HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL

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ácvụ

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

Trang 35

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

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:

Trang 36

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

Trang 37

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

Để 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

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.9

Trang 38

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ệnnhư 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

Trang 39

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êncủ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ảngStudent:

• 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:

Trang 40

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);

2 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

3 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’,

Ngày đăng: 17/01/2020, 11:06

TỪ KHÓA LIÊN QUAN

w