Môn Các Hệ Thống Mã Nguồn Mở
Chương 3 :
Hệ quản trị Cơ sở dữ liệu mysql
Giảng viên : ThS. Nguyễn Minh Thành
Email :
1
Môn Các Hệ Thống Mã Nguồn Mở
Nội Dung
1.
2.
3.
4.
5.
6.
7.
8.
9.
Tổng quan về MySQL
Khởi động và tắt dịch vụ MySQL
Truy cập MySQL
1.
2.
MySQL Console
PhpMyAdmin
Thay đổi password cho root (tài khoản mặc định)
Các thao tác trên CSDL
Định nghĩa bảng
Truy vấn dữ liệu
Import và Export dữ liệu
Công cụ đồ họa MySQL GUI TOOLS
2
Mơn Các Hệ Thống Mã Nguồn Mở
3
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…
•
•
Hiện nay, MySQL đã được Oracle mua lại.
•
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.
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.
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.
Mơn Các Hệ Thống Mã Nguồn Mở
Đặ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
4
Môn Các Hệ Thống Mã Nguồn Mở
5
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ở
6
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ở
7
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ở
Đă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'] = ‘…';
8
Môn Các Hệ Thống Mã Nguồn Mở
Đăng nhập vào MySQL Server
9
Môn Các Hệ Thống Mã Nguồn Mở
Đă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
10
Môn Các Hệ Thống Mã Nguồn Mở
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;
11
Mơn Các Hệ Thống Mã Nguồn Mở
Table
•
Các kiểu dữ liệu trong MySQL
•
Kiểu số
12
Mơn Các Hệ Thống Mã Nguồn Mở
Table (tt)
•
Các kiểu dữ liệu trong MySQL
•
Kiểu chuỗi
13
Mơn Các Hệ Thống Mã Nguồn Mở
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)
14
Mơn Các Hệ Thống Mã Nguồn Mở
15
Table (tt)
•
Các kiểu dữ liệu trong MySQL
•
Hỗn hợp (Miscellaneous)
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')
)
Mơn Các Hệ Thống Mã Nguồn Mở
Table (tt)
•
Các từ khóa khai báo cột
16
Mơn Các Hệ Thống Mã Nguồn Mở
17
Table (tt)
•
Tạo bảng
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)
);
Mơn Các Hệ Thống Mã Nguồn Mở
Table (tt)
•
Thay đổi cấu trúc bảng
•
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
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);
new_datatype;
18
Mơn Các Hệ Thống Mã Nguồn Mở
Table (tt)
•
Thay đổi cấu trúc bảng
•
Xố một cột
Alter table table_name DROP column_name;
Vd :
•
ALTER TABLE Customers DROP Last_Name;
Thêm khố chính
Alter table table_name ADD Primary Key (column_names);
Vd :
•
ALTER TABLE Customers ADD PRIMARY KEY (Customer_ID);
Xố khố chính
Alter table table_name DROP Primary Key;
19
Mơn Các Hệ Thống Mã Nguồn Mở
Table (tt)
•
Chèn dữ liệu
•
•
Xóa dữ liệu
•
•
Insert into table_name (column_names) values (column_values);
Delete From table_name Where condition
Cập nhật dữ liệu
•
Update table_name set filename=newvalue where condition
20
Môn Các Hệ Thống Mã Nguồn Mở
21
Import & Export dữ liệu
•
•
Import từ file text
•
•
Mysqlimport.exe database_name table_name.txt
Vd : mysqlimport QLBanHang Customer.txt
Lưu ý :
•
•
•
•
•
Mỗi dịng dữ liệu được trình bày trên 1 dịng.
Giá trị text phải được đóng bằng dấu nháy đơn (') hoặc nháy kép (").
Các giá trị cách bởi dấu phẩy (,).
Các giá trị phải được sắp theo thứ tự tương ứng
Vd : khi import vào bảng có các cột sau Customer_ID int, Last_Name varchar(25), First_Name varchar(15), dữ liệu
file text phải theo mẫu sau :
1, "Nguyen Minh","Thanh"
Môn Các Hệ Thống Mã Nguồn Mở
Import & Export dữ liệu
•
Import từ file text
22
Môn Các Hệ Thống Mã Nguồn Mở
Import & Export dữ liệu
•
Import từ file sql
Để thực thi file sql ta sẽ sử dụng lệnh sau :
Load Data Infile filename.sql Into Table table_name;
Vd : LOAD DATA INFILE "C:\MyDocs\data.sql" INTO TABLE Orders;
23
Môn Các Hệ Thống Mã Nguồn Mở
Import & Export dữ liệu
•
Import từ file sql
Nếu muốn chỉ định file sql nằm trên máy cục bộ, cá nhân :
Load Data Local Infile filename.sql Into Table table_name;
Để thay thế các dòng giá trị trùng nhau :
Load Data Local Infile filename.sql Replace Into Table table_name;
Tuy nhiên, ta cũng có thể sử dụng phương thức Load Data này cho các file text
LOAD DATA INFILE "Orders.txt" REPLACE INTO TABLE Orders FIELDS TERMINATED BY ',' ENCLOSED BY '"';
24
Môn Các Hệ Thống Mã Nguồn Mở
25
Import & Export dữ liệu
•
Export dữ liệu : Chương trình mysqldump
Để export cấu trúc định nghĩa và cả dữ liệu trong bảng ra file .txt ta dùng chương trình mysqldump trong thư mục Bin của MySQL. File kết
xuất sẽ nằm trên server.
Mysqldump.exe –u username –p database_name table_name > filename.txt
vd : mysqldump –u root –p qlBanHang Customers > C:\Customer.txt
Sau khi gõ lệnh, ta sẽ nhập password của tài khoản sử dụng.
Nếu không muốn tạo từng file .txt cho từng bảng, mà muốn làm cho cả CSDL, ta sử dụng lệnh
Mysqldump.exe –u username –p database_name > filename.txt