Đề tài Microsoft SQL Server và Postgre SQL

Mục lục

Phần 1 SQL Server.

 

I. Giới thiệu chung về SQL 1

II. Giới thiệu chung SQL Server 2

 

Phần 2 SQL Server.

I. SQL server 2000 3

II. Transact SQL 6

III. Cơ sở dữ liệu trên SQL Server 8

IV. Sao lưu và phục hồi dữ liệu 11

V. Tính toàn vẹn dữ liệu 13

VI. Truy vấn nâng cao 15

VII. Kỹ thuật Import và Export Data 18

VIII. SQL Server và mạng 20

 

Phần 3. Sơ lược ngôn ngữ Perl.

 

I. Cấu trúc của một chương trình Perl 25

II. Cách chạy một chương trình trong Perl 25

III. Các kiểu dữ liệu trong Perl 26

IV. Xuất và nhập dữ liệu trong Perl 27

V. Các phép toán trên Perl 27

VI. Các lệnh có cấu trúc 28

VII. Lệnh nhỏ 28

VIII. So khớp 30

IX. Lệnh thao tác trên biến băm và mảng 32

X. Toán tử và hàm trên xâu 33

 

 

Phần 4. PostGre SQL.

 

I. Giới thiệu về Postgre SQL 34

II. Cấu trúc của Postgress SQL 35

III. Đặc điểm nổi bật của Postgres SQL 37

IV. Lập trình Perl trong Postgre SQL 38

 

 

doc44 trang | Chia sẻ: netpro | Lượt xem: 5727 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đề tài Microsoft SQL Server và Postgre SQL, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
à phục hồi dữ liệu. 1. Chiến lược phục hồi dữ liệu. Chúng ta nên biết việc phục hồi dữ liệu là cực kì quan trọng. Khi những sự cố thường xuyên xảy ra như người dùng vô ý xoá đi một file cơ sở dữ liệu, file hệ thống, file transaction, bị tấn công bởi virus... phải đảm bảo hệ thống phục hồi đầy đủ trong thời gian sớm nhất. Bởi vậy, cần phải luôn kiểm tra trước khi hệ thống xảy ra sự cố và tránh số lần sao lưu dự phòng. 2 Một số phương pháp Back Up có trong SQL Server Full Database Backups: copy toàn bộ các file trong cơ sở dữ liệu. Như vậy, mọi thông tin về user, database object, system object đều được sao lưu đề phòng. Làm như thế này giúp cho khôi phục toàn bộ thông tin nhưng gây tốn bộ nhớ và tốn thời gian thực hiện. Differential Database Backups: copy toàn bộ thay đổi trong database sau lần full database backup trước đó. File or File Group Backups: copy một data file đơn hay một nhóm file Differantial File or File Group Backups: copy sự thay đổi của một file hay một nhóm file. Transaction Log Backups: ghi lại những transaction trong transaction log file kể từ lần transaction log backup gần nhất. Phương pháp này cho ta phục hồi dữ liệu vào một thời điểm nào đó trong quá khứ mà vẫn đảm bảo tính đồng nhất. Trong khi thực hiện quá trình sao lưu, mọi hoạt động của cơ sở dữ liệu cũng được back up nên có thể sao lưu ngay khi SQL đang chạy. 3. Một số mô hình phục hồi. Full Recovery Model: phục hồi dữ liệu ít rủi ro nhất. Mọi hoạt động trong chế độ này như insert, update, delete... kể cả insert bằng bulk insert hay bcp cũng được đưa vào file transaction log. Khi có sự cố ta có thể phục hồi dữ liệu tại một thời điểm nào đó trong quá khứ. Khi dữ liệu bị hỏng, sẽ được back up lại từ file transaction log. Bulk-Logged Recovery Model: phục hồi mang tính hành động. Có nghĩa là những hoạt động như bulk insert, bcp, creat index, write text, update text... chỉ được đưa vào transaction log file một lượng ít nhất thông tin nhằm cho biết hoạt động này có diễn ra mà không đi chi tiết về hoạt động đó. Còn những hoạt động của lệnh insert, update, delete vẫn được đưa đầy đủ vào file trên để tiện cho việc phục hồi. Simple Recovery Model: trong chế độ này file transaction log luôn được cập nhập nhưng lại không back up. Do vậy, chỉ có thể hồi phục dữ liệu trong 1 thời điểm gần đây nhất mà thôi. Có thể hình dung một cách đơn giản qua ví dụ dưới đây. Full Database BackUp Differental Database BackUp Thø S¸u Sù cè §­a vµo file Transaction Chủ Nhật Thứ Hai Thứ Ba Thứ Tư Thứ Năm Thứ Sáu Thứ Bảy   Có thể giải thích như sau: Các ngày trong tuần đều được đưa vào trong file transaction log. Trong đó riêng ngày chủ nhật được thực hiện Full Database BackUp còn 2 ngày thứ 3 và thứ 5 thực hiện lưu trữ những thay đổi. Không may, đến ngày thứ 6, máy tính hỏng đĩa cứng. Quá trình khôi phục bắt đầu được tiến hành. Chúng ta phải thống nhất rằng file transaction log được lưu trữ trong một đĩa cứng khác, nghĩa là file này không bị hỏng cùng với đĩa cứng lưu trữ dữ liệu. Trước tiên, file transaction log này được khôi phục. Sau đó, phục hồi dữ liệu từ ngày chủ nhật. Copy toàn bộ file dữ liệu vào từ đĩa backup đến đĩa mới và thực hiện toàn bộ transaction trong transaction log file. Tiếp tục, lphục hồi dữ liệu ( differental database backup) ngày thứ 5. Cuối cùng, phục hồi trong các file transaction log sau ngày thứ 5. Người ta gọi đây là quá trình Data Recovery. 4. BackUp Database Đây là quá trình cất giữ dữ liệu đề phòng sự cố. Trong SQL Server, chúng ta có thể tạo ra những backup device hay backup file để thực hiện lưu trữ dữ liệu. Các backup device thường là cố định để tiện cho việc lưu trữ nhiều lần. Dưới đây là một số thuật ngữ trong lưu trữ. Backup: copy toàn bộ một phần hay toàn bộ dữ liệu hay file transaction log, 1 file hay nhóm file để tạo ra một backup set. Backup set này thường chứa trên các backup device. Backup device: thường là một file hay một đĩa để ghi backup set vào backup media. Backup file: chứa backup set. Backup media: là đĩa hay băng từ chứa một hay nhiều backup set. V. Tính toàn vẹn dữ liệu. Khi nói đến tính toàn vẹn dữ liệu là nói đến độ chính xác, tin cậy của dữ liệu. Đảm bảo dữ liệu có độ tin cậy cao là một vấn đề quan trọng trong cơ sở dữ liệu. 1. Phương pháp đảm bảo an toàn dữ liệu. Trong SQL Server có một số cách nhằm đảm bảo tính an toàn dữ liệu. Data Type: trong khi thiết lập cơ sở dữ liệu, cần phải chọn kiểu dữ liệu cho từng cột. Như vậy, nếu cột ClassName, chẳng hạn, là kiểu String thì không thể nào đặt số thực vào giá trị cho cột này. Default Definition: một cột trong bảng được đặt dữ liệu mặc định trong bảng thì khi không có dữ liệu đưa vào nó dùng giá trị mặc định này để đưa vào bảng. Not Null Definition: khi một cột thực hiện cấm “not null” thì cột đấy phải có giá trị đưa vào. Nên biết, giá trị Null không phải là một string rỗng hay số nguyên 0. Identity Properties: data thuộc dạng ID đảm bảo tính duy nhất dữ liệu trong bảng. Contraints: là những ràng buộc đảm bảo tính chính xác của dữ liệu đưa vào. Rule: là Object mang tính backward-compatible nhằm giúp tương thích với các phiên bản trước đây của SQL Server. Rule tương đương với Check Constraint trong SQL Server 2000 nhưng dùng Check Constraint có tính chính xác cao hơn nhiều. Có thể sử dụng nhiều Constraint lên một cột trong khi chỉ có thể dùng một Rule lên một côt trong bảng. Check constraint là một thuộc tính của bảng trong khi Rule là một đối tượng riêng. Trigger: đây là một thủ tục lưu trữ đặc biệt được thực hiện khi một bảng được Update, Insert, hay Delete. Chẳng hạn, khi bán một món hàng thì tổng lượng hàng trong kho phải giảm đi một. Chức năng này do trigger quản lý. Dưới đây đi vào một số chi tiết. 2. Constraints. Đây là những thuộc tính mà bảng khi có sẽ tránh được các dữ liệu không chính xác đưa vào bảng. Bản thân, các giá trị Default hay Null cũng là những constraint. Có 4 loại constraint cơ bản. Đó là Primary Key Constraint, Unique Constraint, Foreign Key Constraint và Check Constraint. a. Primary Key Constraint (thuộc tính khoá chính). Trong một bảng thường có một hay nhiều cột có giá trị mang tính chất duy nhất để xác định một hàng bất trong bảng. Đó là cột có thuộc tính khoá chính. Chỉ một cột duy nhất được có thuộc tính này. Nhiều cột có thể cùng tham gia để tạo nên thuộc tính này. Khi Primary Key được tạo ra thì Unique Index sẽ tự động tạo ra để duy trì tính duy nhất. Nếu trong bảng chưa có Clustered Index một Unique và Clustered Index sẽ được tạo ra. Có nhiều cách cho phép tạo ra thuộc tính Primary Key cho một cột. CREATE TABLE MyTable ( StudentID INT PRIMARY KEY, StudentName VARCHAR(30) ) b Unique Constraint (thuộc tính duy nhất). Tạo thuộc tính này cho bảng nhằm bảo đảm giá trị của một cột nào đó không bị lặp lại. Cho dù có những điểm tương đồng giữa Unique và Primary Key nhưng chúng có những cách dùng khác nhau. Trong một bảng có thể có nhiều Unique nhưng chỉ duy nhất một Primary Key. Một cột cho phép chứa giá trị Null, thì Unique được đặt lên cột này nhưng Primary Key thì không. c. Foreign Key Constraint (thuộc tính khoá ngoài). Một cột hay nhiều cột được thiết lập thuộc tính này để liên kết với dữ liệu trong bảng khác. Có thể đặt nhiều Foreign Key trong cùng một bảng để liên kết với bảng khác. Foreign Key của một bảng này sẽ giữ thuộc tính khoá chính cho bảng khác hay tham chiếu với cột có tính Unique. Foreign Key có thể có chứa NULL. Mặc dù mục đích của Foreign Key là quản lý một bảng con nhưng thực tế nó kiểm soát luôn cả bảng cha. Bởi lẽ, khi ta xoá dữ liệu trong bảng cha thì bảng con không thể liên kết với bảng cha. Cho nên khi xoá thuộc tính Foreign Key phải kiểm soát vấn đề này. d. Check Constraint. Dùng để kiểm soát hay giới hạn giá trị đưa vào trong bảng dữ liệu. Tương tự như Foreign Key kiểm soát giá trị đưa vào một cột nhưng nó không dựa vào bảng cha để xác định mà nó dựa vào một biểu thức để xác định điều này. CREATE TABLE MyTable( StudentID INT PRIMARY KEY, StudentName VARCHAR(30), StudentScore INT limit_amount CHECK ( StudentScore BETWEEN 5 AND 8) ) Có thể tạo nhiều Check Constraint trên một cột. VI. Truy vấn nâng cao. 1. Dạng của câu lệnh truy vấn nâng cao. SELECT Select_List [ INTO New_Table] FROM Table_Source [ WHERE Search_Condition] [ GROUP BY Group_By_Expression] [ HAVING Search_Condition] [ ORDER BY Order_Expression[ASC | DESC]] a. SELECT: đây là lựa chọn trong bảng những trường quan trọng theo yêu cầu. Có 3 chức năng trong trường chọn này. - Distinct: cho phép chọn các cột có giá trị không trùng nhau. - Top n: cho phép chọn n hàng đầu tiên trong bảng. - As: dùng thay thế cho dễ đọc hơn với câu truy vấn. SELECT IdentityCol AS "Employee ID",HomePhone FROM Northwind.dbo.Employees ORDER BY LastName, FirstName ASC b INTO: đây là chọn dữ liệu từ một bảng hay nhiều bảng sau đó đưa dữ liệu vào trong một bảng mới. SELECT FirstName, LastName INTO EmployeeNames FROM Employers Dãy lệnh trên thực hiện lấy dữ liệu hai cột FirstName và LastName từ bảng Employers vào trong bảng EmployeeNames. c. GROUP BY và HAVING: là những dãy điều kiện đi kèm khi ta chọn dữ liệu trong bảng. SELECT FirstName, LastName INTO EmployeeNames FROM Employers GROUP BY FirstName HAVING LastName=’Do’ cũng như trên nhưng bây giờ có thêm điều kiện LastName là chuỗi Do và được nhóm lại bởi FirstName. d. UNION: kết nối 2 hay nhiều queries thành một kết quả. SELECT * MyTableOne UNION ALL SELECT * MyTableTwo thực hiện việc ghép nối 2 bảng có các cột và kiểu dữ liệu giống hệt nhau, chỉ khác nhau về giá trị trong các cột. Những hàng giống nhau được ghép mà không bị xoá bỏ. 2. Lệnh Joins. Lệnh này cho phép ghép nối các bảng có chung một hay nhiều cột lại với nhau. Có nhiều Joins. Dưới đây trình bày một số dạng. a. Inner Joins. inner joins Lệnh này giúp chọn dữ liệu từ 2 hay bảng có chung 1 hay nhiều cột. Các giá trị được này phải có ở cả 2 bảng. SELECT t.Title, p.Pub_name FROM Publishers AS p INNER JOIN Titles AS t ON p.Pub_id = t.Pub_id b. Left Outer Joins. Lệnh này lựa chọn dữ liệu từ 2 hay nhiều bảng mà những cột bảng thứ nhất không có bên bảng thứ 2 cộng với những cột có được từ Inner Joins. Số cột được chọn bằng số cột bảng thứ 1. SELECT a.Au_fname, a.Au_lname, p.Pub_name FROM Authors a LEFT OUTER JOIN Publishers p ON a.City = p.City c. Right Outer Joins. Lệnh này có tác dụng như trên nhưng lại thuộc về bảng 2. d. Full Outer Joins. SELECT a.Au_fname, a.Au_lname, p.Pub_name FROM Authors a FULL OUTER JOIN Publishers p ON a.City = p.City Lệnh này chọn tất cả những dữ liệu từ 2 hay nhiều bảng trong đó tất cả các cột của bảng thứ 1 và bảng thứ 2 đều được chọn các giá trị giống nhau chỉ lấy một lần. VII. Kỹ thuật Import và Export Data. 1. Import dùng lệnh bcp và BULK INSERT. bcp là lệnh của command promt dùng để import dữ liệu từ các file dữ liệu như file text, file excel vào SQL Server. Thậm chí nó có thể xuất dữ liệu từ SQL Server ra các file này. Từ đó, muốn chuyển giao dữ liệu từ Oracle sang SQL Server thì trước tiên dùng bcp xuất dữ liệu sang file text sau đó nhập lại vào SQL Server. Bulk Insert cũng là lệnh cho phép nhập dữ liệu vào SQL nhưng không thể xuất được dữ liệu. Khi nhập dữ liệu, thì bản thân file cho dữ liệu phải có dạng bảng hay cột. Đồng thời, trong SQL Server cũng phải tồn tại một bảng để lưu trữ dữ liệu được nhập vào. Còn khi xuất thì một file được tạo nếu nó chưa tồn tại hay được ghi đè nếu không tồn tại. bcp PracticeDB..Orders out c:\Orders.txt -c –T –t; Lệnh này được gõ trong cửa sổ Dos. Đây là xuất dữ liệu từ bảng Orders trong database PracticeDB ra file dạng văn bản Orders.txt, các cột ngăn với nhau bởi dấu ; Để xuất dữ liệu dùng “out” còn nhập dữ liệu dùng “in”. -c: là để chỉ xuất kiểu dữ liệu character. Nếu không có, mặc định là dùng TAB để phân cột và dùng xuống dòng để phân định hàng (“\n”). T: kết nối với cơ sở dữ liệu. Nếu user được phép vào hệ thống Window thì cũng được dùng SQL Server. t; : dấu đi sau t để dùng phân định cột. bcp "Select * From practiceDB..Orders" queryout c:\Orders.txt -c -SVinhtai -Usa –Pabc queryout: cho biết đầu ra là query chứ không là bảng. -S: tên của SQL Server -U: tên người dùng -P: mật khẩu người dùng. 2. Truy vấn phân tán. Khi muốn lựa chọn dữ liệu từ các hệ cơ sở dữ liệu như Access, DB2, Oracle hay một SQL Server khác... dùng truy vấn phân tán để thực thi. Để thực hiện điều này, ta dùng đến Linked Server hoặc Ad Hoc Computer Name. a. Linked Server. Đây là dùng một server ảo để truy nhập vào các hệ cơ sở dữ liệu khác. Sau khi cài đặt, nó bao gồm 4 phần: Tªn server Tªn CSDL Tªn b¶ng... Tªn ng­êi së h÷u Linked_Server_Name.Catalog.Shema.Object_Name. VD: Select * from OPENQUERY(LinkedPracticeDB,'Select * from Customers') b. Ad Hoc Computer Name. Đối với hệ thống cần thường xuyên truy nhập tới các hệ cơ sở khác chúng ta dùng Linked Server còn nếu ít hơn thì nên dùng Ad Hoc Computer Name. VD: Select * from OPENROWSET('Microsoft.jet.oledb.4.0', 'C:\PracticeDB.mdb'; 'admin';'', Customers) 3. Stored Procedure. Khi dùng Query Analyzer, có thể lưu các lệnh đã được biên dịch vào trong SQL Server dưới dạng stored proecedure. Như vậy, stored procedure là một nhóm câu lệnh T-SQL đã được biên dịch và chứa trong SQL Server dưới một cái tên nào đó và được xử lý như một đơn vị. Chú ý, đây không phải là các câu lệnh riêng lẻ. Các lệnh này làm tăng tốc độ tính toán cho hệ thống vì nó không cần phải kiểm tra cú pháp, biên dịch. Những điều này đã được thực hiện trước khi nó được lưu vào hệ thống. Có 5 loại stored procedure. System Stored Procedure: đây là những lệnh chứa trong master database thường bắt đầu bằng sp_ và chúng thuộc diện những hàm có sẵn nhằm quản lý, an ninh cho hệ thống. Local Stored Procedure: đây là loại thông dụng nhất. Nó có trong user database để thực hiện công việc của người dùng Temporary Stored Procedure: loại này tương tự như loại trên nhưng mang tính chất tạm thời. Nó sẽ bị mất đi khi mà kết nối tạo ra nó ngắt hay SQL Server ngừng hoạt động. Bản thân loại này lại chia ra 3 loại nhỏ hơn. Loại cho cục bộ bắt đầu bằng dấu # và sẽ mất khi kết nối tạo ra nó mất. Loại cho toàn cục bắt đầu bằng ##, tồn tại cho nhiều kết nối. Và loại được tạo trực tiếp trên TempDB có thể thiết lập được quyền, nó chỉ mất khi hệ thống tắt còn vẫn hoạt động khi mất đi kết nối. Extended Stored Procedure: đây là loại sử dụng chương trình bên ngoài đã được biên dịch trở thành một thư viện động để tăng cường chức năng cho SQL Server. Loại này bắt đầu bằng xp_. Remote Stored Procedure: đây là loại dùng để gọi stored procedure của các server khác. VIII. SQL Server và mạng. SQL Server trong thực tế sử dụng một cách rất đa dạng. Nó có thể ghép nối với các SQL Server khác, liên kết với các client, hoặc thực hiện cùng trình ứng dụng ngay trên một máy tính... 1. Các Server SQL được liên kết với nhau. Server Area Networrk (SAN) LAN/WAN Internet Browsers COM++ ASP IIS SQL Server Với những trang Web có cơ sở dữ liệu lớn vượt quá tải trọng của SQL Server riênglẻ thì việc kết hợp các SQL Server vào với nhau là một việc quan trọng. Để kết nối các SQL Server gần nhau, người ta dùng các mạng SAN nhằm hỗ trợ cấp độ chuyển thông báo cao, giảm tải trọng của CPU, và thời gian chờ thông báo của các SAN đáng tin cậy hơn LAN hay WAN. 2 SQL Server dưới dạng quản lý cơ sở dữ liệu trong mạng. SQL Server client application SQL Server client application SQL Server SQL Server client application Server application Internet Information Services (IIS) Internet server Database computer Client Computer Các user chạy trình ứng dụng trên máy tính của mình kết nối đến một instance của SQL Server đang chạy trên một máy tính server. Mô hình quản lý dữ liệu ở vị trí trung tâm này có nhiều điểm thuận lợi. Mỗi hạng mục dữ liệu đều được lữu trữ ở vị trí trung tâm và các user đều có thể làm việc với nó. Điều này loại đi các sự cố xảy ra với các user đang thực hiện trên một thông tin. 3 SQL Server dưới dạng quản lý cơ sở dữ liệu cùng ứng dụng trong desktop. Client application Client application Client application SQL Server Database Desktop computer Các trình ứng dụng cùng thực hiện chung với SQL Server trên một máy tính tương tự như các user thực hiện trình ứng dụng của họ kết nối với trình cơ sở dữ liệu đang chạy trên server từ xa. Sự khác biệt cơ bản là các kết nối cục bộ được thực hiện qua các IPC cục bộ. 4. Quá trình trao đổi thông tin giữa một trình ứng dụng SQL Server chạy trên cùng một máy tính với một instance của SQL Server. SQL Server 2000 sử dụng các thành phần được gọi là client Net-Libraris để ngăn OLE DB Provider, SQL Server ODBC driver và DB-Library DLL không trao đổi thông tin với các IPC. Quá trình quản lý trao đổi thông tin giữa SQL Server và các client diễn ra như sau: Trình ứng dụng gọi đến OLE DB, ODBC, DB-Library, hay Embedded SQL API. Điều này làm cho OLE DB Provider, SQL Server ODBC driver và DB-Library DLL được SQL Server sử dụng để trao đổi thông tin. OLE DB, ODBC driver, DB-Library DLL gọi một client Net-Library. Sau đó, client Net-Library gọi một IPC API. Các cuộc gọi của client Net-Library chuyển đến một server Net-Library và tiếp tục chuyển tới instance của SQL Server. Quá trình truyền tin từ SQL Server tới client diễn ra ngược lại. Hình vẽ dưới đây mô tả quá trình này. OLE DB client application ODBC client application DB-Library client application OLE DB provider ODBC driver DB-Library DLL Client Shared Memory Net- Library Client Shared Memory Net- Library Client Shared Memory Net- Library Shared Memory Server Shared Memory Net-Library Open Data Service SQL Server 5. Quá trình trao đổi thông tin giữa một trình ứng dụng trên client với một instance SQL Server trên một máy tính riêng lẻ. Hình vẽ dưới đây minh hoạ một ví dụ đơn giản đường dẫn trao đổi thông tin khi một trình ứng dụng SQL Server kết nối qua mạng LAN hay WAN sang một instance của SQL Server trên một máy tính riêng rẽ. OLE DB application OLE DB provider for SQL Server Client Named Pipes Net-Library ODBC application SQL Server ODBC driver Client Multi-protocol Net-Library NWLink Network NeBeUI Network TCP/IP Network Server Named Pipes Net Library Server Named Pipes Net Library Server Named Pipes Net Library Open Data Services SQL Server DB- Library application SQL Server DB-Library DLL Client TCP/IP Socket Net-Library Đến đây chúng em xin kết thúc nghiên cứu của SQL Server. Qua một phần ngắn như trên, khó có thể trình bày tất cả những tính năng của SQL. Một dạng khác cũng khai thác, quản trị cơ sở dữ liệu dựa trên SQL là Postgre SQL. Chúng khác nhau căn bản ở SQL Server của hãng Microsoft là mã nguồn đóng còn Postgre SQL thì ngược lại. Xin xem phần 4 để biết thêm chi tiết. Phần 3. Sơ lược ngôn ngữ Perl. Perl được viết tắt từ Practical Extraction and Report Language. Ngôn ngữ này lần đầu tiên xuất hiện trên hệ điều hành Unix và được viết bởi Larry Wall. Nó là một trình thông dịch nằm trung gian giữa hệ vỏ Shell và ngôn ngữ lập trình cấp thấp C. Bây giờ, Perl đã phát triển trên các hệ điều hành như Window, Linux, Apple Macintosh... Lập trình Perl tỏ ra đặc biệt mạnh trong các vấn đề xử lý dữ liệu chuỗi và các công việc quản trị hệ thống. I. Cấu trúc của một chương trình Perl. Perl là một ngôn ngữ dùng để thông dịch. Cho nên, nó không cần biên dịch từng bước. Bạn chỉ cần gõ lệnh trong một file văn bản để tạo chương trình nguồn và Perl sẽ xử lý ngay lập tức. Dưới đây là một chương trình đơn giản về Perl. #!/bin/perl –w $w = 20.0; # in kN/m $l = 8; # in m $Mmax = $w*$l**2/8; print( "The maximum moment is $Mmax kN-m\n" ); Chương trình trên gồm: Dấu “ # ” cho biết đây là dòng chú thích. Trong quá trình tiến hành xử lý Perl sẽ bỏ qua dòng này. Mục đích của chúng là làm cho chương trình trở nên dễ hiểu. Song hãy cẩn thận với dòng 1. Bắt đầu bằng dấu “#!” một lời giới thiệu cấp cao trên DOS. Nó có tác dụng yêu cầu DOS triệu gọi perl trong thư mục bin nhằm thực hiện các lệnh ở bên dưới. Tùy chọn “-w” cho biết perl sẽ thông báo lỗi trước khi thực hiện. Kết thúc mỗi dòng lệnh là một dấu chấm phẩy để ngăn cách câu lệnh ngoại trừ dòng cuối cùng của tập tin có hay không có “;” cũng được. Các biến trong Perl được xác định bằng dấu $. Rõ ràng trong chương trình trên không cần sự khai báo biến trước khi dùng . Lệnh print là lệnh in ra màn hình, nó gần giống như printf của C. II.Cách chạy một chương trình trong Perl. Đầu tiên, bạn hãy soạn thảo một chương trình nguồn trong một file văn bản nào đó. Chẳng hạn, vidu1.pl và đặt nó trong thư mực vidu tại ổ đĩa C Hãy đến dấu nhắc con trỏ DOS và gõ: c:\vidu>perl vidu1.pl Nhớ là đuôi file là .pl thì perl mới thực hiện. III. Các kiểu dữ liệu trong Perl Trong Perl có 3 loại dữ liệu cơ bản : 1) Kiểu vô hướng (scalar) 2) Kiểu mảng (array) 3) Kiểu biến băm (associate array hay hash). Sau đây sẽ đi chi tiết các kiểu dữ liệu trên. 1. Biến vô hướng. Trong Perl các biến vô hướng được bắt đầu từ $. Vi dụ: $a,$b... Bản thân các biến này mang rất nhiều kiểu được định nghĩa trong các ngôn ngữ khác như C, Pascal... Đó là các kiểu string, int, char, real... # Bien dang sau $c="HELLO WORLD"; print "$c\n"; # Bien dang hex $a= 0xffff; print $a,"\n"; Kết quả in ra : HELLO WORLD 65535 2. Kiểu mảng. Đăng kí kiểu mảng trong Perl bắt đầu bằng kí hiệu @. Trong mảng luôn đánh chỉ số từ 0. @mg1 => có n phần tử, chỉ số của mảng đánh bắt đầu từ 0 @mg2(1,2,3,4( => có 4 phần tử, chỉ số của mảng đánh bắt đầu từ 0 @mg3(’a’,’b’( =>có 2 phần tử, chỉ số của mảng ‘a’ và ‘b’ chứ không phải là từ 0 như ở trên. Mỗi phần tử của mảng có thể chứa giá trị tương ứng là nguyên, thực, sâu, giá trị hex, giá trị oct hoặc trống. Để truy nhập vào từng phần tử của mảng ta dùng kiểu vô hướng . $mg2[1] hay $mg3{’a’} 3. Biến băm Trong Perl có thêm một kiểu giá trị mới so với C. Đó là biến băm (hash) hay còn gọi là mảng kết hợp (associative arrays). Không như mảng ở trên, chỉ số của biến băm là các sâu còn gọi là khoá(key) trỏ đến giá trị (value) . Có hai cách để khai báo biến băm. 1) Dùng kí hiệu “ =>” chỉ từ khoá đến giá trị . 2) Giữa khóa và giá trị cách nhau bằng dấu phẩy. Chú ý rằng giá trị mang kiểu vô hướng, nghĩa là nó có thể bằng sâu, nguyên, thực, giá trị hex... Để truy xuất phần tử của biến băm, người ta dùng: $hash{ khoa} Ví dụ: %bbam1=( "ngoc" => "987", hung => "654", ); print $bbam1{ngoc},"\n"; print $bbam1{hung},"\n"; IV. Xuất và nhập dữ liệu trong Perl. 1.Lệnh xuất dữ liệu: Lệnh print. Lệnh này có tác dụng xuất dữ liệu ra màn hình. Trong Perl thì các kí tự “ ”, ‘ ’ đều mô tả xâu. Lệnh print không sử dụng định dạng như printf. Vì Perl là ngôn ngữ chuyên về xử lý file cho nên print được sử dụng rộng rãi hơn printf. Lệnh print có những kí hiệu: \ t: tab \ n: tạo dòng mới.(new line) \ r : trả về.(return) \ b: xoá kí tự trước nó .(backspace) \ a: kêu bíp một tiếng.(alarm) \ e: escape \ 033: kí tự octal \ \ : in ra \ \’ : in ra ’ 2. Lệnh nhập dữ liệu: lệnh Trong Perl thì thiết bị vào chuẩn được đặt trong STDIN nên hai lệnh sau là như nhau: $a=; và $a=; Song hãy cẩn thận, khi nhập dữ liệu phải Enter để tiếp tục lệnh khác cho nên dòng vào có kí tự Enter ở cuối dòng vào. Người ta dùng lệnh chomp để xóa kí tự ở cuối dòng vào. $a=”hellos”; chomp ($a); # sẽ là hello V.Các phép toán trên Perl. 1.Phép toán. Trong Perl cũng có các phép toán : a) + (cộng); - (trừ); * (nhân); / (chia) ;% lấy phần dư b) ** : mũ c) ++: tăng giá trị lên một đơn vị -- : giảm giá trị đi một đơn vị Nhưng mạnh hơn C, phép ++ có những tác dụng khác nữa. Chẳng hạn, ++1 cho kết quả 2, ++ chữ cái cho kết quả tăng giá trị của chữ cái trong bảng mã ASC lên một đơn vị. Trong trường hợp mà ++z thì lại quay về a song có nhớ nên thành aa. Đối với phép -- thì chỉ tác dụng với số chứ không có tác dụng với chữ cái vì nếu giảm đi thì trong mọi trường hợp đều đưa về -1. 2. Các hàm toán học. ( Hàm cos(expr): trả về cosin của expr (expr phải là radian) ( Hàm sin(expr) : trả về sin của expr (expr phải là radian) ( Hàm exp(expr): trả về e mũ expr ( Hàm int (expr): lấy phần nguyên của expr . ( Hàm log(expr): trả về loga cơ số e của expr ( Hàm sqrt(expr) : lấy căn bậc hai expr. VI .Các lệnh có cấu trúc. 1. Câu lệnh if. if (biểu thức điều kiện 1)( Lệnh 1; (elsif (biểu thức điều kiện 2)( Lệnh 2; (elsif (biểu thức điều kiện 3)( Lệnh 3; }else{ Lệnh 4; }; Tuỳ theo từng trường hợp mà có nhiều biểu thức điều kiện hay không. 2) Lệnh unless. Về cấu trúc nó giống hệt như lệnh if song về ý nghĩa thì ngược lại. unless ( biểu thức điều kiện 1)( Lệnh 1 ; (elsif (biểu thức điều kiện 2)( Lệnh 2 ; }else{ Lệnh 3 ; } 3) Lệnh lặp for for( biểu thức 1; biểu thức 2 ; biểu thức 2) ( Lệnh ; }; Cho dù khối lệnh thực hiện chỉ có 1 lệnh thì bạn vẫn phải đặt nó trong dấu ngoặc nhọn (lệnh ( 4) Lệnh while Dạng 1: while (biểu thức điều kiện )( # Nếu điều kiện đúng thì Khối lện

Các file đính kèm theo tài liệu này:

  • docCông nghệ phần mềm MS SQL Server và Postgre SQL.doc