Hướng dẫn dùng queiries trong PHP

Đã đăng vào thg 6 26, 2017 6:05 CH 2 phút đọc

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

STTTên hàmChứ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àmcá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

Chủ Đề