Hướng dẫn mã hóa dữ liệu trong sql và mysql năm 2024

Cơ sở dữ liệu SQL được cài đặt với tất cả các lệnh cần thiết để thêm, sửa đổi, xóa và truy vấn dữ liệu. Hướng dẫn dưới dạng danh sách này cung cấp một tài liệu tham khảo nhanh cho một số lệnh phổ biến trong SQL.

Cách sử dụng hướng dẫn này:

  • Hướng dẫn này được định dạng dưới dạng danh sách với các đoạn mã dòng lệnh độc lập.
  • Chuyển đến bất kỳ phần nào liên quan đến nhiệm vụ bạn đang cố gắng hoàn thành.
  • Khi bạn nhìn thấy văn bản được tô sáng trong các lệnh trong hướng dẫn này, thì các văn bản này liên quan đến các cột, bảng và dữ liệu trong databases của bạn.
  • Trong suốt hướng dẫn, các giá trị dữ liệu ví dụ được đặt trong dấu ngoặc đơn (''). Trong SQL, cần thiết phải đặt các giá trị dữ liệu chuỗi trong dấu ngoặc đơn. Điều này không yêu cầu cho dữ liệu số, nhưng nếu bạn bao gồm dấu ngoặc đơn, nó cũng sẽ không gây ra bất kỳ vấn đề gì.

Lưu ý: mặc dù SQL được công nhận là một tiêu chuẩn, hầu hết các chương trình cơ sở dữ liệu SQL có các phần mở rộng độc quyền riêng của họ. Hướng dẫn này sử dụng MySQL làm hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) ví dụ, nhưng các lệnh được đưa ra sẽ hoạt động với các chương trình cơ sở dữ liệu quan hệ khác, bao gồm PostgreSQL, MariaDB và SQLite. Khi có sự khác biệt đáng kể giữa các RDBMS, chúng tôi đã bao gồm các lệnh thay thế.

Mở cửa sổ dòng lệnh cơ sở dữ liệu (sử dụng xác thực Socket/Trust)

Mặc định trên Ubuntu 18.04, người dùng root MySQL có thể xác thực mà không cần mật khẩu bằng cách sử dụng lệnh sau:

sudo mysql

Để mở cửa sổ dòng lệnh PostgreSQL, sử dụng lệnh sau. Ví dụ này sẽ đăng nhập với tài khoản postgres, đó là vai trò superuser mặc định, nhưng bạn có thể thay thế bằng bất kỳ vai trò đã tạo trước nào:

sudo -u postgres psql

Mở cửa sổ dòng lệnh cơ sở dữ liệu (sử dụng xác thực mật khẩu)

Nếu người dùng root MySQL được đặt để xác thực bằng mật khẩu, bạn làm như vậy bằng lệnh sau:

mysql -u root -p

Nếu bạn đã thiết lập một tài khoản người dùng không phải là root cho cơ sở dữ liệu của mình, bạn cũng có thể sử dụng phương pháp này để đăng nhập bằng tài khoản đó:

mysql -u user -p

Lệnh trên sẽ yêu cầu bạn nhập mật khẩu sau khi chạy nó. Nếu bạn muốn cung cấp mật khẩu của mình là một phần của lệnh, ngay sau tùy chọn -p, hãy điền mật khẩu của bạn mà không có khoảng trống giữa chúng:

mysql -u root -p`password`

Tạo cơ sở dữ liệu

Lệnh sau tạo một cơ sở dữ liệu với các thiết lập mặc định.

CREATE DATABASE database_name;

Nếu bạn muốn cơ sở dữ liệu của bạn sử dụng bộ ký tự và phân loại khác với các thiết lập mặc định, bạn có thể chỉ định chúng bằng cú pháp sau:

CREATE DATABASE database_name CHARACTER SET character_set COLLATE collation;

Liệt kê cơ sở dữ liệu

Để xem các cơ sở dữ liệu tồn tại trong cài đặt MySQL hoặc MariaDB của bạn, chạy lệnh sau:

SHOW DATABASES;

Trong PostgreSQL, bạn có thể xem các cơ sở dữ liệu đã được tạo bằng lệnh sau:

Xóa cơ sở dữ liệu

Để xóa một cơ sở dữ liệu, bao gồm bất kỳ bảng và dữ liệu nào trong đó, chạy một lệnh theo cấu trúc sau:

DROP DATABASE IF EXISTS database;

Tạo người dùng

Để tạo một hồ sơ người dùng cho cơ sở dữ liệu mà không chỉ định bất kỳ đặc quyền nào cho nó, chạy lệnh sau:

CREATE USER username IDENTIFIED BY 'password';

PostgreSQL sử dụng cú pháp tương tự, nhưng hơi khác nhau một chút:

sudo -u postgres psql

0

Nếu bạn muốn tạo một người dùng mới và cấp cho họ các đặc quyền trong một lệnh, bạn có thể làm như vậy bằng cách sử dụng câu lệnh

mysql -u root -p`password`

4. Lệnh sau tạo một người dùng mới và cấp cho họ đầy đủ quyền truy cập vào mọi cơ sở dữ liệu và bảng trong RDBMS:

sudo -u postgres psql

1

Lưu ý từ khóa

mysql -u root -p`password`

5 trong câu lệnh

mysql -u root -p`password`

4 trước đây. Trong hầu hết các RDBMS, từ khóa này là tùy chọn, và câu lệnh này có thể được viết tương đương như:

sudo -u postgres psql

2

Tuy nhiên, chú ý từ khóa

mysql -u root -p`password`

5 là bắt buộc khi bật chế độ SQL để cấp quyền.

Xóa người dùng

Sử dụng cú pháp sau để xóa hồ sơ người dùng cơ sở dữ liệu:

sudo -u postgres psql

3

Lưu ý: lệnh này mặc định sẽ không xóa bất kỳ bảng nào được tạo bởi người dùng đã bị xóa, và cố gắng truy cập vào các bảng đó có thể dẫn đến lỗi.

Chọn một cơ sở dữ liệu

Trước khi bạn có thể tạo một bảng, bạn phải thông báo cho RDBMS biết cơ sở dữ liệu mà bạn muốn tạo bảng trong đó. Trong MySQL và MariaDB, làm như vậy bằng cú pháp sau:

sudo -u postgres psql

4

Trong PostgreSQL, bạn phải sử dụng lệnh sau để chọn cơ sở dữ liệu mong muốn:

sudo -u postgres psql

5

Tạo một bảng

Cấu trúc lệnh sau tạo một bảng mới với tên table, và bao gồm hai cột, mỗi cột có kiểu dữ liệu cụ thể của riêng nó:

CREATE TABLE

mysql -u root -p`password`

8 (

mysql -u root -p`password`

9

CREATE DATABASE database_name;

0,

CREATE DATABASE database_name;

1

CREATE DATABASE database_name;

2 );

Xóa một bảng

Để xóa một bảng hoàn toàn, bao gồm tất cả dữ liệu của nó, chạy lệnh sau:

sudo -u postgres psql

6

Chèn dữ liệu vào bảng

Sử dụng cú pháp sau để điền dữ liệu vào một hàng của bảng: Bạn cũng có thể điền dữ liệu vào bảng với nhiều hàng sử dụng một lệnh duy nhất, như sau:

sudo -u postgres psql

7

Xóa dữ liệu từ bảng

Để xóa một hàng dữ liệu từ bảng, sử dụng cấu trúc lệnh sau. Lưu ý rằng giá trị (value) nên là giá trị được chứa trong cột đã chỉ định trong hàng bạn muốn xóa:

sudo -u postgres psql

8

Thay đổi dữ liệu trong bảng

Sử dụng cú pháp sau để cập nhật dữ liệu trong một hàng đã cho. Lưu ý rằng mệnh đề WHERE ở cuối lệnh cho biết SQL nên cập nhật hàng nào. Giá trị (value) là giá trị được chứa trong cột_A tương ứng với hàng bạn muốn thay đổi.

sudo -u postgres psql

9

Chèn một cột

Cú pháp sau sẽ thêm một cột mới vào bảng:

mysql -u root -p

0

Xóa một cột

Một lệnh tuân theo cấu trúc này sẽ xóa một cột từ bảng:

mysql -u root -p

1

Thực hiện truy vấn cơ bản

Để xem tất cả dữ liệu từ một cột duy nhất trong bảng, sử dụng cú pháp sau:

mysql -u root -p

2

Để truy vấn nhiều cột từ cùng một bảng, phân tách tên cột bằng dấu phẩy:

SELECT

CREATE DATABASE database_name;

3,

CREATE DATABASE database_name;

1 FROM

CREATE DATABASE database_name;

5;

Bạn cũng có thể truy vấn tất cả các cột trong một bảng bằng cách thay thế tên cột bằng dấu sao (*). Trong SQL, dấu sao hoạt động như các trình giữ chỗ để đại diện cho "tất cả":

mysql -u root -p

3

Sử dụng mệnh đề WHERE

Bạn có thể hạn chế kết quả của một truy vấn bằng cách thêm mệnh đề

CREATE DATABASE database_name;

6 vào câu lệnh

CREATE DATABASE database_name;

7, như sau:

mysql -u root -p

4

Ví dụ, bạn truy vấn tất cả dữ liệu từ một hàng duy nhất bằng cú pháp như sau. Lưu ý rằng giá trị (

CREATE DATABASE database_name;

  1. nên là một giá trị được chứa trong cả cột đã chỉ định và hàng bạn muốn truy vấn:

mysql -u root -p

5

Làm việc với toán tử so sánh

Một toán tử so sánh trong mệnh đề WHERE xác định cách cột đã chỉ định nên được so sánh với giá trị. Dưới đây là một số toán tử so sánh phổ biến trong SQL:

Toán tử Chức năng

CREATE DATABASE database_name;

9 kiểm tra sự bằng nhau

CREATE DATABASE database_name CHARACTER SET character_set COLLATE collation;

0 kiểm tra sự không bằng nhau

CREATE DATABASE database_name CHARACTER SET character_set COLLATE collation;

1 kiểm tra sự nhỏ hơn

CREATE DATABASE database_name CHARACTER SET character_set COLLATE collation;

2 kiểm tra sự lớn hơn

CREATE DATABASE database_name CHARACTER SET character_set COLLATE collation;

3 kiểm tra sự nhỏ hơn hoặc bằng

CREATE DATABASE database_name CHARACTER SET character_set COLLATE collation;

4 kiểm tra sự lớn hơn hoặc bằng

CREATE DATABASE database_name CHARACTER SET character_set COLLATE collation;

5 kiểm tra xem giá trị có nằm trong khoảng đã cho hay không

CREATE DATABASE database_name CHARACTER SET character_set COLLATE collation;

6 kiểm tra xem giá trị của hàng có nằm trong một tập giá trị đã chỉ định hay không

CREATE DATABASE database_name CHARACTER SET character_set COLLATE collation;

7 kiểm tra xem có tồn tại các hàng dữ liệu thoả mãn điều kiện đã chỉ định hay không

CREATE DATABASE database_name CHARACTER SET character_set COLLATE collation;

8 kiểm tra xem một giá trị có khớp với một chuỗi đã chỉ định hay không

CREATE DATABASE database_name CHARACTER SET character_set COLLATE collation;

9 kiểm tra giá trị NULL

SHOW DATABASES;

0 kiểm tra giá trị khác NULL

Làm việc với Wildcard

SQL cho phép sử dụng ký tự Wildcard. Chúng hữu ích khi bạn muốn tìm một mục cụ thể trong một bảng nhưng không chắc chắn về mục đó là gì.

Dấu sao

SHOW DATABASES;

1 là các giữ chỗ đại diện cho "all", điều này sẽ truy vấn tất cả các cột trong một bảng:

mysql -u root -p

6

Dấu phần trăm (

SHOW DATABASES;

  1. đại diện cho một hoặc nhiều ký tự không biết:

mysql -u root -p

7

Dấu gạch dưới (_) được sử dụng để đại diện cho một ký tự không biết duy nhất:

mysql -u root -p

8

Đếm các mục trong một cột

Hàm

SHOW DATABASES;

3 được sử dụng để tìm số lượng các mục trong một cột đã cho. Cú pháp sau sẽ trả về tổng số giá trị trong cột:

mysql -u root -p

9

Bạn có thể hạn chế kết quả của hàm COUNT bằng cách thêm mệnh đề WHERE, như sau:

mysql -u user -p

0

Tìm giá trị trung bình trong một cột

Hàm AVG được sử dụng để tìm giá trị trung bình (trong trường hợp này, trung bình cộng) của các giá trị trong một cột cụ thể. Lưu ý rằng hàm AVG chỉ hoạt động với các cột chứa giá trị số; khi sử dụng trên một cột chứa giá trị chuỗi, nó có thể trả về lỗi hoặc 0:

mysql -u user -p

1

Tìm tổng các giá trị trong một cột

Hàm

SHOW DATABASES;

4 được sử dụng để tính tổng các giá trị số trong một cột:

mysql -u user -p

2

Tương tự như hàm

SHOW DATABASES;

5, nếu bạn chạy hàm

SHOW DATABASES;

4 trên một cột chứa giá trị chuỗi, nó có thể trả về lỗi hoặc chỉ

SHOW DATABASES;

7, tùy thuộc vào RDBMS của bạn.

Tìm giá trị lớn nhất trong một cột

Để tìm giá trị số lớn nhất trong một cột hoặc giá trị cuối cùng theo thứ tự chữ cái, sử dụng hàm

SHOW DATABASES;

8:

mysql -u user -p

3

Tìm giá trị nhỏ nhất trong một cột

Để tìm giá trị số nhỏ nhất trong một cột hoặc giá trị đầu tiên theo thứ tự chữ cái, sử dụng hàm

SHOW DATABASES;

9:

mysql -u user -p

4

Sắp xếp kết quả với mệnh đề ORDER BY

Mệnh đề

DROP DATABASE IF EXISTS database;

0 được sử dụng để sắp xếp kết quả truy vấn. Cú pháp truy vấn sau trả về giá trị từ

mysql -u root -p`password`

9 và

CREATE DATABASE database_name;

1 và sắp xếp kết quả theo giá trị trong

mysql -u root -p`password`

9 theo thứ tự tăng dần hoặc, với giá trị chuỗi, theo thứ tự bảng chữ cái:

mysql -u user -p

5

Để thực hiện cùng hành động, nhưng sắp xếp kết quả theo thứ tự giảm dần hoặc đảo ngược thứ tự bảng chữ cái, thêm

DROP DATABASE IF EXISTS database;

4 vào truy vấn:

mysql -u user -p

6

Sắp xếp kết quả với mệnh đề GROUP BY

Mệnh đề

DROP DATABASE IF EXISTS database;

5 tương tự như mệnh đề

DROP DATABASE IF EXISTS database;

0, nhưng nó được sử dụng để sắp xếp kết quả của một truy vấn bao gồm một hàm tổng hợp như

DROP DATABASE IF EXISTS database;

7,

SHOW DATABASES;

8,

SHOW DATABASES;

9, hoặc

SHOW DATABASES;

4. Một mình, các hàm tổng hợp được mô tả trong phần trước chỉ trả về một giá trị duy nhất. Tuy nhiên, bạn có thể xem kết quả của một hàm tổng hợp được thực hiện trên tất cả các giá trị khớp trong một cột bằng cách bao gồm mệnh đề

DROP DATABASE IF EXISTS database;

5.

Cú pháp sau sẽ đếm số giá trị khớp trong

CREATE DATABASE database_name;

1 và nhóm chúng theo thứ tự tăng dần hoặc theo thứ tự bảng chữ cái:

mysql -u user -p

7

Để thực hiện cùng hành động, nhưng nhóm kết quả theo thứ tự giảm dần hoặc đảo ngược thứ tự bảng chữ cái, thêm

DROP DATABASE IF EXISTS database;

4 vào truy vấn:

mysql -u user -p

8

Truy vấn nhiều bảng với mệnh đề JOIN

Mệnh đề

CREATE USER username IDENTIFIED BY 'password';

4 được sử dụng để tạo các tập kết quả kết hợp các hàng từ hai hoặc nhiều bảng:

mysql -u user -p

9

Đây là một ví dụ về mệnh đề

CREATE USER username IDENTIFIED BY 'password';

5. INNER JOIN sẽ trả về tất cả các bản ghi có giá trị khớp trong cả hai bảng, nhưng sẽ không hiển thị bất kỳ bản ghi nào không có giá trị khớp.

Có thể trả về tất cả các bản ghi từ một trong hai bảng, bao gồm các giá trị không có sự khớp tương ứng trong bảng khác, bằng cách sử dụng mệnh đề OUTER JOIN. Mệnh đề OUTER JOIN được viết dưới dạng

CREATE USER username IDENTIFIED BY 'password';

6 hoặc

CREATE USER username IDENTIFIED BY 'password';

7.

Mệnh đề

CREATE USER username IDENTIFIED BY 'password';

6 trả về tất cả các bản ghi từ bảng "trái" và chỉ các bản ghi khớp từ bảng "phải". Trong ngữ cảnh của mệnh đề OUTER JOIN, bảng "trái" là bảng được tham chiếu trong mệnh đề

CREATE USER username IDENTIFIED BY 'password';

9, và bảng "phải" là bất kỳ bảng nào được tham chiếu sau câu JOIN. Sau đây là ví dụ sẽ hiển thị tất cả các bản ghi từ

sudo -u postgres psql

00 và chỉ các giá trị khớp từ

sudo -u postgres psql

01. Bất kỳ giá trị nào không có sự khớp trong table_2 sẽ xuất hiện là NULL trong tập kết quả:

mysql -u root -p`password`

0

Mệnh đề RIGHT JOIN hoạt động giống như LEFT JOIN, nhưng nó in tất cả các kết quả từ bảng "phải" và chỉ các giá trị khớp từ bên trái:

mysql -u root -p`password`

1

Kết hợp nhiều câu SELECT với mệnh đề UNION

Toán tử UNION hữu ích để kết hợp kết quả của hai (hoặc nhiều hơn) câu SELECT thành một tập kết quả duy nhất:

mysql -u root -p`password`

2

Ngoài ra, mệnh đề UNION có thể kết hợp hai (hoặc nhiều hơn) câu SELECT truy vấn các bảng khác nhau vào cùng một tập kết quả:

mysql -u root -p`password`

3

Kết luận

Hướng dẫn này đề cập đến một số câu lệnh phổ biến trong SQL được sử dụng để quản lý cơ sở dữ liệu, người dùng và bảng, và truy vấn nội dung trong các bảng đó. Tuy nhiên, có nhiều kết hợp của mệnh đề và toán tử tạo ra các tập kết quả duy nhất.

Mọi người cũng tìm kiếm: rdbms trong sql, tách chuỗi sau dấu phẩy sql, các toán tử trong sql, hàm avg trong sql, các lệnh trong sql, use trong sql, viết các lệnh khởi tạo cơ sở dữ liệu, tạo cơ sở dữ liệu trong sql, lệnh go trong sql.