SQL - Ngôn ngữ truy vấn CSDL muôn đời

SQL - Ngôn ngữ truy vấn CSDL muôn đời

Share

Hướng dẫn câu lệnh SQL từ cơ bản đến chuyên sâu. chia sẻ kiến thức Sql miễn phí

27/08/2024

CÂU LỆNH SELECT TỰ NHIÊN

💐Trên thực tế, mọi người đã làm quen với Query thì rất ngán ngẩm kiểu SELECT A, B, C.. Lúc kiểm tra lại, ta cứ phải đi mò nọ, mò kia. Tức khủng khiếp. Do vậy, các nhà phát triển phải dùng chiêu viết hàm trung gian là MYSELECT.

💐Trình tự các bước như sau:
𝟏. 𝐕𝐢ế𝐭 𝐡à𝐦 𝐌𝐲𝐒𝐞𝐥𝐞𝐜𝐭
Nội dung hàm này, mình sẽ copy ở cuối trang.

2. 𝓠𝓾𝔂 đổ𝓲 𝓬â𝓾 𝓵ệ𝓷𝓱
- Đặt tên vùng dữ liệu. VD: MyData
- Viết SQL chuẩn: SELECT [FieldName1],[FieldName2][FieldName4],... Nói chung, đây là tên trường bất kỳ có ngoặc vuông.
VD: SELECT [STT],[Ngay],[Quy],[Tien]
- Sử dụng MYSELECT: MYSELECT("Câu lệnh SQL chuẩn", Tên vùng)
VD: =MYSELECT("SELECT [STT],[Ngay],[Quy],[Tien]"; MyData)
---------> Tại ô A1 sẽ là =SELECT Col1,Col3,Col4,Col5

3.𝓣𝓻𝓾𝔂 𝓿ấ𝓷
Cú pháp: Query (Vùng; "SQL đã xử lý"; 1)
VD: =Query ({MyData}; A1; 1) ---> Điều tuyệt vời sẽ đến.

4.Đá𝓷𝓱 𝓰𝓲á
- Select câu tự nhiên, dễ check được lỗi.
- Generate câu lệnh hơi chút xíu nhưng chỉ là lần đầu, khi dùng lại ta coi đó là text bình thường.

𝟧.𝒫𝐻Ụ 𝐿Ụ𝒞
function MYSELECT(sqlstring,headersrange) {
let text = sqlstring
let headers = headersrange[0]

let results = text.matchAll(/\[.*?\]/g)
let matches = [...results].map(match => match[0])
// [name], [salary], [dept], [salary]
let uniqueMatches = [...new Set(matches)]
//console.log(uniqueMatches)
// [name], [salary], [dept]
let pos
let regextext
uniqueMatches.forEach(match=>{
//console.log(match)

pos = headers.indexOf(match.slice(1,-1))
//console.log(pos)
if(pos !== -1){
regextext = `\\[${match.slice(1,-1)}\\]`
console.log(regextext)
text = text.replace(new RegExp(regextext,"g"),`Col${pos+1}`)
}

})
return text
}

25/08/2024

BẢNG TRONG GOOGLESHEET
Sau khi bạn chuyển sang dang bảng, thay vì nhìn tọa độ, bạn có thể dùng hàm truyền thống - truy cập trực tiếp vào trường mà không cần biết bảng dài bao nhiêu dòng.

Cồng thức =FuctionName(Tên bảng[Trường])
VD: Tổng hợp doanh số, bạn thể viết là =SUM(tblThuChi[Thu])

Thật tiện dụng phải không nào?

09/02/2024

CHUYỆN NGOÀI LUỒNG
Ngày mùng 1 Tết, anh em yêu Code mấy cũng kiêng viết Code kể cả SQL vi Code sinh ra là để Debug. Dù thành công hay không, ta cũng phải bắt lỗi cả năm.

28/01/2024

KẾT HỢP APPSCRIPT - SQL| SONG KIẾM HỢP BÍCH - KHÔNG DÙNG HƠI PHÍ
-------------
1.Lợi thế:
- Tốc độ nhanh
- Ít phải viết code
- Tận dụng sức mạnh của SQL - Ngôn ngữ truy vấn CSDL muôn đời

2. Cách dùng
//Khai báo chuỗi SQL bắt đầu và kết thúc đều dùng \"
var strSQL = "";
strSQL = "\"SELECT * ..\"";
//Khai báo biểu thức
var strFormula = "=QUERY(Miền dữ liệu;SQL;1)";
//Thế câu lệnh giúp giảm tài strFormula.
strFormula = strFormula.replace("SQL",strSQL);
//Chọn vùng mục tiêu
var cell = sheet.getRange(...);
//Gán biểu thức
cell.setFormula(strFormula);

//Chúc cả nhà thành công!

24/01/2024

CÁCH KHỬ HEADER TRONG GOOGLE SHEET QUERY
1.Công thức chính
Query(Miền Dữ liệu; SQL; Header)
- Header = 1: Có tiêu đề đầu bảng
- Header = 0: Bỏ tiêu đề đầu bảng

2.Vấn đề tồn tại
Thực tế, khi bạn set Header = 0; Nó vẫn còn Header ở dạng chuẩn ở một số hệ nền. Nên việc lấy giá trị làm tiêu chuẩn so sánh, mỗi dòng lồng 1 câu lệnh SQL không thể thực hiện được.

3. Giải pháp
- Sử dụng 2 Query lồng nhau
- Cấu trúc: Query(Query(Miền Dữ liệu; SQL1; 0); SQL2; 0)
- Giải thích:
+ SQL1: Câu lệnh truy vấn thực hiện bình thường
+ SQL2: Chỉ cần dùng SELECT * OFFSET 1

Chúc cả nhà thành công!

20/12/2023

PHÉP INNER JOIN TRONG QUERY GOOGLE SHEET

Thật đáng tiếc, tôi chưa tìm ra cách nào dùng như SQL để SELECT cái ra luôn. Tuy nhiên, chúng ta có thể lách = cách dùng ARRAYFORMULA để chống chế:
= ARRAYFORMULA(VLOOKUP( Miền tìm ; Vùng tìm ; đếm cột ;0))

14/11/2023

SỨC MẠNH THẬT SỰ CỦA QUERY TRONG GOOGLE SHEET
1. Bảng gốc
Giả định rằng, tôi có bảng doanh số theo tuần của các nhân viên trong công ty.
2. Bảng tổng hợp
Xác định Doanh thu trong tuần của từng nhân viên
Tại F2: Tôi có câu lệnh:
SELECT
B,
SUM(D)
GROUP BY B
PIVOT C
Tại F3, tôi có dòng lệnh Query:
=QUERY(A1:D13; F2;1)

Flowchart Maker & Online Diagram Software 16/08/2023

Công cụ vẽ thuật toán tuyệt vời.

Flowchart Maker & Online Diagram Software draw.io is free online diagram software for making flowcharts, process diagrams, org charts, UML, ER and network diagrams

SẢN PHẨM - Bảo vệ cột sống 24/04/2023

Mô hình Winform (.Net) kết nối MySQL (Không Remote) thông qua cầu WebService

SẢN PHẨM - Bảo vệ cột sống Ứng dụng Trợ lý cột sống ảo được viết trên nền tảng Hệ điều hành Windows, giúp bạn đặt lịch vận động, giảm áp đĩa đệm, hỗ trợ giảm đau lưng.

12/09/2022

LẠC ĐỀ
Tớ ra được bí kíp để Path tương đối tương thích với hệ thống PHP wordpress.
VD: TaiTro/BTSN-123.jpg
+ "TaiTro/BTSN-123.jpg" --> Lúc ra đúng, lúc ra sai
+ "./TaiTro/BTSN-123.jpg" --> Lúc ra đúng, lúc ra sai
+ "/TaiTro/BTSN-123.jpg" --> OK

12/04/2022

VẤN ĐỀ TIẾNG VIỆT TRONG MYSQL
Đối với kiểu varchar, char trong thiết kế Table, phần charset chúng ta phải nhất quán UTF-8, hoặc UTF-16.
Nếu chẳng may, bạn chỉ lệch 1 trường duy nhất, khi Query chỉ cần có một chữ tiếng Việt (VD: ... WHERE MonHoc = 'Tiếng Việt') thì câu lệnh này có thể chạy trong PHP Admin vẫn bình thường, mà qua cầu ($wpdb) chết sặc tiết dù cho chúng ta rõ ràng không nhắc đến trường đó.

Want your school to be the top-listed School/college in Hanoi?

Click here to claim your Sponsored Listing.

Location

Website

Address

Hanoi