MySQL là một database server, là hệ thống quản lý cơ sở dữ liệu quan hệ. Trong việc lưu trữ, tìm kiếm, sắp xếp và truy vấn dữ liệu, nó tỏ ra rất nhanh và mạnh mẽ. MySQL server điều khiển truy cập dữ liệu đa người dùng cùng một thời điểm, cung cấp khả năng truy cập dữ liệu nhanh, bảo đảm cho người sử dụng được cấp quyền truy cập dữ liệu của hệ thống. Do vậy, MySQL là đa ngừơi dùng, đa luồng. Nó sử dụng các câu lệnh truy vấn SQL(ngôn ngữ truy vấn có cấu trúc), là một chuẩn ngôn ngữ truy vấn cơ sở dữ liệu hiện nay trên Web. MySQL được chính thức sử dụng rộng ra?i năm 1996 nhưng nó đã hình thành từ năm 1979. MySQL cómã nguồn mở và sử dụng miễn phí, nhưng với những mục đích thương mại khác thị nó cũng có các bản quyền thương mại nếu
được yêu cầu cung cấp bản quyền. Một khó khăn cho người lập trình không chuyên là khi sử dụng MySQL, việc tạo cơ sở dữ liệu hoàn toàn bằng lệnh, do đó đòi hỏi người sử dụng phải có tính cẩn thận và sắp xếp quy trình làm việc hợp lý.
MySQL có thể quản lý tới hàng Terabyte dữ liệu, hàng triệu bản ghi, chạy trên nhiều môi trường khác nhau, có giao diện tương đối dễ sử dụng, có thể truy vấn dữ liệu thông qua câu lệnh SQL.
MySQL thường được sử dụng chung với PHP trong những trang Web cần sử dụng đến cơ sở dữ liệu.
a. Cài đặt MySQL
Cũng giống như những thành phần nguồn mở khác, trong Ubuntu MySQL cũng được cài đặt rất dễ dàng. Trong của sổ Terminal ta gõ:
$ sudo apt-get install mysql-server
Mọi việc còn lại là do hệ thống tự động làm việc.
b. Sơ lược MySQL.
Các cơ sở dữ liệu trong MySQL được tạo hoàn toàn bằng lệnh.
Các lệnh trong sql đựơc kết thức bởi dấu chấm phẩy (;). Trừ một số lệnh như quit là trường hợp đặc biệt).
Khi thực hiện lệnh, mysql chuyển nó đến server và yêu cầu thực hiện lệnh. Do đó, "mysql>" ở cuối cùng khi bấm enter thực hiện lệnh báo hiệu yêu cầu đã được thực hiện.
MySQL đưa ra kết qua dưới dạng 1 bảng (table) gồm các cột (column) và hàng (row).
MySQL cũng đưa ra bao nhiêu hàng được trả về (row in set) và trong vòng bao nhiêu giây (sec) .
Ngoài ra MySQL cũng thể hiện được những phép tính đơn giản.
Các lệnh trong MySQl có thể được viết trên một hàng,hoặc nhiều hàng. MySQL có 4 loại dấu nhắc. Sau đây là ý nghĩa của các dấu nhắc:
Prompt Ý nghĩa
mysql> Sẵn sàng cho 1 lệnh mới.
-> Chờ cho hàng kế tiếp của một lệnh có nhiều hàng.
' > Chờ cho hàng kế tiếp thực hiện bởi 1 chuo?i trong dấu nháy đơn. " > Chờ cho hàng kế tiếp thực hiện bởi một chuo?i trong dấu nháy.
c. Các lệnh cơ bản trong MySQL
Các lệnh cơ bản:
SHOW DATABASES; //Liệt kê tất cả các database có trên server. USE TÊNDATABASE; //Lựa chọn sử dụng database, nếu database có trên server, máy sẽ báo là database changed
CREATE DATABASE TÊNDATABASE; //tạo database mới SHOW TABLES; //Liệt kê các bảng trong database;
CREATE TABLE TÊNTABLE; //Tạo bảng cho database; DESCRIBE TÊNTABLE; /Mô tả bảng đã tạo;
INSERT INTO TÊNTABLE[(COLUMN 1,COLUMN 2,...)] VALUES (VALUE1, VALUE2,...); // Đưa dữ liệu và bảng.
SELECT items FROM tables
[WHERE điều kiện]
[GROUP BY group_type] [HAVING where_definition] [ORDER BY order_type] [LIMIT limit_criteria]
// Truy vấn cơ sở dữ liệu trong các bảng.
LOAD DATA INFILE "TENFILE.EXCEPTION" INTO TABLE TÊNTABLE;
//Nhập dữ liệu vào bảng từ trình soạn thảo văn bản khác. DELETE FROM table
[WHERE condition] [LIMIT number] //Xoá dữ liệu trong bảng UPDATE tablename
SET column1= expression1, column2= expression2, ... [WHERE condition]
[LIMIT number]
ALTER TABLE têntable RENAME têntable mới //Thay đổi tên bảng
//Thêm cột vào bảng.
ALTER TABLE table_name DROP column column_name //Xoá cột trong bảng.
d. Các kiểu dữ liệu trong MySQL.
Kiểu ký tự Kiểu Char
Char( length ) //kiểu này có độ dài tối đa 255 ký tự
Varchar(length) //tự động thay đổi để trở thành kiều char Kiểu Text
Tinytext //độ dài tối đa 255 ký tự, kiểu text độ dài tối đa 65.535 ký tự. Mediumtext //có độ dài tối đa là 16.777.215 ký tự
Longtext //độ dài tối đa 4.294.967.295 ký tự. Kiểu Enum
Có dạng Enum('value1','value2','…') [default 'value'] Kiểu số:
Kiểu int/integer
Có dạng Int(display size) [unsigned] [zerofill]
Nếu sử dụng unsigned cột này có thể lưu trữ giá trị từ 0 đến 4.294.967.295, nếu sử dụng signed cột này có thể lưu trữ giá trị trong khoảng -2.147.483.648 đến 2.147.483.674
Kiểu Tinyint
Có dạng Tinyint(display size) [unsigned] [zerofill]
Nếu sử dụng unsigned có thể lưu trữ giá trị từ 0 đến 255, nếu sử dụng signed cột này có thể lưu trữ giá trị trong khoảng -128 đến 127.
Kiểu Mediumint
Có dạng : mediumint(display size) [unsigned] [zerofill]
Nếu sử dụng unsigned có thể lưu trữ giá trị từ -8.388.608 đến 8.388.607, nếu sử dụng signed cột này có thể lưu trữ giá trị trong khoảng 0 đến 1677215. Kiểu bigint
Có dạng bigint(display size) [unsigned] [zerofill]
Nếu sử dụng unsigned có thể lưu trữ giá trị từ -9.223.672.036.854.775.808 đến 9.223.671.036.854.775.807, nếu sử dụng signed cột này có thể lưu trữ giá trị trong khoảng 0 đến 18.446.744.037.709. Kiểu Date và Time
Kiểu Date
Có dạng date lưu trữ giá trị có dạng YYYY-MM-DD có giá trị nằm trong khoảng 10000-01-01 đến 9999-12-31
Kiểu datetime
Có dạng datetime[null]| not null][default] Kiểu timestamp
Có dạng timestamp(size), có khuôn dạng như sau: Size Khuôn dạng
2 YY4 YYMM 4 YYMM 6 YYMMDD 8 YYYYMMDD 10 YYMMDDHHMM 12 YYMMDDHHMMSS 14 YYYMMDDHHMMSS Kiểu time
Có dạng time, kiểu này có khuôn dạng HH:MM:SS có giá trị thay đổi từ -838:59:59 đến -838:59:58
Kiểu year
Có dạng year[(2|4)] cho phép lưu trữ các giá trị từ 1901 đến 215