Wednesday, October 23, 2013

Tài liệu về Access



Chương 1: Các khái niệm cơ bản về cơ sở dữ liệu

-          Cơ s d liu (Database): là mt tp hp các d liu có liên quan vi nhau cha thông tin v mt t chc nào đó (như mt trưng đi hc, mt ngân hàng, mt công ty, mt nhà máy, ...), đưc lưu tr trên các thiết b nh th cp (như băng t, đĩa t, ) đ đáp ng nhu cu khai thác thông tin ca nhiu ngưi s dng vi nhiu mc đích khác nhau.
-          Mô hình cơ sở dữ liệu (CSDL): Tập hợp các đối tượng và / hoặc các mối quan hệ Theo mô hình này, d liu đưc th hin trong các bng. Mi bng gm các dòng và ct, mi ct có mt tên duy nht. Mi dòng cho thông tin v mt đi tưng c th trong qun lý (mi dòng thưng đưc gi là mt bn ghi hay mt b).
-          Table: Cấu trúc lưu trữ cơ bản nhất trong CSDL quan hệ (RDBMS), nó bao gồm 1 hoặc nhiều columns (cột dữ liệu) với 0 hoặc nhiều rows (dòng dữ liệu).
-          Row: Tổ hợp những giá trị của Column trong bảng. Một row còn được gọi là 1 record (bản ghi).
-          Column: Quy định một loại dữ liệu trong bảng. Ví dụ: loại dữ liệu tên phòng ban có trong bảng phòng ban. Ta thể hiển thị column này thông qua tên column và có thể kèm theo một vài thông tin khác về column như kiểu dữ liệu, độ dài của dữ liệu.
-          Field: Giao của column và row. Field chính là nơi chứa dữ liệu. Nếu không có dữ liệu trong field ta nói field có gia trị là NULL.
-          Primary Key: Là một column hoặc một tập các column xác định tính duy nhất của các rows ở trong bảng. Ví dụ DEPTNO là Primary Key của bảng DEPT vì nó được dùng để xác định duy nhất một phòng ban trong bảng DEPT mà đại diện là một row dữ liệu. Primary Key nhất thiết phải có số liệu.
-          Foreign Key: Là một column hoặc một tập các columns có tham chiếu tới chính bảng đó hoặc một bảng khác. Foreign Key xác định mối quan hệ giữa các bảng.
-          Constraints: Là các ràng buộc đối với dữ liệu trong các bảng thuộc database. Ví dụ: Foreign Key, Primary Key...

Chương 2: Giới thiệu Access

2.1 Thanh Quick Access

Thanh  công  cụ  Quick  Access:  Hiển thị  bên  trái  của  thanh  tiêu  đề,  mặc định thanh Quick Access gồm các nút công cụ Save, Undo, …

2.2 vùng làm việc:

Khi khởi động Access, trong cửa sổ khởi động, mặc định tab File và lệnh New trong tab File được chọn, cửa  sổ được chia  thành 3 khung:
  Khung bên trái gồm các lệnh trong tab File
  Khung giữa: chứa các loại tập tin cơ sở dữ liệu mà bạn có thể tạo mới.
  Khung bên phải: để nhập tên và chọn vị trí lưu tập  tin mới tạo và thực thi lệnh tạo mới cơ sơ dữ liệu.

2.3 Thanh Ribbon:

Bên dưới thanh tiêu đề, Access 2010 hiển thị các nútlệnh trên một thanh  dài  được  gọi    Ribbon

2.4 Thanh Navigation Pane:

Navigation  Pane    khung  chứa  nội  dung chính của cơ sở dữ liệu. Từ khung Navigation  Pane,  bạn    thể  mở  bất  kỳ Table,  Query,  Form,  Report,  Macro, hoặc  module  trong    sở  dữ  liệu  bằng cách double click vào tên của đối tượng. Bằng  cách  click  phải  vào  tên  của  đối tượng trong Navigation Pane, bạn có thể thực hiện các thao tác với đối tượng như: đổi  tên,  sao  chép,  xoá,  import,  export một đối tượng…

2.5 cách tạo tập tin cơ sở dữ liệu:

2.5.1: tạo một cơ sở dữ liệu mới rỗng:

  Tại cửa sổ khởi động, click nút Blank Database.
  File name: nhập tên tập tin cơ sở dữ liệu, trong Access 2010, tập  tin    sở  dữ  liệu  được lưu với  tên    phần  mở  rộng  là .accdb.

2.5.2: tạo một cơ sở dữ liệu theo mẫu (Template):

  Tại cửa sổ khởi động.
  Chọn Sample Templatechọn một mẫu cơ sở dữ liệu có sẵn.

2.6 Quản lý cơ sở dữ liệu:

2.6.1: Thu gọn và chỉnh sửa cơ sở dữ liệu (Compact & Repair Database)

Khi tạo thêm đối tượng trong cơ sở dữ liệu thì dung lượng của tập tin cơ sở dữ liệu sẽ tăng lên, khi xóa một đối tượng thì vùng nhớ của nó sẽ rỗng, nhưng không sử dụng được. Chức  năng  Compact  &  Repair  Database  giúp  thu  hồi  lại  phần  bộ nhớ bị rỗng, làm cho tập tin cơ sở dữ liệu gọn lại.
Cách thực hiện:
  Mở cơ sở dữ liệu cần thu gọn và chỉnh sửa
  Click nút Compact & Repair Database

2.7 Các đối tượng trong cơ sở dữ liệu trong Access

2.7.1 Bảng (Tables):

Table    thành  phần  quan  trọng  nhất  của  tập  tin    sở  dữ  liệu Access, dùng để lưu trữ dữ liệu. Do đó đây là đối tượng phải được tạo ra trước. Bên trong một bảng, dữ liệu được lưu thành nhiều cột và nhiều dòng.
2.7.2: Truy vấn (Queries):
Query là công cụ để người sử dụng truy vấn thông tin và thực hiện các thao tác trên dữ liệu. Người sử dụng có thể sử dụng ngôn ngữ SQL
2.7.3: Form:
Form là công cụ để thiết kế giao diện cho chương trình, dùng để cập nhật hoặc xem dữ liệu. Biểu mẫu giúp thân thiệnhóa quá trình nhập, thêm, sửa, xóa và hiển thị dữ liệu.
2.7.4: Reports:
Report là công cụ giúp người dùng tạo các kết xuất dữ liệu từ các bảng, sau đó định dạng và sắp xếp theo một khuôn dạng cho trước và có thể in ra màn hình hoặc máy in.
2.7.5: Tập lệnh (Macros):
Macro là một tập hợp các lệnh nhằm thực hiện một loạt các thao tác được qui định trước. Tập lệnh của Access có thể được xem là một công cụ lập trình đơn giản đáp ứng các tình huống cụ thể.

2.7.6: Modules:

  công  cụ  lập  trình  trong  môi  trường  Access    ngôn ngữ  nền tảng của nó là ngôn ngữ Visual Basic for Application. Đây là một dạng tự động hóa chuyên sâu hơn tập lệnh, giúp tạo ra những hàm người  dùng  tự  định  nghĩa.  Bộ    lệnh  thường  dành  cho  các  lập trình viên chuyên nghiệp. Công cụ để tạo các đối tượng trong Access được tổ chức thành từng nhóm trong tab Create của thanh Ribbon

Chương 3: Lệnh truy vấn cơ bản

3.1 quy tắc viết lệnh

            Các lênh trong câu lệnh SQL thuộc loại không phân biệt chữ viết hoa hay thường
-          Nội dung của một câu lệnh SQL có thể được trải dài trên nhiều dòng         
-          Các từ khoá không được phép viết tắt hay phân cách trên nhiều dòng
-          Các mệnh đề thông thường được đặt trên nhiều dòng khác nhau
-          Để rõ ràng trong việc thể hiện câu lệnh, ta nên sử dụng các dấu TAB khi viết lệnh
-          Lệnh kết thúc bởi dấu chấm phẩy (;)

3.2  Câu lệnh truy vấn cơ bản:

3.2.1 Phát biểu SQL Select:

-  Phát biểu SELECT chọn các cột dữ liệu từ một cơ sở dữ liệu.
Cú pháp:
SELECT [DISTINCT]{*, column [alias],...} FROM table;
Với:
SELECT hiển thị nội dung của một hay nhiều cột
DISTINCT Phân biệt nội dung giữa các dòng dữ liệu trả về Lấy tất các các cột trong bảng
column Tên cột dữ liệu cần trả về
alias Phần tiêu đề của cột dữ liệu trả về
FROM table Tên bảng chứa dữ liệu truy vấn
Ví dụ: SELECT Ccode, FName, LName, Age : chọn lấy field CCode, FName, LName, Age.
-          Các thành phần khác của mệnh đề SELECT:
Trong mệnh đề SELECT còn có thể đưa vào các thành phần khác:
-          Biểu thức toán học
-          Column alias
-          Các column được ghép chuỗi
-          Literal

Biểu thức toán học  + Tiêu đề của cột (column alias)
Trong mệnh đề SELECT biểu thức toán học có thể các giá trị (column hoặc hàng số), các toán tử, các hàm. Các toán tử được dùng là (+), (-), (*), (/). Độ ưu tiên của các toán tử giống trong phần số học.
Ví dụ:
SELECT s.[product Code], s.[List Price]*12 AS [List Price] FROM Products AS s;
Ghép tiếp các cột dữ liệu
Toán tử ghép tiếp chuỗi (&) trong Oracle ta dùng (||) cho phép ghép tiếp dữ liệu trong các cột khác nhau của cùng một dòng dữ liệu với nhau thành một chuỗi. Ta có thể có nhiều toán tử ghép chuỗi trong cùng một column alias.
SELECT distinct t.Company,t.[Last Name],"Mr: " & t.[Last Name] & " " & t.[First Name] FROM Customers t;

3.2.2 Phân biệt giá trị trả về:

Trong thực tế nhiều khi giá trị dữ liệu trên các dòng dữ liệu kết xuất trùng nhau. Gây nhiều bất tiện. Để có thể lấy được chỉ các dòng dữ liệu phân biệt với nhau. Ta sử dụng mệnh đề DISTINCT trong câu lệnh truy vấn.
Ví dụ:
SELECT deoptno FROM dept;
DEPTNO

10
30
10
20

14 rows selected.
SQL> SELECT DISTINCT deoptno FROM dept;
DEPTNO

10
30
20
3 rows selected.

3.3 Truy vấn dữ liệu có điều kiện

Trong phần lớn các trường hợp lấy dữ liệu từ database, ta chỉ cần lấy một phần dữ liệu chứ không cần lấy tất cả. Để hạn chế các dữ liệu trả về không cần thiết, ta có thể sử dụng mệnh đề điều kiện trong câu lệnh truy vấn.

3.3.1 Mệnh đề WHERE

Cú pháp:
SELECT [DISTINCT ] {*, column [alias],...} FROM table [WHERE condition (s)];
Với:
column tên cột dữ liệu trả về
alias tiêu đề của cột dữ liệu trả về
table tên bảng truy vấn dữ liệu
condition mệnh đề điều kiện để lọc dữ liệu trả về
Mệnh đề WHERE dùng để đặt điều kiện cho toàn bộ câu lệnh truy vấn. Trong mệnh đề WHERE có thể có các thành phần:
- Tên column
- Toán tử so sánh
- Tên column, hằng số hoặc danh sách các giá trị
Ví dụ:
select * from  Customers t where t.[Product Name] ='Northwind Traders Chai';
Truy vấn dữ liệu với nhiều điều kiện
Mệnh đề WHERE cho phép ghép được nhiều điều kiện thông qua các toán tử logic AND/OR. Toán tử AND yêu cầu dữ liệu phải thoả mãn cả 2 điều kiện. Toán tử OR cho phép dữ liệu thoả mãn 1 trong 2 điều kiện.
SELECT * FROM Employees where Employees.[First Name] LIKE 'A*' and Employees.[Job Title] LIKE 'Sales*';
3.3.2 Các toán tử sử dụng trong mệnh đề WHERE:
Toán tử so sánh
Toán tử
Diễn giải
=
Toán tử bằng hay tương đương
!=, ^=, '+, <\>
Toán tử khác hay không tương đương
Toán tử lớn hớn
Toán tử nhỏ hơn
>=
Toán tử lớn hơn hoặc bằng
<=
Toán tử bé hơn hoặc bằng
Các toán tử của SQL
Toán tử
Diễn giải
[NOT] BETWEEN x AND y
[Không] lớn hơn hoặc bằng x và nhỏ hơn hoặc bằng y
IN (danh sách):
Thuộc bất kỳ giá trị nào trong danh sách
x [NOT] LIKE y
IS [NOT] NULL
Đúng nếu x [không] giống khung mẫu y
EXISTS
Kiểm tra giá trị rỗng Trả về TRUE nếu có tồn tại
Các toán tử logic
Toán tử
Diễn giải
NOT
Phủ định mệnh đề
AND
Yêu cầu dữ liệu phải thỏa mãn 2 điều kiện
OR
Cho phép dữ liệu thỏa mãn 1 trong 2 điều kiện

3.3.3 Ví dụ sử dụng các toán tử điều kiện

[NOT] BETWEEN x AND y
Chọn tất cả các trị trong khoảng giới hạn giữa 2 trị
Ví dụ liệt kê số lượng hóa đơn nằm trong khoảng 1 tháng
SELECT * FROM Orders t where t.[Order Date] between #1/15/2006# and #2/15/2006#;
IN (Danh sách)
Ví dụ liệt kê danh sách sản phẩm có mã code thuộc danh sách đã chọn
select * from Products where [Product Code] IN ('NWTB-1','NWTCO-3', 'NWTCO-4');
x [NOT] LIKE y
Điều kiện LIKE dùng để chỉ định việc tìm một mẫu trong một cột
Tìm nhân viên có tên bắt đầu là A
select * from Employees where [Last Name] not like "a*_";
hoặc
select * from Employees where [Last Name] not like "a*";
ký hiệu "_" dùng để đại diện cho một ký tự bất kỳ

3.4 Sắp xếp dữ liệu trả về:

3.4.1 Mệnh đề Order By

Cú pháp:
SELECT [DISTINCT ] {*, column [alias],...}
                                                      FROM table
[WHERE condition]
[ORDER BY expr/position [DESC/ASC]];
Mệnh đề Order By dùng để sắp xếp số liệu được hiển thị và phải đặt ở vị trí sau cùng của câu lệnh truy vấn.
Ví dụ:
Mệnh để ORDER BY mặc định sắp xếp theo thứ tự tăng dần ASC[ENDING]
select * from Employees where [Last Name] not like "a*_" order by [Last Name] asc;
sắp xếp theo thứ tự tang dần
-          Số thấp trước
-          Ngày nhỏ trước
-          Ký tự theo bảng chữ cái
select * from Employees where [Last Name] not like "a*_" order by [Last Name] desc;
Để sắp xếp theo thứ tự ngược lại (giảm dần) đặt từ khoá DESC[ENDING] sau column cần sắp thứ tự.

3.4.2: Sắp xếp nhiều cột dữ liệu trả về

Mệnh đề Order còn có thể sắp xếp nhiều column. Các column cần sắp xếp được viết thứ tự sau mệnh đề ORDER BY và cách bởi dấu phẩy (,). Column nào gần mệnh để ORDER BY hơn có mức độ ưu tiên khi sắp xếp cao hơn. Chỉ định cách thức sắp xếp ASC/DESC được viết sau column cách bởi một dấu cách.
select * from Employees where [Last Name] not like "a*_" order by [Last Name] asc, [First Name] desc;

3.5 Hàm thao tác trên kiểu dữ liệu số:

Đầu vào và đầu ra là các giá trị kiểu số:
Một số hàm SQL hay dùng
Hàm SQL
Diễn giải
ROUND
Cho giá trị làm tròn của n (đến cấp m, mặc nhiêm m=0)
Abs(n)
Cho giá trị tuyệt đối
Sin(n)
Trả về cosin của n (n tính bằng radian)
COS(n)
Cho cosin của n
TAN(n)
Cotang của n
Avg(n)
Trả về giá trị trung bình
Count(n)
Trả về số bản ghi
Sum(n)
Trả về tổng của một trường
Format ( expression, [ format ] )
Trả về định dạng của một String
Max(n)
Trả về giá trị lớn nhất của trường được chọn
Min(n)
Trả về giá trị nhỏ nhất của trường được chọn
Ví dụ:
SELECT Round(t.[List Price],1) AS AA, Abs(t.[List Price]) AS abs_Fc, t.[List Price], Sin(t.[Reorder Level]) AS SinFC, COS(t.[Reorder Level]) AS CosFC, TAN(t.[Reorder Level]) AS TanFC FROM Products AS t;

3.5.1 Các hàm thao tác trên kiểu dữ liệu ký tự

Hàm thao tác trên kiểu dữ liệu là ký tự
Hàm SQL
Diễn giải
CONCAT(char1, char2)
Ghép nhiều chuỗi lại với nhau
Chr(number_code)
Trả về số code bàn phím
Format ( expression, [ format ] )
Trả về một định dạng theo quy định
INSTR(char1, char2 [,n[,m]])
Tìm vị trí chuỗi char2 trong chuỗi
char1 bắt đầu từ vị trí n, lần xuất hiện
thứ m.
Left