* Login   * Register


Last visit was:
It is currently Thu Oct 23, 2014 2:54 pm
View unanswered posts
View active topics





Post new topic Reply to topic  [ 2 posts ] 
Author Message
 Post subject: Cú Pháp SQL trong Access
PostPosted: Mon Oct 20, 2008 10:36 am 
Offline
Site Admin

Joined: Sat Sep 06, 2008 11:23 pm
Posts: 44
Cú Pháp SQL:

Thật ra cú pháp SQL không có khó đối với những ai học tiếng Anh, bởi vì Microsoft đã xây dựng cú pháp này dựa trên văn phạm tiếng Anh. Cho nên những ai chịu khó học tiếng Anh thì không có vấn đề gì.
Cú pháp của câu lệnh Select:
Select <fieldname> From <tablename> [Where: <condition> (criteria)] [Group By: <columnname> ] [Having : <group's condition>] [Order By: <columnname> [order type ]
Giải thích:
Select < fieldname> : tên các field mà các bạn muốn chọn>
Ví dụ: SELECT Ccode, FName, LName, Age : chọn lấy field CCode, FName, LName, Age.

From <tablename> : tên của table chứa các field trên, nếu các field nằm trong nhiều table khác nhau thì sẽ dùng tác vụ JOIN để nối các table lại thành 1 table, tác vụ JOIN sẽ được đề cập ở phần sau
Ví dụ: FROM Customer : từ table Customer

[Where: <condition>] : dùng để chọn ra các record thỏa 1 số điểu kiện nhất định.
Ví dụ: Where FName='Phuong' : trong đó field Fname phải có giá trị là Phuong

[Group By: <column name> ] : tên các cột mà các bạn muốn nhóm theo
Ví dụ: Group By LName : nhóm theo field LName

[Having : <condition>] : điều kiện để nhóm, cái này dùng để tăng khả năng của group by, làm cho các field group by trong với điều kiện nào đó.
Ví dụ: Having LName='Ng*' : có giá trị bắt đầu là Ng
Chú ý: * dùng để chọn tất cả trong Access, % : SQL Server. Nếu dùng * không được thì hãy dùng %.

[Order By: <tên cột> [ASC | DESC] ]
Ví dụ: Order By FName ASC : sắp xếp theo tên từ nhỏ đến lớn.
Nhớ đặt dấu chấm phẩy ở cuối câu.

Ghi chú: các thành phần nằm trong : [ ] có thể có, có thể không có.
ASC : sắp xếp từ nhỏ đến lớn.
DESC: sắp xếp từ lớn đến nhỏ.
He he, sau đây là 1 số ví dụ. Tui chọn Biblio. mdb vì file này đi kèm theo khi cài đặt Access, chắc chắn ai cũng có. He he..
Ví dụ 1: câu lệnh SQL đơn giản. Lấy tất cả các field trong table Authors
Select * From Authors; rất đơn giản phải không.
Ví dụ 2: câu lệnh SQL với mệnh đề WHERE. Lấy các field trong table Publishers ở thành phố New York.
Select * From Publishers where city="New York";
Ghi chú: dấu * dùng để chọn hết tất cả các field có trong table.

Nhiều người tự hỏi nếu muốn lấy các field từ nhiều bảng khác nhau thì phải làm sao, câu trả lời chính là tác vụ Join.

Có 3 kiểu JOIN: Inner Join, Outer Join và Self Join.

-Inner Join : Dùng để trả về tất cả các records khớp với chuẩn định ghép trong cả 2 table. chú ý là phải cả 2 table.

Ví dụ: Bạn muốn nối 2 bảng Authors và Title Authours trong Biblio.mdb.

SELECT Authors.Au_ID, Author, [Title Author].ISBN
FROM Publishers, Authors INNER JOIN [Title Author] ON Authors.Au_ID = [Title Author].Au_ID;

-Outer Join: có 2 loại Outer Join. Đó là Right Join và Left Join.

Ghi chú: khi nói về mối quan hệ giữa 2 table thì sẽ có 1 table là table chính ( master table) và 1 table phụ (details table). Cái này các bạn chắc ai cũng biết nếu đã học qua Relationships trong Access.

+Right Join: dùng để trả về các records trong details table được ghép với các records so khớp trong master table.

Ví dụ: SELECT Authors.Au_ID, Authors.Author, [Title Author].ISBN
FROM Publishers, Authors RIGHT JOIN [Title Author] ON Authors.Au_ID = [Title Author].Au_ID;

+Left Join: dùng để trả về các records trong master table được ghép với các records so khớp trong bảng details table.

Ví dụ: SELECT Authors.Au_ID, Authors.Author, [Title Author].ISBN
FROM Publishers, Authors LEFT JOIN [Title Author] ON Authors.Au_ID = [Title Author].Au_ID;

Ngoài ra còn có Full Outer Join, nhưng Access không hỗ trợ cú pháp này.

-Self Join: cái này hơi phức tạp, tui sẽ dành hẳn 1 bài riêng cho nó. Các bạn có thể hiểu đơn giản là: 1 table sẽ tự Join với chính nó. Access cũng không hỗ trợ cú pháp này, nhưng cú pháp này rất hữu dụng cho những ai sử dụng ASP hay VB để truy xuất dữ liệu.

Ok, sau đây là 1 số ví dụ.

-Lấy thông tin về các cuốn sách và tác giả của chúng:

SELECT Author, [Title Author].Au_ID, Title, Titles.[Year Published], PubID, Description, Notes, Subject, Comments
FROM Authors INNER JOIN (Titles INNER JOIN [Title Author] ON Titles.ISBN = [Title Author].ISBN) ON Authors.Au_ID = [Title Author].Au_ID;

-Bây giờ có thêm điều kiện: tác giả là Bisland, Ralph B

SELECT Author, [Title Author].Au_ID, Title, Titles.[Year Published], PubID, Description, Notes, Subject, Comments
FROM Authors INNER JOIN (Titles INNER JOIN [Title Author] ON Titles.ISBN = [Title Author].ISBN) ON Authors.Au_ID = [Title Author].Au_ID
WHERE Authors.Author='Bisland, Ralph B';

-Nhóm theo tác giả

SELECT Author, [Title Author].Au_ID, Title, Titles.[Year Published], PubID, Description, Notes, Subject, Comments
FROM Authors INNER JOIN (Titles INNER JOIN [Title Author] ON Titles.ISBN = [Title Author].ISBN) ON Authors.Au_ID = [Title Author].Au_ID
GROUP BY Author, [Title Author].Au_ID, Title, Titles.[Year Published], PubID, Description, Notes, Subject, Comments;

-Nhóm theo tác giả, với điều kiện tên tác giả là 'Adams, Pat'

SELECT Author, [Title Author].Au_ID, Title, Titles.[Year Published], PubID, Description, Notes, Subject, Comments
FROM Authors INNER JOIN (Titles INNER JOIN [Title Author] ON Titles.ISBN = [Title Author].ISBN) ON Authors.Au_ID = [Title Author].Au_ID
GROUP BY .Author, [Title Author].Au_ID, Title, Titles.[Year Published], PubID, Description, Notes, Subject, Comments
HAVING (((Authors.Author)='Adams, Pat'));

-Sắp xếp theo bảng kí tự

SELECT Author, [Title Author].Au_ID, Title, Titles.[Year Published], PubID, Description, Notes, Subject, Comments
FROM Authors INNER JOIN (Titles INNER JOIN [Title Author] ON Titles.ISBN = [Title Author].ISBN) ON Authors.Au_ID = [Title Author].Au_ID
ORDER BY Authors.Author;

Chú ý mặc định defaul trong Order by là ASC.


Report this post
Top
 Profile E-mail  
Reply with quote  
 Post subject: Re: Cú Pháp SQL trong Access
PostPosted: Fri Oct 24, 2008 9:30 pm 
Offline
User avatar

Joined: Tue Sep 09, 2008 12:52 pm
Posts: 37
---------
các lệnh thường gặp khi kết nối vb:
1. gán giá trị:
tên đối tượng=giá trị
ví dụ: txtkq="phương trình vô nghiệm"
2.hiện,ẩn:
tên đối tượng.Visible=True
tên đối tượng.Visible=False
ví dụ: che textbox tên txthsc
txthsc.visible=False
3.không cho thay đổi giá trị,cho thay đổi(mở khóa):
tên đối tượng.Locked=True
tên đối tượng.Locked=False
4.che mờ đối tượng(không che mờ):
tên đối tượng.Enabled=False
tên đối tượng.Enabled=True
5.hiển thị giá trị đã thay đổi bên trong(làm tươi):
tên đối tượng.Requery
6.Di chuyển:
về đầu: Docmd.GotoRecord,,acFirst
về trước: Docmd.GotoRecord,,acPrevious
về sau: Docmd.GotoRecord,,acNext
về cuối: Docmd.GotoRecord,,acLast
7.Di chuyển con nháy hoặc xác định cột thao tác(trong tìm kiếm ,sắp xếp,....):
tên đối tượng.SetForcus
hoặc
Docmd.GotoControl tên đối tượng(tên đối tượng nằm trong cặp nháy đôi)
8.Thêm mẫu tin:
tên đối tượng.SetForcus
Docmd.GotoRecord,,acNewRec
9.Lưu mẫu tin hiện hành:
Docmd.RunCommand acCmdSaveRecord
10.Phục hồi(không lưu):
SendKeys "{ESC}",True hoặc
If Me.Dirty=True Then
Docmd.RunCommand acCmdUndo
End If
11.Xóa:
Docmd.SetWarnings False
Docmd.RunCommand acCmdDeleteRecord
Docmd.SetWarnings True
12.Tìm mẫu tin thỏa điều kiện:
-tìm theo hệ thống
tên đối tượng.SetForcus 'cho biết cột sẽ tìm
Docmd.RunCommand acCmdFind
-nhập điều kiện trực tiếp:
tên đối tượng.SetForcus
Docmd.FindRecord tên đối tượng chứ giá trị tìm
13.Sắp xếp một cột:
tên đối tượng.SetForcus
tăng: Docmd.RunCommand acCmdSortAscending
giảm: Docmd.RunCommand acCmdSortDesending
14.Lọc dữ liệu:
Form:
Docmd.ApplyFilter,chuổi điều kiện
vd: Docmd.ApplyFilter , "mato=" '&đklọc&'""
trong đó điều kiện lọc là tên của textbox mà người sử dụng nhập điều kiện
Report:
Me.FilterOn=True 'bật chế độ lọc
Me.Filter=chuổi điều kiện
15.Bỏ lọc:
Docmd.ShowAllRecord
16.Thoát khỏi Access:
Docmd.Quit
17.Thi hành SQL Action:
Docmd.RunSQL "câu lệnh SQL"
vd: Docmd.RunSQL "Update chamcong set tiencong=socong*dongiacv;"
18.Thi hành truy vấn:
Docmd.OpenQuery tên truy vấn
vd: Docmd.OpenQuery "tblTinhThanh"
19.Đóng màn hình:
Docmd.Close
20.Thay đổi kích thước màn hình(Form)
phóng to: Docmd.Maximize
Thu nhỏ: Docmd.Minimize
Phục hồi kích thước ban đầu: Docmd.Restore

Phương thức OpenForm:
Docmd.OpenForm formname[,view][filtername][,wherecondition][,datamode][,windowmode][,openargs]
Docmd.OpenForm tên form[,cđộ xem][,bộ lọc][,chuổi đkiện][,cđộ cập nhật][,cđộ cửa sổ][,openargs]


Report this post
Top
 Profile E-mail  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 


Who is online

Users browsing this forum: No registered users and 0 guests


You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron

Free Forum · php-BB© · Internationalization Project · Report abuse · Terms Of Use/Privacy Policy
© Forums-Free.com 2009