itprofes
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

GIỚI THIỆU VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL

Go down

GIỚI THIỆU VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL Empty GIỚI THIỆU VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL

Bài gửi  admin 15/4/2010, 2:01 pm

I. Tại sao lại sử dụng MySQL?


Nếu bạn đang tìm kiếm một hệ thống quản lý cơ sở dữ liệu miễn phí hay là không đắt tiền, một vài thứ có sẵn để bạn chọn như: MySQL, mSQL, Postgres. Khi bạn so sánh MySQL với các hệ thống cơ sở dữ liệu khác, hãy nghĩ về những gì quan trọng nhất đối với bạn. Sự thực thi, sự hỗ trợ, các đặc tính, các điều kiện và các giới hạn của bản quyền, giá cả của tất cả các nhân tố để có thể thực hiện. Với những lí do đó, MySQL có nhiều đặc điểm cuốn hút:
•Tốc độ: MySQL rất nhanh. Những nhà phát triển cho rằng MySQL là cơ sở dữ liệu nhanh nhất mà bạn có thể có.
•Dễ sử dụng: MySQL tuy có tính năng cao nhưng thực sự là một hệ thống cơ sở dữ liệu rất đơn giản và ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn .
•Giá thành: MySQL là miễn phí cho hầu hết các việc sử dụng trong một tổ chức.
•Hỗ trợ ngôn ngữ truy vấn: MySQL hiểu SQL, là ngôn ngữ của sự chọn lựa cho tất cả các hệ thống cơ sở dữ liệu hiện đại. Bạn cũng có thể truy cập MySQL bằng cách sử dụng các ứng dụng mà hỗ trợ ODBC (Open Database Connectivity -một giao thức giao tiếp cơ sở dữ liệu được phát triển bởi Microsoft).
•Năng lực: Nhiều client có thể truy cập đến server trong cùng một thời gian. Các client có thể sử dụng nhiều cơ sở dữ liệu một cách đồng thời. Bạn có thể truy cập MySQL tương tác với sử dụng một vài giao diện để bạn có thể đưa vào các truy vấn và xem các kết quả: các dòng yêu cầu của khách hàng, các trình duyệt Web...
•Kết nối và bảo mật: MySQL được nối mạng một cách đầy đủ, các cơ sở dữ liệu có thể được truy cập từ bất kỳ nơi nào trên Internet do đó bạn có thể chia sẽ dữ liệu của bạn với bất kỳ ai, bất kỳ nơi nào. Nhưng MySQL kiểm soát quyền truy cập cho nên người mà không nên nhìn thấy dữ liệu của bạn thì không thể nhìn được.
•Tính linh động: MySQL chạy trên nhiều hệ thống UNIX cũng như không phải UNIX chẳng hạn như Windows hay OS/2. MySQL chạy được các với mọi phần cứng từ các máy PC ở nhà cho đến các máy server.
•Sự phân phối rộng: MySQL rất dễ dàng đạt được, chỉ cần sử dụng trình duyệt web của bạn. Nếu bạn không hiểu làm thế nào mà nó làm việc hay tò mò về thuật toán, bạn có thể lấy mã nguồn và tìm tòi nó. Nếu bạn không thích một vài cái, bạn có thể thay đổi nó.
•Sự hỗ trợ: Bạn có thể tìm thấy các tài nguyên có sẵn mà MySQL hỗ trợ. Cộng đồng MySQL rất có trách nhiệm. Họ trả lời các câu hỏi trên mailing list thường chỉ trong vài phút. Khi lỗi được phát hiện, các nhà phát triển sẽ đưa ra cách khắc phục trong vài ngày, thậm chí có khi trong vài giờ và cách khắc phục đó sẽ ngay lập tức có sẵn trên Internet.


II. Tạo cơ sở dữ liệu và người dùng:


Cơ sở dữ liệu MySQL có thể hỗ trợ cho nhiều cơ sở dữ liệu khác.Thông thường bạn sẽ có một cơ sở dữ liệu cho mỗi ứng dụng.
Tạo cơ sở dữ liệu: Đây là phần dễ nhất. Tại dấu nhắc của dòng lệnh MySQL, đánh :

Code:
mysql> creat database dbname;

dbname: chính là tên của cơ sở dữ liệu bạn muốn tạo.
Khi bạn thấy một phản hồi giống như sau: Query OK,1 row affected (0.06 sec). Điều này chứng tỏ bạn đã thành công trong việc tạo cơ sở dữ liệu, nếu không có phản hồi thì bạn xem lại đã đánh ; ở cuối dòng chưa. Dấu ; bảo MySQL rằng bạn đã hoàn thành và yêu cầu nó hãy thực hiện chính xác câu lệnh.
Các người dùng và các quyền: Một hệ thống MySQL có nhiều người dùng, vì lí do bảo mật cho nên với mỗi người dùng của hệ thống cần phải có một account và password. Điều này không có nghĩa là bạn phải bắt buộc phải tạo ra password cho người dùng, nhưng điều nên làm là cung cấp các password cho tất cả những người dùng mà bạn đã tạo ra.
Các quyền hệ thống của MySQL: Một trong những đặc tính tốt nhất của MySQL là nó hỗ trợ tất cả các quyền phức tạp của hệ thống. Khi bạn tạo ra một người dùng trong MySQL, bạn trao quyền cho người đó để định rõ những gì người đó có thể và không thể đối với hệ thống. Tạo người dùng: sử dụng lệnh GRANT
Các lệnh GRANT và REVOKE được dùng để trao và lấy quyền đến người dùng MySQL với bốn cấp bậc phân quyền như sau:Global, Database, Table, Column
Lệnh GRANT: để tạo người dùng và giao quyền cho họ.Cấu trúc như sau:

Code:
GRANT privileges [columns]
ON item
TO user_name [IDENTIFIED By 'password']
[WITH GRANT OPTION
]
Lệnh REVOKE: trái ngược với GRANT.Nó dùng để thu hồi lại các quyền của người dùng, và có cấu trúc tương tự như GRANT

Code:
REVOKE privileges [(columns)]
ON item
FROM user_name

Tạo bảng cơ sở dữ liệu: sử dụng lệnh CREAT TABLE, cú pháp thông thường là:

Code:
CREAT TABLE tablename(columns)

Ví dụ, tạo một bảng customers như sau:

Code:
create table customers(customerid int unsigned not null auto_increment primary key,name char(30) not null,address char(40) not null,city char(20) not null);

Xem dữ liệu với lệnh SHOW và DESCRIBE: Sau khi đăng nhập vào màn hình MySQL, bạn có thể xem các bảng trong cơ sở dữ liệu bằng cách đánh vào như sau:

Code:
mysql> show tables;

Thì MySQL sẽ hiển thị tất cả các bảng trong cơ sở dữ liệu.
Bạn cũng có thể sử dụng show để xem danh sách các cơ sở dữ liệu bằng cách đánh vào như sau:

Code:
mysql>show databases;

Để xem thêm các chi tiết về một bảng cụ thể bạn sử dụng lệnh DESCRIBE:

Code:
mysql> describe tablename;


II. Làm việc với cơ sở dữ liệu MySQL:


SQL (Structured Query Language): Đây là ngôn ngữ chuẩn nhất cho việc truy cập hệ thống quản lý cơ sở dữ liệu quan hệ. SQL dùng để chứa và truy xuất dữ liệu từ một cơ sở dữ liệu. Nó thường được dùng trong các hệ thống cơ sỡ dữ liệu như MySQL, Oracle, Sybase, PostgreSQL và Microsoft SQL Server...
Chèn dữ liệu vào trong cơ sở dữ liệu: Trước khi bạn có thể làm nhiều việc với cơ sở dữ liệu, bạn cần chứa một ít dữ liệu ở trong nó. Để thực hiện được điều này bạn có thể sử dụng câu lệnh SQL INSERT. Cú pháp như sau:


Code:
INSERT [INTO] table [(column1,column2,column3,...)]VALUES(value1,value2,value3,...);


Ví dụ, chèn một bản ghi vào trong bảng Customers, bạn thực hiện như sau:


Code:
insert into customers values(NULL,"le bao vy","phan chau trinh","DH Ky Thuat");


Truy xuất dữ liệu từ cơ sở dữ liệu: Sử dụng câu lệnh SELECT để truy xuất dữ liệu từ một cơ sở dữ liệu bằng cách chọn các hàng thoả mãn điều kiện cụ thể nào đó từ một bảng. Có rất nhiều tuỳ chọn và cách khác nhau để sử dụng lệnh SELECT.


Câu lệnh căn bản của SELECT là:

Code:
SELECT items
FROM tables
[WHERE condition]
[GROUP BY group_type]
[HAVING where_definition]
[ORDER BY order_type]
[LIMIT limit_criteria];


Truy xuất dữ liệu với điều kiện cụ thể: Để có thể truy cập một tập hợp con của các hàng trong một bảng, chúng ta cần phải xác định một vài điều kiện có chọn lựa. Bạn có thể làm được điều này với mệnh đề WHERE.Ví dụ:

Code:
select *
from orders
where customerid=3;
Điều này đồng nghĩa với việc lựa chọn tất cả các cột từ bảng orders, nhưng chỉ có những dòng mà có customerid=3 thì mới thoả mãn.

Truy xuất dữ liệu từ nhiều bảng: Thông thường để trả lời một câu hỏi từ cơ sở dữ liệu, bạn có thể cần phải dùng dữ liệu từ nhiều hơn một bảng. Để kết hợp các thông tin này lại với nhau trong SQL, bạn phải thực hiện một phép toán gọi là kết hợp(join). Có nghĩa là nó sẽ kết hợp hai hay nhiều bảng lại với nhau theo các mối quan hệ giữa các dữ liệu.
Ví dụ nối hai bảng đơn giản sau:

Code:
select orders.orderid,orders.amount,orders.date
from customers,orders
where customers.name='le bao vy'
and customers.customerid=orders.customerid;


Kết nối nhiều hơn hai bảng: Phức tạp hơn kết nối hai bảng lại với nhau.Theo luật thông thường, bạn cần nối các bảng từng cặp với nhau với các điều kiện nối.Ví dụ như sau:


Code:
select customers.name
from customers,orders,order_items
where customers.customerid=orders.customerid
and orders.orderid=order_items.orderid
and order_items.isbn=books.isbn
and books.title like '%Java%';


Sử dụng tên khác cho bảng (tên hiệu-alias): Thông thường chúng ta truy cập đến tên của các bảng bằng các tên hiệu của chúng. Bạn có thể tạo ra các tên hiệu này khi bắt đầu câu truy vấn và sau đó sử dụng thông qua chúng.Ví dụ:

Code:
select c.name
from customers as c,orders as o,order_items as oi,books as b
where c.customerid=o.customerid
and o.orderid=oi.orderid
and oi.isbn=b.isbn
and b.title like '%java%';

Như khi bạn khai báo các bảng chúng ta sẽ dùng, chúng ta thêm một mệnh đề AS để khai báo các tên hiệu cho bảng. Chúng ta cũng có thể dùng các tên hiệu cho các cột. Việc này thật sự cần thiết khi chúng ta muốn kết nối một bảng với chính bản thân nó. Điều này nghe có vẻ hơi khó nghe, nhưng nó thật sự là hữu ích, chẳng hạn nếu chúng ta muốn tìm các hàng trong cùng một bảng mà có cùng giá trị, nếu chúng ta muốn tìm các khách hàng sống trong cùng một thành phố, chúng ta có thể đặt các tên khác nhau cho cùng một bảng Customers.Ví dụ:


Code:
select c1.name,c2.name,c1.city
from customers as c1,customers as c2
where c1.city=c2.city
and c1.name!=c2.name;
Những gì mà chúng ta làm là giả vờ như bảng Customers là hai bảng khác nhau c1 và c2, sau đó thực hiện việc kết nối trên cột City.

Truy xuất dữ liệu theo thứ thự yêu cầu: Khi bạn muốn hiển thị các hàng được truy xuất bằng một truy vấn theo một thứ thự yêu cầu, bạn có thể sử dụng mệnh đề ORDER BY của câu lệnh SELECT. Mệnh đề này sẽ sắp xếp các hàng của một hay nhiều cột được liệt kê trong mệnh đề SELECT. Ví dụ:


Code:
select name,address
from customers
order by name;

Giá trị yêu cầu mặc định là tăng dần và bạn có thể chỉ rõ nó nếu bạn thích dùng từ khoá ASC.Ví dụ:


Code:
select name,address
from customers
order by name asc;


Còn nếu muốn sắp xếp giảm dần thì dùng từ khoá DESC.
Nhóm và kết hợp dữ liệu: Các hàm kết nối có thể được áp dụng đến một bảng cũng như đến toàn bộ hay đến các nhóm dữ liệu trong một bảng là:
Tên Mô tả
AVG(column) Giá trị trung bình của các giá trị trong các cột cụ thể.
COUNT(items) Nếu bạn chỉ ra một cột thì nó trả về số các giá trị của cột đó.Nếu thêm vào từ khoá DISTINCT phía trước tên cột,thì trả về các giá trị riêng biệt của cột đó.Còn nếu chỉ định là COUNT(*),nó sẽ đếm tất cả các giá trị trong hàng bất kể giá trị rỗng.
MIN(column) Các giá trị nhỏ nhất trong cột chỉ định.
MAX(column) Các giá trị lớn nhất trong cột chỉ định.
STD(column) Độ chênh lệch chuẩn của các giá trị trong cột chỉ định.
STDDEV(column) Tương tự như STD(column).
SUM(column) Tổng các giá trị trong cột chỉ định.

Chọn hàng nào sẽ được quay trả về: Một mệnh đề của câu lệnh SELECT mà có thể được sử dụng một cách đặc biệt trong các ứng dụng Web đó là mệnh đề LIMIT. Nó được dùng để chỉ định các dòng nào từ nhập vào nên được trả lại. Nó gồm có hai tham số: số hàng để bắt đầu và số lượng các hàng sẽ được trả lại.Ví dụ minh hoạ:


Code:
select name
from customers
limit 2,3;
Câu truy vấn này có thể được hiểu như sau: chọn tên từ bảng customers và sau đó trả lại 3 hàng bắt đầu từ hàng thứ hai của nhập vào.

Cập nhật các bản ghi trong cơ sở dữ liệu: Sử dụng câu lệnh UPDATE. Cấu trúc thông dụng của nó như sau:


Code:
UPDATE tablename
SET column1=expression1,column2=expression2,...
[WHERE condition]
[LIMIT number]

Ví dụ, chúng ta muốn tăng giá tất cả các quyển sách lên 10%, chúng ta sẽ sử dụng câu lệnh UPDATE như sau:

Code:
update books
set price=price*1.1;


Thay đổi các bảng sau khi tạo: Chúng ta có thể thay đổi cấu trúc của các bảng trong cơ sở dữ liệu bằng cách sử dụng câu lệnh ALTER TABLE. Cấu trúc căn bản của nó như sau:


Code:
ALTER TABLE tablename alteration [,alteration...]

Ví dụ: trong bảng Customers, chúng ta cho phép tên dài 30 kí tự, sau khi chúng ta bắt đầu tạo một số dữ liệu, chúng ta có thể phát hiện rằng một số tên là quá dài và đang bị cắt, chúng ta có thể sửa điều này bằng cách thay đổi loại dữ liệu của cột để nó có thể dài đến 45 kí tự.


Code:
alter table customers
modify name char(45) not null;

Huỷ bỏ các records khỏi cơ sở dữ liệu: Sử dụng câu lệnh DELETE, cấu trúc như sau:


Code:
DELETE FROM table
[WHERE condition]
Ví dụ:
delete from customers
where customerid=5;

Chú ý:nếu bạn viết DELETE FROM table; thì tất cả các hàng trong bảng sẽ bị huỷ bỏ.
Huỷ các bảng: Bạn có thể huỷ toàn bộ một bảng bằng cách sử dụng câu lệnh DROP TABLE. Cấu trúc này rất đơn giản, nó như sau:


Code:
DROP TABLE table;


Huỷ toàn bộ cơ sở dữ liệu: Bạn có thể thực hiện điều này bằng cách sử dụng câu lệnh DROP DATABASE, cấu trúc như sau:


Code:
DROP DATABASE database;


Tạo và huỷ Index: Index là những phương tiện quan trọng để tăng tốc độ truy cập các nội dung của các bảng, thông thường là dùng cho các câu truy vấn mà liên quan đến kết nối nhiều bảng với nhau. MySQL cho phép bạn tạo ra index một cách khá linh hoạt. Bạn có thể index các cột riêng rẽ hay kết nối các cột lại với nhau. Bạn cũng có thể có nhiều hơn một index trong một bảng nếu bạn muốn có thể tra cứu giá trị một cách nhanh chóng từ các cột khác nhau của một bảng.
Tạo Index: Bạn có thể tạo index cho một bảng mới khi bạn dùng CREAT TABLE, hoặc có thể thêm index cho các bảng đang tồn tại với CREAT INDEX hay ALTER TABLE. Bạn phải chỉ định rằng index có thể hay không thể chứa giá trị lặp lại. Nếu nó không thể, index nên được tạo như là một khoá chính (PRIMARY KEY) hay là một index duy nhất (UNIQUE INDEX). Để thêm một index cho một bảng đang tồn tại, bạn có thể sử dụng ALTER TABLE hay CREAT INDEX. Trong đó lệnh ALTER TABLE linh hoạt hơn bởi bạn có thể sử dụng nó để tạo ra một index thông thường, một index duy nhất, hay một khoá chính. Cú pháp như sau:


Code:
alter table tablename add index indexname(column_list)
alter table tablename add unique indexname(column_list)
alter table tablename add primary key(column_list)


CREAT INDEX có thể thêm một index thông thường hay một index duy nhất cho một bảng:


Code:
creat unique index index_name on tablename(column_list)
creat index index_name on tablename(column_list)


Để tạo một index cho một bảng mới khi bạn sử dụng câu lệnh CREAT TABLE, bạn có thể sử dụng cú pháp tương tự như đã làm với ALTER TABLE, nhưng bạn phải chỉ định các mệnh đề tạo index trong phần câu lệnh CREAT TABLE. Cụ thể như sau:

Code:
creat table tablename(
......
index index_name(column_list),
unique index_name(column_list),
primary key (column_list),
...
)

Hủy bỏ Index: Bạn có thể huỷ bỏ index bằng cách sử dụng một trong hai câu lệnh DROP INDEX hay ALTER TABLE. Cú pháp như sau:


Code:
DROP INDEX index_name on table_name
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY

Chú ý:Index có thể bị tác động nếu bạn huỷ các cột trong một bảng.


III. Các hàm PHP sử dụng để truy cập cơ sở dữ liệu MySQL

int mysql_affected_rows( [resource link_identifier]): trả về số lượng các hàng bị tác động bởi các câu truy vấn cuối cùng INSERT, UPDATE hay DELETE kết hợp với định danh liên kết (link_identifier). Nếu nhận dạng liên kết không cụ thể thì liên kết cuối cùng được mở ra bởi mysql_connect( ). Chú ý khi bạn đang sử dụng các giao dịch, bạn phải gọi mysql_affected_rows( ) sau truy vấn INSERT, UPDATE hay DELETE.
int mysql_character_set_name ( [resource link_identifier]):trả về ký tự mặc định gán tên cho kết nối hiện hành.
bool mysql_close ( [resource link_identifier]): trả về TRUE nếu thành công, FALSE nếu thất bại. Hàm này đóng kết nối đến MySQL server mà kết hợp với nhận dạng liên kết định rõ, nếu link_identifier không định rõ thì liên kết mở cuối cùng sẽ được sử dụng. Việc sử dụng hàm này không phải lúc nào cũng cần thiết, như đối với các liên kết mở không liên tục thì nó sẽ tự động đóng khi kết thúc sự thực thi của script. Chú ý hàm này không đóng kết nối liên tục được tạo bởi hàm mysql_pconnect( ).
resource mysql_connect ( [string server [, string username [, string password [, bool new_link]]]]): trả về một định danh liên kết MySQL khi thành công, còn không trả về giá trị FALSE. Hàm này thiết lập một kết nối đến MySQL server. Những giá trị mặc định sau được dùng cho các tham số tùy chọn không khai báo: server='localhost:3306', username=tên của người sử dụng là chủ của server và password= bỏ trống. Nếu lời gọi lần thứ hai được tạo bởi mysql_connect( ) với cùng các tham số mà không có liên kết mới nào được thiết lập,nhưng thay vào đó một liên kết định danh của cổng đang được mở sẽ được trả về. Tham số new_link mô tả hành vi này và làm cho hàm mysql_connect( ) luôn mở một liên kết mới, ngay cả khi nếu hàm mysql_connect( ) bị gọi trước với cùng các tham số. Liên kết đến server sẽ bị đóng ngay khi việc thực thi của script kết thúc,trừ khi nó bị đóng sớm hơn bởi hàm gọi mysql_close( ).
bool mysql_create_db ( string database name [, resource link_identifier]): tạo một cơ sở dữ liệu mới trên server kết hợp với liên kết định danh được chỉ định. Trả về giá trị TRUE nếu thành công, ngược lại trả về FALSE.
bool mysql_data_seek ( resource result_identifier, int row_number): di chuyển con trỏ hàng bên trong của kết quả MySQL kết hợp với kết quả định danh cụ thể để chỉ đến số hàng được chỉ định. Nó sẽ trả về TRUE nếu thành công, ngược lại trả về FALSE.Row_number bắt đầu tại 0, và nên có giá trị trong khoảng từ 0 đến mysql_num_rows - 1.
string mysql_db_name ( resource result, int row [, mixed field]): lấy tham số đầu tiên là con trỏ kết quả từ việc gọi hàm mysql_list_dbs( ). Tham số hàng là chỉ mục đến kết quả gán. Nếu xảy ra lỗi, thì trả về FALSE.Sử dụng hàm mysql_errono( ) và mysql_error( ) để xem bản chất lỗi.
resource mysql_db_query ( string database, string query [, resource link_identifier]): chọn một cơ sở dữ liệu và thực thi một truy vấn trên nó. Nếu liên kết định danh tùy chọn không được chỉ định hàm sẽ cố tìm ra một liên kết mở đến MySQL server và nếu không có liên kết nào được tìm thấy thì nó sẽ tạo ra một liên kết như nếu hàm mysql_connect( ) đã được gọi không có tham số nào. Hàm sẽ trả về một kết quả MySQL dương, hay là FALSE nếu bị lỗi.
bool mysql_drop_db ( string database_name [, resource link_identifier]): huỷ bỏ toàn bộ cơ sở dữ liệu từ server kết hợp với liên kết định danh chỉ định. Trả về TRUE nếu thành công, FALSE nếu gặp lỗi.
int mysql_errno ( [resource link_identifier]): trả về số lỗi từ hàm MySQL cuối cùng, hay là 0 nếu không có lỗi nào.
string mysql_error ( [resource link_identifier]): trả về văn bản lỗi từ hàm MySQL cuối cùng hay ' ' nếu không có lỗi nào.
string mysql_escape_string ( string unescaped_string): tránh unescaped_string để nó có thể ở nơi an toàn trong mysql_querry( ).
array mysql_fetch_array ( resource result [, int result_type]): trả về một mảng tương đương với hàng tìm nạp, hay là FALSE nếu không có hàng nào.
array mysql_fetch_assoc ( resource result): trả về một mảng kết hợp tương đương với hàng tìm nạp, hay là FALSE nếu không có hàng nào.
object mysql_fetch_field ( resource result [, int field_offset]): trả về một đối tương chứa thông tin các trường. Nó thường được dùng để lấy thông tin về các trường trong một kết quả truy vấn.
array mysql_fetch_lengths ( resource result): trả về một mảng tương đương với chiều dài của mỗi trường trong hàng cuối cùng được tìm nạp bởi mysql_fetch_row() hay trả về FALSE nếu lỗi.
object mysql_fetch_object ( resource result): trả về một đối tượng với các thuộc tính tương đương với hàng tìm nạp hay FALSE nếu không có hàng nào.
array mysql_fetch_row ( resource result): trả về một mảng tương đương với hàng tìm nạp, nếu không có hàng nào thì trả về FALSE.
string mysql_field_flags ( resource result, int field_offset): trả về trường các cờ của trường được chỉ định.
int mysql_field_len ( resource result, int field_offset): trả về chiều dài của trường được chỉ định.
string mysql_field_name ( resource result, int field_index): trả về tên của trường chỉ mục được chỉ định.
int mysql_field_seek ( resource result, int field_offset): tìm kiếm offset của trường được chỉ định.
string mysql_field_table ( resource result, int field_offset): trả về tên của bảng mà trường được chỉ định ở trong đó.
string mysql_field_type ( resource result, int field_offset): trả về loại của trường được chỉ định .
bool mysql_free_result ( resource result): giải phóng tất cả bộ nhớ kết hợp với định danh kết quả result. Hàm này chỉ được gọi khi bạn quan tâm đến bao nhiêu bộ nhớ đang được sử dụng cho các câu truy vấn mà trả về các tập hợp lớn các kết quả. Tất cả kết quả bộ nhớ kết hợp sẽ tự động được giải phóng khi script kết thúc thực hiện. Trả về TRUE nếu thành công, FALSE nếu thất bại.
string mysql_get_client_info ( void): trả về chuỗi biểu thị phiên bản thư viện của client.
string mysql_get_host_info ( [resource link_identifier]): trả về chuỗi mô tả loại kết nối được dùng cho kết nối link_indentifier,bao gồm cả tên của server host. Nếu link_indentifier bị bỏ qua, thì kết nối được mở cuối cùng sẽ được sử dụng.
int mysql_get_proto_info ( [resource link_identifier]): trả về phiên bản giao thức được dùng bởi kết nối link_identifier. Nếu link_identifier bị bỏ qua, kết nối mở cuối cùng sẽ được dùng.
string mysql_get_server_info ( [resource link_identifier]): trả về phiên bản của server được dùng bởi kết nối link_identifier, nếu link_identifier bị bỏ qua, kết nối được mở cuối cùng sẽ được sử dụng.
string mysql_info ( [resource link_identifier]): trả về thông tin chi tiết về truy vấn cuối cùng sử dụng link_identifier.Nếu link_identifier không được chỉ định, liên kết cuối cùng được mở sẽ được thừa nhận.
int mysql_insert_id ( [resource link_identifier]): trả về ID được tạo cho bởi cột AUTO_INCREMENT bởi câu lệnh truy vấn INSERT trước đó sử dụng link_identifier được cho. Nếu link_identifier không được chỉ định, liên kết mở cuối cùng sẽ được thừa nhận.
resource mysql_list_dbs ( [resource link_identifier]): trả về con trỏ kết quả chứa các cơ sở dữ liệu có sẵn từ daemon mysql hiện hành.
resource mysql_list_fields ( string database_name, string table_name [, resource link_identifier]): truy xuất thông tin về tên các bảng cho trước. Các tham số là tên các cơ sở dữ liệu hay tên các bảng.
resource mysql_list_processes ( [resource link_identifier]): trả về con trỏ kết quả mô tả các luồng hiện hành của server.
resource mysql_list_tables ( string database [, resource link_identifier]): lấy tên cơ sở dữ liệu và trả về con trỏ kết quả.
int mysql_num_fields ( resource result): trả về số lượng các trường trong tập hợp kết quả.
int mysql_num_rows ( resource result): trả về số lượng các hàng trong tập hợp kết quả. Hàm này chỉ đúng cho các câu lệnh SELECT.
resource mysql_pconnect ( [string server [, string username [, string password]]]): thiết lập kết nối đến MySQL server.
bool mysql_ping ( [resource link_identifier]): kiểm tra kết nối đến server có làm việc hay không. Nếu nó không làm việc thì một kết lại tự động thực hiện. Hàm này có thể được dùng bởi các script mà giữ nguyên trạng thái nhàn rỗi trong một lúc để kiểm tra xem server có đóng kết nối và kết nối lại nếu cần thiết hay không. Hàm này sẽ trả về TRUE nếu kết nối đến server đang làm việc nếu không thì trả về FALSE.
resource mysql_query ( string query [, resource link_identifier [, int result_mode]]): gởi một truy vấn đến cơ sở dữ liệu hiện hành đang hoạt động trên server mà kết hợp với định danh liên kết được chỉ định. Nếu link_identifier không được chỉ định, liên kết mở cuối cùng sẽ được thừa nhận. Nếu không có liên kết nào được mở, hàm sẽ cố thiết lập một liên kết nếu mysql_connect( ) đã được gọi không có tham số nào và dùng nó.
string mysql_real_escape_string ( string unescaped_string [, resource link_identifier]): tránh được các kí tự đặc biệt trong unescaped_string, trả về tập hợp kí tự hiện hành của kết nối.
mixed mysql_result ( resource result, int row [, mixed field]): trả về nội dung của một cell từ tập hợp kết quả MySQL. Tham số trường có thể là offset của trường hay là tên trường hay là tên bảng của trường.tên trường. Nếu tên cột có tên hiệu thì sử dụng tên hiệu thay cho tên cột.
bool mysql_select_db ( string database_name [, resource link_identifier]): gán cơ sở dữ liệu hiện hành hoạt động trên server mà kết hợp với định danh liên kết chỉ định. Nếu không có định danh liên kết nào được chỉ định thí liên kết mở cuối cùng được thừa nhận. Nếu không có liên kết nào được mở thì hàm sẽ cố thiết lập mộ liên kết như khi hàm mysql_connect( ) đã được gọi không có tham số và sử dụng nó
Code:
string mysql_stat ( [resource link_identifier])
: trả về tình trạng hiện hành của server.
string mysql_tablename ( resource result, int i): trả về tên bảng của trường, lấy con trỏ kết quả trả về bởi hàm mysql_list_table( ) cũng như chỉ mục integer.
int mysql_thread_id ( [resource link_identifier]): trả về ID của thread hiện hành. Nếu kết nối bị mất và bạn kết nối lại với mysql_ping( ), thì ID của thread sẽ bị thay đổi. Điều này có nghĩa là bạn không nên lấy ID của thread và chứa nó cho sau này. Bạn nên lấy nó khi nào bạn cần nó.
resource mysql_unbuffered_query ( string query [, resource link_identifier [, int result_mode]]): gởi một truy vấn SQL query đến MySQL mà không cần các hàng kết quả tìm nạp và đệm một cách tự động như mysql_query( ).
Sau đây là ví dụ đơn giản trình bày cách kết nối, thực thi câu truy vấn, in các hàng kết quả và ngừng kết nối từ cơ sở dữ liệu MySQL.


Code:
<?php
  /* Kết nối,chọn cơ sở dữ liệu */
  $link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
      or die("Could not connect");
  print "Connected successfully";
  mysql_select_db("my_database") or die("Could not select database");
  /* Thực hiện câu truy vấn SQL */
  $query = "SELECT * FROM my_table";
  $result = mysql_query($query) or die("Query failed");
  /* In kết quả ra trang *.HTML */
  print "<table>\n";
  while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
      print "\t<tr>\n";
      foreach ($line as $col_value) {
          print "\t\t<td>$col_value</td>\n";
      }
      print "\t</tr>\n";
  }
  print "</table>\n";
  /* Free resultset */
  mysql_free_result($result);
  /*Đóng kết nối */
  mysql_close($link);
?>
Sự cần thiết của một cơ sở dữ liệu không chỉ bởi nhu cầu phục vụ, tạo ra các nguồn tài liệu một cách phong phú, mà bởi sự tăng lên của nhu cầu truy cập các thông tin "trực tiếp" trong ngày bằng việc sử dụng một giao diện đơn giản và hợp nhất. Bạn có thể cho phép mọi người trong các văn phòng bán hàng truy vấn một cơ sở dữ liệu hàng tồn kho. Cơ sỡ dữ liệu này có thể được xây dựng khác, chạy trên một hệ điều hành hoàn toàn khác với máy tính của người dùng.
Với một web server có cấu hình tốt, một cơ sở dữ liệu server( chẳng hạn như MySQL), và một vài "phép thần thông" của PHP, chỉ những thứ người dùng cần mới có thể có trên trình duyệt web.
Cuối cùng: nếu bạn cần các thông tin luôn năng động, cập nhật, bạn cần phải phát triển một cơ sở dữ liệu đằng sau ứng dụng web.Với một cơ sở dữ liệu phía sau, web site của bạn sẽ đạt được một trình độ phức tạp và linh hoạt, nơi mà dữ liệu được tạo ra và sử dụng, thông tin được làm cho có ý nghĩa với người dùng mà không cần phải bắt buộc nó phải “đúc nặn” lại cho vừa với cách hiển thị hay tổ chức nó.

IV. Kiến trúc của một ứng dụng Web Database

Các phần cơ bản của ứng dụng Web Database là:
- Client: trình duyệt web của người dùng, một java applet, một ứng dụng java, thậm chí là một platform phụ thuộc vào chương trình của client.
- Ứng dụng logic: mã hoá các thuật toán sử dụng trong các scripts CGI, các modul đặc biệt của web server, thậm chí một ứng dụng phụ thuộc vào server.
- Kết nối database: the database API, hay là các giao thức kết nối thông thường như ODBC hay JDBC.
- Database server: RDBMS, ODBMS...
Việc thực hiện các ứng dụng đó có thể được thực hiện bởi sử dụng mô hình nhiều lớp, bởi một hay nhiều lớp có thể kết hợp với nhau. Cách thực hiện thông thường nhất là hệ thống ba lớp.
1.Lớp thứ 1: web client( ví dụ như trình duyệt web của người dùng).
2.Lớp thứ 2: web server, các scripts của CGI, kết nối API đến database.
3.Lớp thứ 3: database server (ví dụ MySQL server).
admin
admin
Thiếu Úy III
Thiếu Úy III

Tổng số bài gửi : 627
Diem : 6539
Thank : 4
Join date : 24/03/2010
Đến từ : Bỉm Sơn - Thanh hóa

https://itprofes.forumvi.com

Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết