Giáo Trình Hướng Dẫn Thực Hàng Cơ Sở Dữ Liệu Phần 3
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
Khoa Công nghệ thông tin – Bộ môn Hệ thống thông tin - Nhập môn Cơ sở dữ liệu
Script ta ̣o CSDL, cấu trúc
CSDL và nhâ ̣p dƣ̃ liê ̣u
Topic
2
Trang 2Giảng viên Lương Vĩ Minh Hồ Thi ̣ Hoàng Vy Tiết Gia Hồng
2011 - Trườ ng đa ̣i ho ̣c Khoa ho ̣c tự nhiên
227 Nguyễn Văn Cừ Tp.Hồ Chí Minh – Viê ̣t Nam Phone (08) 38.354.266 • Fa x (08) 38.324.467
Trang 3Mục Lục
A Mụ c tiê u 2
B Phần hướng dẫn thực hành 3
C Phần bài tâ ̣p về nhà 11
1 Hình thức nộp và Thời gian làm bài 11
2 Quy đi ̣nh đă ̣t tên 11
3 Nô ̣i dung & yêu cầu bài tâ ̣p 11
Trang 4A Mụ c t iê u
Dùng c ú phá p l ện h thự c hiệ n cá c yê u cầ u sa u
Tạo CS DL
Tạo b ả ng
Tha y đổ i c ấ u trúc b ả ng
Tạo k hó a c hính, k hó a ngoạ i, rà ng b uộc to à n vẹ n
Nhậ p liệ u
Trang 5TÀI LIỆU THỰC HANH CSDL - LƯU HÀNH NỘI BỘ
T H S L Ư Ơ N G VĨ MINH – HỒ THI ̣ HOÀNG VY - T I Ế T G I A H Ồ N G
3
B Phần hươ ́ ng dẫn thư ̣c hành
Dat ab a se
Kiểm t ra CS DL có tồ n tạ i c hưa
Các h 1 :
IF db_id('Tên_CSDL') IS NOT NULL
Print 'Database Exists'
ELSE
Print 'Database Does Not Exists'
Các h 2 :
IF exists(select from sys.databases where name = 'Tên_CSDL')
Print 'Database Exists'
ELSE
Print 'Database Does Not Exists'
Tạo d ata ba se
CREATE DATABASE Tên_CSDL
Vd : Tạ o CS DL QL SV
CREATE DAT AB ASE QLS V
Một C SDL được tạ o ra gồm 2 f ile c hính là mdf c hứa dữ liệ u và ldf c hứa log
Đặt d ata ba se h iện h àn h
Trang 6USE Tên_CSDL
Vd : C hu yể n C SD L mặc đ ịn h ma ster Q L S V
USE QL S V
Xóa d atab a se
DROP DATABASE Tên_CSDL
VD : Xóa C SDL Q LSV
USE ma ste r
DROP DATAB ASE Q LS V
Thự c th i lệ nh S QL
P hí m nó ng :
Ko xóa được vì QLSV đang được
Focus Dùng lệnh USE chuyển CSDL hiện hành thành master
Trang 7TÀI LIỆU THỰC HANH CSDL - LƯU HÀNH NỘI BỘ
T H S L Ư Ơ N G VĨ MINH – HỒ THI ̣ HOÀNG VY - T I Ế T G I A H Ồ N G
5
- Ctrl + F5 :k iể m tra c ú p háp lệ nh
- F5 : thực thi đ oạ n lệ nh
Me nu :
C ú p háp p hâ n tá c h thứ tự thự c hiệ n c ủa cá c lệ n h SQ L
GO
Vd : C ú phá p tạ o C SDL c hạ y trư ớc , t ớ i lệ nh Use C SDL
CREATE DAT AB ASE QL S V
GO
USE Q LS V
Tạo b ảng
Cú phá p k iểm t ra một bả ng đ ã t ồn tạ i t ro ng CS DL ch ưa
Các h 1 :
IF OBJECT_ID('Tên_Bảng','U') IS NOT NULL
Print 'Table Exists'
ELSE
Print 'Table Does Not Exists'
Các h 2 :
IF exists(select from sys.objects where name = 'Tên_Bảng')
Print 'Table Exists'
ELSE
Print 'Table Does Not Exists'
Cú phá p t ạo b ản g
Thực thi
Kiểm tra cú pháp
Trang 8Tạo b ản g k h ôn g có k hó a ch ín h
CREATE TABLE [Tên Bảng]
(
[Thuộc tính 1] [Kiểu dữ liệu 1],
[Thuộc tính 2] [Kiểu dữ liệu 2],
… ,
[Thuộc tính 2] [Kiểu dữ liệu 3]
)
CREATE TABLE NHAN_VIEN (
MaNV char(10), HoTen varchar(30), NgaySinh datetime, GioiTinh bit,
Phong int
)
Tạo b ản g có k hó a ch í nh
Tạo b ản g có k hó a ch í nh
Cú phá p x ó a bả ng
CREATE TABLE [Tên Bảng]
(
[Thuộc tính 1] [Kiểu dữ liệu 1], [Thuộc tính 2] [Kiểu dữ liệu 2],
[Thuộc tính n] [Kiểu dữ liệu n],
PRIMARY KEY ([Danh sách các thuộc tính làm khóa chính, cách nhau bằng dấu phẩy)]
)
CREATE TABLE NHAN_VIEN (
MaNV char(10), HoTen varchar(30), NgaySinh datetime, GioiTinh bit,
Phong int,
PRIMARY KEY(MaNV) )
CREATE TABLE [Tên Bảng]
(
[Thuộc tính 1] [Kiểu dữ liệu 1], [Thuộc tính 2] [Kiểu dữ liệu 2],
[Thuộc tính n] [Kiểu dữ liệu n],
CONSTRAINT [Tên Khóa Chính]
PRIMARY KEY ([Danh sách các thuộc tính làm khóa chính, cách nhau bằng dấu phẩy)]
CONSTRAINT [Tên Khóa Ngoại]
FOREIGN KEY ([Danh sách các thuộc tính khóa ngoại])
REFERENCES [Tên bảng tham chiếu]([Danh sách các thuộc tính khóa chính của bảng tham chiếu đến])
)
CREATE TABLE PHONG (
Maphg char(10), Tenphg varchar(30), Diadiem varchar(40), Trphg char(10),
CONSTRAINT PK_NV
PRIMARY KEY(maphg),
CONSTRAINT FK_PHG_NV
FOREIGN KEY(Trphg)
REFERENCES
NHAN_VIEN(MaNV) )
Trang 9TÀI LIỆU THỰC HANH CSDL - LƯU HÀNH NỘI BỘ
T H S L Ư Ơ N G VĨ MINH – HỒ THI ̣ HOÀNG VY - T I Ế T G I A H Ồ N G
7
Tha y đổi c ấu t rú c bả ng
Thêm k hó a ch ính , k h óa n go ại, ràn g b uộ c m iền g iá t rị
Xóa k hó a ch ính, k hó a ng oạ i, rà ng b uộ c m iền g iá t rị
Mộ t s ố lư u ý :
Tê n k ho á c hính, k hó a ngoạ i c h ỉ ma n g tính gợ i nhớ
Da nh sá c h c á c thuộ c tính k ho á ngo ạ i c ác h nha u b ằ ng d ấ u p hẩ y
Da nh sá c h c á c thuộ c tính k ho á c hín h c ác h nha u b ằ ng d ấ u p hẩ y
Các lệ nh x em t hô ng t in cấ u t ru củ a m ột bả ng
Drop table [Tên bảng] Drop table NHAN_VIEN
Thêm khóa chính :
ALTER TABLE [Tên Bảng]
ADD CONSTRAINT [Tên khóa chính]
PRIMARY KEY ([Danh sách các thuộc tính
của khóa chính])
Lưu ý : Khi tạo khóa chính cho bảng ở bên ngoài lệnh
tạo bảng thì các thuộc tính của khóa chính phải được
k hai báo là NOT NULL trong câu lệnh tạo bảng
Thêm khoá chính cho bảng nhân viên:
ALTER TABLE NHAN_VIEN
ADD CONSTRAINT PK_NV
PRIMARY KEY (MaNV)
Thêm khóa ngoại :
ALTER TABLE [Tên Bảng]
ADD CONSTRAINT [Tên khóa ngoại]
FOREIGN KEY ([Danh sách các thuộc tính
khoá ngoại])
REFERENCES [Tên bảng tham chiếu] (
[Danh sách các thuộc tính khoá chính
của bảng tham chiếu tới])
Thêm khóa ngoại cho bảng PHONG:
ALTER TABLE PHONG
ADD CONSTRAINT FK_PHG_NV
FOREIGN KEY (trphg)
REFERENCES NHAN_VIEN(manv)
Thêm ràng buộc miền giá trị
ALTER TABLE [Tên Bảng]
ADD CONSTRAINT [Tên ràng buộc miền gt]
CHECK ([Biểu thức điều kiện])
Thêm ràng buộc phái thuộc Nam hoặc Nữ
ALTER TABLE NHAN_VIEN
ADD CONSTRAINT C_PHAI
CHECK(PHAI IN ('Nam', N'Nữ'))
Xóa ràng buộc
ALTER TABLE [Tên Bảng]
DROP CONSTRAINT [Tên ràng buộc]
Xóa khóa chính
ALTER TABLE NHAN_VIEN
DROP CONSTRAINT PK_NV
Xóa khóa ngoại
ALTER TABLE PHONG
DROP CONSTRAINT FK_PHG_NV
Xem cấu trúc bảng
sp_help [Tên Bảng] sp_help NHAN_VIEN
Xem thông tin khóa chính của bảng
sp_pkeys [Tên Bảng] sp_pkeys NHAN_VIEN
Xem thông tin khóa ngoại của bảng
Trang 10 Thêm , x ó a, sửa th uộ c t ín h
Nhập liệ u
Thêm d ữ liệ u v à o bả ng
Một số lư u ý :
sp_fkeys [Tên Bảng] sp_fkeys NHAN_VIEN
Thêm thuộc tính :
ALTER TABLE [Tên Bảng]
ADD [Tên thuộc tính][Kiểu dữ liệu]
Thêm thuộc tính DiaChi
ALTER TABLE NHAN_VIEN
ADD DiaChi varchar(20)
Xóa thuộc tính :
ALTER TABLE [Tên Bảng]
DROP COLUMN [Tên thuộc tính]
Xoá thuộc tính DiaChi
ALTER TABLE NHAN_VIEN
Drop COLUMN DiaChi
Sửa thuộc tính :
ALTER TABLE [Tên Bảng]
ALTER COLUMN [Tên thuộc tính][Kiểu
dữ liệu mới]
Sửa thuộc tính DiaChi
ALTER TABLE NHAN_VIEN
ALTER COLUMN DiaChi varchar(50)
Ví dụ : NHAN_VIEN (manv, hoten, ngaysinh, phai, luong,phg)
Insert không tường minh
INSERT INTO [Tên Bảng]
VALUES([gt1], [gt2], , [gtn])
INSERT INTO NHAN_VIEN VALUES('NV001','Nguyen Van A', '12/30/1955', 'Nam', 5000, null)
Insert tường minh
INSERT INTO [Tên Bảng] ([tt1],
[tt2], , [ttn])
VALUES([gt1], [gt2], , [gtn]
INSERT INTO NHAN_VIEN(manv, hoten, ngaysinh, phai, luong)
VALUES('NV001','Nguyen Van A', '12/30/1955', 'Nam', 5000)
Insert từ một nguồn dữ liệu có
sẳn : (Chưa quan tâm)
Xem từ khóa INSERT SELECT
Kiểu dữ liệu Unicode
Thêm kí tự N trước chuổi
Unicode
Insert into NHANVIEN values('NV001', 'Nguyễn Văn Trường','12/30/1955','Nam',5000,null)
Kiểu dữ liệu ngày tháng
Định dạng nhập ngày tháng mặc
định : 'mm/dd/yyyy'
Insert into NHANVIEN values ('NV001', 'Nguyễn Văn Trường', ' 12/30/1955 ' ,'Nam',5000,null)
Insert một bộ có 1 giá trị là
NULL
Dùng từ khóa null
Insert into NHANVIEN values('NV001', 'Nguyễn Văn Trường','12/30/1955','Nam',5000,null)
Thuộc tính NOT NULL
Nếu thuộc tính được khai báo
trong cú pháp tạo bảng là NOT
NULL thì bắt buộc phải có giá
trị khi nhập 1 bộ vào bảng
Trang 11TÀI LIỆU THỰC HANH CSDL - LƯU HÀNH NỘI BỘ
T H S L Ư Ơ N G VĨ MINH – HỒ THI ̣ HOÀNG VY - T I Ế T G I A H Ồ N G
9
Nhậ p d ữ liệu k hi đ ã có rà ng bu ộc k hó a ng oạ i :
Cách 1:
1 Bước 1 : Nhập phòng ban
2 Bước 2 : Nhập đề án
Cách 2:
1 Bước 1 : Nhập DEAN, nhập PHONG = null
2 Bước 2 : Nhập phòng ban
3 Bước 3 : Cập nhật DEAN
Cách 1:
Bước 1 : Nhập NHANVIEN, đặt PHG là null Bước 2 : Nhập PHONGBAN
Bước 3 : Cập nhật thuộc tính PHG của NHANVIEN
Cách 2 :
Bước 1 : Nhập PHONGBAN, đặt TRPHG là null Bước 2 : Nhập NHANVIEN
Bước 3 : Cập nhật TRPHG của phòng ban
Trang 12 Xóa dữ liệ u
Lưu ý khi xóa bảng có liên quan đến khóa ngoại :
Nế u k hô ng có tha m c hiế u vò n g t hì tiế n hà n h xóa b ả ng c hứ a k hó a ngo ạ i trư ớc sa u đó rồ i xó a b ả ng c ò n lạ i, hoặ c xóa k hó a ngo ạ i rồ i
sa u đó tiế n hà nh xó a c ác b ả ng
Nế u c ó k hóa vò ng th ì xó a mộ t k hóa đ ể mấ t k hó a vò ng rồ i tiế n hà nh
là m n hư trư ờng hợp 1
Cập nh ật dữ liệu
Xem, x óa dữ liệ u củ a m ột bả ng
Cách 1 :
- Những nhân viên mà có MA_NQL là null thì nhập trước
- Sau đó nhập những Nhân viên mà đã nhập thông tin
về NQL của nhân viên đó
Cách 2 :
Bước 1 Nhập NHANVIEN, đặt thuộc tính MA_NQL
là null Bước 2 Cập nhật MA_NQL của NHANVIEN
Drop table [Tên bảng] Drop table NHANVIEN
Cập nhật nội dung của một bảng
UPDATE [Tên bảng]
SET [Thuộc_tính] = [Giá_trị_mới]
WHERE [Biểu thức điều kiện]
Cập nhật GioiTinh bằng NULL
UPDATE [Tên bảng]
SET GioiTinh = null
Xem nội dung của một bảng
SELECT * FROM [Tên bảng]
Xem dữ liệu của bảng NHANVIEN
SELECT * FROM NHANVIEN
Xóa nội dung của một bảng
DELETE FROM [Tên bảng]
WHERE [Biểu thức điều kiện]
Xóa nhân viên NV001 của bảng NHANVIEN
DELETE FROM NHAN_VIEN
WHERE manv = ‘NV001’
Xóa tất cả dữ liệu bảng NHANVIEN
DELETE FROM NHANVIEN
Trang 13TÀI LIỆU THỰC HANH CSDL - LƯU HÀNH NỘI BỘ
T H S L Ư Ơ N G VĨ MINH – HỒ THI ̣ HOÀNG VY - T I Ế T G I A H Ồ N G
11
C Phần ba ̀i tâ ̣p về nhà
1 Hình thức nộp và Thời gian làm bài
Hì nh thức làm bài : Làm theo cá nhân
Hình thức nộp : Nô ̣p trực triếp
Thời gian nộp (Deadlin e):
Bà i tậ p v ề nhà : 23:55 ngày 13/3/2011
Bà i tậ p t ạ i lớ p: 23:55 ngày 7/3/2011
2 Quy đi ̣nh đă ̣t tên
- Đặt tên file nộp theo :
Bài tập VN: VN02 _ CSDL _ Struct _MSSV.sql
Bài tập tại lớp: TL02 _ CSDL _ Struct _MSSV.sql
- Ví dụ: VN02 _ CSDL _ Struct _9912043.sql
3 Nô ̣i dung & yêu cầu bài tâ ̣p
- Tại lớp: Dùng lệnh SQL tạo CSDL quản lí thiết bị
Xóa thuộc tính ChucDanh
Thêm thuộc tính HocHam (nvarchar(40)) và HocVi (nvarchar(40)) vào bảng GiaoVien
Thêm thuộc tính Luong vào bảng giáo viên
Cài đặt các RBTV miền giá trị
Nhập liệu
- Về nhà: tạo CSDL quản lí chuyến bay và nhập liệu