Bài giảng Các hệ thống mã nguồn mở - Thầy Ngô

1. Khái niệm về phần mềm nguồn mở 2. Lợi ích của phần mềm nguồn mở 3. Nhược điểm của các hệ thống mã nguồn mở 4. Các loại giấy phép 5. Phân loại các nhóm phần mềm mã nguồn mở 6. Phần mềm miễn phí dạng dịch vụ (SaaS) 7. Yêu cầu đề tài

pdf256 trang | Chia sẻ: candy98 | Lượt xem: 780 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Các hệ thống mã nguồn mở - Thầy Ngô, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1TỔNG QUAN VỀ CÁC HỆ THỐNG MÃ NGUỒN MỞ Chương 1: Môn Các Hệ Thống Mã Nguồn Mở 22/03/2016 2Nội Dung 1. Khái niệm về phần mềm nguồn mở 2. Lợi ích của phần mềm nguồn mở 3. Nhược điểm của các hệ thống mã nguồn mở 4. Các loại giấy phép 5. Phân loại các nhóm phần mềm mã nguồn mở 6. Phần mềm miễn phí dạng dịch vụ (SaaS) 7. Yêu cầu đề tài Môn Các Hệ Thống Mã Nguồn Mở 3Khái niệm về phần mềm nguồn mở • Phần mềm nguồn mở (PMNM) là phần mềm được cung cấp với cả mã và nguồn. • Không chỉ là miễn phí về giá mua mà chủ yếu là miễn phí về bản quyền: người dùng có quyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên tắc chung quy định trong giấy phép phần mềm nguồn mở (General Public Licence - GPL). Môn Các Hệ Thống Mã Nguồn Mở 4Khái niệm về phần mềm nguồn mở (tt) • PMNM không phải lúc nào cũng miễn phí. • Nhà cung cấp PMNM có thể không thu phí sử dụng phần mềm nhưng có thể thu phí các dịch vụ khác như: bảo hành, huấn luyện, nâng cấp, tư vấn, vv tức là những dịch vụ để phục vụ người dùng, nhưng không được bán các sản phẩm nguồn mở vì nó là tài sản của trí tuệ chung, không phải là tài sản riêng của một nhà cung cấp nào. • Hoặc các công cụ hỗ trợ thêm cho phần mềm có thể bị thu phí. Môn Các Hệ Thống Mã Nguồn Mở 5Khái niệm về phần mềm nguồn mở (tt) • Các nhà cung cấp PMNM có quyền không hỗ trợ bạn trong quá trình sử dụng phần mềm hoặc phải mất một mức phí để được hỗ trợ. • Phần này không có trong giấy phép sử dụng PMNM. Môn Các Hệ Thống Mã Nguồn Mở 6Khái niệm về phần mềm nguồn mở (tt) • Người dùng có đầy đủ quyền truy cập vào mã nguồn. • Tự do sử dụng chương trình cho mọi mục đích, quyền tự do để nghiên cứu cấu trúc của chương trình, chỉnh sữa phù hợp với nhu cầu, truy cập vào mã nguồn, quyền tự do phân phối lại các phiên bản cho nhiều người, quyền tự do cải tiến chương trình và phát hành những bản cải tiến vì mục đích công cộng. Môn Các Hệ Thống Mã Nguồn Mở 7Lịch sử phát triển • 1983: Xu hướng phần mềm miền phí “Free Software” bắt đầu • 1995: Free Software Foundation đưa ra định nghĩa về phần mềm miễn phí. • 1998: Tổ chức “Open Source Initiative” do Eric S. Raymond và Bruce Perens thành lập đã đổi thuật ngữ “phần mềm miễn phí” thành “phần mềm nguồn mở” • Miễn phí • Có source code • Có thể thay đổi, tinh chỉnh source code Môn Các Hệ Thống Mã Nguồn Mở 8Lợi ích của phần mềm nguồn mở • Tính an toàn • Tính ổn định/đáng tin cậy • Các chuẩn mở và việc không phải lệ thuộc nhà cung cấp • Giảm phụ thuộc vào nhập khẩu • Phát triển năng lực của ngành công nghiệp phần mềm địa phương • Vấn đề vi phạm bản quyền, quyền sở hữu trí tuệ, và tính tuân thủ WTO • Nội địa hoá Môn Các Hệ Thống Mã Nguồn Mở 9Nhược điểm của PMNM • Nhiều lĩnh vực chưa có sản phẩm phần mềm hoàn thiện • Không hoàn toàn tương thích với PMNĐ • Thiếu tính tiện dụng vốn là đặc trưng của phần mềm thương mại • Không có sự hỗ trợ một cách chính thức Môn Các Hệ Thống Mã Nguồn Mở 10 Các loại giấy phép • Phần mềm thương mại (Commercial Software) • Là phần mềm thuộc bản quyền của tác giả hoặc nhà sản xuất, chỉ được cung cấp ở dạng mã nhị phân, người dùng phải mua và không có quyền phân phối lại. • Phần mềm thử nghiệm giới hạn (Limited Trial Software) • Là những phiên bản giới hạn của các phần mềm thương mại được cung cấp miễn phí nhằm mục đích thử nghiệm, giới thiệu sản phẩm và kích thích người dùng quyết định mua. Loại sản phấm này không chỉ giới hạn về tính năng mà còn giới hạn về thời gian dùng thử (thường là 60 ngày). Môn Các Hệ Thống Mã Nguồn Mở 11 Các loại giấy phép Giấp phép đại chúng GNU (General Public License) • Người phổ biến một chương trình đã được cấp phép đại chúng phải đồng thời phổ biến luôn cả mã nguồn cho người nhận • Nếu người phổ biến chương trình đã thực hiện một sửa đổi gì đó cho phần mềm thì những sửa đổi đó cũng phải được cấp phép theo chế độ giấy phép đại chúng • Người phổ biến chương trình không áp dụng với người nhận bất cứ hạn chế nào không thuộc phạm vi giấy phép đại chúng • Người nhận một phần mềm đã cấp phép đại chúng sẽ được trao y nguyên mọi quyền như người phổ biến gốc, tức là quyền sao chép, chỉnh sửa và phổ biến phần mềm Môn Các Hệ Thống Mã Nguồn Mở 12 Các loại giấy phép Giấp phép BSD (Berkeley System Distribution) • Ghi nhận công lao của tác giả đầu tiên làm ra phần mềm bằng cách đưa vào file mã nguồn các thông tin bản quyền gốc • Người phát hành ban đầu sẽ không chịu trách nhiệm trước pháp luật về bất cứ thiệt hại nào phát sinh do sử dụng những phần mềm nguồn mở đã được chỉnh sửa Môn Các Hệ Thống Mã Nguồn Mở 13 Các loại giấy phép Môn Các Hệ Thống Mã Nguồn Mở Giấp phép đại chúng Giấp phép BSD Phải phổ biến mã nguồn gốc Có Không Phải phổ biến mã nguồn người dùng tạo mới Có Không Mã nguồn tạo mới phải được cấp phép đại chúng Có Không 14 Các loại giấy phép khác Môn Các Hệ Thống Mã Nguồn Mở • Academic Free License • Adaptive Public License • Apache Software License • Apache License, 2.0 • Apple Public Source License • Artistic license • Attribution Assurance Licenses • New BSD license • Computer Associates Trusted • Open Source License 1.1 • Common Development and • Distribution License • Common Public License 1.0 • CUA Office Public License Version 1.0 • EU DataGrid Software License • Eclipse Public License • Educational Community License • Eiffel Forum License • Eiffel Forum License V2.0 • Entessa Public License • Fair License • Frameworx License • GNU General Public License • (GPL) • GNU Library or "Lesser" • General Public License (LGPL) • Historical Permission Notice and Disclaimer 15 Các loại giấy phép khác Môn Các Hệ Thống Mã Nguồn Mở • IBM Public License • Intel Open Source License • Jabber Open Source License • Lucent Public License (Plan9) • Lucent Public License Version 1.02 • MIT license • MITRE Collaborative Virtual Workspace License (CVW License) • Motosoto License • Mozilla Public License 1.0 (MPL) • Mozilla Public License 1.1 (MPL) • NASA Open Source Agreement 1.3 • Naumen Public License • Nethack General Public License • Nokia Open Source License • OCLC Research Public License 2.0 • Open Group Test Suite License • Open Software License 16 Các loại giấy phép khác Môn Các Hệ Thống Mã Nguồn Mở • PHP License • Python license (CNRI Python License) • Python Software Foundation License • Qt Public License (QPL) • RealNetworks Public Source License V1.0 • Reciprocal Public License • Ricoh Source Code Public License • Sleepycat License • Sun Industry Standards Source License (SISSL) • Sun Public License • Sybase Open Watcom Public License 1.0 • University of Illinois/NCSA Open Source License • Vovida Software License v. 1.0 W3C License • wxWindows Library License • X.Net License • Zope Public License • zlib/libpng license 17 Phân loại phần mềm nguồn mở • Các phần mềm NM có thể được phân loại theo chức năng • Hệ điều hành • Cơ sở dữ liệu • Ứng dụng trên Desktop • Ứng dụng Server • Ứng dụng Web Môn Các Hệ Thống Mã Nguồn Mở 18 Phân loại phần mềm nguồn mở • Nhóm hệ điều hành • Linux • Unix • Android • Môn Các Hệ Thống Mã Nguồn Mở 19 Phân loại phần mềm nguồn mở (tt) • Nhóm Cơ sở dữ liệu • MySQL • Cassandra • PostgreSQL • Môn Các Hệ Thống Mã Nguồn Mở 20 Phân loại phần mềm nguồn mở (tt) • Nhóm ứng dụng Desktop • Open Office • Xara Xtreme • GZIP • Eclipse • Môn Các Hệ Thống Mã Nguồn Mở 21 Phân loại phần mềm nguồn mở (tt) • Nhóm Server • Webserver • Apache • NGINX • Lighttpd • Mail Server • SENDMAIL • QMAIL • POSTFIX • EXIM Môn Các Hệ Thống Mã Nguồn Mở • File Server • XtreemFS • HFS • Openfiler 22 Phân loại phần mềm nguồn mở (tt) • Nhóm ứng dụng Web trên nền PHP: loại ứng dụng rộng rãi hiện nay Môn Các Hệ Thống Mã Nguồn Mở 23 Phân loại phần mềm nguồn mở (tt) • Loại hệ thống chuyên về CMS/Portal Môn Các Hệ Thống Mã Nguồn Mở 24 Phân loại phần mềm nguồn mở (tt) • Loại hệ thống chuyên về Forum Môn Các Hệ Thống Mã Nguồn Mở 25 Phân loại phần mềm nguồn mở (tt) • Loại hệ thống chuyên về Blog Môn Các Hệ Thống Mã Nguồn Mở 26 Phân loại phần mềm nguồn mở (tt) • Loại hệ thống chuyên về thương mại điện tử (eCommerce) Môn Các Hệ Thống Mã Nguồn Mở 27 Phân loại phần mềm nguồn mở (tt) • Loại hệ thống chuyên về ERP Môn Các Hệ Thống Mã Nguồn Mở 28 Phân loại phần mềm nguồn mở (tt) • Loại hệ thống chuyên về Giáo dục (Education) Môn Các Hệ Thống Mã Nguồn Mở 29 Phân loại phần mềm nguồn mở (tt) • Loại hệ thống chuyên về Social Networking Môn Các Hệ Thống Mã Nguồn Mở 30 Phân loại phần mềm nguồn mở (tt) • Các loại hệ thống Open Source Web trên nền .NET Môn Các Hệ Thống Mã Nguồn Mở 31 Phần mềm miễn phí dạng dịch vụ (SaaS) Môn Các Hệ Thống Mã Nguồn Mở 32 Phần mềm miễn phí dạng dịch vụ (SaaS) Môn Các Hệ Thống Mã Nguồn Mở • Bên cạnh phần mềm tự do và mã nguồn mở, xu hướng hiện tại cung cấp phần mềm dưới dạng dịch vụ. • Chuyển từ “mua” sang “thuê” phần mềm. • Hay cung cấp miễn phí với tính năng tối thiểu,trả phí với tính năng mở rộng - Freemium • Dùng bao nhiêu trả tiền bấy nhiêu. 33 Phần mềm miễn phí dạng dịch vụ (SaaS) Môn Các Hệ Thống Mã Nguồn Mở • SaaS – Software as a Service • Dữ liệu được lưu trữ trên “mây” (Internet) • Truy cập phần mềm qua web browser 34 Phần mềm miễn phí dạng dịch vụ (SaaS) Môn Các Hệ Thống Mã Nguồn Mở Lợi ích • Truy cập được từ bất cứ đâu, bất cứ thời điểm nào • Chi phí thường rẻ hơn mua phần mềm dạng sảnphẩm (không phải trả tiền cho những tính năngkhông dùng) • Không cần sắm, cài đặt, bảo trì, hệ thống hay máy chủ. Đơn giản chỉ cần có thiết bị truy cập được và Internet. • Không phụ thuộc nền tảng (platform) 35 Phần mềm miễn phí dạng dịch vụ (SaaS) Môn Các Hệ Thống Mã Nguồn Mở Nhược điểm • Kết nối Internet và tốc độ đường truyền • Khó tùy biến để đáp ứng nhu cầu đặc thù của doanh nghiệp • Rủi ro về bảo mật thông tin • Lệ thuộc vào nhà cung cấp dịch vụ 36 Hỏi Đáp ? Môn Các Hệ Thống Mã Nguồn Mở 37 TỔNG QUAN VỀ WAMP SERVER Chương 2: Môn Các Hệ Thống Mã Nguồn Mở 22/03/2016 38 Nội Dung 1. Giới thiệu về Wamp Server 2. Các thành phần trong Wamp Server 3. Cài đặt Wamp Server 4. Sử dụng Wamp Server Môn Các Hệ Thống Mã Nguồn Mở 39 Giới Thiệu Về Wamp Server • WampServer là một môi trường phát triển web cho Windows với các thành phần: • Apache • PHP • MySQL • Website: • Phiên bản mới nhất là WampServer 2.2E Môn Các Hệ Thống Mã Nguồn Mở 40 Giới Thiệu Về Wamp Server Môn Các Hệ Thống Mã Nguồn Mở • Tự động cài đặt toàn hệ thống, dễ sử dụng • Dễ dàng nâng cấp phiên bản mới của các module con (Apache, PHP, MySQL) • Tự nhận diện sự tương thích các phiên bản của các module với nhau 41 Giới Thiệu Về Wamp Server Môn Các Hệ Thống Mã Nguồn Mở • Tự động cài đặt toàn hệ thống, dễ sử dụng • Dễ dàng nâng cấp phiên bản mới của các module con (Apache, PHP, MySQL) • Tự nhận diện sự tương thích các phiên bản của các module với nhau 42 Các Thành Phần Trong WampServer 2.2E • Webserver: Apache 2.4.2 • CSDL: MySQL 5.5.24 • PHP Engine: 5.4.3 • Website quản lý Database Server: phpMyAdmin • Quản lý Webserver bằng Website Môn Các Hệ Thống Mã Nguồn Mở 43 Cài đặt Wamp Server • Download WAMP SERVER từ địa chỉ (lưu ý: chọn đúng bản 32bit hoặc 64bit • Double click vào file cài đặt Môn Các Hệ Thống Mã Nguồn Mở 44 Cài đặt Wamp Server • Chọn thư mục chứa Wamp Môn Các Hệ Thống Mã Nguồn Mở 45 Cài đặt Wamp Server • Chọn trình duyệt mặc định cho Wamp Môn Các Hệ Thống Mã Nguồn Mở 46 Cài đặt Wamp Server • Chọn tài khoản mail để thực thi chức năng gửi mail trong website Môn Các Hệ Thống Mã Nguồn Mở 47 Cài đặt Wamp Server • Chọn tài khoản mail để thực thi chức năng gửi mail trong website Môn Các Hệ Thống Mã Nguồn Mở 48 Sử dụng Wamp Server – Khởi động • Double click vào biểu Wamp trên Desktop • Sau khi khởi động, Wamp Server sẽ tự động chạy 2 dịch vụ là • Wampapache • Wampmysqld Môn Các Hệ Thống Mã Nguồn Mở 49 Sử dụng Wamp Server – Khởi động • Một biểu tượng xuất hiện ở khay hệ thống cho phép tắt, khởi động lại Wamp cũng như các dịch vụ Môn Các Hệ Thống Mã Nguồn Mở 50 Sử dụng Wamp Server – Khởi động • Chạy thử trang thông tin của Server • Click localhost Môn Các Hệ Thống Mã Nguồn Mở 51 Sử dụng Wamp Server – Cấu Hình Port • Sau khi đặt, Apache sử dụng port 80 (port chuẩn của Windows) • IIS cũng sử dụng port 80 • Khắc phục • Thay port của IIS: 80  81 (hoặc port khác) • Thay port của Apache: 80  81 Môn Các Hệ Thống Mã Nguồn Mở 52 Sử dụng Wamp Server – Cấu Hình Port • Thay đổi Port cho Apache: 80  81 • Mở tập tin http.conf trong thư mục C:/wamp/bin/apache/Apache.x.y.z/conf/ bằng một trình soạn thảo, notepad chẳng hạn. • Tìm Listen 80 và sửa lại thành Listen 81 Môn Các Hệ Thống Mã Nguồn Mở 53 Sử dụng Wamp Server – Cấu Hình Port • Thay đổi Port cho Apache: • Thay đổi tiếp các alias ở khay hệ thống chạy bằng port 81 • Mở tập tin wampmanager.ini trong thư mục /wamp/. • Thay đổi tất cả các dòng thành Môn Các Hệ Thống Mã Nguồn Mở 54 Sử dụng Wamp Server – PhpMyAdmin • Wamp cung cấp một hệ thống website PhpMyAdmin để quản lý CSDL trong MySQL Môn Các Hệ Thống Mã Nguồn Mở 55 Sử dụng Wamp Server – PhpMyAdmin • Tạo CSDL mới Môn Các Hệ Thống Mã Nguồn Mở 56 Sử dụng Wamp Server – PhpMyAdmin • Các chức năng Môn Các Hệ Thống Mã Nguồn Mở 57 Sử dụng Wamp Server – PHP Website • Chạy thử một website PHP • Tạo một trang web php (vd: test.php) và gõ lệnh sau: echo ‘Chào bạn đến với Website’ • Lưu trang web vào thư mục C:\Wamp\www • Chạy trang web: mở trình duyệt và gõ đường dẫn Môn Các Hệ Thống Mã Nguồn Mở 58 Lưu ý • Ngoài WampServer, sinh viên có thể sử dụng các loại Web Server khác (tùy thích) • AppServer • Zend Server • XampServer Môn Các Hệ Thống Mã Nguồn Mở 59 Hỏi Đáp ? Môn Các Hệ Thống Mã Nguồn Mở 60 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL Chương 3: Môn Các Hệ Thống Mã Nguồn Mở 22/03/2016 61 Nội Dung 1. Tổng quan về MySQL 2. Khởi động và tắt dịch vụ MySQL 3. Truy cập MySQL 1. MySQL Console 2. PhpMyAdmin 4. Thay đổi password cho root (tài khoản mặc định) 5. Các thao tác trên CSDL 6. Định nghĩa bảng 7. Truy vấn dữ liệu 8. Import và Export dữ liệu 9. Công cụ đồ họa MySQL GUI TOOLS Môn Các Hệ Thống Mã Nguồn Mở 62 Tổng Quan Về MySQL • MySQL là một hệ quản trị cơ sở dữ liệu đa luồng mã nguồn mở tương tự như SQL Server, Oracle • Chuyên dụng cho mọi mức độ doanh nghiệp. • MySQL được phát triển bởi một công ty tư vấn và phát triển ứng dụng của Thuỵ Điển có tên là TcX sau đổi tên thành MySQL AB. • Hiện nay, MySQL đã được Oracle mua lại. • MySQL được phát triển phổ biến cho hệ điều hành Linux, tuy nhiên, với các phiên bản mới hiện nay, nó đã có thể sử dụng tốt trên của hệ điều hành Windows. • MySQL có nhiều phiên bản phát hành: các cá nhân có thể được dùng miễn phí tuy nhiên các doanh nghiệp thì cần phải trả phí mới được sử dụng. Môn Các Hệ Thống Mã Nguồn Mở 63 Đặc điểm MySQL • Tốc độ truy xuất nhanh, ổn định, dễ sử dụng • Có tính khả chuyển, hoạt động trên nhiều nền tảng HĐH • Cung cấp hệ thống thư viện hàm lớn • Khả năng bảo mật tốt • Hoạt động như một hệ client/server hoặc trong hệ thống nhúng. • Thích hợp cho các hệ thống trên Internet (Yahoo!, Alcatel, Google, Nokia, YouTube) • Được hỗ trợ bởi nhiều ngôn ngữ lập lập trình Môn Các Hệ Thống Mã Nguồn Mở 64 Lịch sử phát triển MySQL • 1994: được phát triển bởi Michael Widenius và David Axmark thuộc công ty TcX. • 23-5-1995: phát hành phiên bản đầu tiên • 8-1-1998: phiên bản trên Windows 95 và NT được phát hành. • 01-2001: phiên bản 3 được phát hành • 03-2003: phiên bản 4 được phát hành • 26-2-2008: Sun MicroSystem mua lại MySQL AB. • 27-11-2008: Ver 5.0, 5.1 phát hành • Ver 5.1 chứa khá nhiều lỗi và hoạt động không hiệu quả. • 27-1-2010: Oracle mua lại Sun MicroSystem và phát hành Ver 5.4, 5.5 hoạt động tốt hơn. Môn Các Hệ Thống Mã Nguồn Mở 65 Khởi động và tắt dịch vụ • Khi được cài đặt cùng WAMP Server, mỗi lần khởi động WAMP thì dịch vụ MySQL cũng tự động được kích hoạt. Môn Các Hệ Thống Mã Nguồn Mở 66 Khởi động và tắt dịch vụ • Khi được cài đặt cùng WAMP Server, mỗi lần khởi động WAMP thì dịch vụ MySQL cũng tự động được kích hoạt. • Để tắt và mở dịch vụ, ta có thể sử dụng biểu tượng WAMP Server ở khay hệ thống, chọn mục MySQL Môn Các Hệ Thống Mã Nguồn Mở 67 Đăng nhập vào MySQL Server • Sau khi cài đặt, tài khoản mặc định của MySQL Server • User: root • Password: • Đăng nhập bằng PhpMyAdmin • Vào biểu tương WAMP Server, click chọn PhpMyAdmin • Wamp sẽ tự động đăng nhập vào MySQL bằng tài khoản trên • Nếu thay đổi password chương trình sẽ không đăng nhập được, cần chỉnh lại pass trong file c:\wamp\apps\phpmyadmin3.5.1\config.inc.php Mục: $cfg['Servers'][$i]['password'] = ‘'; Môn Các Hệ Thống Mã Nguồn Mở 68 Đăng nhập vào MySQL Server Môn Các Hệ Thống Mã Nguồn Mở 69 Đăng nhập vào MySQL Server • Đăng nhập bằng MySQL Console • Tại icon WAMP Server, chọn mục MySQL, chọn MySQL Console Môn Các Hệ Thống Mã Nguồn Mở 70 Các thao tác trên CSDL • Thay đổi mật khẩu • set password for acount_name@server_name = password("new_password"); • Xem tình trạng Server • status; • Xem các cơ sở dữ liệu • show databases; • Tạo CSDL mới • create database database_name; • Sử dụng CSDL • use database_name; • Xóa CSDL • drop database database_name; Môn Các Hệ Thống Mã Nguồn Mở 71 Table • Các kiểu dữ liệu trong MySQL • Kiểu số Môn Các Hệ Thống Mã Nguồn Mở 72 Table (tt) • Các kiểu dữ liệu trong MySQL • Kiểu chuỗi Môn Các Hệ Thống Mã Nguồn Mở 73 Table (tt) • Các kiểu dữ liệu trong MySQL • Kiểu ngày giờ (lưu ý các dữ liệu ngày khi Insert vào MySQL) Môn Các Hệ Thống Mã Nguồn Mở 74 Table (tt) • Các kiểu dữ liệu trong MySQL • Hỗn hợp (Miscellaneous) Môn Các Hệ Thống Mã Nguồn Mở Enum: kiểu dữ liệu liệt kê, cho phép định nghĩa trước các giá trị cho một cột, cột sẽ chỉ lưu trữ một trong các giá trị định sẵn đó. Vd: CREATE TABLE Test( Return ENUM('Y','N') DEFAULT 'N', Size ENUM('S','M','L','XL','XXL'), Color ENUM('Black','Red','White') ) Set: kiểu dữ liệu liệt kê, tương tự enum nhưng cho phép cột lưu trữ nhiều giá trị trong các giá trị định sẵn, mỗi giá trị cách nhau bởi dấu ', ' Vd: CREATE Table Test( Advertiser SET('Web Page','Television','Newspaper') ) 75 Table (tt) • Các từ khóa khai báo cột Môn Các Hệ Thống Mã Nguồn Mở 76 Table (tt) • Tạo bảng Môn Các Hệ Thống Mã Nguồn Mở Create table table_name ( column_names datatypes modifiers) Vd: Tạo bảng Customers (khách hàng) CREATE TABLE Customers ( Customer_ID INT NOT NULLPRIMARY KEY AUTO_INCREMENT, First_Name VARCHAR(20)NOT NULL, Last_Name VARCHAR(30) NOT NULL, Address VARCHAR(50), City VARCHAR(20), State VARCHAR(2), Zip VARCHAR(20), E_Mail VARCHAR(20), Age INT, Race VARCHAR(20), Gender ENUM('M', 'F') DEFAULT 'F', Favorite_Activity ENUM('Programming', 'Eating', 'Biking', 'Running', 'None') DEFAULT 'None', Occupation VARCHAR(30), Smoker CHAR(0) ); 77 Table (tt) • Thay đổi cấu trúc bảng Môn Các Hệ Thống Mã Nguồn Mở • Thay đổi tên cột Alter table table_name CHANGE old_column_name new_column_name old_datatype; Vd: ALTER TABLE Customers CHANGE First_Name FirstName VARCHAR(20); • Thay đổi kiểu dữ liệu Alter table table_name CHANGE column_name column_name new_datatype; Vd: ALTER TABLE Customers CHANGE Last_Name Last_Name VARCHAR(50); • Đổi tên bảng Alter table table_name RENAME new_table_name; Vd: ALTER TABLE Customers RENAME Customer_Table; • Thêm cột vào bảng Alter table table_name ADD column_name datatype; Vd: ALTER TABLE Customer ADD Last_Name VARCHAR(30); 78 Table (tt) • Thay đổi cấu trúc bảng Môn Các Hệ Thống Mã Nguồn Mở • Xoá một cột Alter table table_name DROP column_name; Vd: ALTER TABLE Customers DROP Last_Name; • Thêm khoá chính Alter table table_name ADD Primary Key (column_names); Vd: ALTER TABLE Customers ADD PRIMARY KEY (Customer_ID); • Xoá khoá chính Alter ta