Hướng dẫn how to query in mysql - cách truy vấn trong mysql

Dưới đây là các ví dụ về cách giải quyết một số vấn đề phổ biến với MySQL.

Một số ví dụ sử dụng bảng

SELECT * FROM shop ORDER BY article;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|       1 | A      |  3.45 |
|       1 | B      |  3.99 |
|       2 | A      | 10.99 |
|       3 | B      |  1.45 |
|       3 | C      |  1.69 |
|       3 | D      |  1.25 |
|       4 | D      | 19.95 |
+---------+--------+-------+
9 để giữ giá của mỗi bài viết (số mặt hàng) cho một số nhà giao dịch (đại lý) nhất định. Giả sử rằng mỗi nhà giao dịch có một mức giá cố định duy nhất cho mỗi bài viết, sau đó (
SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}
0,
SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}
1) là chìa khóa chính cho các hồ sơ.

Bắt đầu công cụ dòng lệnh MySQL và chọn cơ sở dữ liệu:mysql and select a database:

$> mysql your-database-name

Để tạo và điền vào bảng ví dụ, hãy sử dụng các câu sau:

CREATE TABLE shop (
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR(20)      DEFAULT ''     NOT NULL,
    price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
    PRIMARY KEY(article, dealer));
INSERT INTO shop VALUES
    (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
    (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);

Sau khi đưa ra các câu lệnh, bảng nên có nội dung sau:

SELECT * FROM shop ORDER BY article;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|       1 | A      |  3.45 |
|       1 | B      |  3.99 |
|       2 | A      | 10.99 |
|       3 | B      |  1.45 |
|       3 | C      |  1.69 |
|       3 | D      |  1.25 |
|       4 | D      | 19.95 |
+---------+--------+-------+

8.1.1 & NBSP; Tab truy vấn SQL

Tab thứ cấp truy vấn SQL mở theo mặc định khi bạn tạo kết nối với máy chủ từ màn hình chính. Nó bao gồm một khu vực trình soạn thảo truy vấn và một thanh công cụ. Bạn có thể nhập các câu lệnh SQL trực tiếp vào khu vực Trình soạn thảo truy vấn. Các câu lệnh được nhập có thể được lưu vào một tệp hoặc đoạn trích để sử dụng sau. Tại bất kỳ điểm nào, bạn cũng có thể thực hiện các câu lệnh bạn đã nhập.

Để lưu đoạn mã được nhập vào trình soạn thảo truy vấn, nhấp vào Lưu SQL vào Snippets Danh sách () từ thanh công cụ truy vấn SQL, nhập tên (tùy chọn) và nhấp vào OK. Hình sau đây cho thấy các yếu tố chính của tab truy vấn.Save SQL to Snippets List (

Hướng dẫn how to query in mysql - cách truy vấn trong mysql
) from the SQL query toolbar, enter a name (optional), and click OK. The following figure shows the main elements of a query tab.

Hình & NBSP; 8.2 & NBSP; SQL Editor - Tab truy vấn SQL

Hướng dẫn how to query in mysql - cách truy vấn trong mysql

Thực hiện truy vấn

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}
2 sẽ hiển thị tập kết quả được liên kết trong bảng xem SQL, ngay bên dưới bảng truy vấn SQL. Các ô này có thể chỉnh sửa nếu MySQL Workbench có thể xác định làm thế nào, ví dụ như chúng có thể chỉnh sửa nếu một khóa chính hoặc duy nhất tồn tại trong tập kết quả. Nếu không, MySQL Workbench sẽ hiển thị biểu tượng "chỉ đọc" ở góc dưới bên phải của bảng xem SQL và di chuột con trỏ chuột qua biểu tượng này sẽ cung cấp một gợi ý về lý do tại sao nó không thể chỉnh sửa.

Ghi chú

Để nhanh chóng nhập tên của một bảng, xem hoặc cột, bấm đúp vào mục trong bảng lược đồ. Tên mục sẽ được chèn vào bảng truy vấn SQL.

Trình chỉnh sửa SQL có một số bảng và tab có thể định cấu hình, như được hiển thị trong hình trước.


13.2.10 & NBSP; Chọn câu lệnh

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}
2 được sử dụng để truy xuất các hàng được chọn từ một hoặc nhiều bảng và có thể bao gồm các hoạt động và các nghiên cứu phụ. Bắt đầu với các hoạt động MySQL 8.0.31,
SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}
5 và
SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}
6 cũng được hỗ trợ. Các toán tử
SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}
4,
SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}
5 và
SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}
6 được mô tả chi tiết hơn sau này trong phần này. Xem thêm Phần & NBSP; 13.2.11, Sub Subqueries.

Một câu lệnh

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}
2 có thể bắt đầu với mệnh đề
mysql> SELECT 1 + 1;
        -> 2
1 để xác định các biểu thức bảng phổ biến có thể truy cập trong
SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}
2. Xem phần & nbsp; 13.2.15, với (biểu thức bảng phổ biến).

Các mệnh đề được sử dụng phổ biến nhất của các câu lệnh

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}
2 là sau:

  • Mỗi

    mysql> SELECT 1 + 1;
            -> 2
    4 chỉ ra một cột mà bạn muốn truy xuất. Phải có ít nhất một
    mysql> SELECT 1 + 1;
            -> 2
    4.

  • mysql> SELECT 1 + 1;
            -> 2
    6 chỉ ra bảng hoặc bảng để lấy lại hàng. Cú pháp của nó được mô tả trong Phần & NBSP; 13.2.10.2, Điều khoản tham gia.

  • SELECT
        [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
        select_expr [, select_expr] ...
        [into_option]
        [FROM table_references
          [PARTITION partition_list]]
        [WHERE where_condition]
        [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
        [HAVING where_condition]
        [WINDOW window_name AS (window_spec)
            [, window_name AS (window_spec)] ...]
        [ORDER BY {col_name | expr | position}
          [ASC | DESC], ... [WITH ROLLUP]]
        [LIMIT {[offset,] row_count | row_count OFFSET offset}]
        [into_option]
        [FOR {UPDATE | SHARE}
            [OF tbl_name [, tbl_name] ...]
            [NOWAIT | SKIP LOCKED]
          | LOCK IN SHARE MODE]
        [into_option]
    
    into_option: {
        INTO OUTFILE 'file_name'
            [CHARACTER SET charset_name]
            export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name] ...
    }
    2 Hỗ trợ lựa chọn phân vùng rõ ràng bằng mệnh đề
    mysql> SELECT 1 + 1;
            -> 2
    8 với danh sách các phân vùng hoặc phân vùng (hoặc cả hai) theo tên của bảng trong
    mysql> SELECT 1 + 1;
            -> 2
    9 (xem Phần & NBSP; 13.2.10.2, Điều khoản tham gia. Trong trường hợp này, các hàng chỉ được chọn từ các phân vùng được liệt kê và bất kỳ phân vùng nào khác của bảng đều bị bỏ qua. Để biết thêm thông tin và ví dụ, xem Phần & NBSP; 24.5, Lựa chọn phân vùng.

  • Điều khoản

    mysql> SELECT 1 + 1 FROM DUAL;
            -> 2
    0, nếu được đưa ra, chỉ ra các điều kiện hoặc điều kiện các hàng phải thỏa mãn để được chọn.
    mysql> SELECT 1 + 1 FROM DUAL;
            -> 2
    1 là một biểu thức đánh giá đúng cho mỗi hàng được chọn. Tuyên bố chọn tất cả các hàng nếu không có mệnh đề
    mysql> SELECT 1 + 1 FROM DUAL;
            -> 2
    0.

    Trong biểu thức

    mysql> SELECT 1 + 1 FROM DUAL;
            -> 2
    0, bạn có thể sử dụng bất kỳ chức năng và toán tử nào mà MySQL hỗ trợ, ngoại trừ các hàm tổng hợp (nhóm). Xem Phần & NBSP; 9.5, Biểu thức, và Chương & NBSP; 12, các chức năng và toán tử.

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}
2 cũng có thể được sử dụng để truy xuất các hàng được tính toán mà không cần tham chiếu đến bất kỳ bảng nào.

Ví dụ:

mysql> SELECT 1 + 1;
        -> 2

Bạn được phép chỉ định

mysql> SELECT 1 + 1 FROM DUAL;
        -> 2
5 dưới dạng tên bảng giả trong các tình huống không có bảng nào được tham chiếu:

mysql> SELECT 1 + 1 FROM DUAL;
        -> 2

mysql> SELECT 1 + 1 FROM DUAL;
        -> 2
5 hoàn toàn là để thuận tiện cho những người yêu cầu tất cả các tuyên bố
SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}
2 nên có
mysql> SELECT 1 + 1 FROM DUAL;
        -> 2
8 và có thể các điều khoản khác. MySQL có thể bỏ qua các điều khoản. MySQL không yêu cầu
mysql> SELECT 1 + 1 FROM DUAL;
        -> 2
9 nếu không có bảng nào được tham chiếu.

Nói chung, các mệnh đề được sử dụng phải được đưa ra theo chính xác thứ tự được hiển thị trong mô tả cú pháp. Ví dụ, mệnh đề

SELECT * FROM t1 INNER JOIN t2 ...
0 phải đến sau bất kỳ mệnh đề
SELECT * FROM t1 INNER JOIN t2 ...
1 nào và trước bất kỳ mệnh đề
SELECT * FROM t1 INNER JOIN t2 ...
2 nào. Điều khoản
SELECT * FROM t1 INNER JOIN t2 ...
3, nếu có, có thể xuất hiện ở bất kỳ vị trí nào được chỉ định bởi mô tả cú pháp, nhưng trong một câu lệnh nhất định chỉ có thể xuất hiện một lần, không phải ở nhiều vị trí. Để biết thêm thông tin về
SELECT * FROM t1 INNER JOIN t2 ...
3, xem Phần & NBSP; 13.2.10.1, Chọn Chọn ... vào câu lệnh.

Danh sách các điều khoản

mysql> SELECT 1 + 1;
        -> 2
4 bao gồm danh sách chọn cho biết cột nào cần truy xuất. Điều khoản chỉ định một cột hoặc biểu thức hoặc có thể sử dụng ____ ____ 66-Shorthand:

  • Một danh sách chọn chỉ có thể sử dụng một danh sách không đủ tiêu chuẩn

    SELECT * FROM t1 INNER JOIN t2 ...
    6 để chọn tất cả các cột từ tất cả các bảng:

    SELECT * FROM t1 INNER JOIN t2 ...
  • ________ 68.* Có thể được sử dụng làm tốc ký đủ điều kiện để chọn tất cả các cột từ bảng được đặt tên:

    SELECT t1.*, t2.* FROM t1 INNER JOIN t2 ...
  • Nếu một bảng có các cột vô hình,

    SELECT * FROM t1 INNER JOIN t2 ...
    6 và ________ 68.* Không bao gồm chúng. Để được bao gồm, các cột vô hình phải được tham chiếu rõ ràng.

  • Việc sử dụng

    SELECT * FROM t1 INNER JOIN t2 ...
    6 không đủ tiêu chuẩn với các mục khác trong danh sách chọn có thể tạo ra lỗi phân tích cú pháp. Ví dụ:

    SELECT id, * FROM t1

    Để tránh vấn đề này, hãy sử dụng ________ 68.* Tài liệu tham khảo đủ điều kiện:

    SELECT id, t1.* FROM t1

    Sử dụng đủ điều kiện ________ 68.* Tài liệu tham khảo cho mỗi bảng trong danh sách chọn:

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    0

Danh sách sau đây cung cấp thông tin bổ sung về các điều khoản

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}
2 khác:

  • Một

    mysql> SELECT 1 + 1;
            -> 2
    4 có thể được cung cấp một bí danh bằng cách sử dụng
    SELECT t1.*, t2.* FROM t1 INNER JOIN t2 ...
    6. Bí danh được sử dụng làm tên cột của biểu thức và có thể được sử dụng trong các mệnh đề
    SELECT * FROM t1 INNER JOIN t2 ...
    1,
    SELECT t1.*, t2.* FROM t1 INNER JOIN t2 ...
    8 hoặc
    SELECT * FROM t1 INNER JOIN t2 ...
    0. Ví dụ:

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    1

    Từ khóa

    SELECT id, * FROM t1
    0 là tùy chọn khi răng cưa
    mysql> SELECT 1 + 1;
            -> 2
    4 với một định danh. Ví dụ trước có thể đã được viết như thế này:

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    2

    Tuy nhiên, vì

    SELECT id, * FROM t1
    0 là tùy chọn, một vấn đề tinh tế có thể xảy ra nếu bạn quên dấu phẩy giữa hai biểu thức
    mysql> SELECT 1 + 1;
            -> 2
    4: MySQL diễn giải cái thứ hai là tên bí danh. Ví dụ: trong tuyên bố sau,
    SELECT id, * FROM t1
    4 được coi là một tên bí danh:

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    3

    Vì lý do này, đó là cách thực hành tốt để có thói quen sử dụng

    SELECT id, * FROM t1
    0 một cách rõ ràng khi chỉ định các bí danh cột.

    Không được phép tham khảo bí danh cột trong mệnh đề

    mysql> SELECT 1 + 1 FROM DUAL;
            -> 2
    0, vì giá trị cột có thể chưa được xác định khi mệnh đề
    mysql> SELECT 1 + 1 FROM DUAL;
            -> 2
    0 được thực thi. Xem phần & nbsp; B.3.4.4, Các vấn đề về các bí danh cột.

  • Điều khoản từ

    mysql> SELECT 1 + 1;
            -> 2
    6 chỉ ra bảng hoặc bảng để lấy lại hàng. Nếu bạn đặt tên nhiều hơn một bảng, bạn đang thực hiện tham gia. Để biết thông tin về Cú pháp tham gia, xem Phần & NBSP; 13.2.10.2, Lệnh tham gia. Đối với mỗi bảng được chỉ định, bạn có thể chỉ định một bí danh.FROM
    mysql> SELECT 1 + 1;
            -> 2
    6
    clause indicates the table or tables from which to retrieve rows. If you name more than one table, you are performing a join. For information on join syntax, see Section 13.2.10.2, “JOIN Clause”. For each table specified, you can optionally specify an alias.

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    4

    Việc sử dụng các gợi ý chỉ mục cung cấp cho trình tối ưu hóa thông tin về cách chọn các chỉ mục trong quá trình xử lý truy vấn. Để biết mô tả về cú pháp để chỉ định các gợi ý này, xem Phần & NBSP; 8.9.4, Gợi ý chỉ số.

    Bạn có thể sử dụng

    SELECT id, * FROM t1
    9 như một cách khác để buộc MySQL thích quét chính thay vì quét bảng. Xem Phần & NBSP; 5.1.8, Biến hệ thống máy chủ của Cameron.

  • Bạn có thể tham khảo một bảng trong cơ sở dữ liệu mặc định là

    SELECT id, t1.* FROM t1
    0 hoặc dưới dạng ________ 91 .________ 90 để chỉ định cơ sở dữ liệu một cách rõ ràng. Bạn có thể tham khảo một cột là
    SELECT id, t1.* FROM t1
    3, ________ 90 .________ 93 hoặc ________ 91 .________ 90 .________ 93. Bạn không cần chỉ định một tiền tố
    SELECT id, t1.* FROM t1
    0 hoặc ____ 91 .____ ____ 90 cho một tham chiếu cột trừ khi tham chiếu sẽ không rõ ràng. Xem Phần & NBSP; 9.2.2, Vòng loại định danh của Hồi giáo, để biết các ví dụ về sự mơ hồ yêu cầu các biểu mẫu tham chiếu cột rõ ràng hơn.

  • Một tham chiếu bảng có thể được đặt bí danh bằng cách sử dụng

    SELECT * FROM t1 INNER JOIN t2 ...
    8 là
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    03 hoặc
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    04. Những tuyên bố này tương đương:

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    5
  • Các cột được chọn cho đầu ra có thể được đề cập trong các mệnh đề

    SELECT t1.*, t2.* FROM t1 INNER JOIN t2 ...
    8 và
    SELECT * FROM t1 INNER JOIN t2 ...
    1 bằng tên cột, bí danh cột hoặc vị trí cột. Vị trí cột là số nguyên và bắt đầu với 1:

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    6

    Để sắp xếp theo thứ tự ngược lại, hãy thêm từ khóa

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    07 (giảm dần) vào tên của cột trong mệnh đề
    SELECT t1.*, t2.* FROM t1 INNER JOIN t2 ...
    8 mà bạn đang sắp xếp. Mặc định là thứ tự tăng dần; Điều này có thể được chỉ định rõ ràng bằng cách sử dụng từ khóa
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    09.

    Nếu

    SELECT t1.*, t2.* FROM t1 INNER JOIN t2 ...
    8 xảy ra trong biểu thức truy vấn được đặt dấu ngoặc đơn và cũng được áp dụng trong truy vấn bên ngoài, kết quả không được xác định và có thể thay đổi trong phiên bản tương lai của MySQL.

    Việc sử dụng các vị trí cột được không dùng nữa vì cú pháp đã bị xóa khỏi tiêu chuẩn SQL.

  • Trước MySQL 8.0.13, MySQL đã hỗ trợ tiện ích mở rộng cú pháp không tiêu chuẩn cho phép các nhà thiết kế rõ ràng

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    09 hoặc
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    07 cho các cột
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    13. MySQL 8.0.12 và sau đó hỗ trợ
    SELECT t1.*, t2.* FROM t1 INNER JOIN t2 ...
    8 với các chức năng nhóm để việc sử dụng tiện ích mở rộng này không còn cần thiết nữa. .

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    7

    Kể từ MySQL 8.0.13, tiện ích mở rộng

    SELECT * FROM t1 INNER JOIN t2 ...
    1 không còn được hỗ trợ:
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    09 hoặc
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    07 Người chỉ định cho các cột
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    13 không được phép.

  • Khi bạn sử dụng

    SELECT t1.*, t2.* FROM t1 INNER JOIN t2 ...
    8 hoặc
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    13 để sắp xếp một cột theo
    SELECT
        [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
        select_expr [, select_expr] ...
        [into_option]
        [FROM table_references
          [PARTITION partition_list]]
        [WHERE where_condition]
        [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
        [HAVING where_condition]
        [WINDOW window_name AS (window_spec)
            [, window_name AS (window_spec)] ...]
        [ORDER BY {col_name | expr | position}
          [ASC | DESC], ... [WITH ROLLUP]]
        [LIMIT {[offset,] row_count | row_count OFFSET offset}]
        [into_option]
        [FOR {UPDATE | SHARE}
            [OF tbl_name [, tbl_name] ...]
            [NOWAIT | SKIP LOCKED]
          | LOCK IN SHARE MODE]
        [into_option]
    
    into_option: {
        INTO OUTFILE 'file_name'
            [CHARACTER SET charset_name]
            export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name] ...
    }
    2, máy chủ sẽ sắp xếp các giá trị chỉ sử dụng số byte ban đầu được biểu thị bởi biến hệ thống
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    23.

  • MySQL mở rộng việc sử dụng

    SELECT * FROM t1 INNER JOIN t2 ...
    1 để cho phép chọn các trường không được đề cập trong Điều khoản
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    13. Nếu bạn không nhận được kết quả mà bạn mong đợi từ truy vấn của mình, vui lòng đọc mô tả của
    SELECT * FROM t1 INNER JOIN t2 ...
    1 được tìm thấy trong Phần & NBSP; 12.20, các chức năng tổng hợp.

  • SELECT * FROM t1 INNER JOIN t2 ...
    1 cho phép một công cụ sửa đổi
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    28. Xem Phần & NBSP; 12.20.2, Nhóm của các công cụ sửa đổi.

    Trước đây, nó không được phép sử dụng

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    29 trong một truy vấn có công cụ sửa đổi
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    28. Hạn chế này được dỡ bỏ kể từ MySQL 8.0.12. Xem Phần & NBSP; 12.20.2, Nhóm của các công cụ sửa đổi.

  • Điều khoản

    SELECT * FROM t1 INNER JOIN t2 ...
    0, giống như mệnh đề
    mysql> SELECT 1 + 1 FROM DUAL;
            -> 2
    0, chỉ định các điều kiện lựa chọn. Điều khoản
    mysql> SELECT 1 + 1 FROM DUAL;
            -> 2
    0 chỉ định các điều kiện trên các cột trong danh sách chọn, nhưng không thể tham khảo các chức năng tổng hợp. Điều khoản
    SELECT * FROM t1 INNER JOIN t2 ...
    0 chỉ định các điều kiện trên các nhóm, thường được hình thành bởi mệnh đề
    SELECT * FROM t1 INNER JOIN t2 ...
    1. Kết quả truy vấn chỉ bao gồm các nhóm thỏa mãn các điều kiện
    SELECT * FROM t1 INNER JOIN t2 ...
    0. (Nếu không có
    SELECT * FROM t1 INNER JOIN t2 ...
    1, tất cả các hàng hoàn toàn tạo thành một nhóm tổng hợp duy nhất.)

    Điều khoản

    SELECT * FROM t1 INNER JOIN t2 ...
    0 được áp dụng gần như cuối cùng, ngay trước khi các mục được gửi đến máy khách, không có tối ưu hóa. (
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    39 được áp dụng sau
    SELECT * FROM t1 INNER JOIN t2 ...
    0.)

    Tiêu chuẩn SQL yêu cầu

    SELECT * FROM t1 INNER JOIN t2 ...
    0 chỉ phải tham chiếu các cột trong mệnh đề
    SELECT * FROM t1 INNER JOIN t2 ...
    1 hoặc các cột được sử dụng trong các hàm tổng hợp. Tuy nhiên, MySQL hỗ trợ một phần mở rộng cho hành vi này và cho phép
    SELECT * FROM t1 INNER JOIN t2 ...
    0 tham khảo các cột trong danh sách
    SELECT
        [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
        select_expr [, select_expr] ...
        [into_option]
        [FROM table_references
          [PARTITION partition_list]]
        [WHERE where_condition]
        [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
        [HAVING where_condition]
        [WINDOW window_name AS (window_spec)
            [, window_name AS (window_spec)] ...]
        [ORDER BY {col_name | expr | position}
          [ASC | DESC], ... [WITH ROLLUP]]
        [LIMIT {[offset,] row_count | row_count OFFSET offset}]
        [into_option]
        [FOR {UPDATE | SHARE}
            [OF tbl_name [, tbl_name] ...]
            [NOWAIT | SKIP LOCKED]
          | LOCK IN SHARE MODE]
        [into_option]
    
    into_option: {
        INTO OUTFILE 'file_name'
            [CHARACTER SET charset_name]
            export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name] ...
    }
    2 và các cột ở các nhóm phụ bên ngoài.

    Nếu mệnh đề

    SELECT * FROM t1 INNER JOIN t2 ...
    0 đề cập đến một cột mơ hồ, một cảnh báo xảy ra. Trong tuyên bố sau,
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    46 không rõ ràng vì nó được sử dụng như cả bí danh và tên cột:

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    8

    Ưu tiên được đưa ra cho hành vi SQL tiêu chuẩn, vì vậy nếu tên cột

    SELECT * FROM t1 INNER JOIN t2 ...
    0 được sử dụng cả trong
    SELECT * FROM t1 INNER JOIN t2 ...
    1 và làm cột bí danh trong danh sách cột Chọn, ưu tiên được đưa ra cho cột trong cột
    SELECT * FROM t1 INNER JOIN t2 ...
    1.

  • Không sử dụng

    SELECT * FROM t1 INNER JOIN t2 ...
    0 cho các mục nên nằm trong mệnh đề
    mysql> SELECT 1 + 1 FROM DUAL;
            -> 2
    0. Ví dụ: không viết như sau:

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    9

    Viết cái này thay thế:

    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    0
  • Điều khoản

    SELECT * FROM t1 INNER JOIN t2 ...
    0 có thể đề cập đến các chức năng tổng hợp, mà mệnh đề
    mysql> SELECT 1 + 1 FROM DUAL;
            -> 2
    0 không thể:

    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    1

    (Điều này không hoạt động trong một số phiên bản cũ của MySQL.)

  • MySQL cho phép tên cột trùng lặp. Đó là, có thể có nhiều hơn một

    mysql> SELECT 1 + 1;
            -> 2
    4 có cùng tên. Đây là một phần mở rộng cho SQL tiêu chuẩn. Bởi vì MySQL cũng cho phép
    SELECT * FROM t1 INNER JOIN t2 ...
    1 và
    SELECT * FROM t1 INNER JOIN t2 ...
    0 tham khảo các giá trị
    mysql> SELECT 1 + 1;
            -> 2
    4, điều này có thể dẫn đến sự mơ hồ:

    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    2

    Trong tuyên bố đó, cả hai cột đều có tên

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    58. Để đảm bảo rằng cột chính xác được sử dụng để nhóm, sử dụng các tên khác nhau cho mỗi
    mysql> SELECT 1 + 1;
            -> 2
    4.

  • Điều khoản

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    60, nếu có, định nghĩa các cửa sổ có tên có thể được đề cập bởi các chức năng cửa sổ. Để biết chi tiết, xem Phần & NBSP; 12.21.4, có tên Windows Windows.

  • MySQL giải quyết các tham chiếu cột hoặc bí danh không đủ tiêu chuẩn trong các mệnh đề

    SELECT t1.*, t2.* FROM t1 INNER JOIN t2 ...
    8 bằng cách tìm kiếm trong các giá trị
    mysql> SELECT 1 + 1;
            -> 2
    4, sau đó trong các cột của các bảng trong mệnh đề
    mysql> SELECT 1 + 1 FROM DUAL;
            -> 2
    8. Đối với các điều khoản
    SELECT * FROM t1 INNER JOIN t2 ...
    1 hoặc
    SELECT * FROM t1 INNER JOIN t2 ...
    0, nó tìm kiếm mệnh đề
    mysql> SELECT 1 + 1 FROM DUAL;
            -> 2
    8 trước khi tìm kiếm trong các giá trị
    mysql> SELECT 1 + 1;
            -> 2
    4. .

  • Điều khoản

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    39 có thể được sử dụng để hạn chế số lượng hàng được trả về bởi câu lệnh
    SELECT
        [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
        select_expr [, select_expr] ...
        [into_option]
        [FROM table_references
          [PARTITION partition_list]]
        [WHERE where_condition]
        [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
        [HAVING where_condition]
        [WINDOW window_name AS (window_spec)
            [, window_name AS (window_spec)] ...]
        [ORDER BY {col_name | expr | position}
          [ASC | DESC], ... [WITH ROLLUP]]
        [LIMIT {[offset,] row_count | row_count OFFSET offset}]
        [into_option]
        [FOR {UPDATE | SHARE}
            [OF tbl_name [, tbl_name] ...]
            [NOWAIT | SKIP LOCKED]
          | LOCK IN SHARE MODE]
        [into_option]
    
    into_option: {
        INTO OUTFILE 'file_name'
            [CHARACTER SET charset_name]
            export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name] ...
    }
    2.
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    39 có một hoặc hai đối số số, cả hai phải là hằng số nguyên không âm, với các ngoại lệ này:

    • Trong các câu lệnh đã chuẩn bị, các tham số

      CREATE TABLE shop (
          article INT UNSIGNED  DEFAULT '0000' NOT NULL,
          dealer  CHAR(20)      DEFAULT ''     NOT NULL,
          price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
          PRIMARY KEY(article, dealer));
      INSERT INTO shop VALUES
          (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
          (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
      39 có thể được chỉ định bằng cách sử dụng các dấu hiệu giữ chỗ
      CREATE TABLE shop (
          article INT UNSIGNED  DEFAULT '0000' NOT NULL,
          dealer  CHAR(20)      DEFAULT ''     NOT NULL,
          price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
          PRIMARY KEY(article, dealer));
      INSERT INTO shop VALUES
          (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
          (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
      75.

    • Trong các chương trình được lưu trữ, các tham số

      CREATE TABLE shop (
          article INT UNSIGNED  DEFAULT '0000' NOT NULL,
          dealer  CHAR(20)      DEFAULT ''     NOT NULL,
          price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
          PRIMARY KEY(article, dealer));
      INSERT INTO shop VALUES
          (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
          (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
      39 có thể được chỉ định bằng cách sử dụng các tham số thường quy có giá trị nguyên hoặc các biến cục bộ.

    Với hai đối số, đối số đầu tiên chỉ định độ lệch của hàng đầu tiên để quay lại và thứ hai chỉ định số lượng hàng tối đa để trả về. Phần bù của hàng ban đầu là 0 (không phải 1):

    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    3

    Để lấy tất cả các hàng từ một phần bù nhất định cho đến cuối tập kết quả, bạn có thể sử dụng một số số lớn cho tham số thứ hai. Tuyên bố này lấy tất cả các hàng từ hàng thứ 96 đến cuối cùng:

    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    4

    Với một đối số, giá trị chỉ định số lượng hàng để trả về từ đầu tập kết quả:

    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    5

    Nói cách khác,

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    77 tương đương với
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    78.

    Đối với các tuyên bố đã chuẩn bị, bạn có thể sử dụng trình giữ chỗ. Các câu sau đây trả về một hàng từ bảng

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    79:

    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    6

    Các câu sau đây trả lại các hàng thứ hai đến thứ sáu từ bảng

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    79:

    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    7

    Để tương thích với PostgreSQL, MySQL cũng hỗ trợ cú pháp bù

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    81
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    82.

    Nếu

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    39 xảy ra trong biểu thức truy vấn được đặt dấu ngoặc đơn và cũng được áp dụng trong truy vấn bên ngoài, kết quả không được xác định và có thể thay đổi trong phiên bản tương lai của MySQL.

  • Mẫu

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    84 của
    SELECT
        [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
        select_expr [, select_expr] ...
        [into_option]
        [FROM table_references
          [PARTITION partition_list]]
        [WHERE where_condition]
        [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
        [HAVING where_condition]
        [WINDOW window_name AS (window_spec)
            [, window_name AS (window_spec)] ...]
        [ORDER BY {col_name | expr | position}
          [ASC | DESC], ... [WITH ROLLUP]]
        [LIMIT {[offset,] row_count | row_count OFFSET offset}]
        [into_option]
        [FOR {UPDATE | SHARE}
            [OF tbl_name [, tbl_name] ...]
            [NOWAIT | SKIP LOCKED]
          | LOCK IN SHARE MODE]
        [into_option]
    
    into_option: {
        INTO OUTFILE 'file_name'
            [CHARACTER SET charset_name]
            export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name] ...
    }
    2 cho phép kết quả truy vấn được ghi vào tệp hoặc được lưu trữ trong các biến. Để biết thêm thông tin, xem Phần & NBSP; 13.2.10.1, Chọn chọn ... vào câu lệnh.

  • Nếu bạn sử dụng

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    86 với công cụ lưu trữ sử dụng khóa trang hoặc hàng, các hàng được kiểm tra bởi truy vấn được ghi lại cho đến khi kết thúc giao dịch hiện tại.

    Bạn không thể sử dụng

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    86 như một phần của
    SELECT
        [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
        select_expr [, select_expr] ...
        [into_option]
        [FROM table_references
          [PARTITION partition_list]]
        [WHERE where_condition]
        [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
        [HAVING where_condition]
        [WINDOW window_name AS (window_spec)
            [, window_name AS (window_spec)] ...]
        [ORDER BY {col_name | expr | position}
          [ASC | DESC], ... [WITH ROLLUP]]
        [LIMIT {[offset,] row_count | row_count OFFSET offset}]
        [into_option]
        [FOR {UPDATE | SHARE}
            [OF tbl_name [, tbl_name] ...]
            [NOWAIT | SKIP LOCKED]
          | LOCK IN SHARE MODE]
        [into_option]
    
    into_option: {
        INTO OUTFILE 'file_name'
            [CHARACTER SET charset_name]
            export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name] ...
    }
    2 trong một tuyên bố như
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    89 Chọn ... từ
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    90 .... (Nếu bạn cố gắng làm như vậy, câu lệnh bị từ chối với lỗi không thể cập nhật bảng '
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    90' trong khi '
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    92 'đang được tạo.)Can't update table '
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    90' while '
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    92' is being created
    .)

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    93 và
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    94 Đặt các khóa được chia sẻ cho phép các giao dịch khác đọc các hàng được kiểm tra nhưng không cập nhật hoặc xóa chúng.
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    93 và
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    94 là tương đương. Tuy nhiên,
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    97, như
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    86, hỗ trợ các tùy chọn
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    99,
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    00 và của
    SELECT id, t1.* FROM t1
    0.
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    93 là một sự thay thế cho
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    03, nhưng
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    04 vẫn có sẵn để tương thích ngược.OF
    SELECT id, t1.* FROM t1
    0
    options.
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    93 is a replacement for
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    03, but
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    04 remains available for backward compatibility.

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    99 gây ra truy vấn
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    06 hoặc
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    93 để thực thi ngay lập tức, trả lại lỗi nếu không thể có được khóa hàng do khóa được giữ bởi một giao dịch khác.

    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    00 gây ra truy vấn
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    06 hoặc
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    93 để thực thi ngay lập tức, không bao gồm các hàng từ tập kết quả bị khóa bởi một giao dịch khác.

    Các tùy chọn

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    99 và
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    00 không an toàn cho sao chép dựa trên tuyên bố.

    Ghi chú

    Các truy vấn bỏ qua các hàng bị khóa trả về một cái nhìn không nhất quán của dữ liệu. Do đó,

    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    00 không phù hợp với công việc giao dịch nói chung. Tuy nhiên, nó có thể được sử dụng để tránh sự tranh chấp khóa khi nhiều phiên truy cập vào cùng một bảng giống như hàng đợi.

    Của

    SELECT id, t1.* FROM t1
    0 áp dụng các truy vấn
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    86 và
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    97 cho các bảng được đặt tên. Ví dụ:
    applies
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    86 and
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    97 queries to named tables. For example:

    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    8

    Tất cả các bảng được tham chiếu bởi khối truy vấn đều bị khóa khi

    SELECT id, t1.* FROM t1
    0 bị bỏ qua. Do đó, sử dụng mệnh đề khóa mà không có
    SELECT id, t1.* FROM t1
    0 kết hợp với một mệnh đề khóa khác trả về một lỗi. Chỉ định cùng một bảng trong nhiều điều khoản khóa trả về một lỗi. Nếu bí danh được chỉ định là tên bảng trong câu lệnh
    SELECT
        [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
        select_expr [, select_expr] ...
        [into_option]
        [FROM table_references
          [PARTITION partition_list]]
        [WHERE where_condition]
        [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
        [HAVING where_condition]
        [WINDOW window_name AS (window_spec)
            [, window_name AS (window_spec)] ...]
        [ORDER BY {col_name | expr | position}
          [ASC | DESC], ... [WITH ROLLUP]]
        [LIMIT {[offset,] row_count | row_count OFFSET offset}]
        [into_option]
        [FOR {UPDATE | SHARE}
            [OF tbl_name [, tbl_name] ...]
            [NOWAIT | SKIP LOCKED]
          | LOCK IN SHARE MODE]
        [into_option]
    
    into_option: {
        INTO OUTFILE 'file_name'
            [CHARACTER SET charset_name]
            export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name] ...
    }
    2, mệnh đề khóa chỉ có thể sử dụng bí danh. Nếu câu lệnh
    SELECT
        [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
        select_expr [, select_expr] ...
        [into_option]
        [FROM table_references
          [PARTITION partition_list]]
        [WHERE where_condition]
        [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
        [HAVING where_condition]
        [WINDOW window_name AS (window_spec)
            [, window_name AS (window_spec)] ...]
        [ORDER BY {col_name | expr | position}
          [ASC | DESC], ... [WITH ROLLUP]]
        [LIMIT {[offset,] row_count | row_count OFFSET offset}]
        [into_option]
        [FOR {UPDATE | SHARE}
            [OF tbl_name [, tbl_name] ...]
            [NOWAIT | SKIP LOCKED]
          | LOCK IN SHARE MODE]
        [into_option]
    
    into_option: {
        INTO OUTFILE 'file_name'
            [CHARACTER SET charset_name]
            export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name] ...
    }
    2 không chỉ định bí danh một cách rõ ràng, mệnh đề khóa chỉ có thể chỉ định tên bảng thực tế.OF
    SELECT id, t1.* FROM t1
    0
    is omitted. Consequently, using a locking clause without OF
    SELECT id, t1.* FROM t1
    0
    in combination with another locking clause returns an error. Specifying the same table in multiple locking clauses returns an error. If an alias is specified as the table name in the
    SELECT
        [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
        select_expr [, select_expr] ...
        [into_option]
        [FROM table_references
          [PARTITION partition_list]]
        [WHERE where_condition]
        [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
        [HAVING where_condition]
        [WINDOW window_name AS (window_spec)
            [, window_name AS (window_spec)] ...]
        [ORDER BY {col_name | expr | position}
          [ASC | DESC], ... [WITH ROLLUP]]
        [LIMIT {[offset,] row_count | row_count OFFSET offset}]
        [into_option]
        [FOR {UPDATE | SHARE}
            [OF tbl_name [, tbl_name] ...]
            [NOWAIT | SKIP LOCKED]
          | LOCK IN SHARE MODE]
        [into_option]
    
    into_option: {
        INTO OUTFILE 'file_name'
            [CHARACTER SET charset_name]
            export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name] ...
    }
    2 statement, a locking clause may only use the alias. If the
    SELECT
        [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
        select_expr [, select_expr] ...
        [into_option]
        [FROM table_references
          [PARTITION partition_list]]
        [WHERE where_condition]
        [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
        [HAVING where_condition]
        [WINDOW window_name AS (window_spec)
            [, window_name AS (window_spec)] ...]
        [ORDER BY {col_name | expr | position}
          [ASC | DESC], ... [WITH ROLLUP]]
        [LIMIT {[offset,] row_count | row_count OFFSET offset}]
        [into_option]
        [FOR {UPDATE | SHARE}
            [OF tbl_name [, tbl_name] ...]
            [NOWAIT | SKIP LOCKED]
          | LOCK IN SHARE MODE]
        [into_option]
    
    into_option: {
        INTO OUTFILE 'file_name'
            [CHARACTER SET charset_name]
            export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name] ...
    }
    2 statement does not specify an alias explicitly, the locking clause may only specify the actual table name.

    Để biết thêm thông tin về

    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    86 và
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    93, xem Phần & NBSP; 15.7.2.4, Khóa khóa đọc. Để biết thêm thông tin về các tùy chọn
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    99 và
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    24, hãy xem khóa đọc đồng thời với Nowait và Bỏ qua bị khóa.

Theo từ khóa

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}
2, bạn có thể sử dụng một số công cụ sửa đổi ảnh hưởng đến hoạt động của câu lệnh.
SELECT * FROM shop ORDER BY article;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|       1 | A      |  3.45 |
|       1 | B      |  3.99 |
|       2 | A      | 10.99 |
|       3 | B      |  1.45 |
|       3 | C      |  1.69 |
|       3 | D      |  1.25 |
|       4 | D      | 19.95 |
+---------+--------+-------+
26,
SELECT * FROM shop ORDER BY article;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|       1 | A      |  3.45 |
|       1 | B      |  3.99 |
|       2 | A      | 10.99 |
|       3 | B      |  1.45 |
|       3 | C      |  1.69 |
|       3 | D      |  1.25 |
|       4 | D      | 19.95 |
+---------+--------+-------+
27 và các công cụ sửa đổi bắt đầu bằng
SELECT * FROM shop ORDER BY article;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|       1 | A      |  3.45 |
|       1 | B      |  3.99 |
|       2 | A      | 10.99 |
|       3 | B      |  1.45 |
|       3 | C      |  1.69 |
|       3 | D      |  1.25 |
|       4 | D      | 19.95 |
+---------+--------+-------+
28 là các phần mở rộng MySQL cho SQL tiêu chuẩn.

  • Bộ điều chỉnh

    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    29 và
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    30 chỉ định xem các hàng trùng lặp có nên được trả về hay không.
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    29 (mặc định) chỉ định rằng tất cả các hàng phù hợp phải được trả về, bao gồm cả các bản sao.
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    30 Chỉ định loại bỏ các hàng trùng lặp khỏi tập kết quả. Đó là một lỗi để chỉ định cả hai công cụ sửa đổi.
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    33 là một từ đồng nghĩa với
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    30.

    Trong MySQL 8.0.12 trở lên,

    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    30 có thể được sử dụng với một truy vấn cũng sử dụng
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    28. (Lỗi #87450, lỗi #26640100)

  • SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    26 dành ưu tiên cao hơn
    SELECT
        [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
        select_expr [, select_expr] ...
        [into_option]
        [FROM table_references
          [PARTITION partition_list]]
        [WHERE where_condition]
        [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
        [HAVING where_condition]
        [WINDOW window_name AS (window_spec)
            [, window_name AS (window_spec)] ...]
        [ORDER BY {col_name | expr | position}
          [ASC | DESC], ... [WITH ROLLUP]]
        [LIMIT {[offset,] row_count | row_count OFFSET offset}]
        [into_option]
        [FOR {UPDATE | SHARE}
            [OF tbl_name [, tbl_name] ...]
            [NOWAIT | SKIP LOCKED]
          | LOCK IN SHARE MODE]
        [into_option]
    
    into_option: {
        INTO OUTFILE 'file_name'
            [CHARACTER SET charset_name]
            export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name] ...
    }
    2 so với câu lệnh cập nhật bảng. Bạn chỉ nên sử dụng điều này cho các truy vấn rất nhanh và phải được thực hiện cùng một lúc. Truy vấn
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    39 được phát hành trong khi bảng bị khóa để đọc các lần chạy ngay cả khi có câu lệnh cập nhật đang chờ bảng miễn phí. Điều này chỉ ảnh hưởng đến các công cụ lưu trữ chỉ sử dụng khóa cấp bảng (chẳng hạn như
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    40,
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    41 và
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    42).

    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    26 không thể được sử dụng với các câu lệnh
    SELECT
        [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
        select_expr [, select_expr] ...
        [into_option]
        [FROM table_references
          [PARTITION partition_list]]
        [WHERE where_condition]
        [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
        [HAVING where_condition]
        [WINDOW window_name AS (window_spec)
            [, window_name AS (window_spec)] ...]
        [ORDER BY {col_name | expr | position}
          [ASC | DESC], ... [WITH ROLLUP]]
        [LIMIT {[offset,] row_count | row_count OFFSET offset}]
        [into_option]
        [FOR {UPDATE | SHARE}
            [OF tbl_name [, tbl_name] ...]
            [NOWAIT | SKIP LOCKED]
          | LOCK IN SHARE MODE]
        [into_option]
    
    into_option: {
        INTO OUTFILE 'file_name'
            [CHARACTER SET charset_name]
            export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name] ...
    }
    2 là một phần của
    SELECT
        [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
        select_expr [, select_expr] ...
        [into_option]
        [FROM table_references
          [PARTITION partition_list]]
        [WHERE where_condition]
        [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
        [HAVING where_condition]
        [WINDOW window_name AS (window_spec)
            [, window_name AS (window_spec)] ...]
        [ORDER BY {col_name | expr | position}
          [ASC | DESC], ... [WITH ROLLUP]]
        [LIMIT {[offset,] row_count | row_count OFFSET offset}]
        [into_option]
        [FOR {UPDATE | SHARE}
            [OF tbl_name [, tbl_name] ...]
            [NOWAIT | SKIP LOCKED]
          | LOCK IN SHARE MODE]
        [into_option]
    
    into_option: {
        INTO OUTFILE 'file_name'
            [CHARACTER SET charset_name]
            export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name] ...
    }
    4.

  • SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    27 buộc trình tối ưu hóa tham gia các bảng theo thứ tự chúng được liệt kê trong Điều khoản
    mysql> SELECT 1 + 1 FROM DUAL;
            -> 2
    8. Bạn có thể sử dụng điều này để tăng tốc một truy vấn nếu trình tối ưu hóa tham gia các bảng theo thứ tự không tối ưu.
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    27 cũng có thể được sử dụng trong danh sách
    mysql> SELECT 1 + 1;
            -> 2
    6. Xem Phần & NBSP; 13.2.10.2, Lệnh tham gia mệnh đề.

    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    27 không áp dụng cho bất kỳ bảng nào mà trình tối ưu hóa coi là bảng
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    51 hoặc
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    52. Một bảng như vậy tạo ra một hàng duy nhất, được đọc trong giai đoạn tối ưu hóa thực thi truy vấn và các tham chiếu đến các cột của nó được thay thế bằng các giá trị cột thích hợp trước khi tiến hành thực thi truy vấn. Các bảng này xuất hiện đầu tiên trong gói truy vấn được hiển thị bởi
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    53. Xem Phần & NBSP; 8.8.1, Tối ưu hóa các truy vấn với giải thích. Ngoại lệ này có thể không áp dụng cho các bảng
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    51 hoặc
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    52 được sử dụng ở phía được bổ sung ____ 256 của một tham gia bên ngoài (nghĩa là bảng bên phải của
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    57 hoặc bảng bên trái của
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    58.

  • SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    59 hoặc
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    60 có thể được sử dụng với
    SELECT * FROM t1 INNER JOIN t2 ...
    1 hoặc
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    30 để nói với trình tối ưu hóa rằng tập kết quả có nhiều hàng hoặc nhỏ, tương ứng. Đối với
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    59, MySQL trực tiếp sử dụng các bảng tạm thời dựa trên đĩa nếu chúng được tạo và thích sắp xếp để sử dụng bảng tạm thời có khóa trên các phần tử
    SELECT * FROM t1 INNER JOIN t2 ...
    1. Đối với
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    60, MySQL sử dụng các bảng tạm thời trong bộ nhớ để lưu trữ bảng kết quả thay vì sử dụng sắp xếp. Điều này thường không cần thiết.

  • SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    66 buộc kết quả sẽ được đưa vào một bảng tạm thời. Điều này giúp MySQL giải phóng các khóa bàn sớm và giúp trong trường hợp mất nhiều thời gian để gửi kết quả được đặt cho máy khách. Công cụ sửa đổi này chỉ có thể được sử dụng cho các câu lệnh
    SELECT
        [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
        select_expr [, select_expr] ...
        [into_option]
        [FROM table_references
          [PARTITION partition_list]]
        [WHERE where_condition]
        [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
        [HAVING where_condition]
        [WINDOW window_name AS (window_spec)
            [, window_name AS (window_spec)] ...]
        [ORDER BY {col_name | expr | position}
          [ASC | DESC], ... [WITH ROLLUP]]
        [LIMIT {[offset,] row_count | row_count OFFSET offset}]
        [into_option]
        [FOR {UPDATE | SHARE}
            [OF tbl_name [, tbl_name] ...]
            [NOWAIT | SKIP LOCKED]
          | LOCK IN SHARE MODE]
        [into_option]
    
    into_option: {
        INTO OUTFILE 'file_name'
            [CHARACTER SET charset_name]
            export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name] ...
    }
    2 cấp cao nhất, không phải cho các mục tiêu phụ hoặc sau
    SELECT
        [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
        select_expr [, select_expr] ...
        [into_option]
        [FROM table_references
          [PARTITION partition_list]]
        [WHERE where_condition]
        [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
        [HAVING where_condition]
        [WINDOW window_name AS (window_spec)
            [, window_name AS (window_spec)] ...]
        [ORDER BY {col_name | expr | position}
          [ASC | DESC], ... [WITH ROLLUP]]
        [LIMIT {[offset,] row_count | row_count OFFSET offset}]
        [into_option]
        [FOR {UPDATE | SHARE}
            [OF tbl_name [, tbl_name] ...]
            [NOWAIT | SKIP LOCKED]
          | LOCK IN SHARE MODE]
        [into_option]
    
    into_option: {
        INTO OUTFILE 'file_name'
            [CHARACTER SET charset_name]
            export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name] ...
    }
    4.

  • SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    69 bảo MySQL tính toán có bao nhiêu hàng trong tập hợp kết quả, coi thường bất kỳ mệnh đề
    CREATE TABLE shop (
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR(20)      DEFAULT ''     NOT NULL,
        price   DECIMAL(16,2) DEFAULT '0.00' NOT NULL,
        PRIMARY KEY(article, dealer));
    INSERT INTO shop VALUES
        (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
        (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
    39 nào. Số lượng hàng sau đó có thể được lấy bằng
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    71. Xem Phần & NBSP; 12.16, Chức năng thông tin của Google.

    Ghi chú

    Công cụ sửa đổi truy vấn

    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    69 và hàm
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    73 đi kèm được không dùng nữa kể từ MySQL 8.0.17; Hy vọng chúng sẽ bị xóa trong một phiên bản tương lai của MySQL. Xem mô tả
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    73 để biết thông tin về một chiến lược thay thế.

  • Bộ điều chỉnh

    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    75 và
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    76 đã được sử dụng với bộ đệm truy vấn trước MySQL 8.0. Bộ đệm truy vấn đã được xóa trong MySQL 8.0. Công cụ sửa đổi
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    75 cũng đã được xóa.
    SELECT * FROM shop ORDER BY article;
    +---------+--------+-------+
    | article | dealer | price |
    +---------+--------+-------+
    |       1 | A      |  3.45 |
    |       1 | B      |  3.99 |
    |       2 | A      | 10.99 |
    |       3 | B      |  1.45 |
    |       3 | C      |  1.69 |
    |       3 | D      |  1.25 |
    |       4 | D      | 19.95 |
    +---------+--------+-------+
    76 không được chấp nhận và không có tác dụng; Hy vọng nó sẽ được loại bỏ trong một bản phát hành MySQL trong tương lai.

Truy vấn trong MySQL với ví dụ là gì?

Truy vấn MySQL là bất kỳ lệnh nào được sử dụng để truy xuất dữ liệu từ bảng. MySQL có thể được sử dụng để truy vấn dữ liệu, lọc dữ liệu, sắp xếp dữ liệu, tham gia các bảng, nhóm dữ liệu, sửa đổi dữ liệu.any command that used to retrieve the data from a table. MySQL can be used for querying the data, filtering data, sorting data, joining the tables, grouping data, modifying the data.

Làm thế nào để một truy vấn hoạt động trong mysql?

Khi bạn phát hành truy vấn, MySQL sẽ gửi nó đến máy chủ để thực thi và hiển thị kết quả, sau đó in một lời nhắc MySQL> khác để cho biết rằng nó đã sẵn sàng cho một truy vấn khác.MySQL hiển thị đầu ra truy vấn ở dạng bảng (hàng và cột).Hàng đầu tiên chứa nhãn cho các cột.mysql sends it to the server for execution and displays the results, then prints another mysql> prompt to indicate that it is ready for another query. mysql displays query output in tabular form (rows and columns). The first row contains labels for the columns.

Làm thế nào truy vấn dòng lệnh mysql?

Bạn có thể dễ dàng chạy truy vấn MySQL từ dòng lệnh bằng lệnh MySQL cùng với tùy chọn -E.Trong lệnh trên, bạn cần cung cấp tên người dùng, mật khẩu, tên cơ sở dữ liệu để kết nối với cơ sở dữ liệu MySQL.Bạn cần chỉ định truy vấn SQL sẽ được thực thi sau tùy chọn.using the MySQL command along with -e option. In the above command, you need to provide username, password, database name to connect with MySQL database. You need to specify the SQL query to be executed after -e option.

Làm cách nào để bắt đầu truy vấn MySQL?

Mở MySQL Workbench và kết nối với cơ sở dữ liệu và đặt cơ sở dữ liệu mặc định.Sau đó, mở trình chỉnh sửa SQL bằng cách nhấp vào Tệp menu> Tab Truy vấn mới hoặc bằng cách nhấn phím Ctrl+T.Sau đó, trong SQL Editor nhập truy vấn của bạn, ví dụ, chọn * từ khách hàng, sau đó nhấn Ctrl+Enter để chạy truy vấn hiện tại trong MySQL Workbench.select * from customer, then press Ctrl+Enter to run the current query in MySQL Workbench.