Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.53 MB, 245 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
©NIIT <sub>Giới thiệu hệ quản trị cơ sở dữ liệu </sub> Bài 1 / Slide 1 of 26
<b> Định nghĩa hệ quản trị cơ sở dữ liệu (CSDL). </b>
<b> Người dùng của hệ quản trị cơ sở dữ liệu. </b>
<b> Mô tả sự cần thiết của cơ sở dữ liệu. </b>
<b> Các thành phần trong CSDL. </b>
<b> Xác </b> <b>định sự cần thiết của việc lên kế hoạch phát triển </b>
<b>CSDL. </b>
<b> Xác định các giai đoạn phát triển cơ sở dữ liệu. </b>
<b> Xác định hậu quả của việc phân tích thiết kế CSDL nếu thực </b>
<b>hiện không tốt. </b>
<b>Cơ sở dữ liệu là tập hợp các bản ghi (record) thông tin. Một </b>
<b>trong những nhiệm vụ quan trọng của hệ thống máy tính là </b>
<b>lưu trữ và xử lý dữ liệu. </b>
<b> Hệ quản trị cơ sở dữ liệu (Database Management System </b>
<b>DBMS) được thiết kế để quản lý khối lượng dữ liệu rất lớn. </b>
<b>• Cung cấp mơi trường và công cụ để lưu trữ và truy xuất </b>
<b>dữ liệu từ cơ sở dữ liệu một cách hiệu quả. </b>
• <b>Lưu giữ thông tin về người dùng của hệ quản trị cơ sở </b>
©NIIT <sub>Giới thiệu hệ quản trị cơ sở dữ liệu </sub> Bài 1 / Slide 3 of 26
<b>Có 3 loại người dùng cho hệ quản trị cơ sở dữ liệu: </b>
<b>Người lập trình ứng dụng (Application Programmer): là </b>
<b>người phát triển ứng dụng để người dùng cuối có thể sử </b>
<b>dụng để tương tác với cơ sở dữ liệu. </b>
<b>Người dùng cuối (End User): Người dùng cuối có thể </b>
<b>tương tác với cơ sở dữ liệu thơng qua chương trình ứng </b>
<b>dụng. </b>
<b>Người quản trị cơ sở dữ liệu (Database administrator DBA): </b>
<b>Đầu tiên để lưu trữ dữ liệu người ta dùng hệ thống tập tin </b>
<b>để lưu trữ. Cách lưu trữ này thể hiện một số nhược điểm </b>
• <b>Dữ liệu lưu trữ bị dư thừa: Cùng một dữ liệu lưu ở </b>
<b>nhiều hơn 1 nơi khơng cần thiết. </b>
• <b>Dữ liệu khơng nhất qn: Do dữ liệu được lưu ở nhiều </b>
<b> Tránh được sự không đồng nhất về dữ liệu </b>
<b>Dữ liệu được chia sẻ. </b>
<b>Dữ liệu sẽ được bảo mật an toàn hơn. </b>
©NIIT <sub>Giới thiệu hệ quản trị cơ sở dữ liệu </sub> Bài 1 / Slide 7 of 26
<b>Hệ quản trị cơ sở dữ liệu có các thành phần chức năng như </b>
<b>sau: </b>
<b> Database manager: đây là thành phần chính của hệ quản trị </b>
<b>cơ sở dữ liệu. Thành phần này có nhiệm vụ đáp ứng các </b>
<b>lệnh truy vấn dữ liệu từ người dùng và đảm bảo tính nhất </b>
<b>quán của cơ sở dữ liệu. </b>
<b> File Manager: Thành phần này sẽ chịu trách nhiệm phục vụ </b>
<b>tất cả các yêu cầu về dữ liệu. Nó sẽ liên hệ với disk </b>
<b>manager để lấy các khối dữ liệu từ đĩa. </b>
<b> Disk Manager: đây là phần thực hiện việc quản lý dữ liệu ở </b>
©NIIT <sub>Giới thiệu hệ quản trị cơ sở dữ liệu </sub> Bài 1 / Slide 9 of 26
<b>Để tương tác với dữ liệu được lưu trữ bên trong cơ sở dữ </b>
<b>liệu người dùng có thể dùng ngôn ngữ truy vấn dữ liệu </b>
<b>(Query language). Ngôn </b> <b>ngữ truy vấn dữ liệu có 3 dạng </b>
<b>sau: </b>
<b>• Ngơn ngữ định nghĩa dữ liệu ( Data Definition Language </b>
<b>DDL) </b>
<b>• Ngôn </b> <b>ngữ xử lý dữ liệu (Data Manipulation Language </b>
<b>DML) </b>
<b>• Ngơn </b> <b>ngữ điều khiển dữ liệu (Data Control Language </b>
<b> Lên kế hoạch phát triển cho hệ quản trị cơ sở dữ liệu là quá </b>
<b>trình </b> <b>chiến lược để tìm xem những thơng tin nào mà tổ </b>
<b>chức sẽ cần thiết cho thời gian tới. </b>
<b>Lợi ích của việc lên kế hoạch phát triển database: </b>
<b>• Cho thấy rõ được tình trạng hiện tại của thơng tin được </b>
<b>lưu trong tổ chức. </b>
<b>• Tìm và điều chỉnh lại các yêu cầu về tài nguyên cho tổ </b>
<b>chức. </b>
<b>• Giúp cho phát </b> <b>triển được hệ quản trị CSDL đáp ứng </b>
<b>được các yêu cầu của tổ chức. </b>
<b>• Giúp cho việc lên kế hoạch hành động để đạt được các </b>
©NIIT <sub>Giới thiệu hệ quản trị cơ sở dữ liệu </sub> Bài 1 / Slide 11 of 26
<b>Quy trình phát triển cơ sở dữ liệu bao gồm 6 giai đoạn: </b>
<b> Lên kế hoạch ban đầu: Trong giai đoạn này, công ty sẽ thu </b>
<b>thập thông tin về các ứng dụng đang dùng. </b>
<b> Nghiên cứu về tính khả thi: Trong giai đoạn này sẽ nghiên </b>
<b>cứu về tính khả thi của kỹ thuật, kinh tế và cách vận hành </b>
<b>CSDL. </b>
<b>Định nghĩa các yêu cầu về CSDL: Giai đoạn này xác định </b>
<b>Thiết kế ở mức luận lý: Trong giai đoạn này sẽ thiết kế lược </b>
<b>đồ CSDL ở mức luận lý. </b>
<b>Hiện thực: Trong giai đoạn này ta sẽ chọ hệ quản trị CSDL </b>
<b>và chuyển thiết kế từ mức luận lý sang hiện thực trên hệ </b>
<b>quản trị CSDL vừa chọn. </b>
<b>Đánh giá và bảo trì cơ sở dữ liệu: sau khi thiết kế và hiện </b>
©NIIT <sub>Giới thiệu hệ quản trị cơ sở dữ liệu </sub> Bài 1 / Slide 13 of 26
<b>Nếu ta phân tích, thiết kế và hiện thực CSDL khơng tốt, cơ </b>
<b>sở dữ liệu sẽ không hoạt động giống như ta mong đợi. Một </b>
<b>số nguyên nhân thường dẫn đến CSDL hoạt động sai như: </b>
• <b>Người dùng trực tiếp của CSDL không được xác định </b>
<b>đầy đủ khi phân tích và thiết kế. </b>
• <b>Dữ liệu được thu thập quá ít. </b>
• <b>Cơ sở dữ liệu khơng dễ dàng thay đổi để đáp ứng với </b>
<b> Mơ hình </b> <b>dữ liệu mô tả cách tổ chức dữ liệu bên trong </b>
<b>CSDL. </b>
<b> Mơ hình dữ liệu cịn mơ tả mối quan hệ dữ liệu và các ràng </b>
<b>buộc được định nghĩa trên dữ liệu đó. </b>
<b> Mơ hình dữ liệu được dùng rộng rãi nhất là mơ hình thực </b>
©NIIT <sub>Giới thiệu hệ quản trị cơ sở dữ liệu </sub> Bài 1 / Slide 15 of 26
<b> Mơ hình thực thể mối liên kết dựa trên sự mô tả các đối tượng </b>
<b>trong thế giới thực gọi là các thực thể và các mối liên kết giữa </b>
<b>chúng. </b>
<b>Sơ đồ dùng để hiện thực mơ hình thực thể mối liên kết gọi là sơ </b>
<b>đồ thực thể mối liên kết ERD (Entity Relationship Diagram). </b>
<b> Các thành phần của sơ đồ ERD: </b>
• <b>Thực thể </b>
©NIIT <sub>Giới thiệu hệ quản trị cơ sở dữ liệu </sub> Bài 1 / Slide 17 of 26
<b>Thực thể là các đối tượng, nơi chốn, con người… mà cần </b>
<b>lưu giữ thông tin. </b>
<b>Thực thể được đặt tên và được vẽ trong hình chữ nhật. </b>
<b>Thực thể có 2 loại là thực thể độc lập và thực thể phụ </b>
<b>thuộc. </b>
<b>Thực thể phụ thuộc còn được gọi là thực thể yếu là thực </b>
<b>thể mà sự tồn tại của nó phụ thuộc vào một thực thể khác. </b>
<b>Thực thể yếu được mơ tả bằng hình chữ nhật có các cạnh </b>
<b>Mối quan hệ thể hiện sự cộng tác giữa 2 thực thể. </b>
<b>Mối quan hệ được thể hiện bằng hình thoi chính giữa có </b>
<b>tên quan hệ đó. </b>
<b>Mối quan hệ có thể được tồn tại trên 2 thực thể hoặc trên </b>
<b>cùng 1 </b> <b>thực thể. Giữa hai thực thể có thể có nhiều mối </b>
<b>quan hệ. </b>
<b>Mối quan hệ có 3 dạng </b>
<b>• Quan hệ 1 – 1 </b>
©NIIT <sub>Giới thiệu hệ quản trị cơ sở dữ liệu </sub> Bài 1 / Slide 27 of 26
<b>Thuộc tính thể hiện đặt điểm của thực thể. </b>
<b>Thuộc tính được thể hiện bằng hình elipse, với tên thuộc </b>
<b>tính được vẽ bên trong hình. Thuộc tính khóa được gạch </b>
<b>dưới. </b>
©NIIT <sub>Giới thiệu hệ quản trị cơ sở dữ liệu </sub> Bài 1 / Slide 29 of 26
<b>Trong bài này bạn đã được học: </b>
<b> Định nghĩa hệ quản trị cơ sở dữ liệu (CSDL). </b>
<b> Người dùng của hệ quản trị cơ sở dữ liệu. </b>
<b> Mô tả sự cần thiết của cơ sở dữ liệu. </b>
<b> Các thành phần trong CSDL. </b>
<b> Xác định sự cần thiết của việc lên kế hoạch phát triển </b>
<b>CSDL. </b>
<b> Xác định các giai đoạn phát triển cơ sở dữ liệu. </b>
<b> Xác định hậu quả của việc phân tích thiết kế CSDL nếu </b>
<b>thực hiện không tốt. </b>
©NIIT <sub>Thiết kế cơ sở dữ liệu </sub> Bài 2 / Slide 1 of 26
<b> </b>
©NIIT <sub>Thiết kế cơ sở dữ liệu </sub> Bài 2 / Slide 3 of 26
©NIIT <sub>Thiết kế cơ sở dữ liệu </sub> Bài 2 / Slide 5 of 26
©NIIT <sub>Thiết kế cơ sở dữ liệu </sub> Bài 2 / Slide 7 of 26
©NIIT <sub>Thiết kế cơ sở dữ liệu </sub> Bài 2 / Slide 11 of 26
©NIIT <sub>Thiết kế cơ sở dữ liệu </sub> Bài 2 / Slide 13 of 26
©NIIT <sub>Thiết kế cơ sở dữ liệu </sub> Bài 2 / Slide 15 of 26
©NIIT <sub>Thiết kế cơ sở dữ liệu </sub> Bài 2 / Slide 17 of 26
©NIIT <sub>Thiết kế cơ sở dữ liệu </sub> Bài 2 / Slide 19 of 26
©NIIT <sub>Thiết kế cơ sở dữ liệu </sub> Bài 2 / Slide 23 of 26
©NIIT <sub>Truy vấn cơ sở dữ liệu </sub> Bài 3 / Slide 1 of 25
Các đặt điểm của mơ hình client – server
Xác định dữ liệu vào của câu truy vấn
Lên kế hoạch và tạo định dạng cho kết quả của câu truy vấn
Dùng câu lệnh Select với tóan tử quan hệ
Dùng câu lệnh Select với tóan tử luận lý
Dùng câu lệnh Select với toán tử so sánh phần tử trong miền trị
Dùng câu lệnh Select với toán tử so sánh phần tử với danh sách
Dùng các hàm nhóm
<b> Trong mơ hình Client – Server (Mơ hình khách – chủ) chức </b>
<b>năng của ứng dụng được chia làm 2 quá trình: quá trình </b>
<b>client và quá trình server. </b>
<b> Quá trình client xử lý dữ liệu nhập và giao diện người dùng </b>
<b> Quá trình server thực hiện tất cả những tác vụ liên quan về </b>
©NIIT <sub>Truy vấn cơ sở dữ liệu </sub> Bài 3 / Slide 3 of 25
<b> Chia sẽ dữ liệu: Dữ liệu được lưu trữ tập trung tại một máy </b>
<b>chủ và được dùng chung cho toàn bộ người dùng của hệ </b>
<b>thống này. </b>
<b>Giảm thiểu được sự dư thừa dữ liệu và thời gian bảo trì: Vì </b>
<b> MS SQL Server được Microsoft hiện thực dựa trên mơ hình </b>
<b>client – server. </b>
<b> MS SQL Server cung cấp rất nhiều đặt điểm cần thiết để </b>
<b>quản lý dữ liệu. Các đặt điểm nổi bậc là: </b>
• Hỗ trợ cơ chế truy xuất dữ liệu từ web.
• Dễ dàng mở rộng và nâng cấp khi dữ liệu cần lưu trữ lớn.
• Có độ tin cậy cao.
©NIIT <sub>Truy vấn cơ sở dữ liệu </sub> Bài 3 / Slide 5 of 25
<b> SQL Server cung cấp ngôn ngữ để truy xuất và quản lý dữ </b>
<b>liệu được lưu trữ trong SQL Server. Ngôn ngữ này được </b>
<b>gọi là Ngôn Ngữ truy vấn có cấu trúc (Structured Query </b>
<b>Language - SQL) </b>
<b> MS SQL Server còn cung cấp thêm các chức năng mở rộng </b>
<b>của ngôn ngữ SQL gọi là ngôn ngữ T-SQL (Transact SQL). </b>
<b> Các kiểu dữ liệu trong SQL Server: SQL Server lưu giữ dữ </b>
Các thông tin chi tiết về tuyển dụng được lưu trữ trên cơ sở dữ
liệu RECRUITMENT trong SQL Server. Các bảng chứa các
thông tin về ứng viên, về bằng cấp, địa chỉ liên lạc, thông tin về
vị trí cơng việc cần tuyển dụng, và các thơng tin khác được yêu
cầu bởi nhân viên tuyển dụng.
Hãy tạo ra một báo cáo bao gồm tên, thành phố, và số điện
thoại của các ứng viên bên ngịai cơng ty.
©NIIT <sub>Truy vấn cơ sở dữ liệu </sub> Bài 3 / Slide 7 of 25
<b> Xác định cấu trúc của kết quả câu lệnh truy vấn </b>
<b>Viết câu truy vấn </b>
<b>Thực thi câu truy vấn </b>
©NIIT <sub>Truy vấn cơ sở dữ liệu </sub> Bài 3 / Slide 9 of 25
SELECT [ALL | DISTINCT] select_column_list
[INTO [new_table_name]]
[FROM {table_name | view_name}[(optimizer_hints)]
[[,{table_name2 | view_name2}[(optimizer_hints)]
[WHERE clause]
SELECT vFirstName, vLastName, cCity, cPhone
FROM ExternalCandidate
©NIIT <sub>Truy vấn cơ sở dữ liệu </sub> Bài 3 / Slide 11 of 25
<b> Trong yêu cầu trên, kết quả của câu truy vấn dữ liệu có </b>
<b>hiển thị tên cột của bảng ở dạng thân thiện với người dùng. </b>
<b> Có hai cách để hiển thị dữ liệu ở dạng thân thiện: </b>
<i>• Cách 1: </i>
<i>SELECT column_heading=column_name[,column name…] </i>
<i>FROM table_name </i>
<i>• Method 2: </i>
<i>SELECT column_name column_heading </i>
<i>[,column_name…] </i>
©NIIT <sub>Truy vấn cơ sở dữ liệu </sub> Bài 3 / Slide 13 of 25
• Cách 1:
• Method 2:
Viết câu truy vấn hiển thị danh sách các trường Đại Học và Cao
Đẳng trong bang California.
©NIIT <sub>Truy vấn cơ sở dữ liệu </sub> Bài 3 / Slide 15 of 25
Để giới hạn các dòng trả về trong SQL Server sử dụng câu lệnh
Select … From … Where. Câu lệnh này có cấu trúc như sau:
<i>SELECT column_list </i>
<i>FROM table_name </i>
<i>WHERE search_condition </i>
Trong <i>đó chỉ có những dịng thỏa mãn điều kiện search_condition </i>
thì mới được trả về.
Câu truy vấn được viết:
Trong SQL Server, điều kiện tìm kiếm trong mệnh đề WHERE có
thể dùng các tốn tử như sau:
• Tốn tử quan hệ: >, <, >=, <= …
• Tốn tử luận lý: and, or, not.
• Tốn tử trong so sánh trong miền trị: between … and
©NIIT <sub>Truy vấn cơ sở dữ liệu </sub> Bài 3 / Slide 17 of 25
Viết câu truy vấn hiển thị danh sách các ứng viên có điểm thi nằm
trong khỏang 80 -100.
©NIIT <sub>Truy vấn cơ sở dữ liệu </sub> Bài 3 / Slide 18 of 25
Cú pháp của câu lệnh truy vấn có dùng tóan luận lý:
<i>SELECT column_list </i>
<i>FROM table_name </i>
<i>WHERE conditional_expression{AND/OR} [NOT] </i>
<i>conditional_expression </i>
Câu truy vấn theo yêu cầu được viết như sau:
SELECT vFirstName, vLastName, siTestScore
FROM ExternalCandidate
©NIIT <sub>Truy vấn cơ sở dữ liệu </sub> Bài 3 / Slide 19 of 25
Toán tử quan hệ được dùng trong mệnh đề Where theo cú pháp
như sau:
SELECT column_list FROM table_name
WHERE expression1 comparison_operator expression2
Ví dụ hiển thị mã các nhân viên có thu nhập hàng năm lớn hơn
40.000.
<b> select cEmployeeCode </b>
from AnnualSalary
©NIIT <sub>Truy vấn cơ sở dữ liệu </sub> Bài 3 / Slide 20 of 25
Tốn tử so sánh trong miền trị có hai toán tử: BETWEEN và NOT
BETWEEN.
Toán tử trong so sánh trong miền trị được dùng trong mệnh đề
Where theo cú pháp như sau:
SELECT column_list FROM table_name
WHERE expression1 range_operator expression2 AND expression3
Ví dụ hiển thị mã các nhân viên có thu nhập hàng năm trong
select cEmployeeCode
from AnnualSalary
©NIIT <sub>Truy vấn cơ sở dữ liệu </sub> Bài 3 / Slide 21 of 25
Toán tử so sánh phần tử với danh sách có hai toán tử: IN và NOT
IN.
Toán tử so sánh phần tử với danh sách có cú pháp như sau:
SELECT column_list FROM table_name
WHERE expression list_operator (‘value_list‘)
Ví dụ: Hãy hiển thị thơng tin các trường Đại học thuộc 2 bang New
York và Texas:
©NIIT <sub>Truy vấn cơ sở dữ liệu </sub> Bài 3 / Slide 22 of 25
Yêu cầu: Viết câu truy vấn cho biết số lượng các báo đã từng
quảng cáo tuyển dụng cho công ty.
SQL hỗ trợ các hàm tương tác với một tập hợp các giá trị trả về
của một cột. Các hàm này được gọi là hàm nhóm.
Có một số các hàm nhóm như sau: AVG, SUM, COUNT, MAX,
MIN.
Câu truy vấn dùng hàm count:
©NIIT <sub>Truy vấn cơ sở dữ liệu </sub> Bài 3 / Slide 23 of 25
Yêu cầu: Viết câu truy vấn cho biết số lần quảng cáo trên mỗi tờ
báo?
SQL hỗ trợ chia kết quả ra làm nhiều nhóm nhỏ bằng mệnh đề
group by.
Mệnh đề group by được sử dụng như sau:
<i>SELECT 'Newspaper Code' = cNewspaperCode, </i>
<i>'No. Of Advts. Placed' = COUNT(cNewspaperCode) </i>
<i>FROM NewsAd </i>
<b> Các </b>đặt điểm của mơ hình client – server
Xác định dữ liệu vào của câu truy vấn
Lên kế hoạch và tạo định dạng cho kết quả của câu truy vấn
Dùng câu lệnh Select với tóan tử quan hệ
Dùng câu lệnh Select với tóan tử luận lý
Dùng câu lệnh Select với toán tử so sánh phần tử trong miền trị
Dùng câu lệnh Select với toán tử so sánh phần tử với danh sách
Dùng các hàm nhóm
©NIIT <sub>Truy vấn cơ sở dữ liệu </sub> Bài 3 / Slide 25 of 25
1. Kết nối vào database GlobalToyz.
2. Hiển thị thông tin chi tiết của tất cả các đồ chơi trong bảng toys.
3. Hiển thị thông tin chi tiết của tất cả những người mua hàng.
4. Hiển thị tên, họ, và e-mail ID của tất cả người đi mua hàng.
5. Hiển thị tên và giá của tất cả các đồ chơi.
6. Hiển thị tên, địa chỉ, và mã vùng của tất cả những người nhận
đồ chơi
7. Hiển thị họ và tên của những người mua hàng sống ở California.
8. Hiển thị chi tiết các hóa đơn có giá trị lớn hơn 75$.
Cách dùng hàm xử lý chuỗi trong câu truy vấn
Cách dùng hàm xử lý thời gian trong câu truy vấn
Cách dùng hàm xử lý toán học trong câu truy vấn
Sử dụng các kiểu kết nối inner join
Sử dụng các kiểu kết nối outter join
Sử dụng các kiểu kết nối self join
Sử dụng câu truy vấn con
©NIIT <sub>Hàm và truy vấn dữ liệu </sub> Bài 4 / Slide 2 of 25
Trong SQL, nếu ta muốn kết quả của câu truy vấn được chuyển
sang toàn chữ hoa thì ta có thể dùng hàm upper.
Cách dùng hàm trong câu lệnh select có cú pháp như sau:
SELECT function_name (parameters)
Ví dụ demo:
Viết câu truy vấn hiển thị tên của tờ báo, tên người liên lạc và
số điện thoại liên lạc để công ty liên hệ quảng cáo. Tên của tờ
báo phải được hiển thị bằng chữ hoa.
<b>ASCII </b> <b>STR </b> <b>REVERSE </b>
<b>NCHAR </b> <b>DIFFERENCE </b> <b>UNICODE </b>
<b>SOUNDEX </b> <b>QUOTENAME </b> <b>LOWER </b>
<b>CHAR </b> <b>STUFF </b> <b>RIGHT </b>
<b>PATINDEX </b> <b>LEFT </b> <b>UPPER </b>
<b>SPACE </b> <b>REPLICATE </b> <b>LTRIM </b>
<b>CHARINDEX </b> <b>SUBSTRING </b> <b>RTRIM </b>
©NIIT <sub>Hàm và truy vấn dữ liệu </sub> Bài 4 / Slide 4 of 25
Hàm xử lý ngày tháng được dùng để xử lý các giá trị về thời gian, thực
hiện một số phép tóan như cộng trừ thời gian hoặc có các hàm để lấy
một phần thơng tin của thời gian như: ngày, tháng, năm.
Cách dùng hàm datetime trong câu <sub>lệnh select có cú pháp như sau: </sub>
SELECT datetime_function (parameters)
Ví dụ demo:
Ngày hết hạn dự kiến tuyển dụng là 10 ngày từ khi bắt đầu quá trình
tuyển dụng. Viết câu truy vấn dữ liệu hiển thị mã trường, ngày bắt đầu
tuyển dụng, ngày hết hạn cho tất cả các trường mà công ty định tuyển
sinh viên.
SELECT cCollegeCode, dRecruitmentStartDate, 'Proposed Deadline' =
DATEADD(dd, 10, dRecruitmentStartDate)
<b>Tên hàm </b> <b>Tham số </b>
DATEADD (datepart, number, date)
DATEDIFF (datepart, date1, date2)
DATENAME (datepart, date)
DATEPART (datepart, date)
©NIIT <sub>Hàm và truy vấn dữ liệu </sub> Bài 4 / Slide 6 of 25
Hàm toán học dùng để thực hiện các phép tính trên giá trị trả về
của câu truy vấn
Cách dùng hàm toán học trong câu lệnh select có cú pháp như
sau:
SELECT function_name (parameters)
Ví dụ demo:
Viết câu truy vấn hiển thị tên, số điện thoại và điểm phỏng vấn
của ứng viên có tên là Helen. Điểm phải được làm tròn.
SELECT vFirstName, cPhone,'Score'= ROUND(79.9,0)
<b>Tên hàm </b> <b>Tham số </b>
ABS (numeric_expression)
ACOS, ASIN,
<b>ATAN </b>
(float_expression)
COS, SIN,
<b>COT, TAN </b>
(float_expression)
<b>ROUND </b> (numeric_expression,
<b>length) </b>
©NIIT <sub>Hàm và truy vấn dữ liệu </sub> Bài 4 / Slide 8 of 25
SELECT column_name, column_name [,column_name]
FROM table_name [CROSS|INNER|[LEFT | RIGHT]OUTER] JOIN
table_name
[ON table_name.ref_column_name join_operator
table_name.ref_column_name]
©NIIT <sub>Hàm và truy vấn dữ liệu </sub> Bài 4 / Slide 10 of 25
Inner join được dùng để hiển thị dữ liệu từ hai hay nhiều bảng bằng
cách so sách giá trị của những cột giống nhau, nếu dòng nào có giá trị
của hai cột trên bằng nhau thì sẽ được hiển thị.
Ví dụ minh họa:
Viết câu truy vấn hiển thị tên của ứng viên và tên của văn phòng tuyển
dụng ứng viên này?
SELECT 'Candidate Name'=vFirstName,'Recruitment Agency' = cName
FROM ExternalCandidate JOIN RecruitmentAgencies
ON
Outter join hiển thị tất cả các dòng trên 1 bảng, riêng bảng còn lại chỉ hiển thị
những dịng được so trùng với bảng kia.
Ví dụ minh họa:
Viết câu truy vấn hiển thị tên của ứng viên bên ngòai và tên của văn phòng
tuyển dụng cho ứng viên này nếu có.
SELECT vFirstName, vLastName, cName
FROM ExternalCandidate
LEFT OUTER JOIN RecruitmentAgencies ON
©NIIT <sub>Hàm và truy vấn dữ liệu </sub> Bài 4 / Slide 12 of 25
Self Join là kiểu kết nối mà một hàng trong bảng kết nối với hàng
khác trong cùng một bảng.
Ví dụ minh họa:
SELECT t1.title,t2.title , t1.price
Câu truy vấn được dùng trong các lệnh SQL như SELECT, UPDATE,
Câu truy <sub>vấn con được dùng để truy xuất dữ liệu từ một hoặc nhiều bảng </sub>
nên được dùng để thay thế toán tử Join.
Câu truy vấn con còn được sử dụng trong các mệnh đề WHETE và
HAVING.
©NIIT <sub>Hàm và truy vấn dữ liệu </sub> Bài 4 / Slide 14 of 25
Hãy viết câu truy vấn hiển thị tên các nhà tuyển dụng sống cùng thành phố
với ứng viên từ bên ngồi có tên: Barbara Johnson.
SELECT cName
FROM ContractRecruiter
WHERE cCity =
(SELECT cCity FROM ExternalCandidate
Nếu câu truy vấn con trả về hơn 1 giá trị thì người ta phải dùng mệnh đề IN
thay cho tốn tử so sánh bằng (=)
Ví dụ minh họa: Viết câu truy vấn trả về mã tác giã có sách bán được?
SELECT Au_Id
FROM TitleAuthor
©NIIT <sub>Hàm và truy vấn dữ liệu </sub> Bài 4 / Slide 16 of 25
Câu truy vấn con được dùng với mệnh đề EXISTS để kiểm tra sự
tồn tại của một dữ liệu nào đó hay khơng? Mệnh đề EXISTS trả về 2
giá trị TRUE hoặc FALSE.
Ví dụ minh họa: Viết câu truy vấn trả về tên nhà xuất bản có xuất bản
sách thuộc thể loại business.
SELECT Pub_Name
FROM Publishers
Câu truy vấn con được dùng với hàm nhóm
Ví dụ minh họa: Hiển thị tên các sách có tiền đặt trước lớn hơn số
tiền đặt trước trung bình của thể loại ‘Business’.
SELECT Title
FROM Titles
WHERE Advance > (SELECT AVG(Advance)
FROM Titles
©NIIT <sub>Hàm và truy vấn dữ liệu </sub> Bài 4 / Slide 18 of 25
Kết quả của câu truy vấn có thể được lưu vào bảng bằng mệnh đề
SELECT … INTO
Ví dụ minh họa: Hãy viết câu truy vấn lưu thông tin các ứng viên bên
ngoài trong tháng 5 năm 2006 vào bảng tạm có tên là
TempExternalCandidate
SELECT * INTO tempExternalCandidate
FROM ExternalCandidate
Trong bài này bạn đã học:
Cách dùng hàm xử lý chuỗi trong câu truy vấn
Cách dùng hàm <sub>xử lý thời gian trong câu truy vấn </sub>
Cách dùng hàm xử lý toán học trong câu truy vấn
<sub>Sử dụng các kiểu kết nối inner join </sub>
Sử dụng các kiểu kết nối outter join
<sub>Sử dụng các kiểu kết nối self join </sub>
Sử dụng câu truy vấn con
Sử dụng câu truy vấn con với mệnh đề IN
<sub>Sử dụng câu truy vấn con với mệnh đề EXITS </sub>
Sử dụng câu truy vấn con với hàm nhóm
©NIIT <sub>Hàm và truy vấn dữ liệu </sub> Bài 4 / Slide 20 of 25
Bài 1: Viết câu truy vấn hiển thị tên, mô tả và đánh giá cho tất cả các đồ chơi trẻ
em, tuy nhiên chỉ hiển thị 40 ký tự đầu tiên của phần mô tả.
Bài 2: Viết câu truy vấn hiển thị các thông tin về trình trạng giao hàng theo mẩu
sau:
Bài 4: Viết câu truy vấn hiển thị tên của tất cả các loại đồ chơi và tên
của thể loại mà nó thuộc về.
©NIIT <sub>Tạo bảng và các ràng buộc dữ liệu </sub> Bài 5 / Slide 1 of 25
<b>Mục tiêu của bài 5 </b>
Tạo bảng
Thêm dữ liệu vào bảng
Xóa bảng
Các kiểu ràng buộc tồn vẹn dữ liệu
Các ràng buộc:
Trong SQL Server, bảng là một đối tượng của cơ sở dữ liệu
dùng để lưu trữ dữ liệu.
Dữ liệu trong bảng được tổ chức thành dòng và cột.
Mỗi dòng trong bảng thể hiện một bộ dữ liệu duy nhất và mỗi
cột thể hiện thuộc tính của bộ dữ liệu.
Một bảng trong MS SQL có tối đa là 1024 cột.
©NIIT <sub>Tạo bảng và các ràng buộc dữ liệu </sub> Bài 5 / Slide 3 of 25
Để tạo bảng trong SQL Server ta dùng câu lệnh CREATE
TABLE. Lệnh này có cú pháp như sau:
CREATE TABLE Tên_bảng
(
Tên_cột kiểu_dữ_liệu [NULL | NOT NULL]
[IDENTITY (SEED, INCREMENT)],
Tên_cột kiểu_dữ_liệu …
)[
Ví dụ:
CREATE TABLE Sales
(
ItemCode char(4) NOT NULL,
ItemName char(10) NULL,
QtySold int NOT NULL,
©NIIT <sub>Tạo bảng và các ràng buộc dữ liệu </sub> Bài 5 / Slide 5 of 25
Câu lệnh:
CREATE TABLE NewsPaper
(
©NIIT <sub>Tạo bảng và các ràng buộc dữ liệu </sub> Bài 5 / Slide 7 of 25
Trong MS SQL Server, bạn có thể kiểm tra thông tin của bảng
vừa được tạo ra bằng câu lệnh:
sp_Help tên_bảng.
Sau khi tạo bảng, dữ liệu có thể được thêm vào bảng bằng câu
<b>lệnh INSERT </b>
Cú pháp của câu lệnh INSERT như sau:
INSERT [INTO] tên_bảng [column_list]
VALUES (values_list)
Câu lệnh thêm dữ liệu vào:
INSERT Newspaper
VALUES('0001' ,'Texas Times', 'Texas', 'General', 'Jackson
©NIIT <sub>Tạo bảng và các ràng buộc dữ liệu </sub> Bài 5 / Slide 9 of 25
Xóa bảng ra khỏi cơ sở dữ liệu dùng câu lệnh DROP TABLE.
Cú pháp của câu lệnh này như sau:
DROP TABLE Table_name
Ví dụ: Xóa bảng Newspaper vừa mới tạo ra:
DROP TABLE newspaper
Ràng buộc tồn vẹn đảm bảo tính nhất qn và đúng đắn của
dữ liệu được lưu trữ bên trong cơ sở dữ liệu. Ràng buộc toàn
vẹn được phân thành 4 loại:
• Ràng buộc thực thể.
• Ràng buộc miền trị
• Ràng buộc tham chiếu.
©NIIT <sub>Tạo bảng và các ràng buộc dữ liệu </sub> Bài 5 / Slide 11 of 25
Ràng buộc thực thể:
Là ràng buộc đảm bảo rằng một dòng được xác định duy nhất
bởi một hoặc nhiều thuộc tính gọi là khóa chính. Ràng buộc
thực thể được hiện thực bằng ràng buộc PRIMARY KEY.
Ràng buộc miền trị:
Ràng buộc tham chiếu:
Là ràng buộc đảm bảo rằng giá trị của khóa ngoại được lưu trữ
phải là khóa chính trong bảng khác. Ràng buộc này được hiện
thực bằng ràng buộc PRIMARY KEY và FOREIGN KEY.
Ràng buộc do người dùng định nghĩa:
©NIIT <sub>Tạo bảng và các ràng buộc dữ liệu </sub> Bài 5 / Slide 13 of 25
Ràng buộc được dùng để đảm bảo tính tồn vẹn của dữ liệu.
Ràng buộc định nghĩa những luật mà dữ liệu phải tuân theo
nhằm đảo bảo tính nhất quán và đúng đắn của dữ liệu được lưu
trữ.
Ràng buộc có thể được tạo ra khi bảng được tạo ra hoặc có thể
được thêm vào sau khi bảng đã được tạo ra.
Ràng buộc có thể ở 2 tầm vực
• Tầm vực cột
Cú pháp của câu lệnh tạo ràng buộc như sau:
CREATE TABLE tên_bảng
tên_cột CONSTRAINT tên_ràng buộc loại_ràng_buộc
[,CONSTRAINT tên_ràng_buộc loại_ràng_buộc]
Cú pháp của câu lệnh thêm vào ràng buộc vào bảng đã có như
sau:
ALTER TABLE tên_bảng
©NIIT <sub>Tạo bảng và các ràng buộc dữ liệu </sub> Bài 5 / Slide 15 of 25
Ví dụ:
ALTER TABLE Sales WITH NOCHECK
ADD CONSTRAINT chkQtySold CHECK (QtySold >0)
Xóa ràng buộc dùng câu lệnh có cú pháp như sau:
ALTER TABLE tên_bảng
©NIIT <sub>Tạo bảng và các ràng buộc dữ liệu </sub> Bài 5 / Slide 16 of 25
Ràng buộc PRIMARY KEY được định nghĩa trên một hay nhiều
cột mà giá trị của nó xác định duy nhất một dòng trong bảng.
Cú pháp của ràng buộc này như sau:
[CONSTRAINT tên_ràng_buộc PRIMARY KEY
[CLUSTERED|NONCLUSTERED]
(tên_cột [, tên_cột [, tên_cột [, …]]])]
Ví dụ:
CREATE TABLE Employee
©NIIT <sub>Tạo bảng và các ràng buộc dữ liệu </sub> Bài 5 / Slide 17 of 25
Ràng buộc UNIQUE dùng để đảm bảo tính duy nhất của một
bảng.
Ràng buộc UNIQUE có cú pháp như sau:
[CONSTRAINT tên_ràng_buộc UNIQUE [CLUSTERED |
NONCLUSTERED]
(tên_cột [, tên_cột[, tên_cột[, …]]])
Ví dụ:
ALTER TABLE Employee
Ràng buộc FOREIGN KEY được dùng để đảm bảo tính nhất
quán của hai bảng khi dữ liệu của bảng này phụ thuộc vào dữ
liệu của bảng kia.
Cú pháp:
[CONSTRAINT tên_ràng_buộc FOREIGN KEY (tên_cột [,
tên_cột [, …]])
REFERENCES tên_bảng (column_name [, tên_cột [, …]])]
Ví dụ:
ALTER TABLE Employee
ADD CONSTRAINT fkDepartmentCode FOREIGN KEY
(cDepartmentCode) REFERENCES
©NIIT <sub>Tạo bảng và các ràng buộc dữ liệu </sub> Bài 5 / Slide 19 of 25
Ràng buộc CHECK dùng để đảm bảo giá trị của cột thuộc về
một miền trị cho trước.
Cú pháp:
[CONSTRAINT tên_ràng_buộc] CHECK (expression)
Ví dụ:
CREATE TABLE ContractRecruiter
(…
cCity char(15) CONSTRAINT chkCity CHECK (cCity IN
('Berkeley', 'Boston', 'Chicago', 'Dallas', 'München', 'New
Jersey', 'NewYork', 'Paris', 'Washington'))
Ràng buộc DEFAULT dùng để gán giá trị mặt định cho cột khi
giá trị của cột đó khơng được xác định.
Trên một cột, chỉ có tối đa 1 ràng buộc DEFAULT.
Cú pháp:
[CONSTRAINT tên_ràng_buộc] DEFAULT
(constant_expression | NULL)
Ví dụ:
ALTER TABLE Employee
©NIIT <sub>Tạo bảng và các ràng buộc dữ liệu </sub> Bài 5 / Slide 21 of 25
Hãy viết câu lệnh SQL tạo bảng Newspaper ở trên với một số
yêu cầu như sau:
• Thuộc tính cNewspaperCode phải là khóa chính.
• Thuộc tính cPhone có giá trị:
([0-9][0-9][0-9])[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]
• Thuộc tính cCountryCode có giá trị mặc định là ‘001’
Trong bảng NewAd hãy sửa lại thuộc tính của bảng này như
sau:
• Thuộc tính cNewsAdNo là khóa chính
<b>Ví dụ tạo ràng buộc: </b>
CREATE TABLE Newspaper
(
cNewspaperCode typNewspaperCode CONSTRAINT
pkNewspaperCode PRIMARY KEY,
cNewspaperName char(20) NOT NULL,
vRegion varchar(20),
vTypeOfNewspaper varchar(20),
vContactPerson varchar(35),
vHOAddress varchar(35),
cCity char(20),
cState char(20),
cZip char(10),
cCountryCode char(3) CONSTRAINT defCountryCode
DEFAULT('001'),
cFax char(15),
cPhone char(15) CONSTRAINT chkPhone CHECK(cPhone
LIKE('([0-9][0- LIKE('([0-9][0-9])[0-LIKE('([0-9][0-LIKE('([0-9][0-9]-[0-LIKE('([0-9][0-LIKE('([0-9][0-LIKE('([0-9][0-9]'))
©NIIT <sub>Tạo bảng và các ràng buộc dữ liệu </sub> Bài 5 / Slide 23 of 25
ALTER TABLE NewsAd
ADD CONSTRAINT pkNewsAdNo PRIMARY KEY
(cNewsAdNo)
ALTER TABLE NewsAd
ADD CONSTRAINT fkNewspaperCode FOREIGN KEY
(cNewspaperCode)REFERENCES
Trong bài này bạn được học
Tạo bảng
Thêm dữ liệu vào bảng
Xóa bảng
Các kiểu ràng buộc tồn vẹn dữ liệu
Các ràng buộc:
©NIIT <sub>Tạo bảng và các ràng buộc dữ liệu </sub> Bài 5 / Slide 25 of 25
Trong bài này bạn được học
Tạo ràng buộc PRIMARY KEY
Tạo ràng buộc FOREIGN KEY
Tạo ràng buộc UNIQUE
©NIIT <sub>Tạo bảng và các ràng buộc dữ liệu </sub> Bài 5 / Slide 27 of 25
Bài 2: Tạo lại bảng colleges theo u cầu như sau:
• cCollegeCode phải là khóa chính
• Phone number phải có dạng
([0-9][0-9][0-9])[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]
• cCity phải có giá trị mặt định là New Orleans'
Bài 3: Tạo bảng CampusRecruitment (cCampusRecruitmentCode
char(4), cCollegeCode char(4), dRecruitmentStartDate
datetime, dRecruitmentEndDate datetime) thỏa mãn các điều
kiện:
• cCampusRecruitmentCode là khóa chính
Khái niệm chương trình và ngơn ngữ lập trình
Chức năng của trình biên dịch, bộ liên kết và trình thơng dịch
Cách chọn Ngơn ngữ lập trình
Giải thuật và Lưu đồ
©NIIT
Thế giới lập trình Bài 1 / Slide 2 of 23
Máy tính được thiết kế để nhận dữ liệu (Input), xử lý (Process) và
đưa ra kết quả (Output). Quá trình này còn được gọi là I-P-O.
Tập hợp các lệnh để thực hiện một công việc được gọi là
chương trình (program).
Nhiều chương trình kết hợp với nhau thành một ứng dụng
(application).
Input Output
Ngơn ngữ lập trình là phương tiện truyền thơng giữa Lập trình viên và
máy tính.
©NIIT
Thế giới lập trình Bài 1 / Slide 4 of 23
<b>Ngôn ngữ lập trình (tiếp theo) </b>
Ngơn ngữ lập trình được chia làm 3 loại:
1. Ngơn ngữ máy:
• Từ vựng được tạo nên từ mã nhị phân 0-1 để tạo ra các câu lệnh, các chỉ dẫn nhằm yêu cầu
máy tính thực hiện một cơng việc nào đó.
• Các lệnh được máy tính thực hiện trực tiếp (khơng qua mã trung gian).
• Ngồi ngơn ngữ máy, các NNLT khác đều cần được dịch ra mã trung gian trước khi thực thi.
2. Ngôn ngữ Assembly:
• Cịn gọi là ngơn ngữ máy tính thế hệ thứ 2 là ngơn ngữ sử dụng bảng mã chữ cái và các ký
hiệu để đưa ra các chỉ dẩn
3. Ngôn ngữ cấp cao:
• Đây là ngơn ngữ thân thiện với người sử dụng vì dùng những từ ngữ thơng dụng tiếng Anh
©NIIT
Thế giới lập trình Bài 1 / Slide 6 of 23
Khi trình biên dịch dịch một chương trình, nó sẽ kiểm tra Từ vựng và Cú
pháp các câu lệnh.
Nếu trình biên dịch tìm thấy lỗi trong chương trình nguồn thì nó sẽ hiển
thị danh sách các lỗi.
©NIIT
Thế giới lập trình Bài 1 / Slide 8 of 23
<sub>Mỗi NNLT sẽ có các thư viện chứa các từ khóa với các chức năng được định </sub>
nghĩa trước. Người lập trình sẽ sử dụng những từ khóa này kết hợp với các cú
pháp để viết chương trình.
Khi dịch, trình biên dịch sẽ sinh ra mã trung gian.
Để sinh mã thực thi từ mã trung gian thì chức năng của các từ khóa (lưu trong
các thư viện) và các thư viện cũng cần được đưa vào mã trung gian.
©NIIT
Thế giới lập trình Bài 1 / Slide 10 of 23
<b>Trình thơng dịch </b>
<sub>Một số ngơn ngữ lập trình cấp cao sử dụng cơ chế dịch khác gọi là thông dịch. </sub>
Chương trình dịch theo cơ chế này được gọi là trình thơng dịch.
Trình thơng <sub>dịch sẽ đọc một lệnh được viết bằng ngơn ngữ lập trình cấp cao, </sub>
chuyển sang mã máy, thực thi câu lệnh này và khơng lưu mã trung gian.
Chương trình thực thi dùng trình thơng dịch sẽ tiết kiệm được thời gian hơn
trình biên dịch.
Trình thơng dịch cũng giúp cho việc dị tìm lỗi dễ dàng hơn vì nó chỉ ra chính
xác những dịng nào phát sinh lỗi.
Một số ngơn ngữ lập trình cao cấp là:
• BASIC
• Pascal
• C
• Java
ã C#
âNIIT
Thế giới lập trình Bài 1 / Slide 12 of 23
<b>Lựa chọn ngôn ngữ lập trình </b>
<sub>Một số các yếu tố khi lựa chọn ngơn ngữ lập trình: </sub>
• Tiêu chí 1: lựa chọn đầu tiên là tùy thuộc vào loại ứng dụng cần phát triển.
Ví dụ:
- Tạo ra chương trình thực hiện các phép tốn đơn giản (+ - * /) ta có thể sử
dụng Pascal.
- Để phát triển ứng dụng dùng trong gia đình hoặc doanh nghiệp nhỏ có thể
dùng Visual BASIC
• Tiêu chí 2: Nếu có nhiều ngơn ngữ phù hợp để phát triển ứng dụng thì bạn nên
chọn ngôn ngữ mà bạn thông thạo nhất.
Giải thuật là một trình tự thực hiện cơng việc nào đó.
Lưu đồ là sự biểu diễn đồ hoạ của giải thuật.
©NIIT
Thế giới lập trình Bài 1 / Slide 14 of 23
<b> Các ký hiệu được sử dụng trong lưu đồ: </b>
• Nhập – Input
• Xử lý – Process
• Quyết định – Decision
• Thủ tục – Procedure
<b> Các ký hiệu được sử dụng trong lưu đồ (tt): </b>
• Bắt đầu và Kết thúc – Start and Stop
• Kết nối trên cùng một trang – On page connector
• Kết nối ở trang khác – Off page connector
©NIIT
Thế giới lập trình Bài 1 / Slide 16 of 23
©NIIT
American National Standards Institute (ANSI) đề nghị một số qui luật cần
phải tuân theo khi vẽ lưu đồ như sau:
• Tồn bộ lưu đồ nên được biểu diễn bằng ký hiệu chuẩn.
• Lưu đồ nên rõ ràng, chính xác và dễ theo dõi.
• Lưu đồ chỉ nên có một điểm bắt đầu và một điểm kết thúc.
©NIIT
Thế giới lập trình Bài 1 / Slide 20 of 23
• Ký hiệu bắt đầu và kết thúc chỉ nên có một đường kết nối duy nhất.
• Ký hiệu nhập dữ liệu, xử lý, xuất dữ liệu, hiển thị nên có hai đường
kết nối để nối ký hiệu đứng trước và đứng sau chúng.
• Ký hiệu quyết định nên có một đường kết nối với ký hiệu trước nó và
có hai đường kết nối đến hai ký hiệu đứng sau nó.
Lưu đồ là phương pháp tốt để truyền đạt lập luận của giải thuật.
Lưu đồ giúp phân tích vấn đề một cách hiệu quả.
<sub>Lưu đồ đóng vai trị như người hướng dẫn trong giai đoạn phát triển </sub>
chương trình.
Dễ tìm và sửa lỗi bằng lưu đồ.
©NIIT
Thế giới lập trình Bài 1 / Slide 22 of 23
Lưu đồ dài có thể trãi ra trên nhiều trang, làm giảm tính dễ đọc.
Việc vẽ lưu đồ bằng các công cụ đồ hoạ là việc làm tốn nhiều thời gian.
Thay <sub>đổi chỉ một bước nào đó có thể dẫn đến việc vẽ lại toàn bộ lưu đồ. </sub>
Lưu đồ biểu diễn giải thuật phức tạp có thể chứa rất nhiều đường kết
<b>Tóm tắt </b>
Tập hợp các lệnh để thực hiện một công việc được gọi là chương trình
(program).
<sub>Một số các chương trình kết hợp với nhau thành một ứng dụng (application). </sub>
Ngơn <sub>ngữ lập trình là phương tiện giao tiếp giữa người lập trình và máy tính. </sub>
Trình biên <sub>dịch là chương trình dịch chương trình nguồn viết bằng ngôn ngữ cấp </sub>
cao sang ngôn ngữ máy.
<sub>Bộ liên kết thực hiện việc kết nối chức năng của các từ khóa và các thư viện </sub>
được dùng vào mã trung gian.
Trình thơng dịch là chương trình dịch từng câu lệnh trong chương trình nguồn
sang mã máy, thực thi câu lệnh và không lưu mã trung gian.
©NIIT
Thế giới lập trình Bài 1 / Slide 24 of 23
<b>1. Bài 1 </b>
Vẽ lưu đồ nhập vào họ tên và tuổi của sinh viên, nếu số tuổi nhập vào
âm hay bằng khơng thì thơng báo “Tuổi khơng thể <= 0”,
Nếu tuổi là dương thì hiển thị tên và tuổi của Sinh viên đó
<b>2. Bài 2 </b>
<b> </b>
©NIIT
Thế giới lập trình Bài 2 / Slide 1 of 23
Khái niệm mã giả - pseudocode
Biến và vai trò của biến
Mô tả các kiểu dữ liệu khác nhau
<b> begin…end </b>
<b> accept </b>
©NIIT
Thế giới lập trình Bài 2 / Slide 3 of 23
<b>Giới thiệu về biến </b>
Bộ nhớ máy tính dùng để lưu dữ liệu người sử dụng cung cấp,
các lệnh của chương trình sẽ xử lý dữ liệu này và sinh ra kết
quả tương ứng.
Bộ nhớ trong bao gồm nhiều vị trí khác nhau, và ở mỗi vị trí này
sẽ chứa dữ liệu được lưu trữ tương ứng.
• Ký số, ví dụ như 20, 15 và 89.25.
©NIIT
Thế giới lập trình Bài 2 / Slide 5 of 23
<b>Giới thiệu về biến (tiếp theo) </b>
<b>Kiểu dữ liệu </b>
Số bytes trong bộ nhớ được dùng để lưu trữ biến tùy thuộc vào
kiểu dữ liệu chứa trong biến. Kiểu của dữ liệu chứa trong biến
<i>được gọi là kiểu dữ liệu. </i>
Có hai kiểu dữ liệu cơ bản là:
• Kiểu số (Numeric): Biến thuộc kiểu Numeric chỉ có thể chứa
được giá trị số.
©NIIT
Thế giới lập trình Bài 2 / Slide 7 of 23
• Cấp phát vị trí bộ nhớ cho biến.
• Gán tên cho biến.
• Ký tự đầu tiên của tên biến nên mô tả kiểu dữ liệu của biến,
nếu là kiểu numeric thì ký tự đầu tiên là n, nếu là kiểu
Character thì ký tự đầu tiên là c. Ví dụ nAge, cName.
©NIIT
Thế giới lập trình Bài 2 / Slide 9 of 23
• Tên biến khơng nên có các ký tự đặc biệt như ! @ # $ % ^ &
* ( ) { } [ ] . , : ; “ ‘ / và \. Nếu tên biến có khoảng trắng, bạn có
thể dùng dấu gạch dưới để nối hai từ lại với nhau ví dụ như
nBasic_Salary.
©NIIT
Thế giới lập trình Bài 2 / Slide 11 of 23
• Giá trị được gán trực tiếp vào biến bằng dấu =, lệnh gán
trực tiếp có cú pháp như sau: variable_name=value.
• Ví dụ: nAge=18, cName=“Nguyen Van Nam”.
• Giá trị của biến có thể được gán bằng câu lệnh accept, câu
lệnh accept có cú pháp như sau: accept variable_name.
<b>Ví dụ: Vẽ lưu đồ và viết mã giả </b>
nhập vào hai số từ người dùng,
sau đó hiển thị tổng của hai số
đó
Begin
Numeric nNumber1, nNumber2,
nSum
Accept nNumber1
Accept nNumber2
nSum=nNumber1 + nNumber2
Display nSum
©NIIT
Thế giới lập trình Bài 2 / Slide 13 of 23
• Tốn tử tốn học
• Tốn tử logic
• Tốn tử cộng (+): 4 + 5 = 9
• Tốn tử trừ (-): 10 – 2 = 8
• Tốn tử nhân (*): 2 * 3 = 6
• Tốn tử chia (/): 10 / 2 = 5
©NIIT
Thế giới lập trình Bài 2 / Slide 15 of 23
©NIIT
Thế giới lập trình Bài 2 / Slide 17 of 23
<b>Tốn tử luận lý (tiếp theo) </b>
Bảng chân trị cho toán tử AND và OR
<b>Biểu thức 1 Biểu thức 2 </b> <b>Giá trị biểu thức kết hợp </b>
<b>AND </b> <b>OR </b>
True True True True
True False False True
False True False True
©NIIT
Thế giới lập trình Bài 2 / Slide 19 of 23
<b>Độ ưu tiên của các tốn tử (tiếp theo) </b>
<b>Tốn tử </b> <b>Mơ tả </b> <b>Độ ưu tiên </b>
() Dấu ngoặc 1
! Toán tử phủ định 2
* Toán tử nhân
3
/ Toán tử chia
% Toán tử chia lấy dư
©NIIT
Thế giới lập trình Bài 2 / Slide 21 of 23
<b>Độ ưu tiên của các tốn tử (tiếp theo) </b>
<b>Tốn tử </b> <b>Mơ tả </b> <b>Độ ưu tiên </b>
< Toán tử bé hơn
5
<= Toán tử bé hơn hoặc bằng
> Toán tử lớn hơn
>= Toán tử lớn hơn hoặc bằng
= Toán tử bằng
6
!= Tốn tử khơng bằng
AND Tốn tử AND 7
©NIIT
Mã giả
Begin
Character cName
Numeric nBioMarks, nPhyMarks, nChemMarks, nAverage
Display “Enter student Name”
Accept cName
Display “Enter marks of biology, physics and chemictry”
Accept nBioMarks, nPhyMarks, nChemMarks
nAverage=(nBioMarks+nPhyMarks+nChemMarks)/3
if nAverage > 75 and nBioMarks>75 then
Display “Eligible for bio-informatics course”
else
©NIIT
Thế giới lập trình Bài 2 / Slide 25 of 23
<b>Tóm tắt ( tiếp theo ) </b>
Có ba loại tốn tử: tốn tử tốn học, tốn tử quan hệ và toán tử
luận lý.
Toán tử toán học dùng để thực hiện các phép toán
Toán tử quan hệ dùng để so sách hai toán hạng, kết quả trả về
là TRUE hay FALSE.
©NIIT
Thế giới lập trình Bài 2 / Slide 27 of 23
©NIIT
Thế giới lập trình Bài 2 / Slide 1 of 16
Giới thiệu cấu trúc quyết định
Cấu trúc if
<sub>Cấu trúc quyết định cho phép chọn lựa thực hiện các lệnh dựa vào </sub>
việc đánh giá một điều kiện.
Cấu trúc quyết định được dùng trong giải thuật l:
ã Cu trỳc if
âNIIT
Thế giới lập trình Bài 2 / Slide 3 of 16
Theo sau cấu trúc if là một biểu thức điều kiện, trong đó dữ liệu
được so sánh.
Dựa vào kết quả của việc so sánh, một quyết định được thực hiện.
Có nhiều kiểu cấu trúc if, ba kiểu chính là:
Nếu điều kiện được chỉ định trong cấu trúc if đơn giản đúng thì các
lệnh trong khối if sẽ được thực hiện.
Cú pháp:
if (điều kiện)
begin
©NIIT
Thế giới lập trình Bài 2 / Slide 5 of 16
Ví <sub>dụ bài tốn nhập một số lớn hơn 10 và in câu </sub>
thơng báo thích hợp:
begin
numeric nNum1
display “Enter any number”
accept nNum1
if (nNum1 > 10)
begin
display nNum1
display “The number is greater than 10”
end
Nếu điều kiện được chỉ định trong cấu trúc if…else đúng thì các
lệnh trong khối if sẽ được thực hiện. Nếu điều kiện sai thì các lệnh
trong khối else sẽ được thực hiện.
Cú pháp:
if (điều kiện)
begin
các lệnh được thực hiện nếu điều kiện đúng
end
else
begin
©NIIT
Thế giới lập trình Bài 2 / Slide 7 of 16
Ví dụ: chương trình nhập hai số, tính tổng hai số
và cho biết tổng là chẵn hay lẻ.
begin
numeric nNum1, nNum2, nResult
display “Enter number1 and number2”
accept nNum1
accept nNum2
nResult = nNum1 + nNum2 //adds the values
and stores the result
//in nResult
if (nResult % 2 = 0)
begin
display nResult
display “The sum is even”
end
else
begin
display nResult
display “The sum is odd”
end
<b>Cấu trúc if lồng nhau </b>
Bạn có thể dùng cấu trúc if bên trong một cấu trúc if khác. Cấu trúc này
được gọi là cấu trúc if lồng nhau.
Cú pháp:
if (điều kiện)
begin
if (điều kiện)
begin
các lệnh được thực hiện nếu điều kiện đúng
end
else
begin
©NIIT
Thế giới lập trình Bài 2 / Slide 9 of 16
<b>Ví dụ: </b>
<b> xét giải thuật nhập điểm hai môn học của sinh viên và tính </b>
<b>điểm phần trăm. Giải thuật sẽ hiển thị điểm phần trăm cùng </b>
<b>với nhận xét “Pass”, “Fail” và “Distinction”. </b>
<b> Tiêu chuẩn để đưa ra nhận xét như sau: </b>
<b>• Distinction nếu điểm phần trăm lớn hơn 75. </b>
<b>• Pass nếu điểm phần trăm lớn hơn 50. </b>
numeric nSub1, nSub2, nPercent
display “Enter the marks scored in two subjects”
accept nSub1, nSub2
nPercent = ((nSub1 + nSub2)/200)*100
if (nPercent > 50)
begin //if the condition is true, the following
//statements are executed
if (nPercent > 75)
begin
display nPercent
display “Distinction”
end
else //if the value of nPercent is less than
75,
//the following statements are executed
begin
display nPercent
display “Good”
end
end
else //if the value of nPercent is less than 50, the
//following statements are executed
begin
©NIIT
Thế giới lập trình Bài 2 / Slide 11 of 16
Cấu trúc switch…case
Cú pháp:
switch (biểu thức)
begin
case hằng 1:
nhóm lệnh 1
break
case hằng 2:
nhóm lệnh 2
break
case hằng 3:
nhóm lệnh 3
break
default:
nhóm lệnh default
©NIIT
begin
numeric nCall
display “If you want to get connected to Marketing department,
press 1, Finance department press 2, Customer Care department
press 3, HR department press 4. If you are not sure press any
number other than 1 to 4, the call will be transferred to
Information department”
accept nCall
switch (nCall)
begin
Case 1: //case 1 begins
Transfer call to the Marketing department
break
Case 2: //case 2 begins
Transfer call to the Finance department
break
Case 3: //case 3 begins
Transfer call to the Customer Care department
break
Case 4: //case 4 begins
Transfer call to the HR department
break
default: //if none of the cases match, the following line is executed
Transfer call to the Information department
©NIIT
Thế giới lập trình Bài 2 / Slide 15 of 16
Trong bài học này chúng ta đã học:
Cấu trúc quyết định cho phép chọn lựa thực hiện các lệnh dựa vào
việc đánh giá một điều kiện.
Cấu trúc quyết định được dùng trong giải thuật là:
• Cấu trúc if
• Cấu trúc switch…case
Có nhiều kiểu cấu trúc if, ba kiểu chính là:
• Cấu trúc if đơn giản
• Cấu trúc if…else
• Cấu trúc if lồng nhau
Bài 1: Viết chương trình nhập tên và giới tính của một người sau
đó hiển thị câu chào hỏi phù hợp. Nếu là nam thì chào anh, nếu là
nữ thì chào chị.
Bài 2: Viết chương trình nhập điểm thi cho sinh viên và in nhận xét.
Nếu điểm dưới 5 thì “Hỏng”, nếu điểm lớn hơn 5 và nhỏ hơn 8 thì
“Đậu”, nếu điểm lớn hơn hay bằng 8 thì “Giỏi”.
©NIIT
Thế giới lập trình Bài 4 / Slide 1 of 16
Giới thiệu cấu trúc lặp
Vòng lặp while
Vòng lặp repeat … until
Vòng lặp for
Cấu trúc lặp là cấu trúc cho phép thực thi một đoạn mã trong
chương trình nhiều lần.
Quá trình lặp của đoạn mã này được điều khiển bằng một điều kiện
gọi là điều kiện lặp. Trong khi điều kiện lặp cịn đúng thì vịng lặp
sẽ được lặp lại. Khi điều kiện lặp là sai thì vịng lặp sẽ kết thúc và
lệnh ngay phía sau vịng lặp sẽ được thực thi.
©NIIT
Có 4 vịng lặp cơ bản
• Vịng lặp while
• Vịng lặp repeat – until
• Vịng lặp for