条件を変更して再検索への追加や削除のMySQLのテーブル

ディレクトリ

新データ

クエリデータ 

全コラムお問い合わせ

クエリ列を指定します。

表現のためのクエリフィールド 

エイリアス

重複排除 

シーケンス

基準クエリ:WHERE

ページングクエリ:LIMIT 

修正データ 

データを削除 

主な概要 


テーブルを囲んで、動作を確認するための4つの最も重要な追加および削除が変更されます。CRUDことを表し増加(作成)、クエリ(検索)、アップデート(更新)、削除(DELETE)最初の文字を頭文字の4つのワードを。

新データ

まずは、テーブルを作成してみましょう:

DROP TABLE IF EXISTS student; 
CREATE TABLE student ( id INT,
	              sn INT comment '学号',
		     name VARCHAR(20) comment '姓名',
	            qq_mail VARCHAR(20) comment 'QQ邮箱'
  );

新たにデータの列のための完全な行挿入指定された列の挿入に新しい行のデータ、単一行挿入およびバルクインサート。

もし一行+データに全カラム:列と一致する定義テーブルの数と量必須VALUE_LIST順序

INSERT INTO student VALUES (1, 100, '哪吒', NULL);
INSERT INTO student VALUES (2, 101, '孙悟空', '11111');

+挿入列として指定されたデータの複数行する場合:数値VALUE_LISTは同じ順序で列の数を指定する必要がありますし、

INSERT INTO student (id, sn, name) VALUES 
(3, 200, '胡图图'), 
(4, 201, '懒羊羊');

クエリデータ 

まず、結果テーブルを確立し、データを挿入します。

CREATE DATABASE Example;
USE Example;
CREATE TABLE exam_result ( id INT, name VARCHAR(20), 
							chinese INT,
							math INT,
							english INT 
							);
-- 插入测试数据 
INSERT INTO exam_result (id,name, chinese, math, english) VALUES 
 (1,'A', 67, 98, 56),
 (2,'B', 87, 78, 77),
 (3,'C', 88, 98, 90), 
 (4,'D', 82, 84, 67), 
 (5,'E', 55, 85, 45),
 (6,'F', 70, 73, 78),
 (7,'G', 75, 65, 30);

全コラムお問い合わせ

SELECT * FROM exam_result; 

大規模なクエリの全列のデータ伝送は、*テーブル表示を構築するために、すべてのフィールドを表します。

クエリ列を指定します。

SELECT id, name, english FROM exam_result;

あなたは順序をチェックアウトすると、指定した列の順序で、テーブルに定義された順序で列の順序を指定することはできません。

表現のためのクエリフィールド 

 式には、フィールドが含まれていません 

 SELECT id, name, 10 FROM exam_result;  //每列后面都加一个10
式には、フィールドが含まれています 
 
SELECT id, name, english + 10 FROM exam_result;  //给英语加10分

式には、複数のフィールドが含まれています

SELECT id, name, chinese + math + english FROM exam_result; //查询总分

エイリアス

 SELECT id, name, chinese + math + english AS 总分 FROM exam_result;

ASキーワードのエイリアスを作成し、ASは省略することができます。

重複排除 

使用 DISTINCT 列重みにキーワードデータを、すなわち、繰り返し要素の一つのみがキープ。
 
SELECT DISTINCT math FROM exam_result;

シーケンス

1. BY ORDER 順序が返され、クエリのWHERE句は、未定義されていない、この順序に依存していることはありません

2. NULLのソートデータは、一番下に表示され降順、上部の昇順に表示され、任意の値よりも小さくなると考えられています

3.の表現エイリアスソート

 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;

図4は、書き込み順のソート優先順位で、複数のフィールドで並べ替えることができます 

SELECT name, math, english, chinese FROM exam_result ORDER BY math DESC, english, chinese;

基準クエリ:WHERE

クエリ条件の前に、我々は最初の演算子のいくつかを理解する必要があります。

比較演算子:

論理演算子: 

'=' 等しい、NULL危険を表します。<=>等しい、NULLセキュリティを表し、結果はNULL = NULL NULLでNULLがわから分からないではありません。偽とみなされている静止NULLの参加、のNULLの式の結果。

B!=、<>等しくないを示しています

C。A0とA1とのマッチング範囲を表す[A0、A1]

D。INが(...)のいずれかで表されます

すなわちNULL / NULLは空気かどうかが決定されるではありません

。F LIKEはファジーマッチングを表し、%は、(ゼロ文字を含む)の任意の数を表し、_任意の文字を表します。

グラム。AND OR、NOTとNOR、およびより高い優先度や

条件式を使用してもよい、H。、なく別名

-- 查询英语不及格的同学及英语成绩 ( < 60 ) 
SELECT name, english FROM exam_result WHERE english < 60;

-- 查询语文成绩大于80分,且英语成绩大于80分的同学 
SELECT * FROM exam_result WHERE chinese > 80 and english > 80;

-- 查询语文成绩在 [80, 90] 分的同学及语文成绩
SELECT name, chinese FROM exam_result WHERE chinese BETWEEN 80 AND 90;

-- 查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩 
SELECT name, math FROM exam_result WHERE math IN (58, 59, 98, 99);

-- % 匹配任意多个(包括 0 个)字符 
SELECT name FROM exam_result WHERE name LIKE 'A%';
-- _ 匹配严格的一个任意字符 
SELECT name FROM exam_result WHERE name LIKE 'A_';

-- 查询 qq_mail 已知的同学姓名 
SELECT name, qq_mail FROM student WHERE qq_mail IS NOT NULL;

ページングクエリ:LIMIT 

構文:注意した後は、(ORDER BY)ソートし、クエリ(LIMIT)をページングする必要があります

-- 起始下标为 0 -- 从 0 开始,筛选 n 条结果 
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
-- 从 s 开始,筛选 n 条结果 
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n; 
-- 从 s 开始,筛选 n 条结果,比第二种用法更明确
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;

例:押した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;

修正データ 

-- 将A的数学成绩变更为 80 分 
 UPDATE exam_result SET math = 80 WHERE name = 'A';
 
 -- 将总成绩倒数前三的 3 位同学的数学成绩加上 30 分 
 UPDATE exam_result SET math = math + 30 ORDER BY chinese + math + english LIMIT 3; 
 
 -- 将所有同学的语文成绩更新为原来的 2 倍
 UPDATE exam_result SET chinese = chinese * 2;

データを削除 

-- 删除A同学的考试成绩 
 DELETE FROM exam_result WHERE name = 'A'; 
 -- 删除整张表数据
 DELETE FROM exam_result;

主な概要 

  • 増加
-- 单行插入 
  INSERT INTO 表(字段1, ..., 字段N) VALUES (value1, ..., value N);
  -- 多行插入 
  INSERT INTO 表(字段1, ..., 字段N) VALUES (value1, ...), (value2, ...), (value3, ...);
  • 検索
  -- 全列查询 
  SELECT * FROM 表 
  -- 指定列查询 
  SELECT 字段1,字段2... FROM 表 
  -- 查询表达式字段 
  SELECT 字段1+100,字段2+字段3 FROM 表 
  -- 别名 
  SELECT 字段1 别名1, 字段2 别名2 FROM 表 
  -- 去重DISTINCT 
  SELECT distinct 字段 FROM 表 
  -- 排序
  ORDER BY SELECT * FROM 表 ORDER BY 排序字段 
  -- 条件查询WHERE: 
  -- (1)比较运算符 (2)BETWEEN ... AND ... (3)IN (4)IS NULL (5)LIKE (6)AND (7)OR (8)NOT 
  SELECT * FROM 表 WHERE 条件
 
  • 変更
UPDATE 表 SET 字段1=value1, 字段2=value2... WHERE 条件
  • [削除] 
DELETE FROM 表 WHERE 条件

 変更の検索操作への追加や削除は、最も基本的な、そして最も重要な作業です。深い理解と実践を続けます!

 

 

 

 

 

 

发布了51 篇原创文章 · 获赞 14 · 访问量 2302

おすすめ

転載: blog.csdn.net/qq_41185460/article/details/104087436