目次
データの挿入(挿入)
単一行の挿入
INSERT INTO students (name, age, grade) VALUES ('Alice', 25, 'A');
バッチ挿入
INSERT INTO students (name, age, grade)
VALUES
('Bob', 30, 'B'),
('Charlie', 22, 'C'),
('David', 28, 'A');
クエリデータ(選択)
基本的なクエリ
基本的なクエリでは、SELECT
テーブルからデータを取得できるステートメントを使用します。
SELECT * FROM students;
上の * はすべての列をクエリすることを表します。特定の列をクエリする場合は、次のように実行します。
たとえば、stuId、stuName をクエリしたいとします。
SELECT stuId,stuName FROM students;
エイリアス
クエリ結果内の列の別名を指定します。これは、その別名が返された結果セット内の列の名前として使用されることを意味します。
SELECT id, name, chinese + math + english 总分 FROM exam_result;
重複を削除: DISTINCT
データ列の重複を排除するには、DISTINCT キーワードを使用します。
-- 98 分重复了
SELECT math FROM exam_result;
+--------+
| math |
+--------+
| 98 |
| 78 |
| 98 |
| 84 |
| 85 |
| 73 |
| 65 |
+--------+
重複排除後の結果:
-- 去重结果
SELECT DISTINCT math FROM exam_result;
+--------+
| math |
+--------+
| 98 |
| 78 |
| 84 |
| 85 |
| 73 |
| 65 |
+--------+
条件付きクエリ
条件付きクエリでは、WHERE
句を使用してデータをフィルタリングします。
SELECT * FROM students WHERE grade = 'A';
並べ替え順: 並べ替え順
1. ORDER BY 句のないクエリの場合、返される順序は定義されていないため、この順序に依存しないでください。
2. NULL データは、どの値よりも小さいものとしてソートされ、昇順が上に表示され、降順が下に表示されます。
-- 查询同学姓名和 qq_mail,按 qq_mail 排序显示
SELECT name, qq_mail FROM student ORDER BY qq_mail;
SELECT name, qq_mail FROM student ORDER BY qq_mail DESC;
式とエイリアスを使用して並べ替えます。
-- 查询同学及总分,由高到低
SELECT name, chinese + english + math FROM exam_result
ORDER BY chinese + english + math DESC;
SELECT name, chinese + english + math total FROM exam_result
ORDER BY total DESC;
複数のフィールドを並べ替えることもでき、並べ替えの優先順位は書き込み順序によって異なります。
-- 查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示
SELECT name, math, english, chinese FROM exam_result
ORDER BY math DESC, english, chinese;
ページネーションクエリ: LIMIT
ID によるページング、ページごとに 3 レコード、それぞれページ 1、2、および 3 を表示します。
-- 第 1 页
SELECT id, name, math, english, chinese FROM exam_result ORDER BY id LIMIT 3
OFFSET 0;
-- 第 2 页
SELECT id, name, math, english, chinese FROM exam_result ORDER BY id LIMIT 3
OFFSET 3;
-- 第 3 页,如果结果不足 3 个,不会有影响
SELECT id, name, math, english, chinese FROM exam_result ORDER BY id LIMIT 3
OFFSET 6;
最初の 3 つのデータの返のみを制限する場合は、次のようにすることができます。
SELECT * FROM students ORDER BY age DESC LIMIT 3;
データ更新(アップデート)
ステートメントを使用してUPDATE
テーブル内のデータを更新します。
UPDATE students SET age = 26 WHERE name = 'Alice';
データを削除する(削除)
ステートメントを使用してDELETE
テーブルからデータを削除します。
DELETE FROM students WHERE name = 'Bob';
テーブル全体を削除します。
-- 删除整张表数据
-- 准备测试表
DROP TABLE IF EXISTS for_delete;
CREATE TABLE for_delete (
id INT,
name VARCHAR(20)
);
-- 插入测试数据
INSERT INTO for_delete (name) VALUES ('A'), ('B'), ('C');
-- 删除整表数据
DELETE FROM for_delete;