Bài giảng Phần mềm nguồn mở (Open-Source Software) - Chương 3 (tt): Hệ quản trị CSDL MySQL. Nội dung trình bày trong chương này gồm: Thao tác với MySQL, các kiểu dữ liệu trong MySQL, từ khóa khai báo cho dữ liệu, thay đổi cấu trúc bảng, truy vấn dữ liệu,... Mời các bạn cùng tham khảo.
Trang 1Phần mềm Nguồn Mở
(Open-Source Software)
Võ Đức Quang Khoa CNTT-Đại học Vinh
Trang 2Chương 3:
Một số phần mềm nguồn mở
Trang 4Thao tác với MySQL
Tạo, xóa CSDL
Table và thuộc tính
Thêm, sửa, xóa dữ liệu
Truy vấn CSDL
Trang 5Tạo CSDL
Trang 6Tạo CSDL
Trang 7Tạo CSDL
Trang 8Xóa CSDL
SQL command:
o DROP DATABASE [Database_name]
GUI
Trang 9Bảng và thuộc tính
Trang 10Bảng và thuộc tính
Trang 11Bảng thuộc tính
Trang 12Quá trình thiết kế CSDL
Trang 13Tạo bảng
Bảng dữ liệu thiết kế
Trang 14Tạo bảng
CREATE TABLE table_name
( column_names datatypes modifiers );
o Ví dụ:
CREATE TABLE Customers (
Customer_ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
First_Name VARCHAR(20)NOT NULL,
Last_Name VARCHAR(30) NOT NULL,
Trang 15Tạo bảng
Trang 16Các kiểu dữ liệu trong MySQL
Kiểu số
Trang 17Các kiểu dữ liệu trong MySQL
Kiểu chuỗi
Trang 18Các kiểu dữ liệu trong MySQL
Kiểu ngày giờ
Trang 19Các kiểu dữ liệu trong MySQL
Các kiểu hỗn hợp (Miscellaneous)
o 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 đó
Ví dụ:
CREATE TABLE Test(
iReturn ENUM('Y','N') DEFAULT 'N', Size ENUM('S','M','L','XL','XXL'), Color ENUM('Black','Red','White')
Trang 20Các kiểu dữ liệu trong MySQL
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 ', ‘
Ví dụ:
CREATE Table Test( Advertiser SET('WebPage','Television','Newspaper'))
Trang 21Từ khóa khai báo cho dữ liệu
Trang 22Thay đổi cấu trúc bảng
Thay đổi tên cột:
Alter table table_name
CHANGE old_col_name new_col_name old_datatype;
o Ví dụ:
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;
o Ví dụ:
ALTER TABLE Customers
CHANGE Last_Name Last_Name VARCHAR(50) ;
Trang 23Thay đổi cấu trúc bảng
ALTER TABLE Customer
ADD Last_Name VARCHAR(30);
Trang 24ALTER TABLE Customers
ADD PRIMARY KEY (Customer_ID);
Xoá khoá chính
Alter table table_name DROP Primary Key;
Thay đổi cấu trúc bảng
Trang 25Chèn, sửa, xóa dữ liệu
Trang 27Truy Vấn Dữ Liệu
Các từ khóa truy vấn SQL
Trang 28Truy Vấn Dữ Liệu
Cú pháp
SELECT *|column1, column2
FROM table1, table2
Trang 29Select Mod (ThanhTien,2)
From Orders as HoaDon;
o Round(số, vị trí làm tròn) : hàm làm tròn số
Ví dụ:
Select Round(ThanhTien,1)
From Orders as HoaDon;
Trang 30Select If(SoLuong>20,5%,2%) as GiamGia From Orders
o IFNULL(result1,result2) : kết quả result1 nếu không null
ngược lại sẽ trả về result2
o Ví dụ:
Select IfNull(10/0,1) as Exam
o CASE value WHEN expression THEN result1 ELSE result2 : trả về result1 khi expression đúng, ngược lại trả về result2
o Ví dụ:
Select CASE 1 WHEN Col1="Y" THEN 1 WHEN Col2="Y"
THEN 2 WHEN Col3="Y" THEN 3 ELSE "NONE";
Trang 31Các hàm hỗ trợ trong truy vấn
Hàm chuỗi
o LTRIM, RTRIM, TRIM : cắt bỏ những khoảng trắng thừa
Select LTRIM(" ABC") → "ABC"
Select TRIM(" ABC ") → "ABC"
trí bắt đầu
Select Substring("Hello World",7) → "World"
chuỗi 2 từ vị trí bắt đầu
Select Locate("lo","Hello World",1) → 4
trong chuỗi 1
select Replace("Filename.xxx","xxx","123") →
"Filename.123"
o UCASE, LCASE : chuyển chữ thường thành in hoa và ngược lại
o REVERSE : đảo ngược chuỗi
Trang 32Các hàm hỗ trợ trong truy vấn
Hàm thời gian
o MONTHNAME(date) : trả về tên tháng của date
Select monthname(20000105) → January
o DAYOFYEAR(date) : trả về số ngày tính từ đầu năm đến date
o YEAR(date) : trả về năm của date
o QUARTER(date) : trả về quý của date
Trang 33Các hàm hỗ trợ trong truy vấn
Hàm thời gian
o MONTH(date): trả về tháng của date
o DAY(date): trả về ngày của date
o WEEK(date): trả về số tuần của date tính từ ngày đầu tiên của năm
o YEARWEEK(date): trả về số tuần của date tính từ ngày đầu tiên của
năm
o NOW() , SYSDATE(), CURRENT_TIMESTAMP : trả về ngày giờ hệ thống
Select NOW() → 2009-10-28 18:05:11
Select NOW()+0 → 20091028180511
o CURDATE() , CURRENT_DATE : trả về ngày của hệ thống
o CURTIME() , CURRENT_TIME : trả về ngày của hệ thống
o HOUR(time) : trả về giờ của time
o MINUTE(time) : trả về phút của time
o SECOND(time) : trả về giây của time
o DATE_FORMAT(date,format) : định dạng date theo format
o TIME_FORMAT(time,format) : định dạng date theo format
Trang 36Các hàm hỗ trợ trong truy vấn