Cài đặt cơ sở dữ liệu SQL Server (Bài 1)
Cài đặt cơ sở dữ liệu sql server bao gồm các thao tác như tạo cơ sở dữ liệu, tạo bảng, thêm dữ liệu, thay đổi dữ liệu, xoá dữ liệu và xem dữ liệu.
Ngoài ra, chúng ta còn biết cách thiết lập ràng buộc dữ liệu hay thay đổi kích thước cơ sở dữ liệu. Trong bài học cài đặt cơ sở dữ liệu sql server, bạn sẽ được tìm hiểu và thực hành những thao tác đã liệt kê ở trên.
Cài đặt cơ sở dữ liệu sql server – Tạo cơ sở dữ liệu
Trong SQL Server, chúng ta có 2 cách để thực hiện thao tác này. Một là chúng ta sử dụng giao diện, hai là chúng ta sử dụng câu lệnh (script)
Cách 1: Tạo bằng giao diện
Chuột phải Databases -> Chọn New Database…
Nhập tên cơ sở dữ liệu tại Database name -> Chọn OK để hoàn tất
Sau khi tạo thành công cơ sở dữ liệu tên QuanLySinhVien, chúng ta nhận được kết quả sau
Cơ sở dữ liệu sau khi tạo thành công gồm 2 tập tin (file): QuanLySinhVien.mdf và QuanLySinhVien_log.ldf.
QuanLySinhVien.mdf:tập tin dùng để lưu trữ dữ liệu của người dùng. Bất cứ khi nào người dùng thực hiện các thao tác thêm, thay đổi, hay xoá thì đều tác động đến tập tin này.
QuanLySinhVien_log.ldf: tập tin nhật ký. SQL Server sử dụng tập tin này để ghi nhận những thao tác của người dùng.
Hai tập tin này đều có các đặc điểm sau
Logical Name | Tên luận lý. SQL Server sử dụng tên này để nhận biết tập tin |
Iniital Size | Kích thước ban đầu |
Auto Growth | Kích thước được tăng thêm khi cần thiết |
Max Size | Kích thước tối đa |
Path | Đường dẫn thư mục lưu trữ tập tin |
File Name | Tên tập tin được lưu trữ trên thiết bị vật lý của máy chủ |
Cách 2: Tạo bằng câu lệnh
Khi tạo cơ sở dữ liệu, chúng ta có thể chỉ định tên các thiết lập khác là mặc định. Sau đây là cú pháp
create database databaseName
Ví dụ tạo cơ sở dữ liệu tên QuanLyHopDong
create database QuanLyHopDong
Một số trường hợp, quản trị viên muốn thiết lập về kích thước ban đầu (inital size), kích thước tăng thêm (growth), kích thước tối đa,…khi đó chúng ta sẽ sử dụng cú pháp sau
create database databaseName on primary --Tạo tập tin data ( size = kích_thước_ban_đầu ,filegrowth = kích_thước_tăng ,maxsize = kích_thước_tối_đa ,filename = 'đường_dẫn\tên_csdl.mdf' ,name = tên_csdl ) log on --Tạo tập tin log ( size = kích_thước_ban_đầu ,filegrowth = kích_thước_tăng ,maxsize = kích_thước_tối_đa ,filename = 'đường_dẫn\tên_csdl.ldf' ,name = tên_csdl_log )
Sau đây là ví dụ tạo cơ sở dữ liệu QuanLyNhanSu với yêu cầu về tập tin dữ liệu (data) và tập tin nhật ký (log)
Đối với tập tin dữ liệu
- Size = 100MB
- FileGrowth = 10MB
- MaxSize = 2GB
- Path là C:\SQL
- FileName là QuanLyNhanSu.mdf
- Logical name là QuanLyNhanSu
Đối với tập tin nhật ký
- Size = 200MB
- FileGrowth = 20MB
- MaxSize = Không giới hạn
- Path: C:\SQL
- FileName là QuanLyNhanSu.ldf
- Logical name là QuanLyNhanSu_log
create database QuanLyNhanSu on primary --Tập tin data ( size = 100MB ,filegrowth = 10MB ,maxsize = 2GB ,filename = 'c:\sql\QuanLyNhanSu.mdf' ,name = QuanLyNhanSu ) log on --Tập tin log ( size = 200MB ,filegrowth = 20MB ,maxsize = unlimited ,filename = 'c:\sql\QuanLyNhanSu.ldf' ,name = QuanLyNhanSu_log )
Cài đặt cơ sở dữ liệu sql server – Tạo bảng
Bảng dữ liệu dùng để chứa dữ liệu. Khi cài đặt trên SQL Server, chúng ta cần phải biết về tên bảng, danh sách cột cùng kiểu dữ liệu, khoá chính và khoá ngoại (nếu có).
Giả sử chúng ta muốn tạo 2 bảng Lop và SinhVien của cơ sở dữ liệu QuanLyDaoTao với thông tin chi tiết như sau. Luu ý tham khảo kiểu dữ liệu của SQL Server
Bảng Lop
Tên cột | Kiểu dữ liệu | Ghi chú |
MaLop | varchar(20) | Khoá chính |
TenLop | nvarchar(50) |
Bảng SinhVien
Tên cột | Kiểu dữ liệu | Ghi chú |
MaSV | varchar(15) | Khoá chính |
TenSV | nvarchar(50) | |
GioiTinh | nvarchar(3) | |
NgaySinh | date | |
MaLop | varchar(20) | Khoá ngoại |
Câu lệnh tạo bảng có khoá chính, không có khoá ngoại
create table tên_bảng ( Tên_cột_thứ_1 Kiểu_dữ_liệu ,Tên_cột_thứ_2 Kiểu_dữ_liệu ,... ,primary key (danh_sách_khoá_chính) )
Câu lệnh tạo bảng có khoá chính và khoá ngoại
create table tên_bảng ( Tên_cột_thứ_1 kiểu_dữ_liệu ,Tên_cột_thứ_2 kiểu_dữ_liệu ,... ,primary key(danh_sách_khoá_chính) ,foreign key(khoá_ngoại) references Bảng_tham_chiếu )
Sau đây là câu lệnh tạo bảng Lop và SinhVien
create table Lop ( MaLop varchar(20) ,TenLop nvarchar(50) ,primary key(MaLop) )
create table SinhVien ( MaSv varchar(15) ,TenSv nvarchar(50) ,GioiTinh nvarchar(5) ,NgaySinh date ,MaLop varchar(20) ,primary key (MaSv) ,foreign key (MaLop) references Lop )
Cài đặt cơ sở dữ liệu sql server – Thêm dữ liệu
Là thao tác nhập dữ liệu vào cho các bảng. Chúng ta thực hiện việc này bằng nhiều cách, một trong những cách đó là bằng câu lệnh.
Câu lệnh thêm dữ liệu trong trường hợp dữ liệu thêm vào khớp với số lượng cột
insert into tên_bảng values(Giá_trị_1,Giá_trị_2,…)
Ví dụ thêm dữ liệu cho bảng Lop. Đối với dữ liệu là chuỗi và ngay tháng năm, chúng ta phải đặt chúng trong ‘ ‘
insert into Lop values('26CCHT01',N'Quản trị mạng khoá 26')
Câu lệnh thêm dữ liệu trong trường hợp một số cột bị bỏ qua
insert into tên_bảng(cột_1,cột_2,cột_3,…) values(Giá_trị_1,Giá_trị_2,Giá_trị_3,…)
Ví dụ thêm dữ liệu cho bảng Lop với tên lớp bị bỏ qua. Sau tên bảng là tên của những cột được thêm. Nghĩa là những cột bị bỏ qua sẽ không được chỉ định.
insert into Lop(MaLop) values('26CCHT02')
Cài đặt cơ sở dữ liệu sql server – Thay đổi dữ liệu
Là thao tác thay đổi dữ liệu đã tồn tại trước đó dựa theo điều kiện được chỉ định trước. Nếu không chỉ định điều kiện thì tất cả dữ liệu của bảng sẽ bị tác động. Sau đây là câu lệnh thực hiện thay đổi dữ liệu cho bảng.
update tên_bảng set tên_cột_1 = Giá_trị ,tên_cột_2 = Giá_trị ,... where điều_kiện
Ví dụ thay đổi tên lớp có mã là 26CCHT01 thành Cao đẳng chính quy nghề QTM khoá 26
update Lop set TenLop = N'Cao đẳng chính quy nghề QTM khoá 26' where MaLop = '26CCHT01'
Cài đặt cơ sở dữ liệu sql server – Xoá dữ liệu
Không giống như thao tác thêm hay thay đổi dữ liệu, thao tác xoá dữ liệu sẽ làm mất dữ liệu của bảng. Vì vậy, khi chúng ta thực hiện thao tác này phải hết sức cẩn thận. Và SQL Server có kiểm tra ràng buộc về khoá ngoại.
Xoá tất cả dữ liệu của bảng
delete from tên_bảng
Xoá những dòng dữ liệu thoả điều kiện được chỉ định trước
delete from tên_bảng where điều_kiện
Câu lệnh delete ở trên chỉ thực hiện xoá dữ liệu của bảng, cấu trúc bảng vẫn còn tồn tại. Nếu chúng ta muốn xoá bảng hoặc xoá cơ sở dữ liệu, hãy sử dụng các câu lệnh sau
Câu lệnh xoá bảng
drop table tên_bảng
Câu lệnh xoá cơ sở dữ liệu (Một khi cơ sở dữ liệu bị xoá thì tất cả các bảng sẽ bị xoá theo và đồng nghĩa với việc tất cả dữ liệu cũng sẽ bị xoá hết)
drop database tên_CSDL
Tổng kết bài cài đặt cơ sở dữ liệu sql server
- Tạo cơ sở dữ liệu
- Tạo bảng
- Thêm dữ liệu
- Thay đổi dữ liệu
- Xoá dữ liệu
Bài tập thực hành cài đặt cơ sở dữ liệu sql server
Câu 1: Tạo cơ sở dữ liệu QuanLyBanHang với yêu cầu như sau
- Data File: kích thước khởi tạo 50MB; mỗi lần tăng 10MB; giới hạn kích thước tập tin không tăng hơn 200MB.
- Log File: kích thước khởi tạo 10MB; mỗi lần tăng 5MB; không giới hạn việc tăng kích thước tập tin.
Câu 2: Tạo bảng cho cơ sở dữ liệu QuanLyBanHang
Bảng VatTu
Tên cột | Kiểu dữ liệu | Ghi chú |
MaVTu | Char (4) | Khoá chính |
TenVTu | NVarChar (100) | |
DvTinh | NVarChar (10) | |
PhanTram | int |
Bảng NhaCC
Tên cột | Kiểu dữ liệu | Ghi chú |
MaNhaCC | Char (3) | Khoá chính |
TenNhaCC | NVarChar (100) | |
DiaChi | NVarchar (200) | |
DienThoai | NVarchar (20) |
Bảng DonDH
Tên cột | Kiểu dữ liệu | Ghi chú |
SoDH | Char (4) | Khoá chính |
NgayDH | DateTime | |
MaNhaCC | Char (4) | Khoá ngoại |
Bảng CTDonDH (Lưu ý bảng này có 2 khoá ngoại là SoDH và MaVTu
Tên cột | Kiểu dữ liệu | Ghi chú |
SoDH | Char | Khoá chính |
MaVTu | Char | |
SLDat | Int |
Bảng PNhap
Tên cột | Kiểu dữ liệu | Ghi chú |
SoPN | Char (4) | Khoá chính |
NgayNhap | Datetime | |
SoDH | Char (4) | Khoá ngoại |
Bảng CTPhap (Lưu ý bảng này có 2 khoá ngoại là SoPN và MaVTu)
Tên cột | Kiểu dữ liệu | Độ rộng |
SoPN | Char (4) | Khoá chính |
MaVTu | Char (4) | |
SLNhap | Int | |
DGNhap | Money |
Bảng PXuat
Tên cột | Kiểu dữ liệu | Ghi chú |
SoPX | Char (4) | Khoá chính |
NgayXuat | Datetime | |
TenKH | NVarchar (100) |
Bảng CTPXuat (Bảng này có 2 khoá ngoại là SoPX và MaVTu)
Tên cột | Kiểu dữ liệu | Ghi chú |
SoPX | Char (4) | Khoá chính |
MaVTu | Char (4) | |
SLXuat | Int | |
DGXuat | Money |
Bảng TonKho (Bảng này có một khoá ngoại là MaVTu)
Tên cột | Kiểu dữ liệu | Ghi chú |
NamThang | Char (6) | Khoá chính |
MaVTu | Char (4) | |
SLDau | Int | |
TongSLN | Int | |
TongSLX | Int | |
SLCuoi | Int |
Câu 3: Tạo Database Diagram
Câu 4: Thêm dữ liệu cho các bảng
Bảng NHACC | |||
Mancc | Tennhacc | Diachi | Dienthoai |
C01 | Lê Minh Trí | 54 Hậu Giang Q6 HCM | 8781024 |
C02 | Trần Minh Thạch | 145 Hùng Vương Mỹ Tho | 7698154 |
C03 | Hồng Phương | 154/85 Lê Lai Q1 HCM | 9600125 |
C04 | Nhật Thắng | 198/40 Hương Lộ 14 QTB HCM | 8757757 |
C05 | Lưu Nguyệt Quế | 178 Nguyễn Văn Luông Đà Lạt | 7964251 |
C07 | Cao Minh Trung | 125 Lê Quang Sung Nha Trang | Chưa có |
Bảng VATTU | |||
Mavtu | Tenvtu | DvTinh | Phantram |
DD01 | Đầu DVD Hitachi 1 đĩa | Bộ | 40 |
DD02 | Đầu DVD Hitachi 3 đĩa | Bộ | 40 |
TL15 | Tủ lạnh Sanyo 150 lit | Cái | 25 |
TL90 | Tủ lạnh Sanyo 90 lit | Cái | 20 |
TV14 | Tivi Sony 14 inches | Cái | 15 |
TV21 | Tivi Sony 21 inches | Cái | 10 |
TV29 | Tivi Sony 29 inches | Cái | 10 |
VD01 | Đầu VCD Sony 1 đĩa | Bộ | 30 |
VD02 | Đầu VCD Sony 3 đĩa | Bộ | 30 |
Bảng DONDH | ||
Sodh | Ngaydh | Manhacc |
D001 | 15/01/2007 | C03 |
D002 | 30/01/2007 | C01 |
D003 | 10/02/2007 | C02 |
D004 | 17/02/2007 | C05 |
D005 | 03/01/2007 | C02 |
D006 | 03/12/2007 | C05 |
Bảng CTDONDH | ||
Sodh | Mavtu | SlDat |
D001 | DD01 | 10 |
D001 | DD02 | 15 |
D002 | VD02 | 30 |
D003 | TV14 | 10 |
D003 | TV29 | 20 |
D004 | TL90 | 10 |
D005 | TV14 | 10 |
D005 | TV29 | 20 |
D006 | TV14 | 10 |
D006 | TV29 | 20 |
D006 | VD01 | 20 |
Bảng PNHAP | ||
Sopn | Ngaynhap | Sodh |
N001 | 17/01/2007 | D001 |
N002 | 20/01/2007 | D001 |
N003 | 31/01/2007 | D002 |
N004 | 15/02/2007 | D003 |
Bảng CTPNHAP | |||
Sopn | Mavtu | SlNhap | DgNhap |
N001 | DD01 | 8 | 2500000 |
N001 | DD02 | 10 | 3500000 |
N002 | DD01 | 2 | 2500000 |
N002 | DD02 | 5 | 3500000 |
N003 | VD02 | 30 | 2500000 |
N004 | TV14 | 5 | 2500000 |
N004 | TV29 | 12 | 3500000 |
Bảng PXUAT | ||
Sopx | Ngayxuat | Tenkh |
X001 | 17/01/2007 | Nguyễn Ngọc Phương Nhi |
X002 | 25/01/2007 | Nguyễn Hồng Phương |
X003 | 31/01/2007 | Nguyễn Tuấn Tú |
Bảng CTPXUAT | |||
Sopx | Mavtu | SlXuat | DgXuat |
X001 | DD01 | 2 | 3500000 |
X002 | DD01 | 1 | 3500000 |
X002 | DD02 | 5 | 4900000 |
X003 | DD01 | 3 | 3500000 |
X003 | DD02 | 2 | 4900000 |
X003 | VD02 | 10 | 3250000 |
Bảng TONKHO | |||||
Namthang | Mavtu | SLDau | TongSLN | TongSLX | SLCuoi |
200701 | DD01 | 0 | 10 | 6 | 4 |
200701 | DD02 | 0 | 15 | 7 | 8 |
200701 | VD02 | 0 | 30 | 10 | 20 |
200702 | DD01 | 4 | 0 | 0 | 4 |
200702 | DD02 | 8 | 0 | 0 | 8 |
200702 | VD02 | 20 | 0 | 0 | 20 |
200702 | TV14 | 5 | 0 | 0 | 5 |
200702 | TV29 | 12 | 0 | 0 | 12 |