Bài Giảng Hệ Quản Trị Cơ Sở Dữ Liệu SQLServer 2000 Biên soạn: Dương Thành Phết Trang 21 Small 2 ± 32,767 Int 4 ± 2,147,483,467 Gibint 8 ± 2 63 3.2.4. Nhóm kiểu số thực(Thập phân): Gồm 2 nhóm kiểu dữ liệu : Kiểu dữ liệu gần ñúng (Real , Float): Phải cần ñặc tả ñộ chính xác số chữ số tối ña ñược cho ở 2 phía của dấu thập phân. Real(n) Có ñộ chính xác tối ña 7 chữ số,(Mặc ñịnh 7) Float(n) Có ñộ chính xác 1–38 chữ số (Mặc ñịnh 15) Ví du: a Real Lưu ñược giá trị 42516,25 hoặc 425,1625 b Float(8) Lưu ñược giá trị 42513,625 hoặc 4,2513625 Lưu ý thông thường tránh dùng : Float, Real Kiểu dữ liệu chính xác (Decimal, Numeric): Phải ñặc tả ñộ chính xác số chữ số tối ña ñược cho ở bên phải dấu thập phân. Khi khai báo phải chỉ ñịnh cả 2 ñộ chính xác và tỷ lệ. Nếu không mặc ñịnh sẽ là (18,0) Decimal(n1,n2) Numeric(n1,n2) Ví du: A Decimal(7,2) Lưu ñược : 4251665,34 không lưu ñược 46525123,25 B Numeric(5,4) Lưu ñược : 425,3124 không lưu ñược 54265,785269 C Numeric Số nguyên tối ña 18 chữ số 3.2.5. Nhóm kiểu liệu ngày giờ DateTime : Lưu dữ liệu Ngày/ Giờ, Dữ liệu ngày giờ có thể có nhiều ñịnh dạng khác nhau. Kiểu dữ liệu Lưu trữ Phạm vi DateTime 8 1/1/1753 - 12/31/9999 SmallDateTime 4 1/1/1900 - 06/06/2079 3.2.6. Nhóm kiểu dữ liệu tiền tệ Money & SmallMoney: Lưu trữ dữ liệu tiền tệ. Có Scale là 4 (Chứa 4 số bên phải dấu chấm thập phân). ðộ chính xác Kích thước 1-9 5 Byte 10-19 9 Byte 20-29 13 Byte 30-38 17 Byte This is trial version www.adultpdf.com Bài Giảng Hệ Quản Trị Cơ Sở Dữ Liệu SQLServer 2000 Biên soạn: Dương Thành Phết Trang 22 Kiểu dữ liệu Lưu trữ Phạm vi Money 8 ± 922.337.203.685.447,5808 SmallMoney 4 ± 214.748,3642 3.2.7. Kiểu dữ liệu ñặc biệt Kiểu Bit: Là kiểu dữ liệu Logic ñể lưu trữ thông tin Bolean biểu thị 1 trong 2 trang thái: Yes-No, True-Faulse, giá trị lưu trữ là 0 - 1. Chiếm 1 Byte không gian bộ nhớ Ví du: Gioitinh Bit Kiểu Text & Image: Lưu trữ dữ liệu Text (> 8000 ký tự). Có thể lưu trữ 2Gb dữ liệu nhị phân hoặc văn bản. Tổ chức lưu trữ trên từng trang 8KB, nếu dữ liệu vượt quá sẽ chỉ ñến trang bổ sung. Kiểu dữ liệu này gây cản trở trong vấn ñề khai thác dữ liệu. ðể khác phục nên lưu trữ dữ liệu Text và Imag thành các tập tin riêng và lưu ñường dẫn của các tập tin này(Kiểu Varchar) trong CSDL . 3.3. GIÁ TRỊ NULL, GIÁ TRỊ SỐ TỰ ðỘNG VÀ CỘT TÍNH TOÁN 3.3.1. Trị NULL Tính chất cho phép Null của một cột có nghĩa là không bắt buột phải nhập dữ liệu. Nếu muốn cho phép một cột có thể rỗng chỉ cần ñặc tả Null Nếu muốn không cho phép một cột có chứa giá trị rỗng thì phải xác ñịnh Not Null Nếu không xác ñịnh Null hay Not Null thì thiết lập mặc ñịnh là Not Null 3.3.2. Trị tự ñộng Là cột dữ liệu lưu trữ là giá trị số nguyên tự ñộng không phải nhập, ñược chỉ ñịnh thi thiết kế table thông qua thuộc tính Identity 3.3.3. Cột tính toán Là cột dữ liệu lưu trữ ñược thiết lập biểu thức tính tóan, giá trị tự ñộng không phải nhập Ví du: Thành tiền = Số lượng * ðơn giá Thanhtien As Soluong*Dongia Phải ñảm bảo nguyên tắc:Các cột tham chiếu trong biểu thức tính toán trong 1 Table 3.4. THIẾT KẾ TABLE VÀ CÁC THAO TÁC XỬ LÝ 3.4.1. Tạo mới Table Tại cửa sổ EnterPrise Manager chọn CSDL cần tạo Table Chọn mục Table / Click phải chọn New Table This is trial version www.adultpdf.com Bài Giảng Hệ Quản Trị Cơ Sở Dữ Liệu SQLServer 2000 Biên soạn: Dương Thành Phết Trang 23 Column Name : Tên cột của Table (tên Field) Data Type : Chọn kiểu dữ liệu Length : Xác ñịnh chiều dài tối ña của dữ liệu Allow Nulls : ðánh dấu ñối với cột cho phép giá trị Null Khai báo các thuộc tính cần thiết trong khung Column o Description: Mô tả, ghi chú o Default Value: Giá trị mặc ñịnh khi không nhập liệu o Formula: Biểu thức tính toán giá trị của cột o Precision: Số chữ số trước và sau dấu thập phân o Scale: Số chử số sau dấu thập phân o Identity: Giá trị số nguyên tự ñộng Lần lượt thực hiện cho tất cả các cột. Thiết lập khó chính: Chọn Field cần chỉ ñịnh làm khóa (Giữ shift ñể chọn nhiều Fields): Click biểu tượng chìa khóa ðóng cửa sổ thiết kế và ñặt tên Table 3.4.2. Xem cấu trúc Table: Tại cửa sổ EnterPrise Manager :Double Click Tên Table This is trial version www.adultpdf.com Bài Giảng Hệ Quản Trị Cơ Sở Dữ Liệu SQLServer 2000 Biên soạn: Dương Thành Phết Trang 24 3.4.3. ðổi tên Table: Tại cửa sổ EnterPrise Manager Click phải vào tên Table Chọn Rename Gõ tên mới Enter 3.4.4. Xóa Table : Tại cửa sổ EnterPrise Manager Click phải vào tên Table Chọn Delete Chọn Yes 3.4.5. ðiều chỉnh cấu trúc 1 Table ñã thiết kế: Tại cửa sổ EnterPrise Manager Click phải vào tên Table Chọn Design Table ðiều chỉnh xong ñóng cửa sổ thiết kế Chon Yes ñể lưu lại. 3.4.6. Mở 1 Table ñể xem và nhập liệu Click phải vào tên Table Chọn Open Table/ Return All Rows 3.5. THIẾT LẬP MỐI QUAN HỆ (RELATION SHIP)-XÂY DỰNG DIAGRAM Khi xây dựng CSDL bằng công cụ Enterprise Manager chưa thiết lập quan hệ. 3.5.1. Tạo mới lược ñồ quan hệ Tại cửa sổ EnterPrise Manager Chọn CSDL cần thiết lập quan hệ Click phải mục Diagram New Diagram This is trial version www.adultpdf.com Bài Giảng Hệ Quản Trị Cơ Sở Dữ Liệu SQLServer 2000 Biên soạn: Dương Thành Phết Trang 25 Chọn Next Chọn các Table cần thiết lập Diagram (Giữa Ctrl ñể chọn nhiều) o Add: ðể chọn o Remove: ðể hủy chọn o Add Related Tables Automatically : Thiết lập quan hệ tự ñộng Chỉ ñịnh xong Chọn Next Chọn Finish Tại cửa sổ thiết kế Relation Ship Kéo thả Field quan hệ từ Table chính sang ñúng Field quan hệ bên Table quan hệ. Chỉ ñịnh các thành phần This is trial version www.adultpdf.com Bài Giảng Hệ Quản Trị Cơ Sở Dữ Liệu SQLServer 2000 Biên soạn: Dương Thành Phết Trang 26 Check Existing data on Creation : Kiểm tra phụ thuộc tồn tại dữ liệu trong quan hệ Enforce Relation Ship for Replication: Cho phép thiết lập mối quan hệ Enforrce Relationship for Insert and Update o Cascade Updaterelated Fields : Tự ñộng cập nhật dữ liệu trong bảng QH khi bảng chính thay ñổi o Cascade Delete Related Records: Tự ñộng xóa dữ liệu liên quan trong bảng QH khi dữ liệu bảng chính bị xóa Chỉ ñịnh xong chọn OK (Lặp lại cho các quan hệ khác) ðóng cửa sổ thiết lập quan hệ Chọn Yes ñể lưu và ñặt tên. 3.5.2. ðiều chỉnh lược ñồ quan hệ Tại cửa sổ EnterPrise chọn mục Diagram Bên cửa sổ phải: Click phải tên Diagram chọn Open Tại cửa sổ thiết kế Relation Shipt Xóa mối quan hệ : Chon mối quan hệ Delete ðiều chỉnh mối quan hệ : Click phải mối quan hệ chọn Properties 3.5.3. Các chức năng trên thanh công cụ Lưu lược ñồ quan hệ Thêm Table vào lược ñồ quan hệ Mở cửa sổ thuộc tính 1 Table một mối quan hệ ñang chọn Thay ñổ kích thước cửa sổ Zoom In lược ñồ Các khung nhìn một của Table Lưu lược ñộ dạng File Script Chỉ ñịnh thuộc tính khóa Cắt 1 ñối tượng (Cut) Tạo chú thích cho lược ñồ This is trial version www.adultpdf.com Bài Giảng Hệ Quản Trị Cơ Sở Dữ Liệu SQLServer 2000 Biên soạn: Dương Thành Phết Trang 27 Sao chép một ñối tượng (Copy) Tư ñộng sắp xếp các Table trong lược ñồ Dán ñối tượng (Past) Công cụ quản lý khóa Tạo mới Table (New Table) Công cụ quản lý các ràng buột 3.5.4. Xóa 1 lược ñồ quan hệ Tại cửa sổ EnterPrise Chọn lược ñồ quan hệ / Nhấn Delete 3.6. TẠO TABLE DÙNG CÂU LỆNH SQL TỪ CỬA SỔ QUERY ANALYZER 3.6.1. Tạo mới Table Tại cửa sổ Query Analyzer chọn CSDL làm việc: Use <Tên DataBase> Ví du: Use QuanLyBH Thực hiện các lệnh tạo Table Cú pháp: Primary : Từ khóa ñể cột chỉ ñịnh là khóa chính Null : Cho phép cột chỉ ñịnh chứa giá trị Null(Rỗng) Not Null : Không cho cột chỉ ñịnh chứa giá trị Null Các ràng buộc: Create Table <Tên Table> ( <Tên cột> <Kiểu DL> Primary key , <Tên cột> <Kiểu DL> Null/Not Null Các ràng buột nếu có, . . . . . . <Tên cột> <Kiểu DL> References <Tên Table QH>(Tên cột QH) ) This is trial version www.adultpdf.com Bài Giảng Hệ Quản Trị Cơ Sở Dữ Liệu SQLServer 2000 Biên soạn: Dương Thành Phết Trang 28 Default <Giá trị mặc ñịnh>: Gắn giá trị mặc ñịnh cho cột chỉ ñịnh Check (<Biểu thức ràng buộc giá trị>): Kiểm tra ràng buột miền giá trị khi nhập liệu Reference : Dùng ñể xác ñịnh khóa ngoại, Mặc nhiên các mối quan hệ sẽ tự ñộng liên kết với nhau (Không cần thiết lập mối QH) Ghi chú: ðể thực hiện nhiều khối lệnh cùng lúc : ðặt chữ Go giữa các khối lệnh. Create Table LoaiSP ( MaLoai Primary key , TenLoai nvarchar(30) Not Null ) Go Create Table SanPham ( MaSP Char(10) Primary key, TenSP nVarChar(30) , QuyCach nVarChar(100) NOT NULL, DVT nVarChar(10) NOT NULL , SLTon Decimal(9,2) Default 0 , DonGia Decimal(9,2) Check(DonGia>0) , MaLoai Tinyint References LoaiSP(MaLoai) ) Go Create Table KhachHang ( MaKH Char(10) Primary key, TenKH nVarChar(30) Not Null , DiaChiKH nVarChar(100) , DienThoaiKH VarChar(20) , EmailKH VarChar(30) ) Go Create Table NhanVien ( MaNV TinyInt Primary key, HoNV nVarChar(30) Not Null , TenNV nVarChar(20) Not Null , Phai Bit Default 0 , NgaySinh SmallDateTime, DiaChiNV nVarChar(100) , DienThoaiKH VarChar(20) ) Go Create Table DonDatHang ( SoDH Char(10) Primary key, MaKH Char(10) References KhachHang(MaKH), This is trial version www.adultpdf.com Bài Giảng Hệ Quản Trị Cơ Sở Dữ Liệu SQLServer 2000 Biên soạn: Dương Thành Phết Trang 29 MaNV Tinyint References NhanVien(MaNV) , NgayDat SmallDateTime Not Null, NgayGiao SmallDateTime Not Null, ) Go Create Table ChiTietDH ( SoDH Char(10) References DonDatHang(SoDH), MaSp Char(10) References SanPham(MaSP), SLDat TinyInt Not Null, Primary Key (SoDH,MaSP) ) Trong trường hợp khoá chính của một Table nhiều hơn một cột thì Ghi chú: Thực thi lệnh tạo Table thành công : The command(s) completed successfully. 3.6.2. Xóa Table Tại cửa sổ Query Analyzer chọn CSDL làm việc: Thực hiện các câu lệnh xóa Table Cú pháp: Drop <Tên Table> Ví du: Drop LoaiSP 3.6.3. Xem lược ñồ quan hệ: Tại cửa sổ EnterPrise Manager chọn CSDL ñã tạo bằng ngôn ngữ lệnh Tạo mới 1 Diagram Next Chọn các table Finish 3.7. CẬP NHẬT (THÊM, XÓA, SỬA) DỮ LIỆU VÀO CÁC TABLE 3.7.1. Sử dụng cộng cụ EnterPrise Manager Click phải vào tên Table Chọn Open Table/ Return All Rows Create Table <Tên Table> ( <Tên cột1> <Kiểu DL> References <Tên Table QH1>(Tên cột QH), <Tên cột2> <Kiểu DL> References <Tên Table QH2>(Tên cột QH), . . . . <Tên cột n> <Kiểu DL> Null/Not Null Các ràng buột nếu có, . . . . . . Primary Key (Tên cột1, Tên cột2, . . .) ) This is trial version www.adultpdf.com Bài Giảng Hệ Quản Trị Cơ Sở Dữ Liệu SQLServer 2000 Biên soạn: Dương Thành Phết – http://www.thayphet.net Trang 30 Thêm mới dữ liệu: - Nhập theo dữ liệu dòng, ñúng nguyên tắc dữ liệu khi thiết kế - ðiều chỉnh bảng mã Unicode nếu sử dụng tiếng việt - Esc: ñể hủy 1 dòng ñang nhập - Dữ liệu tự ñộng lưu khi người dùng nhập - ðóng cửa sổ Table ñể hoàn thành việc nhập liệu vào 1 Table ðiều chỉnh dữ lịêu: Tại cửa sổ Table ñang mở : Click trực tiếp vào ô cần ñiều chỉnh dữ liệu Xoá dữ liệu: Tại cửa sổ Table ñang mở : Click ñầu dòng cần xóa Deletet Ghi chú: SQLServer sẽ tự ñộng kiểm tra các ràng buộc dữ liệu khi người sử dụng cập nhật dữ liệu(Sai sẽ xuất hiện báo lỗi) 3.7.2. Sử dụng câu lệnh trong QueryAnalyzer Tại cửa sổ Query Analyzer chọn CSDL làm việc: Use <Tên DataBase> Ví dụ: Use QuanLyBH Thêm mới dữ liệu Cú pháp: Insert Into <Table_Name> [<Column_List>] Values(<Value_List>) Hay nhập theo trật tự cho tất cả các cột từ trái sang phải Insert Into <Table_Name> Values(<Value_List>) Ví dụ: Insert Into LoaiSP (MaLoai,TenLoai) Values(1,N'Dầu gội') Insert Into LoaiSP Values(1,N'Dầu gội') Ghi chú: Thêm N trước văn bản Unicode Xem dữ liệu trong 1 Table Cú pháp: Select * From <Tên Table> This is trial version www.adultpdf.com . version www.adultpdf.com Bài Giảng Hệ Quản Trị Cơ Sở Dữ Liệu SQLServer 2000 Biên soạn: Dương Thành Phết – http://www.thayphet.net Trang 30 Thêm mới dữ liệu: - Nhập theo dữ liệu dòng, ñúng nguyên tắc dữ liệu. version www.adultpdf.com Bài Giảng Hệ Quản Trị Cơ Sở Dữ Liệu SQLServer 2000 Biên soạn: Dương Thành Phết Trang 23 Column Name : Tên cột của Table (tên Field) Data Type : Chọn kiểu dữ liệu Length. version www.adultpdf.com Bài Giảng Hệ Quản Trị Cơ Sở Dữ Liệu SQLServer 2000 Biên soạn: Dương Thành Phết Trang 26 Check Existing data on Creation : Kiểm tra phụ thuộc tồn tại dữ liệu trong quan hệ