Đã đă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
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.
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:
%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