SQL trong PHP
Giới Thiệu Ở bài này mình xin giới thiệu về SQL cũng như một số hàm của sql trong PHP, đầu tiên ta đi vào tìm hiểu sql là gì. Định Nghĩa: SQL (Structured Query Language) là một loại ngôn ngữ máy tính phổ biến để tạo, sửa, và lấy dữ liệu từ một hệ quản trị cơ sở dữ liệu quan hệ. SQL gồm 2 ...
Giới Thiệu
Ở bài này mình xin giới thiệu về SQL cũng như một số hàm của sql trong PHP, đầu tiên ta đi vào tìm hiểu sql là gì. Định Nghĩa: SQL (Structured Query Language) là một loại ngôn ngữ máy tính phổ biến để tạo, sửa, và lấy dữ liệu từ một hệ quản trị cơ sở dữ liệu quan hệ.
SQL gồm 2 thành phần chính
- DDL (Data Definition Language) định nghĩa cấu trúc của CSDL
- Cấu trúc của CSDL: CREATE TABLE, CREATE VIEW, ALTER TABLE,…
- Điều khiển quyền truy cập trên dữ liệu: GRANT, REVOKE,…
- DML (Data Manipulation Language) truy xuất và cập nhật dữ liệu: INSERT, UPDATE, DELETE, SELECT
Cú pháp:
- Chữ hoa đại diện cho từ khóa
- Chữ thường đại diện cho các từ của người dùng định nghĩa
- Dấu | chỉ sự lựa chọn.
- Dấu { chỉ phần tử bắt buộc phải có
- Dấu ... chỉ thành phần có thể lặp lại từ 0 đến nhiều lần
Lưu ý:
- Hầu hết các phần trong câu lệnh SQL là không phân biệt chữ hoa chữ thường, trừ các ký tự trong chuỗi dữ liệu.
- Nên viết các từ khóa của SQL bởi ký tự chữ hoa và các từ do người dụng định nghĩa (table, column, …) bởi ký tự chữ thường
Nhận biết thông báo lỗi:
- Tên cột không tìm thấy: Invalid column name
- Tên bảng không tìm thấy: Invalid object name
- Lỗi cú pháp: Incorrect Syntac near Incorrect Syntac near
- Tên cột có mặt ở nhiều bảng: Ambiguous column name
- Phép so sánh không tương thích kiểu: Error converting data type
Xử lý chuỗi trong MySQL
STT | Tên hàm | Chức năng |
---|---|---|
Text | LENGTH (str) | Xác định chiều dài chuỗi str |
Text | CONCAT (str1, str2, …, strn) | Nối các chuỗi str1, str2, …, strn thành một chuỗi duy nhất |
Text | FORMAT (str, n) | Chuyển đổi định dạng chuỗi str theo dạng #,###,###.##, trong đó làm tròn đến n số thập phân |
Text | INSERT (str, pos, len, newstr) | Thay thế các ký tự trong chuỗi str từ vị trí thứ pos đến vị trí thứ pos+len-1 bởi chuỗi ký tự newstr |
Text | INSTR (str, substr) | Trả về vị trí xuất hiện đầu tiên của chuỗi substr trong chuỗi st |
Text | LEFT (str, len) | Trả về chuỗi ký tự tính từ vị trí bên trái của chuỗi str từ vị trí thứ nhất đến vị trí thứ len |
Text | RIGHT (str, len) | Trả về chuỗi ký tự tính từ vị trí bên phải của chuỗi str từ vị trí thứ nhất đến vị trí thứ len. |
Text | LOCATE (substr, str, pos) | Trả về vị trí xuất hiện đầu tiên của chuỗi substr trong chuỗi str tính từ vị trí thứ pos |
Text | LOWER (str) | Chuyển đổi chuỗi str thành chữ thường |
Text | UPPER (str) | Chuyển đổi chuỗi str thành chữ hoa |
Text | LTRIM (str) | Loại bỏ tất cả khoảng trắng bên trái chuỗi str |
Text | RTRIM (str) | Loại bỏ tất cả khoảng trắng bên phải chuỗi str |
Text | REPLACE (str, from_str, to_str) | Thay thế các ký tự from_str trong chuỗi str bởi các ký tự to_str |
Text | REVERSE (str) | Đảo ngược chuỗi str |
Text | SUBSTRING (str FROM pos FOR len) | Trích lọc từ chuỗi str một chuỗi mới, chuỗi mới này có các ký tự bắt đầu từ vị trí pos (tính từ vị trí biên trái) cho đến vị trí pos+len-1 |
XỬ LÝ THỜI GIAN TRONG MYSQL
Trong nội dung này, tập trung trình bày các hàm xử lý thời gian, ngày, tháng, năm, … các thao cộng trừ và định dạng thời gian trong hệ quản trị cơ sở dữ liệu MySQL.
Hàm | cách sử dụng | đầu vào | đầu ra |
---|---|---|---|
NOW() | Xác định thời gian tại thời điểm hiện tại | SELECT NOW(); | 2017-06-26 19:50:24 |
CURDATE() | Xác định ngày, tháng, năm tại thời điểm hiện tại | SELECT CURDATE(); | 2017-06-26 |
CURTIME() | Xác định giờ, phút, giây tại thời điểm hiện tại | SELECT CURTIME(); | 19:54:27 |
DATE(expr) | Xác định ngày, tháng, năm tại thời điểm expr | SELECT DATE('2017-06-26 09:22:03'); | 2017-06-26 |
TIME(expr) | Xác định giờ, phút, giây tại thời điểm expr | SELECT DATE('2017-06-26 09:22:03'); | 09:22:03 |
YEAR(expr) | Xác định năm tại thời điểm expr | SELECT YEAR('2017-06-26'); | 2017 |
MONTH(expr) | Xác định tháng (chỉ số 1, 2, 3, …) tại thời điểm expr | SELECT MONTH('2017-06-26'); | 06 |
MONTHNAME(expr) | Xác định tên tháng tại thời điểm expr | SELECT MONTHNAME('2017-06-26'); | june |
WEEKDAY(expr) | Xác định chỉ số ngày trong tuần (0 = Monday, 1 = Tuesday, … 6 = Sunday) | SELECT WEEKDAY('2017-06-26'); | 6 |
DAY(expr) | Xác định ngày (chỉ số) tại thời điểm expr | SELECT DAY('2017-06-26'); | 26 |
DAYOFMONTH(expr) | Xác định số thứ tự của ngày trong tháng tại thời điểm expr (kết quả nằm trong khoảng từ 1 đến 31) | SELECT DAYOFMONTH('2017-06-26'); | 26 |
DAYNAME(expr) | Xác định tên (thứ) của ngày tại thời điểm expr | SELECT DAYNAME('2017-06-26'); | Sunday |
HOUR(expr) | Xác định giờ tại thời điểm expr | SELECT HOUR('2017-06-26 09:22:03'); | 9 |
MINUTE(expr) | Xác định phút tại thời điểm expr | SELECT MINUTE('2017-06-26 09:22:03'); | 22 |
TIME_TO_SEC(expr) | Chuyển thời gian tại thời điểm expr ra số giây | SELECT TIME_TO_SEC('22:23:00'); | 80580 |
Bảng các ký hiệu định dạng:
Ký hiệu | Ý nghĩa |
---|---|
%a | Tên viết tắt các ngày trong tuần (Sun, …, Sat ) |
%b | Tên viết tắt các tháng trong năm (Jan, …, Dec ) |
%c | Tháng (0,1, …, 12) |
%d | Thứ tự các ngày trong tháng (00, 01, …, 31) |
%e | Thứ tự các ngày trong tháng (0, 1, …, 31) |
%f | Microseconds (000000..999999) |
%H | Giờ (00..23) |
%h | Giờ (01..12) |
%I | Giờ (01..12) |
%i | Phút (00..59) |
%j | Số thứ tự ngày trong năm (001..366) |
%k | Giờ (0..23) |
%l | Giờ (1..12) |
%M | Tên tháng (January..December) |
%m | Tháng (00..12) |
%p | AM hoặc PM |
%r | Giờ (00..12) (hh:mm:ss theo sau bởi AM hoặc PM) |
%S | Giây (00..59) |
%T | Giờ (00..23) (hh:mm:ss) |
%U | Số thứ tự tuần trong năm (00..53), khi chủ nhật là ngày đầu tiên của tuần |
Kết Luận:
trên đây là bài giới thiệu về các hàm cũng như một số chú ý liên quan đến SQL, hy vọng sẽ giúp ích phần nào cho các bạn!