PHP tạo cơ sở dữ liệu MySQL
- Trang trước MySQL Connect
- Trang tiếp theo MySQL Insert
Cơ sở dữ liệu chứa một hoặc nhiều bảng.
Tạo cơ sở dữ liệu
Câu lệnh CREATE DATABASE được sử dụng để tạo cơ sở dữ liệu trong MySQL.
Ngữ pháp
CREATE DATABASE database_name
Để PHP thực hiện câu lệnh trên, chúng ta phải sử dụng hàm mysql_query(). Hàm này được sử dụng để gửi truy vấn hoặc lệnh đến kết nối MySQL.
Ví dụ
Trong ví dụ dưới đây, chúng ta đã tạo một cơ sở dữ liệu có tên là "my_db":
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Không thể kết nối: ' . mysql_error()); } if (mysql_query("CREATE DATABASE my_db",$con)) { echo "Cơ sở dữ liệu đã được tạo"; } else { echo "Lỗi tạo cơ sở dữ liệu: " . mysql_error(); } mysql_close($con); ?>
Tạo bảng
CREATE TABLE được sử dụng để tạo bảng cơ sở dữ liệu trong MySQL.
Ngữ pháp
CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type, ....... )
Để thực hiện lệnh này, tôi phải thêm câu lệnh CREATE TABLE vào hàm mysql_query().
Ví dụ
Dưới đây là ví dụ về cách tạo một bảng có tên là "Persons", bảng này có ba cột. Tên cột là "FirstName", "LastName" và "Age":
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Không thể kết nối: ' . mysql_error()); } // Tạo cơ sở dữ liệu if (mysql_query("CREATE DATABASE my_db",$con)) { echo "Cơ sở dữ liệu đã được tạo"; } else { echo "Lỗi tạo cơ sở dữ liệu: " . mysql_error(); } // Tạo bảng trong cơ sở dữ liệu my_db mysql_select_db("my_db", $con); $sql = "CREATE TABLE Persons" ( TênFirstName varchar(15), HọLastName varchar(15), Tuổi int )"; mysql_query($sql,$con); mysql_close($con); ?>
Lưu ý:Trước khi tạo bảng, bạn phải chọn cơ sở dữ liệu đầu tiên. Sử dụng hàm mysql_select_db() để chọn cơ sở dữ liệu.
Ghi chú:Khi bạn tạo trường varchar của cơ sở dữ liệu, bạn phải quy định độ dài tối đa của trường đó, ví dụ: varchar(15).
Kiểu dữ liệu MySQL
dưới đây là các loại dữ liệu MySQL có thể sử dụng:
kiểu dữ liệu số | Mô tả |
---|---|
|
chỉ hỗ trợ số nguyên. Định nghĩa giá trị lớn nhất của số trong tham số size. |
|
hỗ trợ số có phần thập phân. định nghĩa giá trị lớn nhất của số trong tham số size. Trong tham số d, định nghĩa giá trị lớn nhất của số sau dấu chấm. |
kiểu dữ liệu văn bản | Mô tả |
---|---|
char(size) |
hỗ trợ chuỗi cố định. (Có thể chứa chữ cái, số và ký hiệu đặc biệt). định nghĩa độ dài cố định trong tham số size. |
varchar(size) |
hỗ trợ chuỗi biến dài. (Có thể chứa chữ cái, số và ký hiệu đặc biệt). định nghĩa độ dài tối đa trong tham số size. |
tinytext | hỗ trợ chuỗi biến dài, độ dài tối đa là 255 ký tự. |
|
hỗ trợ chuỗi biến dài, độ dài tối đa là 65535 ký tự. |
|
hỗ trợ chuỗi biến dài, độ dài tối đa là 16777215 ký tự. |
|
hỗ trợ chuỗi biến dài, độ dài tối đa là 4294967295 ký tự. |
kiểu dữ liệu ngày | Mô tả |
---|---|
|
Hỗ trợ ngày hoặc giờ |
Loại dữ liệu khác | Mô tả |
---|---|
enum(value1,value2,ect) | ENUM là viết tắt của ENUMERATED list. Có thể chứa tối đa 65535 giá trị trong dấu ngoặc. |
set | SET tương tự ENUM. Nhưng SET có thể có tối đa 64 mục danh sách và có thể lưu trữ nhiều hơn một lựa chọn |
Trường chính và trường tự động tăng
Mỗi bảng nên có một trường chính.
Trường chính được sử dụng để xác định duy nhất hàng trong bảng. Mỗi giá trị chính trong bảng phải là duy nhất. Ngoài ra, trường chính không thể để trống vì cơ sở dữ liệu cần một giá trị để định vị bản ghi.
Trường chính luôn phải được thêm vào chỉ mục. Quy tắc này không có ngoại lệ. Bạn phải chỉ mục trường chính để cơ sở dữ liệu có thể nhanh chóng định vị các hàng có giá trị khóa.
Ví dụ dưới đây thiết lập trường personID làm trường chính. Trường chính thường là số ID và thường được thiết lập AUTO_INCREMENT. AUTO_INCREMENT sẽ tăng giá trị trường này một cách tự động mỗi khi thêm một bản ghi mới. Để đảm bảo trường chính không để trống, chúng ta phải thêm cài đặt NOT NULL vào trường này.
Ví dụ
$sql = "CREATE TABLE Persons" ( personID int NOT NULL AUTO_INCREMENT, PRIMARY KEY(personID), TênFirstName varchar(15), HọLastName varchar(15), Tuổi int )"; mysql_query($sql,$con);
- Trang trước MySQL Connect
- Trang tiếp theo MySQL Insert