- MySQL rất nhanh và đáng tin cậy cho mọi loại ứng dụng
- MySQL là ứng dụng rất nhẹ
- Công cụ dòng lệnh của MySQL rất mạnh và có thể được sử dụng để chạy các truy vấn SQL đối với cơ sở dữ liệu.
- MySQL hỗ trợ lập chỉ mục và các đối tượng nhị phân
- Cho phép thay đổi cấu trúc của bảng trong khi máy chủ đang chạy
- MySQL có cơ sở người dùng rộng
- Nó là một hệ thống cấp phát bộ nhớ dựa trên luồng rất nhanh.
8. MySQL Được viết bằng ngôn ngữ C và C++.
9. Mã MySQL được kiểm tra bằng các trình biên dịch khác nhau.
10. MySQL có sẵn dưới dạng một chương trình riêng biệt để sử dụng trong môi trường mạng máy khách/máy chủ.
Ưu điểm của MySql.Độ tin cậy và hiệu suất. MySQL là hệ thống quản lý cơ sở dữ liệu quan hệ có hiệu suất cao và rất đáng tin cậy. Nó có thể được sử dụng để lưu trữ nhiều GB dữ liệu vào cơ sở dữ liệu.
Tính khả dụng của Nguồn. Mã nguồn MySQL có sẵn, đó là lý do tại sao bây giờ bạn có thể biên dịch lại mã nguồn.
Hỗ trợ đa nền tảng. MySQL hỗ trợ hơn 20 nền tảng khác nhau bao gồm cả bản phân phối Linux chính. Mac OS X, Unix và Microsoft windows.
Nhóm lớn các nhà phát triển được đào tạo và chứng nhận. MySQL rất phổ biến và nó là Cơ sở dữ liệu nguồn mở phổ biến nhất thế giới. Vì vậy, thật dễ dàng để tìm thấy nhân viên chất lượng cao trên khắp thế giới.
Phần mềm mạnh mẽ Không phức tạp. MySQL có hầu hết các khả năng để xử lý hầu hết các ứng dụng cơ sở dữ liệu của công ty và được sử dụng để
Bảng cơ sở dữ liệu
Cơ sở dữ liệu thường chứa một hoặc nhiều bảng. Mỗi bảng được xác định bởi một tên [e. g. "Khách hàng" hoặc "Đơn hàng"]. Bảng chứa các bản ghi [hàng] với dữ liệu.Dưới đây là ví dụ về bảng có tên "Người".
P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
3
Petersen
kari
sức mạnh 20
người đứng đầu
Bảng ở trên chứa ba bản ghi [một bản ghi cho mỗi người] và năm cột [P_Id, Họ, Tên, Địa chỉ và Thành phố].RDBMS
RDBMS là viết tắt của Hệ thống quản lý cơ sở dữ liệu quan hệ. RDBMS là cơ sở cho SQL và cho tất cả các hệ thống cơ sở dữ liệu hiện đại như MS SQL Server, IBM DB2, Oracle, MySQL và Microsoft Access. Dữ liệu trong RDBMS được lưu trữ trong các đối tượng cơ sở dữ liệu được gọi là bảng. Một bảng là một tập hợp các mục nhập dữ liệu có liên quan và nó bao gồm các cột và hàng
Hãy ghi nhớ điều đó
- SQL không phân biệt chữ hoa chữ thường
- Dấu chấm phẩy sau câu lệnh SQL?
Phân loại câu lệnh SQL
SQL cung cấp nhiều loại lệnh khác nhau được sử dụng cho các mục đích khác nhau. SQL có thể được chia thành các phần sau.1. Lệnh ngôn ngữ thao tác dữ liệu [DML]
2. Lệnh ngôn ngữ định nghĩa dữ liệu [DDL].
3. Lệnh ngôn ngữ kiểm soát giao dịch [TCL].
Các lệnh DML. DML là ngôn ngữ cho phép người dùng truy cập vào dữ liệu thao tác được tổ chức theo mô hình dữ liệu phù hợp. Các lệnh truy vấn và cập nhật tạo thành phần DML của SQL.- SELECT - trích xuất dữ liệu từ cơ sở dữ liệu
- UPDATE - cập nhật dữ liệu trong cơ sở dữ liệu
- DELETE - xóa dữ liệu khỏi cơ sở dữ liệu
- INSERT INTO - chèn dữ liệu mới vào cơ sở dữ liệu
- TẠO CƠ SỞ DỮ LIỆU - tạo cơ sở dữ liệu mới
- ALTER DATABASE - sửa đổi cơ sở dữ liệu
- TẠO BẢNG - tạo bảng mới
- ALTER TABLE - sửa đổi bảng
- DROP TABLE - xóa bảng
Các lệnh TCL. Các lệnh TCL dùng để quản lý và điều khiển các giao dịch của dữ liệu trong cơ sở dữ liệu. Các lệnh TCL quan trọng nhất là.
- CAM KẾT – nó thực hiện tất cả các thay đổi được thực hiện bởi tuyên bố đã ban hành.
- ROLLBACK – nó hoàn tác tất cả các thay đổi kể từ khi bắt đầu giao dịch hoặc kể từ khi lưu điểm.
- SAVEPOINT – điểm này đánh dấu một điểm tối đa cho giao dịch đã hoàn tất thành công.
- SET TRANSACTION – nó thiết lập các thuộc tính cho giao dịch hiện tại.
Các kiểu dữ liệu MySQL
Trong MySQL có 3 kiểu dữ liệu chính. văn bản, số và Ngày/Giờ.Các loại văn bản.
Loại dữ liệu
Sự mô tả
CHAR[kích thước]
Giữ một chuỗi có độ dài cố định [có thể chứa các chữ cái, số và ký tự đặc biệt]. Kích thước cố định được chỉ định trong ngoặc đơn. Có thể lưu trữ tối đa 255 ký tự
VARCHAR[kích thước]
Giữ một chuỗi có độ dài thay đổi [có thể chứa các chữ cái, số và ký tự đặc biệt]. Kích thước tối đa được chỉ định trong ngoặc đơn. Có thể lưu trữ tối đa 255 ký tự. Ghi chú. Nếu bạn đặt giá trị lớn hơn 255, nó sẽ được chuyển thành kiểu TEXT
TINYTEXT
Giữ một chuỗi có độ dài tối đa 255 ký tự
CHỮ
Giữ một chuỗi có độ dài tối đa 65.535 ký tự
BÃI
Đối với BLOB [Đối tượng lớn nhị phân]. Giữ tới 65.535 byte dữ liệu
TRUNG BÌNH
Giữ một chuỗi có độ dài tối đa 16.777.215 ký tự
VỪABLOB
Đối với BLOB [Đối tượng lớn nhị phân]. Giữ tới 16.777.215 byte dữ liệu
VĂN BẢN DÀI
Giữ một chuỗi có độ dài tối đa 4.294.967.295 ký tự
LONGBLOB
Đối với BLOB [Đối tượng lớn nhị phân]. Giữ tới 4.294.967.295 byte dữ liệu
ENUM[x,y,z,v.v. ]
Cho phép bạn nhập danh sách các giá trị có thể. Bạn có thể liệt kê tối đa 65535 giá trị trong danh sách ENUM. Nếu một giá trị được chèn không có trong danh sách, một giá trị trống sẽ được chèn vào
Ghi chú. Các giá trị được sắp xếp theo thứ tự bạn nhập vào.Bạn nhập các giá trị có thể theo định dạng này. ENUM['X','Y','Z']
SET
Tương tự như ENUM ngoại trừ SET có thể chứa tối đa 64 mục danh sách và có thể lưu trữ nhiều hơn một lựa chọn
Các loại số.
Loại dữ liệu
Sự mô tả
TINYINT[kích thước]
-128 đến 127 bình thường. 0 đến 255 KHÔNG KÝ*. Số chữ số tối đa có thể được chỉ định trong ngoặc đơn
NHỎ [kích thước]
-32768 đến 32767 bình thường. 0 đến 65535 CHƯA KÝ*. Số chữ số tối đa có thể được chỉ định trong ngoặc đơn
VỪA [kích thước]
-8388608 đến 8388607 bình thường. 0 đến 16777215 CHƯA KÝ*. Số chữ số tối đa có thể được chỉ định trong ngoặc đơn
INT [kích thước]
-2147483648 đến 2147483647 bình thường. 0 đến 4294967295 CHƯA KÝ*. Số chữ số tối đa có thể được chỉ định trong ngoặc đơn
LỚN [kích thước]
-9223372036854775808 đến 9223372036854775807 bình thường. 0 đến 18446744073709551615 CHƯA KÝ*. Số chữ số tối đa có thể được chỉ định trong ngoặc đơn
NỔI [kích thước, d]
Một số nhỏ với dấu thập phân động. Số chữ số tối đa có thể được chỉ định trong tham số kích thước. Số chữ số tối đa ở bên phải dấu thập phân được chỉ định trong tham số d
NHÂN ĐÔI[kích thước,d]
Một số lớn với dấu thập phân động. Số chữ số tối đa có thể được chỉ định trong tham số kích thước. Số chữ số tối đa ở bên phải dấu thập phân được chỉ định trong tham số d
DECIMAL[size,d]
MỘT NHÂN ĐÔI được lưu trữ dưới dạng một chuỗi, cho phép một dấu thập phân cố định. Số chữ số tối đa có thể được chỉ định trong tham số kích thước. Số chữ số tối đa ở bên phải dấu thập phân được chỉ định trong tham số d
*Các kiểu số nguyên có một tùy chọn bổ sung gọi là KHÔNG KÝ. Thông thường, số nguyên đi từ giá trị âm sang giá trị dương. Thêm thuộc tính UNSIGNED sẽ di chuyển phạm vi đó lên để nó bắt đầu từ 0 thay vì số âm.Loại ngày.
Loại dữ liệu
Sự mô tả
NGÀY[]
Một buổi hẹn hò. Định dạng. YYYY-MM-DD
Ghi chú. Phạm vi được hỗ trợ là từ '1000-01-01' đến '9999-12-31'DATETIME[]
* Một sự kết hợp ngày và thời gian. Định dạng. YYYY-MM-DD HH. MM. SS
Ghi chú. Phạm vi được hỗ trợ là từ '1000-01-01 00. 00. 00' đến '9999-12-31 23. 59. 59'DẤU THỜI GIAN[]
* Dấu thời gian. Các giá trị DẤU THỜI GIAN được lưu trữ dưới dạng số giây kể từ Kỷ nguyên Unix ['1970-01-01 00. 00. 00' UTC]. Định dạng. YYYY-MM-DD HH. MM. SS
Ghi chú. Phạm vi được hỗ trợ là từ '1970-01-01 00. 00. 01' UTC đến '2038-01-09 03. 14. 07' UTCTIME[]
Một thời gian. Định dạng. hộ. MM. SS
Ghi chú. Phạm vi được hỗ trợ là từ '-838. 59. 59' đến '838. 59. 59'NĂM[]
Một năm ở định dạng hai chữ số hoặc bốn chữ số
Ghi chú. Các giá trị được phép ở định dạng bốn chữ số. 1901 đến 2155. Các giá trị được phép ở định dạng hai chữ số. 70 đến 69, đại diện cho các năm từ 1970 đến 2069*Ngay cả khi DATETIME và TIMESTAMP trả về cùng một định dạng, chúng hoạt động rất khác nhau. Trong truy vấn CHÈN hoặc CẬP NHẬT, DẤU THỜI GIAN tự động đặt chính nó thành ngày và giờ hiện tại. DẤU THỜI GIAN cũng chấp nhận nhiều định dạng khác nhau, như YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD hoặc YYMMDD.
SQL SELECT Câu lệnh Lệnh SELECT . Kết quả được lưu trữ trong một bảng kết quả, được gọi là tập hợp kết quả. Cú pháp
CHỌN [các] tên_cột
TỪ_tên_bảng
CHỌN * TỪ tên_bảng
Một ví dụ CHỌN SQL
Bảng "Người".P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
3
Petersen
kari
sức mạnh 20
người đứng đầu
Bây giờ chúng tôi muốn chọn nội dung của các cột có tên "LastName" và "FirstName" từ bảng trên.Chúng ta sử dụng câu lệnh SELECT sau.
CHỌN Họ, Tên TỪ Người
Tập kết quả sẽ như thế này.Họ
Họ
hansen
ola
Svendson
tove
Petersen
kari
CHỌN * Ví dụ
Bây giờ chúng tôi muốn chọn tất cả các cột từ bảng "Người". Chúng tôi sử dụng câu lệnh SELECT sau.CHỌN * TỪ Người
Mẹo. Dấu hoa thị [*] là cách nhanh chóng để chọn tất cả các cột.Tập kết quả sẽ như thế này.
P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
3
Petersen
kari
sức mạnh 20
người đứng đầu
Câu lệnh SQL SELECT DISTINCT
Trong một bảng, một số cột có thể chứa các giá trị trùng lặp. Đây không phải là vấn đề, tuy nhiên, đôi khi bạn sẽ chỉ muốn liệt kê các giá trị [khác biệt] khác nhau trong một bảng.Từ khóa DISTINCT có thể được sử dụng để chỉ trả về các giá trị riêng biệt [khác nhau].
Cú pháp SQL SELECT DISTINCT
CHỌN [các] tên_cột DISTINCT
TỪ_tên_bảng
CHỌN DISTINCT Ví dụ
Bảng "Người".P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
3
Petersen
kari
sức mạnh 20
người đứng đầu
Bây giờ, chúng tôi chỉ muốn chọn các giá trị riêng biệt từ cột có tên "Thành phố" từ bảng trên.Chúng ta sử dụng câu lệnh SELECT sau.
CHỌN THÀNH PHỐ DISTINCT TỪ Người
Tập kết quả sẽ như thế này.Thành phố
bãi cát
người đứng đầu
Mệnh đề WHERE
Mệnh đề WHERE được sử dụng để chỉ trích xuất những bản ghi đáp ứng một tiêu chí cụ thể.Cú pháp SQL WHERE
CHỌN [các] tên_cột
TỪ_tên_bảng
Ở ĐÂU giá trị toán tử tên_cột
Ví dụ mệnh đề WHERE
Bảng "Người".P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
3
Petersen
kari
sức mạnh 20
người đứng đầu
Bây giờ chúng tôi chỉ muốn chọn những người sống trong thành phố "Sandnes" từ bảng trên. Chúng tôi sử dụng câu lệnh SELECT sau.CHỌN * TỪNgười
WHERECity='Sandnes'
P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
Trích dẫn xung quanh trường văn bản
SQL sử dụng dấu nháy đơn xung quanh giá trị văn bản [hầu hết các hệ thống cơ sở dữ liệu cũng sẽ chấp nhận dấu nháy kép]. Mặc dù, các giá trị số không nên được đặt trong dấu ngoặc kép. Đối với giá trị văn bản.Điều này đúng.
SELECT * FROM Persons WHERE FirstName='Tove'
Điều này là sai.
CHỌN * TỪ Người Ở ĐÂU FirstName=Tove
Điều này đúng.
CHỌN * TỪ Người Ở ĐÂU Năm=1965
Điều này sai.
CHỌN * TỪ Người Ở ĐÂU Năm='1965'
Toán tử được phép trong Mệnh đề WHERE
Với mệnh đề WHERE, có thể sử dụng các toán tử sau.Toán tử
Sự mô tả
=
Bình đẳng
Không công bằng
>
Lớn hơn
=
Lớn hơn hoặc bằng
'a'
Khi sử dụng SQL trên dữ liệu văn bản, "alfred" lớn hơn "a" [như trong từ điển].CHỌN CompanyName, ContactName
TỪ khách hàng
WHERE CompanyName > 'g'
AND ContactName
Toán tử LIKE được sử dụng trong mệnh đề WHERE để tìm kiếm một mẫu được chỉ định trong một cột
Toán tử THÍCH
Toán tử LIKE được sử dụng để tìm kiếm một mẫu cụ thể trong một cột.Cú pháp SQL LIKE
CHỌN [các] tên_cột
TỪ_tên_bảng
NƠI mẫu GIỐNG_tên_cột
Ví dụ toán tử LIKE
Bảng "Người".P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
3
Petersen
kari
sức mạnh 20
người đứng đầu
Bây giờ, chúng tôi muốn chọn những người sống trong thành phố bắt đầu bằng "s" từ bảng trên.Chúng ta sử dụng câu lệnh SELECT sau.
CHỌN * FROMPersons
WHERECityLIKE 's%'
Tập kết quả sẽ như thế này.
P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
3
Petersen
kari
sức mạnh 20
người đứng đầu
Tiếp theo, chúng tôi muốn chọn những người sống trong thành phố kết thúc bằng chữ "s" từ bảng "Người".Chúng ta sử dụng câu lệnh SELECT sau.
SELECT * FROMPersons
WHERECityLIKE '%s'
P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
Tiếp theo, chúng tôi muốn chọn những người sống trong thành phố có chứa mẫu "tav" từ bảng "Người".Chúng ta sử dụng câu lệnh SELECT sau.
SELECT * FROMPersons
WHERECityLIKE '%tav%'
P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
3
Petersen
kari
sức mạnh 20
người đứng đầu
Cũng có thể chọn những người sống trong thành phố KHÔNG chứa mẫu "tav" từ bảng "Persons" bằng cách sử dụng từ khóa NOT.Chúng ta sử dụng câu lệnh SELECT sau.
CHỌN * FROMPersons
WHERECityNOT LIKE '%tav%'
P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
Ký tự đại diện SQL
Ký tự đại diện SQL có thể thay thế cho một hoặc nhiều ký tự khi tìm kiếm dữ liệu trong cơ sở dữ liệu.Các ký tự đại diện SQL phải được sử dụng với toán tử LIKE của SQL.
Với SQL, có thể sử dụng các ký tự đại diện sau.
Ký tự đại diện
Sự mô tả
%
Thay thế cho 0 hoặc nhiều ký tự
_
Thay thế cho chính xác một ký tự
[charlist]
Bất kỳ ký tự đơn nào trong danh sách từ điển
[^charlist] hoặc [. charlist]Bất kỳ ký tự nào không có trong charlist
Ví dụ về ký tự đại diện SQL
Chúng ta có bảng "Người" sau.P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
3
Petersen
kari
sức mạnh 20
người đứng đầu
Sử dụng ký tự đại diện %
Bây giờ, chúng tôi muốn chọn những người sống trong thành phố bắt đầu bằng "sa" từ bảng "Người". Chúng tôi sử dụng câu lệnh SELECT sau.SELECT * FROMPersons
WHERECityLIKE 'sa%'
P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
Tiếp theo, chúng tôi muốn chọn những người sống trong thành phố có chứa mẫu "nes" từ bảng "Persons". Chúng tôi sử dụng câu lệnh SELECT sau.SELECT * FROMPersons
WHERECityLIKE '%nes%'
P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
Sử dụng ký tự đại diện _
Bây giờ, chúng tôi muốn chọn những người có tên bắt đầu bằng ký tự bất kỳ, theo sau là "la" từ bảng "Người".Chúng ta sử dụng câu lệnh SELECT sau.
CHỌN * TỪ Người
WHERE FirstName LIKE '_la'
P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
Tiếp theo, chúng tôi muốn chọn những người có họ bắt đầu bằng "S", theo sau là ký tự bất kỳ, theo sau là "end", theo sau là ký tự bất kỳ, theo sau là "on" từ "Persons" .Chúng ta sử dụng câu lệnh SELECT sau.
CHỌN * TỪ Người
WHERE Họ THÍCH 'S_end_on'
P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
2
Svendson
tove
Borgvn 23
bãi cát
Sử dụng Ký tự đại diện [charlist]
Bây giờ chúng tôi muốn chọn những người có họ bắt đầu bằng "b" hoặc "s" hoặc "p" từ bảng "Người".Chúng ta sử dụng câu lệnh SELECT sau.
CHỌN * TỪ Người
WHERE LastName LIKE '[bsp]%'
P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
2
Svendson
tove
Borgvn 23
bãi cát
3
Petersen
kari
sức mạnh 20
người đứng đầu
Tiếp theo, chúng tôi muốn chọn những người có họ không bắt đầu bằng "b" hoặc "s" hoặc "p" từ bảng "Người".Chúng ta sử dụng câu lệnh SELECT sau.
CHỌN * TỪ Người
NƠI Họ THÍCH '[. bsp]%'
P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
Toán tử IN
Toán tử IN cho phép bạn chỉ định nhiều giá trị trong mệnh đề WHERE.Cú pháp IN SQL
CHỌN [các] tên_cột
TỪ_tên_bảng
Ở ĐÂU tên_cột VÀO [giá trị1,giá trị2,. ]
Ví dụ toán tử IN
Bảng "Người".P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
3
Petersen
kari
sức mạnh 20
người đứng đầu
Bây giờ chúng tôi muốn chọn những người có họ bằng "Hansen" hoặc "Pettersen" từ bảng trên.Chúng ta sử dụng câu lệnh SELECT sau.
CHỌN * TỪ Người
WHERE LastName IN ['Hansen','Pettersen']
P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
3
Petersen
kari
sức mạnh 20
người đứng đầu
Toán tử GIỮA
Toán tử BETWEEN chọn dải dữ liệu nằm giữa hai giá trị. Các giá trị có thể là số, văn bản hoặc ngày tháng.Cú pháp GIỮA SQL
CHỌN [các] tên_cột
TỪ_tên_bảng
WHERE tên_cột
GIỮA value1 VÀ value2
Ví dụ toán tử BETWEEN
Bảng "Người".P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
3
Petersen
kari
sức mạnh 20
người đứng đầu
Bây giờ, chúng tôi muốn chọn những người có họ theo thứ tự bảng chữ cái giữa "Hansen" và "Pettersen" từ bảng trên.Chúng ta sử dụng câu lệnh SELECT sau.
CHỌN * TỪ Người
WHERE Họ
GIỮA 'Hansen' VÀ 'Pettersen'
P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
Ghi chú. Toán tử BETWEEN được xử lý khác nhau trong các cơ sở dữ liệu khác nhau.Trong một số cơ sở dữ liệu, những người có Họ là "Hansen" hoặc "Pettersen" sẽ không được liệt kê, vì toán tử BETWEEN chỉ chọn các trường nằm giữa và loại trừ các giá trị thử nghiệm].
Trong các cơ sở dữ liệu khác, những người có Họ là "Hansen" hoặc "Pettersen" sẽ được liệt kê, bởi vì toán tử BETWEEN chọn các trường nằm giữa và bao gồm các giá trị thử nghiệm].
Và trong các cơ sở dữ liệu khác, những người có Họ là "Hansen" sẽ được liệt kê, nhưng "Pettersen" sẽ không được liệt kê [như ví dụ trên], bởi vì toán tử BETWEEN chọn các trường giữa các lần kiểm tra .
Do đó. Kiểm tra xem cơ sở dữ liệu của bạn xử lý toán tử BETWEEN như thế nào.
Ví dụ 2
Để hiển thị những người bên ngoài phạm vi trong ví dụ trước, hãy sử dụng NOT BETWEEN.CHỌN * TỪ Người
WHERE Họ
KHÔNG PHẢI GIỮA 'Hansen' VÀ 'Pettersen'
P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
2
Svendson
tove
Borgvn 23
bãi cát
3
Petersen
kari
sức mạnh 20
người đứng đầu
Bí danh SQL
Bạn có thể đặt tên khác cho bảng hoặc cột bằng cách sử dụng bí danh. Đây có thể là một việc nên làm nếu bạn có tên bảng hoặc tên cột rất dài hoặc phức tạp.Tên bí danh có thể là bất cứ thứ gì, nhưng thường là tên ngắn.
Cú pháp bí danh SQL cho bảng
CHỌN [các] tên_cột
TỪ_tên_bảng
NHƯ tên_bí danh
Cú pháp bí danh SQL cho các cột
CHỌN tên_cột NHƯ_tên_bí danh
TỪ_tên_bảng
Ví dụ bí danh
Giả sử chúng ta có một bảng tên là "Persons" và một bảng khác tên là "Product_Orders". Chúng tôi sẽ cung cấp cho bảng bí danh của "p" một "po" tương ứng. Bây giờ chúng tôi muốn liệt kê tất cả các đơn đặt hàng mà "Ola Hansen" chịu trách nhiệm.Chúng ta sử dụng câu lệnh SELECT sau.
CHỌN vị trí. OrderID, p. Họ, p. FirstName
FROM Persons AS p,
Product_Orders AS po
WHERE p. LastName='Hansen' AND p. FirstName='Ola'
CHỌN Product_Orders. OrderID, Người. Họ, Người. FirstName
FROM Persons,
Product_Orders
WHERE Persons. LastName='Hansen' VÀ Người. FirstName='Ola'
Câu lệnh TẠO BẢNG
Câu lệnh CREATE TABLE dùng để tạo bảng trong cơ sở dữ liệu.Cú pháp TẠO BẢNG SQL
TẠO BẢNG table_name
[
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
....
]
Ví dụ TẠO BẢNG
Bây giờ chúng tôi muốn tạo một bảng tên là "Người" chứa năm cột. P_Id, Họ, Tên, Địa chỉ và Thành phố.Chúng ta sử dụng câu lệnh CREATE TABLE sau.
TẠO BẢNG Người
[
P_Id int,
LastName varchar[255],0]
]
Ràng buộc MẶC ĐỊNH SQL
Ràng buộc MẶC ĐỊNH được sử dụng để chèn một giá trị mặc định vào một cột.Giá trị mặc định sẽ được thêm vào tất cả các bản ghi mới, nếu không có giá trị nào khác được chỉ định.
Ràng buộc MẶC ĐỊNH SQL đối với TẠO BẢNG
Câu SQL sau tạo ràng buộc MẶC ĐỊNH trên cột "Thành phố" khi bảng "Người" được tạo.TẠO BẢNG Người
[
P_Id int NOT NULL,
LastName varchar[255]
FirstName varchar[255],
Address varchar[255],
City varchar[255] DEFAULT 'Sandnes'
]
TẠO BẢNG Đơn hàng
[
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
OrderDate date DEFAULT GETDATE[]
]
Câu lệnh ALTER TABLE
Câu lệnh ALTER TABLE được sử dụng để thêm, xóa hoặc sửa đổi các cột trong một bảng hiện có.Cú pháp THAY ĐỔI BẢNG SQL
Để thêm một cột trong bảng, hãy sử dụng cú pháp sau.ALTER TABLE tên_bảng
THÊM kiểu dữ liệu tên_cột
ALTER TABLE table_name
DROP COLUMN column_name
ALTER TABLE tên_bảng
ALTER COLUMN kiểu dữ liệu tên_cột
SQL ALTER TABLE Ví dụ
Xem bảng "Người".P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
3
Petersen
kari
sức mạnh 20
người đứng đầu
Bây giờ chúng tôi muốn thêm một cột có tên "DateOfBirth" vào bảng "Persons".Chúng tôi sử dụng câu lệnh SQL sau.
ALTER TABLE Người
ADD DateOfBirth ngày
Bảng "Người" bây giờ sẽ như thế này.
P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
Ngày sinh
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
3
Petersen
kari
sức mạnh 20
người đứng đầu
Thay đổi kiểu dữ liệu ví dụ
Bây giờ chúng ta muốn thay đổi kiểu dữ liệu của cột có tên "DateOfBirth" trong bảng "Persons".Chúng tôi sử dụng câu lệnh SQL sau.
ALTER BẢNG Người
ALTER COLUMN DateOfBirth year
SQL Hàm
SQL có nhiều hàm tích hợp để thực hiện tính toán trên dữ liệu
Hàm tổng hợp SQL
Hàm tổng hợp SQL trả về một giá trị duy nhất, được tính toán từ các giá trị trong một cột.Các hàm tổng hợp hữu ích.
- AVG[] - Trả về giá trị trung bình
- COUNT[] - Trả về số hàng
- FIRST[] - Trả về giá trị đầu tiên
- LAST[] - Trả về giá trị cuối cùng
- MAX[] - Trả về giá trị lớn nhất
- MIN[] - Trả về giá trị nhỏ nhất
- SUM[] - Trả về tổng
Hàm vô hướng SQL
Hàm vô hướng SQL trả về một giá trị duy nhất, dựa trên giá trị đầu vào.Các hàm vô hướng hữu ích.
- UCASE[] - Chuyển đổi trường thành chữ hoa
- LCASE[] - Chuyển đổi một trường thành chữ thường
- MID[] - Trích xuất các ký tự từ trường văn bản
- LEN[] - Trả về độ dài của trường văn bản
- ROUND[] - Làm tròn trường số thành số thập phân được chỉ định
- NOW[] - Trả về ngày giờ hiện tại của hệ thống
- FORMAT[] - Định dạng cách hiển thị trường
Hàm AVG[]
Hàm AVG[] trả về giá trị trung bình của một cột số.Cú pháp SQL AVG[]
CHỌN AVG [column_name] TỪ tên_bảng
SQL AVG[] Ví dụ
Chúng ta có bảng "Đơn hàng" sau.O_Id
Ngày đặt hàng
Giá đặt hàng
khách hàng
1
2008/11/12
1000
hansen
2
23/10/2008
1600
Nilsen
3
2008/09/02
700
hansen
4
2008/09/03
300
hansen
5
30/08/2008
2000
Jensen
6
2008/10/04
100
Nilsen
Bây giờ chúng tôi muốn tìm giá trị trung bình của các trường "Giá đặt hàng".Chúng tôi sử dụng câu lệnh SQL sau.
CHỌN AVG[Giá đặt hàng] LÀM Trung bình đặt hàng TỪ đơn đặt hàng
Tập kết quả sẽ như thế này.Trung bình đơn hàng
950
Bây giờ, chúng tôi muốn tìm những khách hàng có giá trị OrderPrice cao hơn giá trị OrderPrice trung bình.Chúng tôi sử dụng câu lệnh SQL sau.
CHỌN Khách hàng TỪ Đơn đặt hàng
WHERE Giá đặt hàng>[CHỌN AVG[Giá đặt hàng] TỪ Đơn đặt hàng]
Khách hàng
hansen
Nilsen
Jensen
Hàm SQL COUNT[] Function" Trước
Chương tiếp theo "
Hàm COUNT[] trả về số hàng khớp với một tiêu chí đã chỉ định
SQL COUNT[tên_cột] Cú pháp
Hàm COUNT[tên_cột] trả về số lượng giá trị [giá trị NULL sẽ không được tính] của cột đã chỉ định.CHỌN ĐẾM [tên_cột] TỪ tên_bảng
Cú pháp SQL COUNT[*]
Hàm COUNT[*] trả về số lượng bản ghi trong một bảng.CHỌN COUNT[*] TỪ tên_bảng
Cú pháp SQL COUNT[DISTINCT column_name]
Hàm COUNT[DISTINCT column_name] trả về số lượng giá trị riêng biệt của cột đã chỉ định.CHỌN ĐẾM [DISTINCT column_name] TỪ tên_bảng
Ghi chú. COUNT[DISTINCT] hoạt động với ORACLE và Microsoft SQL Server, nhưng không hoạt động với Microsoft Access.SQL COUNT[column_name] Ví dụ
Chúng ta có bảng "Đơn hàng" sau.O_Id
Ngày đặt hàng
Giá đặt hàng
khách hàng
1
2008/11/12
1000
hansen
2
23/10/2008
1600
Nilsen
3
2008/09/02
700
hansen
4
2008/09/03
300
hansen
5
30/08/2008
2000
Jensen
6
2008/10/04
100
Nilsen
Bây giờ chúng tôi muốn đếm số lượng đơn đặt hàng từ "Customer Nilsen".Chúng tôi sử dụng câu lệnh SQL sau.
CHỌN COUNT[Khách hàng] làm Khách hàngNilsen TỪ Đơn đặt hàng
WHERE Customer='Nilsen'
CustomerNilsen
2
Ví dụ SQL COUNT[*]
Nếu chúng ta bỏ qua mệnh đề WHERE, như thế này.CHỌN COUNT[*] AS NumberOfOrders TỪ Đơn đặt hàng
Tập kết quả sẽ như thế này.NumberOfOrders
6
đó là tổng số hàng trong bảngVí dụ SQL COUNT[DISTINCT column_name]
Bây giờ chúng tôi muốn đếm số lượng khách hàng duy nhất trong bảng "Đơn hàng".Chúng tôi sử dụng câu lệnh SQL sau.
CHỌN COUNT[Khách hàng RIÊNG] LÀM Số lượng Khách hàng TỪ Đơn đặt hàng
Tập kết quả sẽ như thế này.Số lượng khách hàng
3
là số lượng khách hàng duy nhất [Hansen, Nilsen và Jensen] trong bảng "Đơn hàng".Hàm MAX[]
Hàm MAX[] trả về giá trị lớn nhất của cột được chọn.Cú pháp SQL MAX[]
CHỌN MAX[column_name] TỪ tên_bảng
SQL MAX[] Ví dụ
Chúng ta có bảng "Đơn hàng" sau.O_Id
Ngày đặt hàng
Giá đặt hàng
khách hàng
1
2008/11/12
1000
hansen
2
23/10/2008
1600
Nilsen
3
2008/09/02
700
hansen
4
2008/09/03
300
hansen
5
30/08/2008
2000
Jensen
6
2008/10/04
100
Nilsen
Bây giờ chúng ta muốn tìm giá trị lớn nhất của cột "OrderPrice".Chúng tôi sử dụng câu lệnh SQL sau.
CHỌN TỐI ĐA[Giá đặt hàng] LÀ Giá đặt hàng lớn nhất TỪ các đơn đặt hàng
Tập kết quả sẽ như thế này.Giá đặt hàng lớn nhất
2000
Hàm MIN[]
Hàm MIN[] trả về giá trị nhỏ nhất của cột được chọn.Cú pháp SQL MIN[]
CHỌN TỐI THIỂU [tên_cột] TỪ tên_bảng
SQL MIN[] Ví dụ
Chúng ta có bảng "Đơn hàng" sau.O_Id
Ngày đặt hàng
Giá đặt hàng
khách hàng
1
2008/11/12
1000
hansen
2
23/10/2008
1600
Nilsen
3
2008/09/02
700
hansen
4
2008/09/03
300
hansen
5
30/08/2008
2000
Jensen
6
2008/10/04
100
Nilsen
Bây giờ chúng ta muốn tìm giá trị nhỏ nhất của cột "OrderPrice".Chúng tôi sử dụng câu lệnh SQL sau.
CHỌN TỐI THIỂU[Giá đặt hàng] làm giá đặt hàng nhỏ nhất TỪ các đơn đặt hàng
Tập kết quả sẽ như thế này.Giá đặt hàng nhỏ nhất
100
Hàm SUM[]
Hàm SUM[] trả về tổng của một cột số.Cú pháp SQL SUM[]
CHỌN TỔNG [tên_cột] TỪ tên_bảng
SQL SUM[] Ví dụ
Chúng ta có bảng "Đơn hàng" sau.O_Id
Ngày đặt hàng
Giá đặt hàng
khách hàng
1
2008/11/12
1000
hansen
2
23/10/2008
1600
Nilsen
3
2008/09/02
700
hansen
4
2008/09/03
300
hansen
5
30/08/2008
2000
Jensen
6
2008/10/04
100
Nilsen
Bây giờ, chúng tôi muốn tìm tổng của tất cả các trường "Giá đặt hàng"".Chúng tôi sử dụng câu lệnh SQL sau.
CHỌN SUM[OrderPrice] LÀM Tổng đơn hàng TỪ đơn hàng
Tập kết quả sẽ như thế này.Tổng đơn hàng
5700
Tuyên bố GROUP BY
Câu lệnh GROUP BY được sử dụng cùng với các hàm tổng hợp để nhóm tập hợp kết quả theo một hoặc nhiều cột.Cú pháp NHÓM SQL THEO Cú pháp
CHỌN tên_cột, hàm_tổng_hợp[tên_cột]
TỪ tên_bảng
Ở ĐÂU giá trị toán tử tên_cột
NHÓM THEO tên_cộtNHÓM THEO tên_cộtNHÓM THEO tên_cộtNHÓM THEO tên_cộtNHÓM THEO tên_cộtNHÓM THEO tên_cộtNHÓM THEO tên_cộtNHÓM THEO tên_cộtNHÓM THEO tên_cột
NHÓM SQL THEO Ví dụ
Chúng ta có bảng "Đơn hàng" sau.O_Id
Ngày đặt hàng
Giá đặt hàng
khách hàng
1
2008/11/12
1000
hansen
2
23/10/2008
1600
Nilsen
3
2008/09/02
700
hansen
4
2008/09/03
300
hansen
5
30/08/2008
2000
Jensen
6
2008/10/04
100
Nilsen
Bây giờ chúng tôi muốn tìm tổng số tiền [tổng đơn đặt hàng] của mỗi khách hàng.Chúng ta sẽ phải sử dụng câu lệnh GROUP BY để nhóm các khách hàng.
Chúng tôi sử dụng câu lệnh SQL sau.
CHỌN Khách hàng,SUM[Giá đặt hàng] TỪ Đơn đặt hàng
NHÓM THEO Khách hàng
Khách hàng
TỔNG [Giá đặt hàng]
hansen
2000
Nilsen
1700
Jensen
2000
Đẹp. Phải không?. ]Hãy xem điều gì sẽ xảy ra nếu chúng ta bỏ qua câu lệnh GROUP BY.
CHỌN Khách hàng,SUM[Giá đặt hàng] TỪ Đơn đặt hàng
Tập kết quả sẽ như thế này.Khách hàng
TỔNG [Giá đặt hàng]
hansen
5700
Nilsen
5700
hansen
5700
hansen
5700
Jensen
5700
Nilsen
5700
Tập hợp kết quả ở trên không như mong muốn.Giải thích tại sao câu lệnh SELECT trên không dùng được. Câu lệnh CHỌN ở trên có hai cột được chỉ định [Khách hàng và SUM[Giá đặt hàng]. "SUM[OrderPrice]" trả về một giá trị [tức là tổng của cột "OrderPrice"], trong khi "Customer" trả về 6 giá trị [một giá trị cho mỗi hàng trong bảng "Orders"]. Do đó, điều này sẽ không cho chúng ta kết quả chính xác. Tuy nhiên, bạn đã thấy rằng câu lệnh GROUP BY giải quyết vấn đề này.
NHÓM THEO Nhiều Cột
Chúng ta cũng có thể sử dụng câu lệnh GROUP BY trên nhiều cột, như thế này.CHỌN Khách hàng,Ngày đặt hàng,SUM[Giá đặt hàng] TỪ Đơn đặt hàng
NHÓM THEO Khách hàng,Ngày đặt hàng
Mệnh đề HAVING
Mệnh đề HAVING đã được thêm vào SQL vì không thể sử dụng từ khóa WHERE với các hàm tổng hợp.Cú pháp SQL HAVING
CHỌN tên_cột, hàm_tổng_hợp[tên_cột]
TỪ tên_bảng
Ở ĐÂU giá trị toán tử tên_cột
NHÓM THEO tên_cộtNHÓM THEO tên_cộtNHÓM THEO tên_cộtNHÓM THEO tên_cộtNHÓM THEO tên_cộtNHÓM THEO tên_cộtNHÓM THEO tên_cộtNHÓM THEO tên_cộtNHÓM THEO tên_cột
HAVING aggregate_function[column_name] operator value
SQL HAVING Ví dụ
Chúng ta có bảng "Đơn hàng" sau.O_Id
Ngày đặt hàng
Giá đặt hàng
khách hàng
1
2008/11/12
1000
hansen
2
23/10/2008
1600
Nilsen
3
2008/09/02
700
hansen
4
2008/09/03
300
hansen
5
30/08/2008
2000
Jensen
6
2008/10/04
100
Nilsen
Bây giờ chúng tôi muốn tìm xem có khách hàng nào có tổng đơn hàng nhỏ hơn 2000 không.Chúng tôi sử dụng câu lệnh SQL sau.
CHỌN Khách hàng,SUM[Giá đặt hàng] TỪ đơn đặt hàng
NHÓM THEO Khách hàng
CÓ SUM[Giá đặt hàng]
Khách hàng
TỔNG [Giá đặt hàng]
Nilsen
1700
Bây giờ chúng tôi muốn tìm xem khách hàng "Hansen" hay "Jensen" có tổng đơn đặt hàng lớn hơn 1500 hay không.Chúng tôi thêm mệnh đề WHERE thông thường vào câu lệnh SQL.
CHỌN Khách hàng,SUM[Giá đặt hàng] TỪ Đơn hàng
WHERE Khách hàng='Hansen' OR Khách hàng='Jensen'
NHÓM THEO
HAVING SUM[OrderPrice]>1500
Khách hàng
TỔNG [Giá đặt hàng]
hansen
2000
Jensen
2000
Hàm UCASE[]
Hàm UCASE[] chuyển đổi giá trị của một trường thành chữ hoa.Cú pháp SQL UCASE[]
CHỌN UCASE [column_name] TỪ tên_bảng
Cú pháp cho SQL Server
CHỌN UPPER[column_name] TỪ tên_bảng
SQL UCASE[] Ví dụ
Chúng ta có bảng "Người" sau.P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
3
Petersen
kari
sức mạnh 20
người đứng đầu
Bây giờ chúng tôi muốn chọn nội dung của cột "Họ" và "Tên" ở trên và chuyển đổi cột "Họ" thành chữ hoa.Chúng ta sử dụng câu lệnh SELECT sau.
CHỌN UCASE[LastName] làm Họ,Tên TỪ người
Tập kết quả sẽ như thế này.Họ
Họ
HANSEN
ola
SVENDSON
tove
THÚ CƯNG
kari
Hàm LCASE[]
Hàm LCASE[] chuyển đổi giá trị của một trường thành chữ thường.Cú pháp SQL LCASE[]
CHỌN LCASE[column_name] TỪ tên_bảng
Cú pháp cho SQL Server
CHỌN THẤP HƠN [tên_cột] TỪ tên_bảng
Ví dụ SQL LCASE[]
Chúng ta có bảng "Người" sau.P_Id
Họ
Họ
Địa chỉ nhà
Thành phố
1
hansen
ola
Timoteivn 10
bãi cát
2
Svendson
tove
Borgvn 23
bãi cát
3
Petersen
kari
sức mạnh 20
người đứng đầu
Bây giờ chúng tôi muốn chọn nội dung của cột "Họ" và "Tên" ở trên và chuyển đổi cột "Họ" thành chữ thường.Chúng ta sử dụng câu lệnh SELECT sau.
CHỌN LCASE[LastName] làm Họ,Tên TỪ Người
Tập kết quả sẽ như thế này.Họ
Họ
hansen
ola
người bán hàng
tove
pettersen
kari
Hàm MID[]
Hàm MID[] dùng để trích xuất các ký tự từ trường văn bản.Cú pháp SQL MID[]
CHỌN MID[column_name,start[,length]] TỪ tên_bảng
Tham số
Sự mô tả
tên cột dọc
Yêu cầu. Trường để trích xuất các ký tự từ
bắt đầu
Yêu cầu. Chỉ định vị trí bắt đầu [bắt đầu từ 1]
chiều dài
Không bắt buộc. Số ký tự trả về. Nếu bỏ qua, hàm MID[] trả về phần còn lại của văn bản