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 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!


All Rights Reserved