追加、削除、確認
目次
新しい
構文:
INSERT [INTO] table_name
[(column [, column] ...)] VALUES (value_list) [, (value_list)] ...
value_list: value, [, value] ...
ケース:
–生徒用フォームを作成する
CREATE TABLE student (
id INT,
sn INT comment '学号',
name VARCHAR(20) comment '姓名',
qq_mail VARCHAR(20) comment 'QQ邮箱'
);
1.1単一行データ+全列挿入
INSERT INTO student VALUES (100, 10000, '唐三藏', NULL);
1.2複数行データ+指定した列の挿入
插入两条记录,value_list 数量必须和指定列数量及顺序一致
INSERT INTO student (id, sn, name) VALUES
(102, 20001, '曹孟德'),
(103, 20002, '孙仲谋');
2.お問い合わせ
構文:
SELECT
[DISTINCT] {* | {column [, column] ...}
[FROM table_name]
[WHERE ...]
[ORDER BY column [ASC | DESC], ...]
LIMIT ...
例:
2.1完全な列クエリ
構文:
select * from 表名(student);
2.2列クエリを指定する
2.3エイリアス
構文:
SELECT column [AS] alias_name [...] FROM table_name
例:
DROP TABLE IF EXISTS exam_result;
CREATE TABLE exam_result (
id INT,
name VARCHAR(20),
chinese DECIMAL(3,1),
math DECIMAL(3,1),
english DECIMAL(3,1)
);
INSERT INTO exam_result (id,name, chinese, math, english) VALUES
-> (1,'唐三藏', 67, 98, 56),
-> (2,'孙悟空', 87.5, 78, 77),
-> (3,'猪悟能', 88, 98.5, 90),
-> (4,'曹孟德', 82, 84, 67),
-> (5,'刘玄德', 55.5, 85, 45),
-> (6,'孙权', 70, 73, 78.5),
-> (7,'宋公明', 75, 65, 30);
結果セットでは、テーブルヘッダーの列名=エイリアス
select id,name,chinese + math +english from exam_result;
2.4重複排除:DISTINCT
例:
SELECT math FROM exam_result;
重複排除:
select distinct math from exam_result;
2.5並べ替え:ORDER BY
構文:
-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC
SELECT ... FROM table_name [WHERE ...]
ORDER BY column [ASC|DESC], [...];
- ORDER BY句のないクエリの場合、返される順序は定義されていません。この順序に依存しないでください
- NULLデータの並べ替えは、どの値よりも小さいと見なされ、昇順が上部に表示され、降順が下部に表示されます
查询ID和姓名,按ID进行排序
select id,name from student order by id;
2.6条件付きクエリ:WHERE
比較演算子
注:
- WHERE条件では式を使用できますが、エイリアスは使用できません。
- ANDの優先度はORの優先度よりも高くなります。同時に使用する場合は、括弧()を使用して優先度実行の一部をラップする必要があります。
ケース:
基本クエリ:
-- 查询英语不及格的同学及英语成绩 ( < 60 )
SELECT name, english FROM exam_result WHERE english < 60;
–言語スコアが英語よりも優れている学生に問い合わせる
SELECT name, chinese, english FROM exam_result WHERE chinese > english;
–合計スコアが200未満の生徒にクエリを実行する
SELECT name, chinese + math + english 总分 FROM exam_result
WHERE chinese + math + english < 200
ANDおよびOR:
–中国語のスコアが80ポイントを超え、英語のスコアが80ポイントを超える生徒にクエリを実行します
SELECT * FROM exam_result WHERE chinese > 80 and english > 80;
範囲クエリ:
1.BETWEEN ... AND ...
select * from exam_result where chinese between 60 and 90;
なお、小規模から大規模な缶の範囲でのみ
2.IN
-- 查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
SELECT name, math FROM exam_result WHERE math IN (58, 59, 98, 99);
シミュレーションクエリ:LIKE
select id,name from exam_result where name like '孙%';
– _は、任意の1文字と正確に一致します。
select id,name from exam_result where name like '孙_';
3.変更(更新)
構文:
UPDATE table_name SET column = expr [, column = expr ...]
[WHERE ...] [ORDER BY ...] [LIMIT ...]
ケース:
– Sun Wukongの数学スコアを80ポイントに変更します
UPDATE exam_result SET math = 80 WHERE name = '孙悟空';
– Cao Mengdeの数学のスコアを60ポイントに、中国のスコアを70ポイントに変更
UPDATE exam_result SET math = 60, chinese = 70 WHERE name = '曹孟德';
4.削除
構文:
DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
– Zhu Wunengのテストスコアを削除する
delete from exam_result where name = '猪悟能';