[MySQL]テーブルの追加、削除、確認、変更

追加、削除、確認

新しい

構文:

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], [...];
  1. ORDER BY句のないクエリの場合、返される順序は定義されていません。この順序に依存しないでください
  2. NULLデータの並べ替えは、どの値よりも小さいと見なされ、昇順が上部に表示され、降順が下部に表示されます
查询ID和姓名,按ID进行排序
select id,name from student order by id;

ここに画像の説明を挿入

2.6条件付きクエリ:WHERE

比較演算子
ここに画像の説明を挿入
注:

  1. WHERE条件では式を使用できますが、エイリアスは使用できません。
  2. 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 = '猪悟能';

ここに画像の説明を挿入

元の記事42件を公開 154のような 訪問者10,000以上

おすすめ

転載: blog.csdn.net/qq_43676757/article/details/105436772