Hình ảnh giới thiệu SQL Cheat Sheet


Trong hướng dẫn này, bạn sẽ tìm thấy một bảng cheat hữu ích ghi lại một số yếu tố thường được sử dụng của SQL và thậm chí một vài yếu tố ít phổ biến hơn. Hy vọng, nó sẽ giúp các nhà phát triển – cả người mới bắt đầu và có kinh nghiệm – trở nên thành thạo hơn trong việc hiểu ngôn ngữ SQL của họ.

Sử dụng tài liệu này như một tài liệu tham khảo nhanh trong quá trình phát triển, hỗ trợ học tập hoặc thậm chí in nó ra và ràng buộc nó nếu bạn thích (bất cứ điều gì hiệu quả!).

Nhưng trước khi chúng ta bắt đầu sử dụng bảng cheat, đối với các nhà phát triển có thể không quen thuộc với SQL, hãy để bắt đầu với

SQL là gì

SQL là viết tắt của Ngôn ngữ truy vấn có cấu trúc. Nó có ngôn ngữ được lựa chọn trên web ngày hôm nay để lưu trữ, thao tác và truy xuất dữ liệu trong cơ sở dữ liệu quan hệ. Hầu hết, nếu không tất cả trong số các trang web bạn truy cập sẽ sử dụng nó theo một cách nào đó, bao gồm điều này một.

Đây là một cơ sở dữ liệu quan hệ cơ bản trông như thế nào. Ví dụ này trong các cửa hàng cụ thể thông tin thương mại điện tử, cụ thể là các sản phẩm được bán, người dùng mua chúng và hồ sơ của các đơn đặt hàng liên kết 2 thực thể này.

Một cơ sở dữ liệu quan hệ cơ bản

Sử dụng SQL, bạn có thể tương tác với cơ sở dữ liệu bằng cách viết các truy vấn, khi được thực thi, sẽ trả về bất kỳ kết quả nào đáp ứng tiêu chí của nó.

Ở đây, một câu hỏi ví dụ:-

CHỌN * TỪ người dùng;

Sử dụng câu lệnh CHỌN này, truy vấn sẽ chọn tất cả dữ liệu từ tất cả các cột trong bảng người dùng. Sau đó, nó sẽ trả về dữ liệu như dưới đây, thường được gọi là tập kết quả:-

Bảng người dùng ví dụ

Nếu chúng ta thay thế ký tự đại diện dấu hoa thị (*) bằng các tên cột cụ thể thay vào đó, chỉ dữ liệu từ các cột này sẽ được trả về từ truy vấn.

CHỌN First_name, last_name TỪ người dùng;

Bảng người dùng ví dụ với các cột giảm

Chúng ta có thể thêm một chút phức tạp vào câu lệnh CHỌN tiêu chuẩn bằng cách thêm mệnh đề WHERE, cho phép bạn lọc những gì được trả về.

CHỌN * TỪ sản phẩm WHERE stock_count <= 10 ORDER BY stock_count ASC;

Truy vấn này sẽ trả về tất cả dữ liệu từ bảng sản phẩm có giá trị stock_count nhỏ hơn 10 trong tập kết quả của nó.

Việc sử dụng từ khóa ORDER BY có nghĩa là kết quả sẽ được sắp xếp bằng cột stock_count, giá trị thấp nhất đến cao nhất.

Bảng sản phẩm mẫu

Sử dụng câu lệnh INSERT INTO, chúng ta có thể thêm dữ liệu mới vào bảng. Dưới đây, một ví dụ cơ bản thêm một người dùng mới vào bảng người dùng:-

Người dùng INSERT INTO (First_name, last_name, địa chỉ, email)
GIÁ TRỊ ('Người kiểm tra', 'Người đi bộ', '123 Phố giả, Sheffield, Vương quốc Anh', '[email được bảo vệ]');

Sau đó, nếu bạn định chạy lại truy vấn để trả về tất cả dữ liệu từ bảng người dùng, thì kết quả sẽ giống như sau:

Bảng ví dụ với hàng mới

Tất nhiên, những ví dụ này chỉ thể hiện một lựa chọn rất nhỏ về những gì ngôn ngữ SQL có khả năng.

SQL và MySQL

Bạn có thể đã nghe nói về MySQL trước đây. Điều quan trọng là bạn không nên nhầm lẫn điều này với chính SQL, vì có một sự khác biệt rõ ràng.

SQL và MySQLSQLngôn ngữ. Nó phác thảo cú pháp cho phép bạn viết các truy vấn quản lý cơ sở dữ liệu quan hệ. Chỉ có bấy nhiêu thôi.

MySQL trong khi đó là một cơ sở dữ liệu hệ thống chạy trên một máy chủ. Nó thực hiện ngôn ngữ SQL, cho phép bạn viết các truy vấn bằng cú pháp của nó để quản lý cơ sở dữ liệu MySQL.

Ngoài MySQL, còn có các hệ thống khác triển khai SQL. Một số trong những phổ biến hơn bao gồm:

  • PostgreSQL
  • SQLite
  • Cơ sở dữ liệu Oracle
  • Máy chủ Microsoft SQL

Cài đặt MySQL

các cửa sổ

Cách được đề xuất để cài đặt MySQL trên Windows là sử dụng trình cài đặt bạn có thể tải xuống từ Trang web MySQL.

Cài đặt MySQL Windows

Hệ điều hành Mac

Trên macOS, cách được khuyến nghị để cài đặt MySQL là sử dụng các gói gốc, nghe có vẻ phức tạp hơn nhiều so với thực tế. Về cơ bản, nó cũng liên quan đến việc chỉ cần tải xuống một trình cài đặt.

Cài đặt MySQL Mac

Ngoài ra, nếu bạn thích sử dụng trình quản lý gói như Homebrew, bạn có thể cài đặt MySQL như vậy:

cài đặt bia

Trong khi nếu bạn cần cài đặt phiên bản MySQL cũ 5.7, phiên bản vẫn được sử dụng rộng rãi ngày nay trên web, bạn có thể:

cài đặt bia [bảo vệ email]

Sử dụng MySQL

Với MySQL hiện đã được cài đặt trên hệ thống của bạn, để có được và viết nhanh nhất có thể bằng các truy vấn SQL, nó khuyên bạn nên sử dụng một ứng dụng quản lý SQL để giúp việc quản lý cơ sở dữ liệu của bạn trở nên đơn giản hơn, dễ dàng hơn.

Có rất nhiều ứng dụng để lựa chọn trong đó phần lớn thực hiện cùng một công việc, do đó, ứng dụng này tùy theo sở thích cá nhân của bạn mà bạn nên sử dụng:

  • Bàn làm việc MySQL được phát triển bởi Oracle, chủ sở hữu của MySQL.
  • HeidiSQL (Đề xuất Windows) là một ứng dụng mã nguồn mở miễn phí cho Windows. Dành cho người dùng macOS và Linux, Rượu được yêu cầu đầu tiên như một điều kiện tiên quyết.
  • phpMyAdmin là một thay thế rất phổ biến hoạt động trong trình duyệt web.
  • Phần tiếp theo (Đề xuất macOS) là một thay thế duy nhất cho macOS và yêu thích của chúng tôi nhờ giao diện rõ ràng và dễ sử dụng.

Khi bạn chuẩn bị sẵn sàng để bắt đầu viết các truy vấn SQL của riêng bạn, thay vì dành thời gian tạo cơ sở dữ liệu của riêng bạn, hãy xem xét nhập dữ liệu giả thay thế.

Trang web MySQL cung cấp một số cơ sở dữ liệu giả bạn có thể tải xuống miễn phí và sau đó nhập vào ứng dụng SQL của mình.

Cơ sở dữ liệu giả MySQL

Yêu thích của chúng tôi trong số này là thế giới cơ sở dữ liệu, cung cấp một số dữ liệu thú vị để thực hành viết các truy vấn SQL cho. Dưới đây, một ảnh chụp màn hình của bảng quốc gia trong Sequel Pro.

Ví dụ phần tiếp theo Pro

Truy vấn ví dụ này trả về tất cả các quốc gia có Nữ hoàng Elizabeth II là nguyên thủ quốc gia.

Ví dụ phần tiếp theo Pro

Trong khi điều này trả lại tất cả các nước châu Âu với dân số hơn 50 triệu người cùng với thành phố thủ đô và dân số của họ.

Ví dụ phần tiếp theo Pro

Và cái cuối cùng này trả về tỷ lệ phần trăm trung bình của người nói tiếng Pháp ở các quốc gia nơi tổng số người nói tiếng Pháp cao hơn 10%.

Ví dụ phần tiếp theo Pro

Cheat Sheet

Từ khóa

Một tập hợp các từ khóa được sử dụng trong các câu lệnh SQL, một mô tả và ví dụ thích hợp. Một số từ khóa nâng cao hơn có phần dành riêng của chúng sau này trong bảng cheat.

Trường hợp MySQL được đề cập bên cạnh một ví dụ, điều này có nghĩa là ví dụ này chỉ áp dụng cho cơ sở dữ liệu MySQL (trái ngược với bất kỳ hệ thống cơ sở dữ liệu nào khác).

Từ khóa SQL
Từ khóaSự miêu tả
THÊM VÀOThêm một cột mới vào một bảng hiện có.

Thí dụ: Thêm một cột mới có tên ‘email_address, vào một bảng có tên người dùng.

Người dùng thay thế
THÊM email_address varchar (255);
THÊM CONSTRAINTNó tạo ra một ràng buộc mới trên một bảng hiện có, được sử dụng để chỉ định các quy tắc cho bất kỳ dữ liệu nào trong bảng.

Thí dụ: Thêm một ràng buộc CHÍNH CHÍNH mới có tên ‘người dùng trên cột ID và SURNAME.

Người dùng thay thế
THÊM CONSTRAINT người dùng KHÓA CHÍNH (ID, SURNAME);
BẢNG BẢNGThêm, xóa hoặc chỉnh sửa các cột trong bảng. Nó cũng có thể được sử dụng để thêm và xóa các ràng buộc trong một bảng, theo như trên.

Thí dụ: Thêm một cột boolean mới có tên ’đã được phê duyệt vào một bảng có tên‘ giao dịch.

THAY ĐỔI BẢNG
THÊM boolean đã được phê duyệt;

Ví dụ 2: Xóa cột ‘được phê duyệt khỏi bảng‘ giao dịch

THAY ĐỔI BẢNG
DROP COLUMN được phê duyệt;
THAY ĐỔI MÀU SẮCThay đổi kiểu dữ liệu của cột Bảng bảng.

Thí dụ: Trong bảng ‘người dùng, hãy biến cột‘ incept_date, thành một kiểu dat datetime.

Người dùng thay thế
ALTER COLUMN incept_date datetime;
TẤT CẢTrả về true nếu tất cả các giá trị truy vấn con đáp ứng điều kiện đã qua.

Thí dụ: Trả về người dùng có số lượng tác vụ cao hơn người dùng có số lượng tác vụ cao nhất trong phòng nhân sự (id 2)

CHỌN First_name, họ, task_no
TỪ người dùng
WHERE task_no> ALL (CHỌN tác vụ TỪ người dùng WHERE Division_id = 2);
Được sử dụng để tham gia các điều kiện riêng biệt trong mệnh đề WHERE.

Thí dụ: Trả về các sự kiện ở London, Vương quốc Anh

CHỌN * TỪ sự kiện
WHERE host_country = 'Vương quốc Anh' VÀ host_city = 'London';
BẤT KÌTrả về true nếu bất kỳ giá trị truy vấn con nào đáp ứng điều kiện đã cho.

Thí dụ: Trả lại sản phẩm từ bảng sản phẩm đã nhận được đơn đặt hàng - được lưu trữ trong bảng đơn hàng - với số lượng hơn 5.

Tên CHỌN
TỪ sản phẩm
WHERE sản phẩmId = BẤT K ((CHỌN sản phẩm nào TỪ đơn đặt hàng WHERE số lượng> 5);
NHƯĐổi tên bảng hoặc cột có giá trị bí danh chỉ tồn tại trong thời gian truy vấn.

Thí dụ: Cột bí danh phía bắc_east_user_sub mô tả

CHỌN bắc_east_user_sub mô tả NHƯ ne_sub
TỪ người dùng
Ở đâu ne_sub> 5;
TĂNG DẦNĐược sử dụng với ORDER BY để trả về dữ liệu theo thứ tự tăng dần.

Thí dụ: Táo, Chuối, Đào, Củ cải

GIỮAChọn các giá trị trong phạm vi đã cho.

Ví dụ 1: Chọn cổ phiếu với số lượng từ 100 đến 150.

CHỌN * TỪ chứng khoán
Số lượng ở đâu GIỮA 100 VÀ 150;

Ví dụ 2: Chọn cổ phiếu với số lượng KHÔNG nằm trong khoảng từ 100 đến 150. Ngoài ra, sử dụng từ khóa NOT ở đây sẽ đảo ngược logic và chọn các giá trị ngoài phạm vi đã cho.

CHỌN * TỪ chứng khoán
Ở ĐÂU số lượng KHÔNG GIỮA 100 VÀ 150;
TRƯỜNG HỢPThay đổi đầu ra truy vấn tùy theo điều kiện.

Thí dụ: Trả về người dùng và đăng ký của họ, cùng với một cột mới gọi là Activity_levels để đưa ra phán đoán dựa trên số lượng đăng ký.

CHỌN First_name, họ, đăng ký
TRƯỜNG HỢP KHI đăng ký> 10 THÌ 'Rất tích cực'
KHI Số lượng GIỮA 3 VÀ 10 THÌ 'Hoạt động'
ELSE 'Không hoạt động'
KẾT THÚC hoạt động_levels
TỪ người dùng;
KIỂM TRAThêm một ràng buộc giới hạn giá trị có thể được thêm vào một cột.

Ví dụ 1 (MySQL): Đảm bảo mọi người dùng được thêm vào bảng người dùng đều từ 18 tuổi trở lên.

TẠO người dùng BẢNG (
var_name đầu tiên (255),
tuổi int,
KIỂM TRA (tuổi> = 18)
);

Ví dụ 2 (MySQL): Thêm một kiểm tra sau khi bảng đã được tạo.

Người dùng thay thế
THÊM KIỂM TRA (tuổi> = 18);
TẠO NÊN CƠ SỞ DỮ LIỆUTạo cơ sở dữ liệu mới.

Thí dụ: Tạo một cơ sở dữ liệu mới có tên ‘websiteetup.

TẠO trang web DATABASE;
TẠO BẢNGTạo một bảng mới .

Thí dụ: Tạo một bảng mới gọi là ‘người dùng trong cơ sở dữ liệu‘ trang webetup.

TẠO người dùng BẢNG (
id int,
var_name đầu tiên (255),
tên họ varchar (255),
địa chỉ varchar (255),
contact_number int
);
MẶC ĐỊNHĐặt giá trị mặc định cho cột;

Ví dụ 1 (MySQL): Tạo một bảng mới gọi là Sản phẩm có cột tên với giá trị mặc định là ‘Tên giữ chỗ Tên và cột có sẵn với giá trị mặc định là ngày hôm nay.

TẠO sản phẩm BẢNG (
id int,
tên varchar (255) DEFAULT 'Tên người giữ chỗ',
có sẵn_ kể từ ngày DEFAULT GETDATE ()
);

Ví dụ 2 (MySQL): Giống như trên, nhưng chỉnh sửa một bảng hiện có.

Sản phẩm thay thế
ALTER name SET DEFAULT 'Tên người giữ chỗ',
THAY ĐỔI có sẵn_từ THIẾT LẬP DEFAULT GETDATE ();
XÓA BỎXóa dữ liệu khỏi bảng.

Thí dụ: Xóa người dùng với user_id là 674.

XÓA TỪ người dùng WHERE user_id = 674;
MÔ TẢĐược sử dụng với ORDER BY để trả về dữ liệu theo thứ tự giảm dần.

Thí dụ: Củ cải, đào, chuối, táo

THUỐCXóa một cột khỏi bảng.

Thí dụ: Xóa cột First_name khỏi bảng người dùng.

Người dùng thay thế
DROP COLUMN First_name
DỄ DÀNGXóa toàn bộ cơ sở dữ liệu.

Thí dụ: Xóa một cơ sở dữ liệu có tên ‘websiteetup.

DROP DATABASE websiteetup;
DROP DEFAULTXóa một giá trị mặc định cho một cột.

Ví dụ (MySQL): Xóa giá trị mặc định khỏi cột ‘tên trong bảng‘ sản phẩm.

Sản phẩm thay thế
ALTER COLUMN tên DROP DEFAULT;
BẢNG DROPXóa bảng khỏi cơ sở dữ liệu.

Thí dụ: Xóa bảng người dùng.

Người dùng DROP BẢNG;
BÀI TẬPKiểm tra sự tồn tại của bất kỳ bản ghi nào trong truy vấn con, trả về giá trị true nếu một hoặc nhiều bản ghi được trả về.

Thí dụ: Liệt kê bất kỳ đại lý nào có tỷ lệ tài chính thỏa thuận dưới 10.

CHỌN đại lý_name
TỪ đại lý
EXERE EXISTS (CHỌN deal_name TỪ các giao dịch WHERE Dealhip_id = deal.dealership_id VÀ finance_percentage < 10);
TỪChỉ định bảng nào để chọn hoặc xóa dữ liệu từ.

Thí dụ: Chọn dữ liệu từ bảng người dùng.

CHỌN area_manager
TỪ khu vực_manager
EXERE EXISTS (CHỌN Tên sản phẩm TỪ sản phẩm WHERE area_manager_id = deal.area_manager_id VÀ Giá < 20);
TRONGĐược sử dụng cùng với mệnh đề WHERE làm tốc ký cho nhiều điều kiện OR.

Vì vậy, thay vì:-

CHỌN * TỪ người dùng
Quốc gia WHERE = 'Hoa Kỳ' HOẶC quốc gia = 'Vương quốc Anh' HOẶC quốc gia = 'Nga' HOẶC quốc gia = 'Úc';

Bạn có thể dùng:-

CHỌN * TỪ người dùng
Quốc gia ở đâu ('Hoa Kỳ', 'Vương quốc Anh', 'Nga', 'Úc');
CHÈN VÀOThêm hàng mới vào bảng.

Thí dụ: Thêm một chiếc xe mới.

XÁC NHẬN xe ô tô (chế tạo, kiểu dáng, quãng đường, năm)
GIÁ TRỊ ('Audi', 'A3', 30000, 2016);
LÀ NULLKiểm tra các giá trị trống (NULL).

Thí dụ: Trả về người dùng mà thiên đường đã cho một số liên lạc.

CHỌN * TỪ người dùng
Ở đâu contact_number LÀ NULL;
KHÔNG PHẢIMặt trái của NULL. Kiểm tra các giá trị mà aren trống / NULL.
GIỐNGTrả về true nếu giá trị toán hạng khớp với mẫu.

Thí dụ: Trả về true nếu người dùng Lần đầu tiên kết thúc bằng ‘son.

CHỌN * TỪ người dùng
Ở đâu First_name THÍCH '% son';
KHÔNG PHẢITrả về giá trị đúng nếu bản ghi DOESNELT đáp ứng điều kiện.

Thí dụ: Trả về true nếu người dùng đầu tiên_name không kết thúc với ‘son.

CHỌN * TỪ người dùng
Ở đâu First_name KHÔNG THÍCH '% son';
HOẶC LÀĐược sử dụng cùng với WHERE để bao gồm dữ liệu khi một trong hai điều kiện là đúng.

Thí dụ: Trả về người dùng sống ở cả Sheffield hoặc Manchester.

CHỌN * TỪ người dùng
Thành phố WHERE = 'Sheffield' HOẶC 'Manchester';
ĐẶT BỞIĐược sử dụng để sắp xếp dữ liệu kết quả theo thứ tự tăng dần (mặc định) hoặc giảm dần thông qua việc sử dụng từ khóa ASC hoặc DESC.

Thí dụ: Trả về các quốc gia theo thứ tự bảng chữ cái.

CHỌN * TỪ các quốc gia
ĐẶT HÀNG theo tên;
ROWNUMTrả về kết quả trong đó số hàng đáp ứng điều kiện đã qua.

Thí dụ: Trả về 10 quốc gia hàng đầu từ bảng quốc gia.

CHỌN * TỪ các quốc gia
ROWNUM Ở ĐÂU <= 10;
LỰA CHỌNĐược sử dụng để chọn dữ liệu từ cơ sở dữ liệu, sau đó được trả về trong tập kết quả.

Ví dụ 1: Chọn tất cả các cột từ tất cả người dùng.

CHỌN * TỪ người dùng;

Ví dụ 2: Chọn cột First_name và họ từ tất cả người dùng.xx

CHỌN First_name, họ TỪ người dùng;
CHỌN KHÁC BIỆTCác tên như CHỌN, ngoại trừ các giá trị trùng lặp được loại trừ.

Thí dụ: Tạo bảng sao lưu bằng dữ liệu từ bảng người dùng.

CHỌN * VÀO người dùngBackup2020
TỪ người dùng;
CHỌN VÀOSao chép dữ liệu từ một bảng và chèn nó vào một bảng khác.

Thí dụ: Trả về tất cả các quốc gia từ bảng người dùng, xóa mọi giá trị trùng lặp (rất có thể)

CHỌN DISTINCT quốc gia từ người dùng;
CHỌN HÀNG ĐẦUCho phép bạn trả về một số lượng bản ghi đã thiết lập để trả về từ một bảng.

Thí dụ: Trả lại 3 chiếc xe hàng đầu từ bảng xe ô tô.

CHỌN TOP 3 * TỪ ô tô;
BỘĐược sử dụng cùng với CẬP NHẬT để cập nhật dữ liệu hiện có trong bảng.

Thí dụ: Cập nhật giá trị giá trị và số lượng cho một đơn hàng với id là 642 trong bảng đơn hàng.

CẬP NHẬT đơn hàng
Giá trị SET = 19,49, số lượng = 2
Id ở đâu = 642;
MỘT SỐĐồng nhất với BẤT K.
HÀNG ĐẦUĐược sử dụng cùng với CHỌN để trả về một số lượng bản ghi đã đặt từ một bảng.

Thí dụ: Trả về 5 người dùng hàng đầu từ bảng người dùng.

CHỌN TOP 5 * TỪ người dùng;
BẢNG TRUNCATETương tự như DROP, nhưng thay vì xóa bảng và dữ liệu của nó, việc này chỉ xóa dữ liệu.

Thí dụ: Làm trống bảng phiên, nhưng giữ nguyên bảng.

Phiên BẢNG TRUNCATE;
LIÊN HIỆPKết hợp các kết quả từ 2 hoặc nhiều câu lệnh CHỌN và chỉ trả về các giá trị riêng biệt.

Thí dụ: Trả về các thành phố từ các bảng sự kiện và người đăng ký.

CHỌN thành phố TỪ sự kiện
LIÊN HIỆP
CHỌN thành phố từ thuê bao;
ĐOÀN TẤT CẢGiống như UNION, nhưng bao gồm các giá trị trùng lặp.
ĐỘC NHẤTRàng buộc này đảm bảo tất cả các giá trị trong một cột là duy nhất.

Ví dụ 1 (MySQL): Thêm một ràng buộc duy nhất cho cột id khi tạo bảng người dùng mới.

TẠO người dùng BẢNG (
id int KHÔNG NULL,
tên varchar (255) KHÔNG NULL,
ĐỘC ĐÁO (id)
);

Ví dụ 2 (MySQL): Thay đổi một cột hiện có để thêm một ràng buộc ĐỘC ĐÁO.

Người dùng thay thế
THÊM ĐỘC ĐÁO (id);
CẬP NHẬTCập nhật dữ liệu hiện có trong một bảng.

Thí dụ: Cập nhật số dặm và dịch vụ Giá trị giá trị cho một chiếc xe có id là 45 trong bảng ô tô.

CẬP NHẬT xe
Số dặm cài đặt = 23500, serviceDue = 0
Id ở đâu = 45;
GIÁ TRỊĐược sử dụng cùng với từ khóa INSERT INTO để thêm các giá trị mới vào bảng.

Thí dụ: Thêm một chiếc xe mới vào bảng xe ô tô.

Ô tô VÀO (tên, mẫu, năm)
GIÁ TRỊ ('Ford', 'Fiesta', 2010);
Ở ĐÂUKết quả lọc chỉ bao gồm dữ liệu đáp ứng điều kiện đã cho.

Thí dụ: Trả lại đơn hàng với số lượng nhiều hơn 1 sản phẩm.

CHỌN * TỪ các đơn đặt hàng
Số lượng WHERE> 1;

Bình luận

Nhận xét cho phép bạn giải thích các phần trong câu lệnh SQL của mình hoặc nhận xét mã và ngăn chặn việc thực thi nó.

Trong SQL, có 2 loại nhận xét, dòng đơn và đa dòng.

Bình luận dòng đơn

Nhận xét dòng đơn bắt đầu bằng -. Bất kỳ văn bản nào sau 2 ký tự này đến cuối dòng sẽ bị bỏ qua.

-- Truy vấn chọn của tôi
CHỌN * TỪ người dùng;

Nhận xét đa dòng

Nhận xét nhiều dòng bắt đầu bằng / * và kết thúc bằng * /. Chúng trải dài trên nhiều dòng cho đến khi tìm thấy các ký tự đóng.

/ *
Đây là truy vấn chọn của tôi.
Nó lấy tất cả các hàng dữ liệu từ bảng người dùng
* /
CHỌN * TỪ người dùng;

/ *
Đây là một truy vấn chọn khác mà tôi chưa muốn thực hiện

CHỌN * TỪ nhiệm vụ;
* /

Kiểu dữ liệu MySQL

Khi tạo bảng mới hoặc chỉnh sửa bảng hiện có, bạn phải chỉ định loại dữ liệu mà mỗi cột chấp nhận.

Trong ví dụ dưới đây, dữ liệu được truyền cho cột id phải là int, trong khi cột First_name có kiểu dữ liệu VARCHAR với tối đa 255 ký tự.

TẠO người dùng BẢNG (
id int,
var_name đầu tiên (255)
);

Kiểu dữ liệu chuỗi

Kiểu dữ liệu chuỗi
Loại dữ liệuSự miêu tả
CHAR (kích thước)Chuỗi độ dài cố định có thể chứa chữ cái, số và ký tự đặc biệt. Tham số kích thước đặt độ dài chuỗi tối đa, từ 0 - 255 với mặc định là 1.
VARCHAR (kích thước)Chuỗi độ dài biến tương tự như CHAR (), nhưng với phạm vi độ dài chuỗi tối đa từ 0 đến 65535.
BINary (kích thước)Tương tự như CHAR () nhưng lưu trữ chuỗi byte nhị phân.
BIẾN (kích thước)Tương tự như VARCHAR () nhưng đối với chuỗi byte nhị phân.
TINYBLOBGiữ các đối tượng lớn nhị phân (BLOB) với độ dài tối đa 255 byte.
TINYTEXTGiữ một chuỗi có độ dài tối đa 255 ký tự. Sử dụng VARCHAR () thay vào đó, vì nó Tìm nạp nhanh hơn nhiều.
Cỡ chữ)Giữ một chuỗi có độ dài tối đa 65535 byte. Một lần nữa, tốt hơn để sử dụng VARCHAR ().
BLOB (kích thước)Giữ các đối tượng lớn nhị phân (BLOB) với độ dài tối đa 65535 byte.
TRUNG TÂMGiữ một chuỗi có độ dài tối đa 16.777.215 ký tự.
TRUNG TÂMGiữ các đối tượng lớn nhị phân (BLOB) với độ dài tối đa 16.777.215 byte.
VĂN BẢN DÀIGiữ một chuỗi có độ dài tối đa 4.294.967.295 ký tự.
LONGBLOBGiữ các đối tượng lớn nhị phân (BLOB) với độ dài tối đa 4.294.967.295 byte.
ENUM (a, b, c, v.v.)Một đối tượng chuỗi chỉ có một giá trị, được chọn từ danh sách các giá trị mà bạn xác định, tối đa là 65535 giá trị. Nếu một giá trị được thêm vào trong danh sách này, thì thay vào đó là một giá trị trống. Hãy nghĩ rằng ENUM tương tự như các hộp radio HTML về vấn đề này.

TẠO áo phông (màu ENUM (’màu đỏ,‘ màu xanh lá cây, ’màu xanh da trời,’ màu vàng, ’màu tím));
SET (a, b, c, v.v.)Một đối tượng chuỗi có thể có 0 hoặc nhiều giá trị, được chọn từ danh sách các giá trị mà bạn xác định, tối đa là 64 giá trị. Hãy nghĩ rằng SET giống với các hộp kiểm HTML về vấn đề này.

Kiểu dữ liệu số

Kiểu dữ liệu chuỗi
Loại dữ liệuSự miêu tả
BIT (kích thước)Loại giá trị bit có mặc định là 1. Số bit được phép trong một giá trị được đặt thông qua tham số kích thước, có thể giữ các giá trị từ 1 đến 64.
TINYINT (kích thước)Một số nguyên rất nhỏ có phạm vi được ký từ -128 đến 127 và phạm vi không dấu từ 0 đến 255. Ở đây, tham số kích thước chỉ định chiều rộng hiển thị tối đa được phép, là 255.
BOOLVề cơ bản, cách nhanh chóng đặt cột thành TINYINT với kích thước 1. 0 được coi là sai, trong khi 1 được coi là đúng.
BOOLESETương tự như BOOL.
NHỎ (kích thước)Một số nguyên nhỏ có phạm vi được ký từ -32768 đến 32767 và phạm vi không dấu từ 0 đến 65535. Ở đây, tham số kích thước chỉ định chiều rộng hiển thị tối đa được phép, là 255.
TRUNG TÂM (kích thước)Một số nguyên trung bình có phạm vi được ký từ -8388608 đến 8388607 và phạm vi không dấu từ 0 đến 16777215. Ở đây, tham số kích thước chỉ định chiều rộng hiển thị tối đa được phép, là 255.
INT (kích thước)Một số nguyên trung bình có phạm vi được ký từ -2147483648 đến 2147483647 và phạm vi không dấu từ 0 đến 4294967295. Ở đây, tham số kích thước chỉ định chiều rộng hiển thị tối đa được phép, là 255.
INTEGER (kích thước)Tương tự như INT.
BIGINT (kích thước)Một số nguyên trung bình có phạm vi đã ký là -9223372036854775808 đến 9223372036854775807 và phạm vi không dấu từ 0 đến 18446744073709551615. Ở đây, tham số kích thước chỉ định chiều rộng hiển thị tối đa được phép, là 255.
VÒI (p)Một giá trị số dấu phẩy động. Nếu tham số độ chính xác (p) nằm trong khoảng từ 0 đến 24, thì loại dữ liệu được đặt thành FLOAT (), trong khi nếu từ 25 đến 53, loại dữ liệu được đặt thành NHÂN ĐÔI (). Hành vi này là để làm cho việc lưu trữ các giá trị hiệu quả hơn.
NHÂN ĐÔI (kích thước, d)Giá trị số dấu phẩy động trong đó tổng các chữ số được đặt theo tham số kích thước và số chữ số sau dấu thập phân được đặt bởi tham số d.
Số thập phân (kích thước, d)Số điểm cố định chính xác trong đó tổng số chữ số được đặt theo tham số kích thước và tổng số chữ số sau dấu thập phân được đặt bởi tham số d.

Đối với kích thước, số tối đa là 65 và mặc định là 10, trong khi đối với d, số tối đa là 30 và mặc định là 10.

Tháng 12 (kích thước, d)Tương tự như số thập phân.

Kiểu dữ liệu ngày / giờ

Kiểu dữ liệu ngày / giờ
Loại dữ liệuSự miêu tả
NGÀYMột ngày đơn giản ở định dạng DD YYYY-MM, với phạm vi được hỗ trợ từ ‘1000-01-01, đến 999 9999-12-31,.
Cơ sở dữ liệu (fsp)Thời gian ngày ở định dạng YYYY-MM-DD hh: mm: ss, với phạm vi được hỗ trợ từ ‘1000-01-01 00:00:00 đến 9999-12-31 23:59:59.

Bằng cách thêm DEFAULT và ON UPDATE vào định nghĩa cột, nó sẽ tự động đặt thành ngày / giờ hiện tại.

THỜI GIAN (fsp)Dấu thời gian Unix, là một giá trị liên quan đến số giây kể từ thời kỳ Unix (‘1970-01-01 00:00:00 Hồi UTC). Điều này có phạm vi được hỗ trợ từ ‘1970-01-01 00:00:01 UTC cho đến‘ 2038-01-09 03:14:07 Điên UTC.

Bằng cách thêm DEFAULT CURRENT_TIMESTAMP và ON CẬP NHẬT THỜI GIAN HIỆN TẠI vào định nghĩa cột, nó sẽ tự động đặt thành ngày / giờ hiện tại.

THỜI GIAN (fsp)Một thời gian ở định dạng hh: mm: ss, với phạm vi được hỗ trợ từ ‘-838: 59: 59, đến‘ 838: 59: 59,.
NĂMMột năm, với phạm vi được hỗ trợ từ ‘1901, đến‘ 2155,.

Người vận hành

Toán tử số học

Toán tử số học
Nhà điều hànhSự miêu tả
+Thêm vào
-Trừ
*nhân
/Chia
%Modulo

Toán tử bitwise

Toán tử bitwise
Nhà điều hànhSự miêu tả
&Bitwise VÀ
|Bitwise HOẶC
^Bitwise độc ​​quyền HOẶC

Toán tử so sánh

Toán tử so sánh
Nhà điều hànhSự miêu tả
= =Tương đương với
>Lớn hơn
<Ít hơn
> =Lớn hơn hoặc bằng
<=Ít hơn hoặc bằng
<>Không bằng

Toán tử hợp chất

Toán tử hợp chất
Nhà điều hànhSự miêu tả
+= =Thêm bằng
-= =Trừ bằng
* =Nhân bằng
/ =Chia bằng
% =Modulo bằng
& =Bitwise VÀ bằng
^ - =Bitwise độc ​​quyền bằng
| * =Bitwise OR bằng

Chức năng

Hàm chuỗi

Hàm chuỗi
TênSự miêu tả
ASCIITrả về giá trị ASCII tương đương cho một ký tự cụ thể.
CHAR_LENGTHTrả về độ dài ký tự của chuỗi.
CHARACTER_LENGTHTương tự như CHAR_LENGTH.
Ý TƯỞNGThêm các biểu thức với nhau, với tối thiểu là 2.
CONCAT_WSThêm các biểu thức với nhau, nhưng với một dấu phân cách giữa mỗi giá trị.
CÁNH ĐỒNGTrả về một giá trị chỉ mục liên quan đến vị trí của một giá trị trong danh sách các giá trị.
TÌM KIẾMTrả về vị trí của một chuỗi trong danh sách các chuỗi.
ĐỊNH DẠNGKhi được thông qua một số, trả về số đó được định dạng để bao gồm dấu phẩy (ví dụ: 3,400.000).
CHÈNCho phép bạn chèn một chuỗi vào chuỗi khác tại một điểm nhất định, cho một số ký tự nhất định.
INSTRTrả về vị trí của lần đầu tiên một chuỗi xuất hiện trong một chuỗi khác.
LCASEChuyển đổi một chuỗi thành chữ thường.
TRÁIBắt đầu từ bên trái, trích xuất số lượng ký tự đã cho từ một chuỗi và trả về chúng như một chuỗi khác.
CHIỀU DÀITrả về độ dài của chuỗi, nhưng tính bằng byte.
ĐỊNH VỊTrả về lần xuất hiện đầu tiên của một chuỗi trong chuỗi khác,
THẤP HƠNTương tự như LCASE.
LPADBên trái đệm một chuỗi với một chuỗi khác, đến một chiều dài cụ thể.
LTRIMXóa mọi khoảng trắng hàng đầu khỏi chuỗi đã cho.
TRUNGTrích xuất một chuỗi từ một chuỗi khác, bắt đầu từ bất kỳ vị trí nào.
CHỨC VỤTrả về vị trí của lần đầu tiên một chuỗi con xuất hiện trong một chuỗi khác.
NÓI LẠICho phép bạn lặp lại một chuỗi
THAY THẾCho phép bạn thay thế bất kỳ trường hợp nào của chuỗi con trong chuỗi, bằng chuỗi con mới.
ĐẢO NGƯỢCĐảo ngược chuỗi.
ĐÚNGBắt đầu từ bên phải, trích xuất số lượng ký tự đã cho từ một chuỗi và trả về chúng như một chuỗi khác.
Vòng quayPhải đệm một chuỗi với một chuỗi khác, đến một độ dài cụ thể.
RTRIMXóa mọi khoảng trắng ở cuối chuỗi đã cho.
KHÔNG GIANTrả về một chuỗi đầy khoảng trắng bằng với số tiền bạn vượt qua nó.
CHIẾN LƯỢCSo sánh 2 chuỗi cho sự khác biệt
BÊNTrích xuất một chuỗi con từ một chuỗi khác, bắt đầu từ bất kỳ vị trí nào.
ĐĂNG KÝTương tự như SUBSTR
SUBSTRING_INDEXTrả về một chuỗi con từ một chuỗi trước khi chuỗi con đã qua được tìm thấy số lần bằng với số đã truyền.
TRIMLoại bỏ dấu cách và dấu cách hàng đầu khỏi chuỗi đã cho. Tương tự như khi bạn chạy LTRIM và RTRIM cùng nhau.
UCASEChuyển đổi một chuỗi thành chữ hoa.
PHÍA TRÊNTương tự như UCASE.

Hàm số

Hàm số
TênSự miêu tả
ABSTrả về giá trị tuyệt đối của số đã cho.
ACOSTrả về cosin cung của số đã cho.
HỎITrả về sin hình cung của số đã cho.
ATANTrả về tiếp tuyến cung của một hoặc 2 số đã cho.
ATAN2Trả về tiếp tuyến của 2 số đã cho.
AVGTrả về giá trị trung bình của biểu thức đã cho.
CEILTrả về số nguyên (số nguyên) gần nhất trở lên từ số thập phân đã cho.
TRẦN NHÀTương tự như CEIL.
COSTrả về cosin của một số đã cho.
COTTrả về cotangent của một số đã cho.
ĐẾMTrả về số lượng bản ghi được trả về bởi truy vấn SELECT.
DEGREESChuyển đổi giá trị radian thành độ.
DIVCho phép bạn chia số nguyên.
EXPTrả về e cho lũy thừa của số đã cho.
SÀN NHÀTrả về số nguyên (số nguyên) gần nhất trở xuống từ số thập phân đã cho.
VĨ ĐẠI NHẤTTrả về giá trị cao nhất trong danh sách các đối số.
ÍT NHẤTTrả về giá trị nhỏ nhất trong danh sách các đối số.
LNTrả về logarit tự nhiên của số đã cho
ĐĂNG NHẬPTrả về logarit tự nhiên của số đã cho hoặc logarit của số đã cho cho cơ sở đã cho
ĐĂNG NHẬP10Không giống như LOG, nhưng đến cơ sở 10.
ĐĂNG NHẬPKhông giống như LOG, nhưng đến cơ sở 2.
Tối đaTrả về giá trị cao nhất từ ​​một tập hợp các giá trị.
PHÚTTrả về giá trị thấp nhất từ ​​một tập hợp các giá trị.
MODTrả về phần còn lại của số đã cho chia cho số đã cho khác.
số PiTrả về PI.
POWTrả về giá trị của số đã cho được tăng lên lũy thừa của số đã cho.
QUYỀN LỰCTương tự như tù.
RADIansChuyển đổi giá trị độ sang radian.
RANDTrả về một số ngẫu nhiên.
TRÒNLàm tròn số đã cho thành số thập phân đã cho.
KÝ TÊNTrả về dấu của số đã cho.
TỘITrả về sin của số đã cho.
SQRTTrả về căn bậc hai của số đã cho.
TỔNGTrả về giá trị của tập hợp các giá trị đã cho.
TÂNTrả về tiếp tuyến của số đã cho.
TRUNCATETrả về một số bị cắt cụt cho số vị trí thập phân nhất định.

Hàm ngày

Hàm ngày
TênSự miêu tả
ĐỊA CHỈThêm một khoảng thời gian ngày (ví dụ: 10 NGÀY) vào một ngày (ví dụ: 20/01/20) và trả về kết quả (ví dụ: 20/01/30).
THÊM THỜI GIANThêm một khoảng thời gian (ví dụ: 02:00) vào thời gian hoặc thời gian (05:00) và trả về kết quả (07:00).
HIỆN TẠINhận ngày hiện tại.
NGAY HIỆN TẠITương tự như HIỆN TẠI.
THỜI ĐIỂM HIỆN TẠINhận thời gian hiện tại.
DẤU THỜI GIAN HIỆN TẠINhận ngày giờ hiện tại.
HIỆN TẠITương tự như CURRENT_TIME.
NGÀYTrích xuất ngày từ biểu thức datetime.
NGÀYTrả về số ngày giữa 2 ngày đã cho.
DATE_ADDTương tự như THÊM.
ĐỊNH DẠNG NGÀY THÁNGĐịnh dạng ngày cho mẫu đã cho.
DATE_SUBTrừ một khoảng thời gian ngày (ví dụ: 10 NGÀY) vào một ngày (ví dụ: 20/01/20) và trả về kết quả (ví dụ: 20/01/10).
NGÀYTrả về ngày cho ngày đã cho.
NGÀYTrả về tên ngày trong tuần cho ngày đã cho.
NGÀY TRONG TUẦNTrả về chỉ mục cho ngày trong tuần cho ngày đã cho.
NGÀY NĂMTrả về ngày trong năm cho ngày đã cho.
TRÍCH XUẤTTrích xuất từ ​​ngày phần đã cho (ví dụ: MONTH cho 20/01/20 = 01).
TỪ NGÀYTrả về ngày từ giá trị ngày số đã cho.
GIỜTrả lại giờ từ ngày đã cho.
NGÀY CUỐILấy ngày cuối cùng của tháng cho ngày đã cho.
GIỜ ĐỊA PHƯƠNGLấy ngày và giờ địa phương hiện tại.
ĐỊA ĐIỂMTương tự như ĐỊA PHƯƠNG.
KIẾMTạo một ngày và trả về nó, dựa trên năm và số giá trị ngày đã cho.
THỜI GIANTạo thời gian và trả về nó, dựa trên các giá trị giờ, phút và giây đã cho.
MICROSECONDTrả về micro giây của một thời gian nhất định hoặc datetime.
PHÚTTrả về phút của thời gian nhất định hoặc thời gian.
THÁNGTrả về tháng của ngày đã cho.
THÁNG NĂMTrả về tên của tháng của ngày đã cho.
HIỆN NAYTương tự như ĐỊA PHƯƠNG.
PERIOD_ADDThêm số tháng đã cho vào khoảng thời gian nhất định.
PERIOD_DIFFTrả về sự khác biệt giữa 2 khoảng thời gian nhất định.
PHẦN TƯTrả về quý năm cho ngày đã cho.
THỨ HAITrả về giây của một thời gian hoặc thời gian nhất định.
GIÂYTrả về thời gian dựa trên giây đã cho.
STR_TO_DATETạo một ngày và trả về nó dựa trên chuỗi và định dạng đã cho.
ĐĂNG KÝTương tự như DATE_SUB.
ĐĂNG KÝTrừ một khoảng thời gian (ví dụ: 02:00) thành thời gian hoặc thời gian (05:00) và trả về kết quả (03:00).
TRIỆU CHỨNGTương tự như ĐỊA PHƯƠNG.
THỜI GIANTrả về thời gian từ một thời gian nhất định hoặc datetime.
TIME_FORMATTrả về thời gian đã cho ở định dạng đã cho.
TIME_TO_SECChuyển đổi và trả về thời gian thành giây.
THỜI GIANTrả về sự khác biệt giữa 2 biểu thức thời gian / thời gian đã cho.
THỜI GIANTrả về giá trị datetime của ngày hoặc datetime đã cho.
TO_DAYSTrả về tổng số ngày đã trôi qua từ ‘00 -00-0000 vào ngày đã cho.
TUẦNTrả về số tuần cho ngày đã cho.
TUẦNTrả về số ngày trong tuần cho ngày đã cho.
TUẦNTrả về số tuần cho ngày đã cho.
NĂMTrả về năm kể từ ngày đã cho.
NĂMTrả về số năm và số tuần cho ngày đã cho.

Chức năng linh tinh

Chức năng linh tinh
TênSự miêu tả
THÙNG RÁCTrả về số đã cho ở dạng nhị phân.
BÌNH THƯỜNGTrả về giá trị đã cho dưới dạng chuỗi nhị phân.
CASTChuyển đổi một loại thành một loại khác.
HỢP ĐỒNGTừ danh sách các giá trị, trả về giá trị không null đầu tiên.
KẾT NỐI_IDĐối với kết nối hiện tại, trả về ID kết nối duy nhất.
CONVChuyển đổi số đã cho từ một hệ thống cơ sở số sang một hệ thống cơ sở số khác.
ĐỔIChuyển đổi giá trị đã cho thành kiểu dữ liệu hoặc bộ ký tự đã cho.
NGƯỜI DÙNG HIỆN TẠITrả về tên người dùng và tên máy chủ đã được sử dụng để xác thực với máy chủ.
CƠ SỞLấy tên của cơ sở dữ liệu hiện tại.
NHÓM THEOĐược sử dụng cùng với các hàm tổng hợp (COUNT, MAX, MIN, SUM, AVG) để nhóm các kết quả.

Thí dụ: Liệt kê số lượng người dùng có đơn hàng đang hoạt động.

CHỌN COUNT (user_id), active_nings
TỪ người dùng
NHÓM THEO active_nings;
ĐANG CÓNó được sử dụng ở vị trí WHERE với các hàm tổng hợp.

Thí dụ: Liệt kê số lượng người dùng có đơn hàng đang hoạt động, nhưng chỉ bao gồm người dùng có hơn 3 đơn hàng đang hoạt động.

CHỌN COUNT (user_id), active_nings
TỪ người dùng
NHÓM THEO active_nings
QUẬN HAVING (user_id)> 3;
NẾUNếu điều kiện là đúng trả về một giá trị, nếu không thì trả về giá trị khác.
IFNULLNếu biểu thức đã cho tương đương với null, trả về giá trị đã cho.
ISNULLNếu biểu thức là null, trả về 1, nếu không trả về 0.
LAST_INSERT_IDĐối với hàng cuối cùng được thêm hoặc cập nhật trong bảng, hãy trả về ID tăng tự động.
NULLIFSo sánh 2 biểu thức đã cho. Nếu chúng bằng nhau, NULL được trả về, nếu không thì biểu thức đầu tiên được trả về.
SESSION_USERTrả về tên người dùng và tên máy chủ hiện tại.
HỆ THỐNGTương tự như SESSION_USER.
NGƯỜI DÙNGTương tự như SESSION_USER.
PHIÊN BẢNTrả về phiên bản hiện tại của MySQL cung cấp năng lượng cho cơ sở dữ liệu.

Nhân vật ký tự đại diện

Trong SQL, Ký tự đại diện là các ký tự đặc biệt được sử dụng với các từ khóa THÍCH và KHÔNG THÍCH cho phép chúng tôi tìm kiếm dữ liệu với các mẫu tinh vi hiệu quả hơn nhiều

Ký tự đại diện
TênSự miêu tả
%Tương đương với 0 hoặc nhiều ký tự.

Ví dụ 1: Tìm tất cả người dùng có họ kết thúc bằng ‘son.

CHỌN * TỪ người dùng
Ở đâu họ họ THÍCH '% con trai';

Ví dụ 2: Tìm tất cả người dùng sống ở các thành phố có chứa mẫu ‘che

CHỌN * TỪ người dùng
Ở đâu thành phố THÍCH '% che%';
_Tương đương với bất kỳ ký tự đơn.

Thí dụ: Tìm tất cả người dùng sống ở các thành phố bắt đầu bằng 3 ký tự bất kỳ, theo sau là ester chester.

CHỌN * TỪ người dùng
Ở đâu thành phố THÍCH '___chester';
[danh sách]Tương đương với bất kỳ ký tự đơn nào trong danh sách.

Ví dụ 1: Tìm tất cả người dùng có tên bắt đầu bằng J, H hoặc M.

CHỌN * TỪ người dùng
Ở đâu First_name THÍCH '[jhm]%';

Ví dụ 2: Tìm tất cả người dùng có tên bắt đầu bằng chữ cái giữa A - L.

CHỌN * TỪ người dùng
WHERE First_name THÍCH '[a-l]%';

Ví dụ 3: Tìm tất cả người dùng có tên không kết thúc bằng chữ cái giữa n - s.

CHỌN * TỪ người dùng
Ở đâu First_name THÍCH '% [! N-s]';

Chìa khóa

Trong cơ sở dữ liệu quan hệ, có một khái niệm về khóa chính và khóa ngoài. Trong các bảng SQL, chúng được bao gồm dưới dạng các ràng buộc, trong đó một bảng có thể có khóa chính, khóa ngoại hoặc cả hai.

Khóa chính

Khóa chính cho phép mỗi bản ghi trong một bảng được xác định duy nhất. Chỉ có thể có một khóa chính cho mỗi bảng và bạn có thể gán ràng buộc này cho bất kỳ cột hoặc tổ hợp cột nào. Tuy nhiên, điều này có nghĩa là mỗi giá trị trong (các) cột này phải là duy nhất.

Thông thường trong một bảng, khóa chính là một cột ID và thường được ghép nối với từ khóa AUTO_INCREMENT. Điều này có nghĩa là giá trị tăng tự động khi bản ghi mới được tạo.

Ví dụ 1 (MySQL)

Tạo một bảng mới và đặt khóa chính cho cột ID.

TẠO người dùng BẢNG (
id int KHÔNG NULL AUTO_INCREMENT,
var_name đầu tiên (255),
Last_name varchar (255) KHÔNG NULL,
địa chỉ varchar (255),
email varchar (255),
KHÓA CHÍNH (id)
);

Ví dụ 2 (MySQL)

Thay đổi bảng hiện có và đặt khóa chính thành cột First_name.

Người dùng thay thế
THÊM KHÓA CHÍNH (tên đầu tiên);

Khóa ngoại

Khóa ngoại có thể được áp dụng cho một cột hoặc nhiều cột và được sử dụng để liên kết 2 bảng với nhau trong cơ sở dữ liệu quan hệ.

Như đã thấy trong sơ đồ bên dưới, bảng chứa khóa ngoại được gọi là khóa con, trong khi bảng chứa khóa được tham chiếu hoặc khóa ứng viên, được gọi là bảng cha.

Khóa MySQL

Điều này về cơ bản có nghĩa là dữ liệu cột được chia sẻ giữa 2 bảng, vì một khóa ngoại cũng ngăn không cho dữ liệu không hợp lệ được chèn vào mà cũng không có trong bảng cha.

Ví dụ 1 (MySQL)

Tạo một bảng mới và biến bất kỳ cột nào tham chiếu ID trong các bảng khác thành khóa ngoại.

TẠO đơn đặt hàng BẢNG (
id int KHÔNG NULL,
user_id int,
sản phẩm_id int,
KHÓA CHÍNH (id),
FOREIGN KEY (user_id) TÀI LIỆU THAM KHẢO người dùng (id),
FOREIGN KEY (product_id) TÀI LIỆU THAM KHẢO (id)
);

Ví dụ 2 (MySQL)

Thay đổi bảng hiện có và tạo khóa ngoại.

Thay đổi đơn đặt hàng
THÊM PHÍ NGOẠI TỆ (user_id) TÀI LIỆU THAM KHẢO người dùng (id);

Chỉ mục

Chỉ mục là các thuộc tính có thể được gán cho các cột thường được tìm kiếm để làm cho việc truy xuất dữ liệu trở thành một quy trình nhanh hơn và hiệu quả hơn.

Điều này không có nghĩa là mỗi cột nên được tạo thành một chỉ mục, vì sẽ mất nhiều thời gian hơn cho một cột có chỉ mục được cập nhật hơn một cột không có. Điều này là do khi các cột được lập chỉ mục được cập nhật, bản thân chỉ mục cũng phải được cập nhật.

Chỉ mục
TênSự miêu tả
TẠO INDEXTạo một chỉ mục có tên ‘idx_test, trên cột đầu tiên và họ của bảng người dùng. Trong trường hợp này, các giá trị trùng lặp được cho phép.

TẠO INDEX idx_test
Người dùng ON (First_name, họ);
TẠO INDEX ĐỘC ĐÁOGiống như trên, nhưng không có giá trị trùng lặp.

TẠO INDEX idx_test
Người dùng ON (First_name, họ);
CHỈ SỐ DROPXóa chỉ mục.

Người dùng thay thế
DROP INDEX idx_test;

Tham gia

Trong SQL, mệnh đề THAM GIA được sử dụng để trả về một tập kết quả kết hợp dữ liệu từ nhiều bảng, dựa trên một cột chung có trong cả hai bảng

Có một số liên kết khác nhau có sẵn để bạn sử dụng:-

  • Tham gia bên trong (Mặc định): Trả về bất kỳ bản ghi nào có giá trị khớp trong cả hai bảng.
  • Chỗ nối bên trái: Trả về tất cả các bản ghi từ bảng đầu tiên, cùng với mọi bản ghi khớp từ bảng thứ hai.
  • Phải tham gia: Trả về tất cả các bản ghi từ bảng thứ hai, cùng với mọi bản ghi khớp từ bảng thứ nhất.
  • Tham gia đầy đủ: Trả về tất cả các bản ghi từ cả hai bảng khi có kết quả khớp.

Một cách phổ biến để hình dung cách thức tham gia hoạt động là như thế này:

Tham gia MySQL

Trong ví dụ sau, một phép nối bên trong sẽ được sử dụng để tạo chế độ xem thống nhất mới kết hợp bảng đơn hàng và sau đó 3 bảng khác nhau

Chúng tôi sẽ thay thế user_id và product_id bằng các cột First_name và họ của người dùng đã đặt hàng, cùng với tên của mặt hàng đã mua.

Bảng ví dụ MySQL

CHỌN order.id, users.first_name, users.surname, Products.name là 'tên sản phẩm'
TỪ đơn đặt hàng
THAM GIA người dùng trên đơn đặt hàng.user_id = users.id
THAM GIA sản phẩm trên đơn đặt hàng.product_id = sản phẩm.id;

Sẽ trả về một tập kết quả trông giống như:

Bảng ví dụ MySQL

Lượt xem

Một khung nhìn về cơ bản là một tập kết quả SQL được lưu trữ trong cơ sở dữ liệu dưới nhãn, do đó bạn có thể quay lại nó sau mà không phải chạy lại truy vấn. Điều này đặc biệt hữu ích khi bạn có một truy vấn SQL tốn kém có thể cần nhiều lần, vì vậy thay vì chạy đi chạy lại để tạo cùng một tập kết quả, bạn chỉ cần thực hiện một lần và lưu nó dưới dạng xem.

Tạo lượt xem

Để tạo chế độ xem, bạn có thể làm như vậy:

TẠO VIEW ưu tiên_users NHƯ
CHỌN * TỪ người dùng
Quốc gia WHERE = 'Vương quốc Anh';

Sau đó, trong tương lai, nếu bạn cần truy cập vào tập kết quả được lưu trữ, bạn có thể làm như vậy:

CHỌN * TỪ [ưu tiên];

Thay thế lượt xem

Với lệnh CREATE HOẶC REPLACE, một khung nhìn có thể được cập nhật.

TẠO HOẶC THAY THẾ XEM [ưu tiên]
CHỌN * TỪ người dùng
Quốc gia WHERE = 'Vương quốc Anh' HOẶC quốc gia = 'Hoa Kỳ';

Xóa chế độ xem

Để xóa chế độ xem, chỉ cần sử dụng lệnh DROP VIEW.

DROP VIEW ưu tiên_ người dùng;

Phần kết luận

Phần lớn các trang web trên web hôm nay sử dụng cơ sở dữ liệu quan hệ theo một cách nào đó. Điều này làm cho SQL trở thành một ngôn ngữ có giá trị để biết, vì nó cho phép bạn tạo các trang web và hệ thống chức năng phức tạp hơn.

Đảm bảo đánh dấu trang này, vì vậy trong tương lai, nếu bạn đang làm việc với SQL và không thể nhớ một toán tử cụ thể, cách viết một truy vấn nhất định hoặc chỉ bối rối về cách thức tham gia hoạt động, thì bạn sẽ có một tờ cheat trên tay đã sẵn sàng, sẵn sàng và có thể giúp đỡ.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me