SQL là ngôn ngữ dành riêng cho miền mà các kỹ sư sử dụng để xử lý dữ liệu được lưu trữ trong cơ sở dữ liệu quan hệ hoặc để xử lý luồng trong hệ thống quản lý luồng dữ liệu quan hệ. Bạn có thể lưu trữ dữ liệu trong cơ sở dữ liệu quan hệ thông qua các bảng. Điều đầu tiên cần làm trong quy trình này là tạo cơ sở dữ liệu mà bạn muốn làm việc trên đó. Sau đó, chúng tôi tạo các bảng trong đó dữ liệu thực tế sẽ được lưu trữ. Một bảng trong cơ sở dữ liệu như vậy sẽ có cả hàng và cột.
Sẽ có một kiểu dữ liệu cụ thể được liên kết với mỗi cột xác định loại dữ liệu mà nó có thể lưu trữ. Trong khi tạo bảng, chúng ta phải chỉ định tên và kiểu dữ liệu của từng cột. Bạn có thể tạo một bảng bằng lệnh SQL CREATE TABLE trong cả cơ sở dữ liệu MySQL và PostgreSQL.
Chúng ta hãy xem xét sâu hơn về câu lệnh SQL CREATE TABLE.
Làm cách nào để tạo bảng bằng SQL?
Bạn có thể tạo một bảng trong MySQL với cú pháp sau:
TẠO BẢNG table_name(
cột_1 data_type giá trị mặc định column_constraint ,
cột_2 data_type giá trị mặc định column_constraint ,
...,
…,
table_constraint
);
Những thứ cơ bản mà bạn nên có khi tạo bảng là tên của bảng và ít nhất một tên cột. Chỉ nên có một bảng cơ sở dữ liệu với một tên bảng cụ thể. Cơ sở dữ liệu sẽ hiển thị cho bạn thông báo lỗi nếu bạn cố gắng tạo hai bảng có cùng tên.
Bên trong ngoặc, chúng tôi chỉ định tên của các cột mà chúng tôi muốn tạo trong bảng, cùng với kiểu dữ liệu của dữ liệu sẽ được nhập vào đó. Dấu phẩy sẽ phân tách tên của các cột này. Tên, kiểu dữ liệu, giá trị mặc định của cột và một hoặc nhiều hạn chế cột tạo nên mỗi cột.
Các ràng buộc cột kiểm soát giá trị dữ liệu thực tế có thể được lưu trữ trong cột. Chẳng hạn, ràng buộc NOT NULL đảm bảo rằng không có giá trị NULL nào tồn tại trong cột cụ thể đó. Bạn có thể có nhiều ràng buộc cho một cột. Chẳng hạn, một cột có thể chứa cả hai giới hạn NOT NULL và UNIQUE .
Nếu bạn muốn áp dụng các ràng buộc cho tất cả các cột trong bảng, bạn có thể sử dụng các ràng buộc của bảng. Một số ví dụ tương tự là FOREIGN KEY , CHECK và UNIQUE . Mỗi bảng có thể có một khóa chính được tạo thành từ một hoặc nhiều cột. Khóa chính này được sử dụng để xác định duy nhất từng bản ghi của bảng. Thông thường, bạn liệt kê cột khóa chính trước rồi đến các cột khác. Bạn phải khai báo ràng buộc PRIMARY KEY làm ràng buộc bảng nếu nó được tạo thành từ hai cột trở lên.
Hãy xem xét một ví dụ:
TẠO BẢNG KHÁCH HÀNG(
ID INT KHÔNG NULL,
TÊN VARCHAR (20) KHÔNG NULL,
TUỔI INT KHÔNG NULL,
LƯƠNG THẬP PHÂN (18, 2),
KHÓA CHÍNH (ID)
);
Ở đây, tên của bảng là "KHÁCH HÀNG" và khóa chính của bảng là ID. Các cột ID, NAME và AGE có ràng buộc NOT NULL . Độ dài của tên phải ít hơn 20 ký tự. Bây giờ, chúng ta đã tạo một bảng bằng lệnh SQL CREATE TABLE và chúng ta có thể chèn dữ liệu liên quan vào bảng đó và cơ sở dữ liệu.
Bạn có thể có một bảng bên trong một bảng trong MySQL/PostgreSQL không?
Có một bảng bên trong một bảng sẽ được gọi là lồng các bảng. Đối với điều này, chúng ta sẽ phải tạo một bảng bên trong một bảng khác bằng lệnh SQL CREATE TABLE. Đây là một khái niệm không tồn tại trong MySQL. Tuy nhiên, chúng ta có thể đạt được kết quả tương tự như khi có các bảng lồng nhau bằng cách sử dụng khóa chính và khóa ngoại. Điều này tạo ra mối quan hệ cha-con giữa hai bảng.
Một trường hoặc một nhóm các trường trong một bảng tham chiếu đến KHÓA CHÍNH của một bảng khác được gọi là KHÓA NGOÀI . Bảng có khóa chính chính được gọi là bảng cha, trong khi bảng có khóa ngoại được gọi là bảng con.
Ví dụ: giả sử chúng ta có một bảng cha Xe có khóa Chính là VehId. Chúng ta có thêm hai bảng nữa là Car với khóa chính CarId và Truck với khóa chính TruckId tương ứng. Nếu chúng ta đặt VehId làm khóa ngoại trong cả Ô tô và Xe tải, thì Xe sẽ trở thành bảng cha của nó, do đó tạo ra mối quan hệ cha-con.
Bảng cha Xe {VehId}
bảng con
1. Xe {VehId,CarId}
2. Xe tải {VehId,TruckId}
Có thể chọn vào một bảng SQL mà không cần tạo nó trước không?
Để chọn dữ liệu từ cơ sở dữ liệu, chúng ta sử dụng câu lệnh SELECT. Dữ liệu từ điều này được giữ trong một bảng kết quả được gọi là tập kết quả. Điều này được sử dụng để chọn một phần của bảng hoặc toàn bộ bảng. Khi bạn đang viết mã và đã tạo một bảng bằng lệnh SQL CREATE TABLE, bạn có thể sử dụng lệnh SELECT để xem các bảng bạn đã tạo.
Cú pháp của nó là như thế này:
CHỌN cột_1, cột_2, …
TỪ tên_bảng;
Ví dụ, lệnh sau chọn toàn bộ bảng.
CHỌN * TỪ tên_bảng;
CHỌN VÀO
Dữ liệu từ một bảng được chuyển sang một bảng khác bằng câu lệnh SELECT INTO. Nó có thể sao chép tất cả các cột của một bảng sang một bảng khác. Điều này thường được sử dụng khi bảng mà dữ liệu được sao chép đã tồn tại.
Để chọn tất cả các cột của bảng:
LỰA CHỌN *
VÀO new_table [IN bên ngoàidb]
TỪ old_table
điều kiện WHERE;
Để chỉ chọn một vài cột vào bảng mới:
CHỌN cột_1, cột_2, cột_3, ...
VÀO new_table [IN bên ngoàidb]
TỪ old_table
điều kiện WHERE;
Vì vậy, chúng ta có thể chọn vào một bảng nếu chúng ta chưa tạo nó bằng SQL CREATE TABLE không?
Theo logic, câu trả lời nên là không. Nhưng đây không phải là trường hợp và chúng ta có thể chọn vào một bảng ngay cả khi chúng ta chưa tạo nó. Khi một bảng phải được tạo và dữ liệu từ một bảng cần được chuyển sang bảng mới được tạo, phương pháp này được sử dụng. Các loại dữ liệu giống như các cột đã chọn được sử dụng để tạo bảng mới.
Làm thế nào để bạn tạo một bảng sản phẩm trong SQL?
Một bảng sản phẩm trong SQL có thể được tạo theo nhiều cách khác nhau. Sử dụng câu lệnh SQL CREATE TABLE là một tùy chọn. Thông tin sản phẩm sẽ được chứa trong một bảng mà câu lệnh này sẽ tạo. Lệnh SELECT cũng có thể được sử dụng để xem và lấy dữ liệu từ bảng. Cú pháp cho cả hai điều này đã được đề cập ở trên.
Lệnh INSERT cũng có thể được sử dụng để chèn dữ liệu mới vào bảng. Nhờ câu lệnh INSERT, dữ liệu sẽ được chèn vào bảng tại vị trí được chỉ định. Dữ liệu cũng có thể được lấy ra khỏi bảng bằng cách sử dụng truy vấn SELECT và sau đó được thêm vào một bảng khác bằng cách sử dụng câu lệnh INSERT.
CHÈN VÀO
Chúng ta sử dụng câu lệnh INSERT INTO để thêm các bản ghi mới vào một bảng. Cú pháp của câu lệnh INSERT là:
CHÈN VÀO tên_bảng (cột_1, cột_2, ...)
GIÁ TRỊ (giá trị_1, giá trị_2, ...);
Điều làm cho một bảng sản phẩm khác biệt chỉ là khía cạnh thiết kế giống nhau. Tên, kiểu, loại, năm kiểu và giá niêm yết của sản phẩm đều được lưu trữ trong cơ sở dữ liệu sản phẩm. Mỗi mặt hàng là một phần của thương hiệu được xác định bởi cột id thương hiệu. Do đó, một thương hiệu có thể có một hoặc nhiều sản phẩm. Mỗi sản phẩm là thành viên của một danh mục được xác định theo id danh mục trong bảng.
Những loại dữ liệu nào phù hợp với cơ sở dữ liệu SQL?
Trong khi sử dụng lệnh SQL CREATE TABLE, chúng ta phải đề cập đến kiểu dữ liệu của các cột. Dữ liệu mà một cột có thể bao gồm tùy thuộc vào kiểu dữ liệu này. Các ví dụ bao gồm số nguyên, ký tự, nhị phân, ngày và giờ, v.v. Một bảng cơ sở dữ liệu phải có tên cũng như kiểu dữ liệu cho mỗi cột.
Khi xây dựng một bảng, một lập trình viên SQL phải xác định loại dữ liệu nào sẽ được chứa trong mỗi cột. Kiểu dữ liệu chỉ định cách SQL sẽ giao tiếp với dữ liệu được lưu trữ. Nó giúp xác định loại dữ liệu nào được dự đoán bên trong mỗi cột. Ba loại dữ liệu chính trong MySQL 8.0 là chuỗi, số và ngày giờ.
Kiểu dữ liệu chuỗi
Các kiểu dữ liệu chuỗi nói chung là một tập hợp các ký tự thuộc bảng chữ cái tiếng Anh. Các kiểu dữ liệu chuỗi chính là:
- CHAR(kích thước)
- VARCHAR(kích thước)
- NHỊP NHỊ (kích thước)
- VARBINARY (kích thước)
- TINYBLOB
- TINYTEXT
- Cỡ chữ)
- BLOB (kích thước)
- TRUNG BÌNH
- VỪABLOB
- VĂN BẢN DÀI
- LONGBLOB
- ENUM(val_1, val_2, val_3, ...)
- BỘ(giá trị_1, giá trị_2, giá trị_3, ...)
Ở đây SIZE là viết tắt của kích thước tối đa mà dữ liệu được lưu trữ có thể sử dụng. CHAR là một chuỗi có độ dài cố định, trong khi VARCHAR là một chuỗi có độ dài chuỗi thay đổi. Đây là những kiểu dữ liệu chuỗi được sử dụng nhiều nhất. BLOB là một đối tượng lớn nhị phân.
Kiểu dữ liệu số
Các biến kiểu dữ liệu số được sử dụng để chứa dữ liệu số. Chúng được chia thành hai loại kiểu dữ liệu - Chính xác và Gần đúng. Các kiểu dữ liệu chính xác được sử dụng để giữ giá trị dữ liệu ở dạng chữ. Mặc dù các số thực được chứa trong các kiểu dữ liệu gần đúng, nhưng thông tin không được lưu theo nghĩa đen dưới dạng bản sao của các giá trị thực. Các kiểu dữ liệu số chính là:
- BIT(kích thước)\
- TINYINT(kích thước)
- BOOL
- BOOLESE
- NHỎ (kích thước)
- VỪA (kích thước)
- INT (kích thước)
- SỐ LƯỢNG(kích thước)
- LỚN (kích thước)
- NỔI(kích thước, d)
- NỔI(p)
- NHÂN ĐÔI(kích thước, d)
- CHÍNH XÁC NHÂN ĐÔI (kích thước, d)
- DECIMAL(size, d)
- THÁNG 12(kích thước, d)
Kiểu dữ liệu số được sử dụng phổ biến nhất là INT . Nó được sử dụng để chứa các số không phải là số thập phân, trong khi các biến có kiểu dữ liệu FLOAT được sử dụng để chứa các số thập phân. Trong kiểu dữ liệu BOOL , số không được coi là FALSE và các giá trị khác không được coi là TRUE .
Ngày và giờ
Các kiểu dữ liệu ngày và giờ được sử dụng để giữ dữ liệu ngày. Các kiểu dữ liệu ngày và giờ chính là:
- NGÀY
- NGÀY GIỜ(fsp)
- DẤU THỜI GIAN(fsp)
- THỜI GIAN(fsp)
- NĂM
Các kiểu dữ liệu máy chủ SQL tương tự như các kiểu dữ liệu đã cho ở trên nhưng có sự khác biệt nhỏ về cú pháp.
Các loại biến trong máy chủ SQL là gì?
Hai loại biến tồn tại trong máy chủ MS SQL:
Biến cục bộ
Người dùng khai báo một biến cục bộ. Nó luôn bắt đầu bằng @. Phạm vi của mỗi biến cục bộ bị hạn chế đối với lô hoặc quy trình hiện đang chạy trong một phiên cụ thể. Biến cục bộ Transact-SQL là một loại đối tượng chỉ có thể lưu trữ một loại giá trị dữ liệu cụ thể. Các tập lệnh và lô thường sử dụng các biến:
- như một bộ đếm, để quản lý tốc độ lặp lại của vòng lặp hoặc để theo dõi số lần nó được thực hiện.
- để lưu trữ một giá trị dữ liệu sẽ được đưa vào kiểm tra điều khiển luồng.
- để giữ một giá trị dữ liệu mà giá trị trả về của hàm sẽ trả về.
Biến toàn cục
Hệ thống theo kịp biến toàn cục. Người dùng không thể công khai chúng. @@ là nơi biến toàn cục bắt đầu. Nó giữ dữ liệu về các phiên.
Khai báo một biến
Sẽ hữu ích nếu bạn xác định bất kỳ biến nào trước khi sử dụng nó trong một đợt hoặc quy trình. Biến thay thế vị trí bộ nhớ được khai báo bằng lệnh DECLARE. Một biến chỉ có thể được sử dụng sau khi nó đã được khai báo trong bước quy trình hoặc đợt tiếp theo.
Cú pháp TSQL để khai báo một biến như sau:
KHAI BÁO { @LOCAL_VARIABLE[AS] data_type [ = value ] }
Lập trình viên cũng có thể quyết định giá trị của một biến được xác định bằng cách:
- Trong quá trình khai báo biến với từ khóa DECLARE
- Sử dụng BỘ
- Sử dụng CHỌN
Tại sao các kiểu dữ liệu lại quan trọng trong SQL?
Kiểu dữ liệu là một trong những thành phần thiết yếu của bất kỳ ngôn ngữ viết mã nào, cho dù đó là ngôn ngữ lập trình như C hay ngôn ngữ thao tác dữ liệu như SQL. Trên thực tế, SQL hỗ trợ hơn 30 loại dữ liệu có thể lưu trữ nhiều dạng dữ liệu thực tế khác nhau. Sẽ là tốt nhất nếu bạn nắm chắc các kiểu dữ liệu SQL khác nhau trước khi có thể bắt đầu xử lý dữ liệu.
Các loại thông tin có thể chứa trong các đối tượng cơ sở dữ liệu như bảng được chỉ định bởi các kiểu dữ liệu SQL. Mọi cột trong bảng đều có tên và kiểu dữ liệu, đồng thời mọi bảng đều có cột. Chúng tạo thành xương sống của bất kỳ ngôn ngữ nào, vì bạn không thể thao tác dữ liệu nếu không sử dụng chúng.
Bạn nên biết rằng không phải tất cả các kiểu dữ liệu đều được hệ thống cơ sở dữ liệu hỗ trợ. Do đó, bạn phải kiểm tra trước khi sử dụng bất kỳ loại dữ liệu cụ thể nào. Chẳng hạn, bạn không thể sử dụng DateTime trong Oracle vì nó không cho phép kiểu dữ liệu này.
Tương tự, MySQL không sử dụng Unicode làm kiểu dữ liệu. Bạn có thể sử dụng các kiểu dữ liệu bổ sung mà một số cơ sở dữ liệu nhất định có. Ví dụ: "money" và "smallmoney" trong Microsoft SQL Server có thể được thay thế cho "float" và "real", nhưng những thuật ngữ này dành riêng cho cơ sở dữ liệu và không có trong các hệ thống cơ sở dữ liệu khác. Đôi khi, các kiểu dữ liệu cụ thể được gọi là có nhiều tên khác nhau trong một số cơ sở dữ liệu. Chẳng hạn, Oracle đề cập đến "thập phân" là "số" và "blob" là "thô".
Nhiều bảng có thể có cùng khóa chính không?
Đúng. Trong một số bảng, khóa chính có thể có cùng tên cột. Trong một bảng, tên cột phải khác biệt. Bởi vì nó xác định tính toàn vẹn của các Thực thể, một bảng chỉ có thể chứa một khóa chính. Mỗi bảng có thể chứa khóa chính nhưng không bắt buộc. Không có hai hàng nào có thể chia sẻ cùng một khóa chính, nhờ cột hoặc các cột được chỉ định làm khóa chính. Khóa chính của một bảng có thể được sử dụng để xác định các bản ghi của bảng khác và là một phần của khóa chính của bảng thứ hai.
Làm cách nào để sử dụng "đặt hàng theo" trên khóa chính?
Lệnh ORDER BY có thể được sử dụng để sắp xếp tập kết quả. Điều này có thể theo thứ tự tăng dần hoặc giảm dần. Các bản ghi thường được sắp xếp bằng cách sử dụng từ khóa ORDER BY theo thứ tự tăng dần. Bạn có thể sử dụng từ khóa DESC để sắp xếp các mục theo thứ tự giảm dần.
Cú pháp của thứ tự trông giống như:
CHỌN cột_1, cột_2, ...
TỪ tên_bảng
ĐẶT HÀNG THEO cột_1, cột_2, ... ASC|DESC;
Ví dụ: giả sử có một bảng tên là Người dùng; bạn có thể sắp xếp nó theo thứ tự tăng dần hoặc giảm dần dựa trên thành phố của người dùng.
CHỌN * TỪ Người dùng
ĐẶT HÀNG THEO TP;
Để sắp xếp giống nhau theo thứ tự giảm dần:
CHỌN * TỪ Người dùng
ĐẶT HÀNG BỞI THÀNH PHỐ DESC;
ORDER BY trên khóa chính
Chỉ cần sử dụng ORDER BY như thường lệ trên tên của khóa chính, chẳng hạn như "RollID":
CHỌN * TỪ my_table WHERE col_1 < 5 ĐẶT HÀNG THEO RollID;
Trình tối ưu hóa truy vấn có thể hoặc không thể quyết định sử dụng cấu trúc chỉ mục khóa chính để phân tích việc sắp xếp thay vì thực hiện sắp xếp tích cực trên tập kết quả truy vấn để giải quyết ORDER BY dựa trên cách nó quyết định đánh giá truy vấn.
Phần lớn các truy vấn một bảng không có mệnh đề ORDER BY sẽ trả về kết quả theo thứ tự của khóa Chính vì MySQL InnoDB lưu trữ các bảng theo cách tiếp cận với thứ tự khóa chính gốc. Tuy nhiên, bạn vẫn có thể sử dụng ORDER BY nếu ứng dụng của bạn thực sự yêu cầu thứ tự Khóa chính.
Không phát triển mã
Phương pháp phát triển không có mã là một trong những yếu tố chính thúc đẩy quá trình dân chủ hóa mã hóa. Ngày nay, nhiều cá nhân có quyền truy cập vào máy tính về nguyên tắc mà không cần biết bất kỳ mã hóa nào. Nó tạo điều kiện cho việc xây dựng các trang web đáp ứng cũng như các ứng dụng di động.
AppMaster có thể giúp bạn tạo mã nguồn tự động. Mã luôn có sẵn để bạn xem và kiểm tra. Bạn có lựa chọn sửa đổi chi tiết dự án bằng ngôn ngữ lập trình với AppMaster. Chúng tôi cũng cung cấp cho người dùng tùy chọn xuất mã. Đây là lời hứa rằng phần mềm bạn đang phát triển với AppMaster hoàn toàn nằm trong quyền kiểm soát và quyền sở hữu của bạn.
Sự kết luận
SQL có một số ứng dụng làm cho nó rất hấp dẫn. Tạo các tập lệnh tích hợp dữ liệu, thiết kế và thực hiện các truy vấn phân tích cũng như truy cập các tập hợp con dữ liệu từ cơ sở dữ liệu để hiểu rõ hơn và xử lý giao dịch là một số mục đích nổi bật nhất của nó. Nó cũng có thể được sử dụng để chèn, sửa đổi và xóa các hàng và cột dữ liệu trong cơ sở dữ liệu.
Trước khi tìm hiểu sâu về SQL, chúng ta cần làm quen với các lệnh và cú pháp cơ bản của nó. Qua bài viết trên, chúng ta có thể biết thêm về các câu lệnh cơ bản được sử dụng trong SQL, như CREATE TABLE, INSERT INTO, SELECT, v.v.