私と一绪にMySQLの技术の内幕(第5版):(第1章学习日记5)

6839 ワード

1.4.9情報の取得
まず、デフォルトのデータベースuse database_を指定します.name;
select * from table_name;


select column1 ,column2,.....from table_name;



select * from table_name where condition;



select 2+2,'hello,world',version();

第1のグループは、あるテーブルを表示するすべてのカラムを示す第2のグループは、あるテーブルを表示する指定されたカラムを示す第3のグループは、指定された条件の下に表示されるすべてのカラム(または指定されたカラム)conditionは、where age>15のような検索条件を示す.4番目のグループは、私の検索が式などのテーブルに関連していない場合、from文でテーブルを選択する必要はありません.
検索1について具体的に説明する.検索条件(condition)という検索条件を指定するのは、やはり柔軟な次の例です
where  score>95;
where  last_name='ASD';
where  last_name='asd';
where  birth<'1760-1-1';
where  birth<'1700-1-1' and (state='VA' or state='MA');
where state in('NA''NB');

ここで注意したいのはwin下のデフォルトmysql構成は大文字と小文字を区別せず、キーワードの大文字と小文字も区別せず、データ内容の大文字と小文字も区別しないため、2番目の3番目の条件で同じ結果がクエリーされます.
2つ目は、算術演算子と比較演算子が私たちが接触している他の言語とあまり差がないことです.論理演算子はここでは違いますが、直接的な英語の単語をキーワードとしてand or xor notとしています.ここで注意しなければならないのは、and、orがそれぞれ代表し、または、混同しないことです.
第3のポイントin()は、ここで説明するように、複数の独立した値を検索し、in内部の任意のオプションを満たすと、ターゲットクエリ列の値を返すことができることを示す.
2.NULL値
NULl値は特殊です.値と比較することはできません.そこでここで検索を行う際には,主に2つの式を用いた.
where death is null;
where death is not null;

is not null is nullこのターゲット要素が空の本であるかどうかを判断するには、<==>>演算子も紹介されています.
where death<==>null;
where not (death<==>null);

3.クエリー結果のソート
select last_name,first_name from president order by last_name;

order by文は、表示するデータテーブルを列のタイプに従って並べ替え、この例ではlast_nameはアルファベット順に並べ替えられ,原理は我々のC言語における文字列の比較cmp()関数と同じである.しかし、デフォルトのソート方式は生順ソートであり、結果を降順にソートしたい場合はlast_nameの後にdescを付けてセミコロンで終わるといいです.(昇順ならキーワードascも同様に使えます)
select last_name,first_name,death from president, order by state desc,last_name asc;

なお、ここでの2つのソートは、2番目のソートが1番目のソートの上に確立されている(2番目の列は補助的な役割を果たしている).すなわち、第1列が隣接する2つの文字列が等しい場合、第2列が再ソートされ、そうでない場合、第1列が隣接する2つが前後して明確になった場合、第2列はソートする必要はありません.そうしないと、2人のfirst_nameは交換しました!それは大間違いだ.
select last_name,first_name,death from president order by if (death is null,0,1),death desc,last_name;

このときNUll値の影響を考慮している.if()の役割は、1番目のパラメータの値を計算し、結果に基づいて2番目のパラメータを返すか3番目のパラメータを返すかを決定することです.この文では、nullに遭遇した場合、if()値がゼロ、nullではなく、if()値が1であり、最終的にすべてのnull値がnullではない前になり、補助ソートがlast_name.
4.クエリー結果の制限
主にlimitとorder byの結合によってクエリの結果を制限し、フィルタリングを1回行うと理解できます.
select birth from president, order by birth limit 5;

これにより、誕生日が上位5人の大統領の誕生日にdescに加入すれば、誕生日が最も遅い5人であることが明らかになった.
select birth from president, order by birth desc limit 10,5;

このようにlimitを使用すると、ソート結果の上位10名をスキップした11名から15名の誕生日が返されます.
order by rand() limit 3;

rand()は乱数に関する関数であることを知っています.これにより、表からいくつかの行をランダムに抽出することができます.
5.'出力カラムの計算と名前付け
select 17,format(sqrt(25+13),3);
select concat(first_name,' ',last_name) from president;

これは、テーブル内の値に対して、テーブル内のデータを参照したり、使用したりする簡単な計算です.
select concat(first_name,' ',last_name) as new_name from president;

2つの小さな注意点は、別名を付けるとき、別名にスペースがある場合、この名前を引用符で囲むことです.asキーワードは省略できます.asを省略できる場合、ここではよくエラーがあります.本には、複数の列を呼び出すときにカンマが失われ、システムのデフォルトは2番目の文字列が1番目の文字列の別名です.エラーを引き起こす可能性があります.コードの規範性に注意してください.
1時間半、10ページの本を読んで、以前の知識を復習して、多くの基本的な操作にも慣れました.1.4.9には10小節があるからです.だから私は2つの部分を分けました.清明節の休みが来る.祝日の楽しみを祝わないで、はは、エイプリルフール、みんな気をつけて、23333348時間後に私たちは会わないで散らばらない!