MySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở, hoàn toàn miễn phí.Có thể chạy trên nhiều hệ điều hành: Window, Linux, ...Cung cấp một hệ thống lớn các hàm tiện ích. Thích hợp cho các ứng dụng internet.Phù hợp khi dùng với PHP được cộng đồng hỗ trợ.Dữ liệu lưu trữ trong MySQL dưới dạng các đối tượng được gọi là các bảng.
• • • • Giới thiệu MySQL Làm việc với MySQL Kết nối với sở liệu MySQL Sử dụng phát biểu Select để hiển thị liệu • • • • • MySQL hệ quản trị sở liệu mã nguồn mở, hoàn toàn miễn phí. Có thể chạy nhiều hệ điều hành: Window, Linux, . Cung cấp hệ thống lớn hàm tiện ích. Thích hợp cho ứng dụng internet. Phù hợp dùng với PHP cộng đồng hỗ trợ. Dữ liệu lưu trữ MySQL dạng đối tượng gọi bảng. Kết nối tới Server MySQL • Chuỗi (String) – Là dãy kí tự đặt cặp nháy đơn (' ') cặp nháy kép (" "). Ví dụ 'a string' "another string" – Thêm kí tự thoát (escape character) '\' vào trước kí tự có nghĩa đặc biệt. \0 Kí tự NUL (có mã ASCII 0) \n Kí tự xuống dòng \t Kí tự tab \r Kí tự đầu dòng \' Kí tự ' dùng để bao quanh chuỗi kí tự \" Kí tự " dùng để bao quanh chuỗi kí tự \\ Kí tự \ dùng để làm kí tự thoát \% % kí tự dùng để đại diện cho chuỗi kí tự \_ _ kí tự dùng đại diện cho kí tự • • • Giá trị NULL – NULL có nghĩa giá trị chưa xác định hay giá trị không tồn csdl. MySQL hỗ trợ NULL để biểu đạt khái niệm thông tin thiếu. Tên csdl, tên bảng, tên cột, bí danh (alias) – Tên csdl tối đa 64 kí tự, tuân theo qui tắc đặt tên thư mục ngoại trừ kí tự ‘.’ ‘/’ – Tên bảng tối đa 64 kí tự, tuân theo qui tắc đặt tên file ngoại trừ kí tự ‘.’ ‘/’ – Tên cột tối đa 64 kí tự, cho phép sử dụng tất kí tự – Alias cho phép tối đa 255 kí tự dùng tất kí tự Chú thích – Để thích dòng: sử dụng kí tự # – – Để thích khối dòng đặt cặp /* */ • Dữ liệu dạng số Kiểu Dữ liệu Kích thước (Bytes) Phạm vi biểu diễn tinyint(size) -127 128 255 smallint(size) -32768 32767 65535 mediumint(size) -8388608 838860 16777215 int(size) -231 231-1 232-1 bigint(size) -263 263-1 264-1 float(size,d) Một số lớn với dấu chấm động. size số số tối đa. d số số sau dấu chấm thập phân double(size,d) Một số lớn với dấu chấm động. size số số tối đa. d số số sau dấu chấm thập phân decimal(size,d) Lưu trữ double chuỗi, cho phép cố định dấu chấm thập phân. size số số tối đa. d số số sau dấu chấm thập phân • Dữ liệu dạng chuỗi Textual Data Types Description char(size) Lưu trữ chuỗi có độ dài cố định. Có thể lưu trữ tới 255 kí tự varchar(size) Lưu trữ chuỗi có độ dài biến động. Có thể lưu trữ tới 255 kí tự tinytext Lưu trữ chuỗi có độ dài tối đa 255 kí tự text Lưu trữ chuỗi với độ dài tối đa 65.535 kí tự blob Cho BLOBs (Binary Large OBjects). Lưu trữ tới 65.535 byte liệu mediumtext Lưu trữ chuỗi với độ dài tối đa 16.777.215 kí tự mediumblob Cho BLOBs (Binary Large OBjects). Lưu trữ tới 16.777.215 byte liệu longtext Lưu trữ chuỗi có độ dài tối đa 4.294.967.295 kí tự longblob Cho BLOBs (Binary Large OBjects). Lưu trữ tới 4.294.967.295 byte liệu • Dữ liệu ngày tháng: Kiểu Dữ liệu Mô tả Date Biểu dạng YYYY-MM-DD (Từ '1000-01-01' tới '9999-12-31') Datetime Biểu dạng YYYY-MM-DD HH:MM:SS (Từ '1000-01-01 00:00:00' đến '9999-12-31 23:59:59') Time Biểu dạng YYYY-MM-DD HH:MM:SS Từ -838:59:59' đến '838:59:59' TimeStamp Biểu dạng YYYY-MM-DD HH:MM:SS ('1970-01-01 00:00:00' UTC) Year(2|4) 1970 đến 2069 • Dữ liệu ngày tháng: • • • • • • Toán tử số học: +, -, *, / Toán tử so sánh: >, =, 0; IFNULL(1/0) =>1 • Toán tử LIKE Biểu_thức LIKE mẫu [ESCAPE ‘escape_char’] – Kí tự mở rộng dùng mẫu toán tử LIKE • Kí tự % : đại diện cho chuỗi kí tự bất kì, kể chuỗi rỗng • Kí tự _ : đại diện cho kí tự • Phép toán LIKE biểu_thức LIKE mẫu[ESCAPE ‘escape-char’] escape-char: gồm kí tự ‘%’ đại diện cho chuỗi kí tự bất kỳ, kí tự ‘-’ đại diện chi kí tự – Ví dụ select ‘ha’ LIKE ‘ha\-’; trả select ‘10’ LIKE ‘1\%’; trả • Các hàm so sánh chuỗi có phân biệt chữ hoa chữ thường – Hàm CHAR(mã_ASCII_1, mã_ASCII_2, … SELECT CHAR(77,121,83,81,'76'); mã_ASCII_n) Hàm trả dãy kí tự có mã ASCII tươngvề ứng =>trả “MySQL” – Hàm CONCAT(str1, str2, …, strN): Hàm trả chuỗi ghép từ chuỗi tham số. Trả NULL tham số NULL SELECT CONCAT(‘My’,’S’,’QL’); =>trả “MySQL” • Hàm CONCAT_WS(separator,str1, str2, …, strN): Hàm trả chuỗi ghép từ str1,str2,strN, chuỗi ghép lại phân cách kí tự separator. Nếu separator NULL hàm trả NULL. SELECT CONCAT_WS(",","First name","Second name","Last Name"); ->Trả về: 'First name,Second name,Last Name' • Hàm LENGTH(str) Trả độ dài chuỗi str • Hàm LOCATE(substr,str,[pos]), POSITION(substr IN str) Trả vị trí xuất chuỗi substr chuỗi str. • • • • • • • • Hàm UPPER(str): Hàm trả chuỗi str viết in hoa. Hàm LOWER(str): Hàm trả chuỗi str viết in thường. Hàm LTRIM(str): Bỏ khoảng trắng bên trái chuỗi. Hàm RTRIM(str): Bỏ khoảng trắng bên phải chuỗi. Hàm LEFT(str,n): Hàm trả chuỗi gồm len kí tự cắt từ bên trái chuỗi str. Hàm RIGHT(str,n): Hàm trả chuỗi gồm len kí tự cắt từ bên phải chuỗi str. Hàm SUBSTRING(str,pos,[len]), SUBSTRING(str FROM pos [FOR len]), MID(str,pos,len) Là hàm trả chuỗi gồm len kí tự cắt từ vị trí pos chuỗi str. Hàm InSTR(str1, str2): Trả vị trí bắt đầu chuỗi str1 chuỗi str2. • CURDATE(): trả ngày tại, giá trị biểu diễn dạng 'YYYY-MM-DD' YYYYMMDD. SELECT CURDATE(); -> '2011-07-15' • SELECT CURDATE()+0; -> '20110715' CURTIME(): trả thời gian 'HH:MM:SS' or HHMMSS SELECT CURTIME(); -> '23:50:26' SELECT CURTIME()+0; -> '235026' tại, giá trị biểu diễn dạng • Hàm DATE(expr) trả ngày tháng năm từ biểu thức expr có kiểu date, hay datetime. SELECT DATE('2003-12-31 01:02:03'); -> '2003-12-31' • Hàm DATEDIFF(expr1,expr2): trả khoảng thời gian hai ngày expr1 expr2 SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30'); -> • Hàm DAYNAME(date)trả thứ ngày SELECT DAYNAME(‘2011-07-11'); -> Monday • Hàm DATE_FORMAT(date, format) Các specifier sau dùng chuỗi định dạng format Specifier %a,%W, %w %b,%M %c, %m %d, %e %h,%H %i %p %s, %S %T %Y, %y Description (Sun .Sat), (Sunday Saturday), (0=Sunday 6=Saturday) (Jan Dec),(January December) Month, numeric (0 12) Day of the month, numeric (00 31), (0 31) Hour (01 12), (00 23) Minutes, numeric (00 59) AM or PM Seconds (00 59) Time, 24-hour (hh:mm:ss) Year, numeric: four digits ; two digits • • • • • • • • HOUR(time) DAY(date) MINUTE(time) MONTH(date) NOW() SECOND(time) TIME() YEAR() • Hàm IF IF(điều_kiện, giá_trị_trả_về_1, Giá_trị_trả_về_2) – Giải thích: biểu thức điều_kiện (tức điều_kiện khác khác NULL) hàm IF trả giá trị giá_trị_trả_về_1. Trong trường hợp ngược lại, hàm IF trả giá trị giá_trị_trả_về_2 • Hàm IFNULL(biểu_thức, giá_trị_trả_về_1) [...]... MINUTE(time) MONTH(date) NOW() SECOND(time) TIME() YEAR() • Hàm IF IF(điều_kiện, giá _trị_ trả_về_1, Giá _trị_ trả_về_2) – Giải thích: nếu biểu thức điều_kiện đúng (tức là điều_kiện khác 0 hoặc khác NULL) thì hàm IF trả về giá trị giá _trị_ trả_về_1 Trong trường hợp ngược lại, hàm IF trả về giá trị giá _trị_ trả_về_2 • Hàm IFNULL(biểu_thức, giá _trị_ trả_về_1) ... đầu của chuỗi str1 trong chuỗi str2 • CURDATE(): trả về ngày hiện tại, giá trị được biểu diễn ở dạng 'YYYY-MM-DD' hoặc YYYYMMDD SELECT CURDATE(); -> '2011-07-15' • SELECT CURDATE()+0; -> '20110715' CURTIME(): trả về thời gian 'HH:MM:SS' or HHMMSS SELECT CURTIME(); -> '23:50:26' SELECT CURTIME()+0; -> '235026' hiện tại, giá trị được biểu diễn ở dạng • Hàm DATE(expr) trả về ngày tháng năm từ biểu thức... CHAR(mã_ASCII_1, mã_ASCII_2, … SELECT CHAR(77,121,83,81,'76'); mã_ASCII_n) Hàm trả về dãy các kí tự có mã ASCII tương ứng =>trả về MySQL – Hàm CONCAT(str1, str2, …, strN): Hàm trả về một chuỗi được ghép từ các chuỗi tham số Trả về NULL nếu tham CONCAT(‘My’,’S’,’QL’); SELECTsố là NULL =>trả về MySQL • Hàm CONCAT_WS(separator,str1, str2, …, strN): Hàm trả về một chuỗi được ghép từ các str1,str2,strN, các chuỗi . w0 h0" alt="" • Giới thiệu về MySQL • Làm việc với MySQL • Kết nối với cơ sở dữ liệu MySQL • Sử dụng phát biểu Select để hiển thị dữ liệu • MySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở,. tự bất kỳ • Giá trị NULL – NULL có nghĩa là một giá trị chưa xác định hay giá trị không tồn tại trong csdl. MySQL hỗ trợ NULL để biểu đạt khái niệm thông tin còn thiếu. • Tên csdl, tên bảng,. IF IF(điều_kiện, giá _trị_ trả_về_1, Giá _trị_ trả_về_2) – Giải thích: nếu biểu thức điều_kiện đúng (tức là điều_kiện khác 0 hoặc khác NULL) thì hàm IF trả về giá trị giá _trị_ trả_về_1. Trong trường