ホームページ > データベース > mysql チュートリアル > mysqlステートメントをクエリする方法

mysqlステートメントをクエリする方法

coldplay.xixi
リリース: 2020-12-17 10:27:27
オリジナル
3517 人が閲覧しました

mysql ステートメントをクエリする方法: テーブル内のレコードをクエリする場合、コードは [select * from table name where name='long' and age ='18'] で、from の後にテーブル名を追加します。 where 条件、選択の後にフィルターされたフィールドが続きます。

mysqlステートメントをクエリする方法

このチュートリアルの動作環境: Windows 7 システム、mysql バージョン 8.0.22. この方法は、すべてのブランドのコンピューターに適しています。

関連する無料学習の推奨事項: mysql ビデオ チュートリアル

mysql ステートメントをクエリする方法:

mysql でテーブルをクエリする記録

書き込み順序は : select * from table name where name='long' and age ='18';

ただし、 mysql での実行順序は

  • From の後に、どのテーブルであるかを決定するためのテーブル名が続きます。

  • Where の後に、条件でフィルターするための条件が続きます。このテーブルの内容

  • select の後には、where でフィルタリングしたデータの が続きます。一部のフィールド * はすべてフィールドです

#クエリ文の実行結果もテーブルとなり、仮想テーブルとみなすことができます

##emp 従業員テーブルを作成します

#When フィールドが多すぎると、結果のレイアウトが乱雑になる可能性があります。クエリ ステートメントの最後に \G を追加して、クエリ結果を標準化できます

select * from 表名\G;
ログイン後にコピー

#要件に遭遇したとき 分析方法 例:

1. ID が 3 以上 6 以下のデータをクエリします

実際の操作を示します 1. まずどこから来たかを決定します emp のテーブル 2. id >= 3 および id <=6; のフィルター条件 3. *

   select * from emp where id >= 3 and id <= 6;
    select * from emp where id between 3 and 6;  between 等价于id >= 3 and id <= 6
ログイン後にコピー
## を選択します#2. 給与が 20000 または 18000 または 17000

    select id,name from emp where salary = 20000 or salary = 18000 or salary = 17000;
    select id,name from emp where salary in (20000,18000,17000);
ログイン後にコピー
# であるデータをクエリします。 ##3. 名前に文字 o

が含まれる従業員の名前と給与をクエリします。あいまい一致 % は複数の一致と一致します。任意の文字 _ は、任意の 1 文字と一致します

select name,salary from emp where name like &#39;%o%&#39;;
ログイン後にコピー

4。4 文字からなる従業員名とその給与をクエリします。

select name, salary from emp where length(name) =4;
select name ,salary from emp where name like "____"
ログイン後にコピー

5。3 未満またはそれ以上の ID を持つデータをクエリします。 6

select * from emp where id<3 or id >6;
select * from emp where id not between 3 and 6;
ログイン後にコピー
6. 20000、18000、17000 の範囲にない給与を問い合わせる Data

select * from emp  where  salary not in (20000,17000,18000);
ログイン後にコピー

7. 空の職務内容で従業員名と役職名を問い合わせる

null 判定の場合=

select name ,post from emp where post_comment is null;
ログイン後にコピー

は使用できますが、is のみ使用できます。=

select * from emp group by post;  # 按照部门分组
ログイン後にコピー

は使用できません。MySQL では大文字と小文字が区別されません。記述する際には、大文字と小文字の両方を使用できます。

1 . Group by group

show variables &#39;%mode%&#39;; # 找到严格模式所在的地方set session # 临时有效 set global  # 永久有效set global sql_mode= &#39;strict_trans_tables&#39; # 设置字符类型的自动截取set global sql_mode="strict_trans_tables,pad_char_to_full_length" #char 取出时 取消自动去空格set global sql_mode=&#39;strict_trans_tables,only_full_group_by&#39; # 设置分组后   最小单位是组
ログイン後にコピー

グループ化後は、できるだけ小さくする必要があります。グループ内の個別のデータ情報を表示するのではなく、グループ単位です。

エラーが表示されずに直接出力された場合は、

strict モードが設定されていないことを意味します。

此时你如果还使用 select name from emp group by post; 就会报错 #ERROR 1055 (42000): &#39;day37.emp.name&#39; isn&#39;t in GROUP BYselest 后应该接的是 你分组的字段名
ログイン後にコピー

#
select post ,max(salary) from emp group by post;
ログイン後にコピー

2. 集計関数 (max、min、sum、count、avg) は 1 つの結果にまとめられます

mysql でグループ化した後は、

グループ化されたフィールドのみを取得できます情報

他の分野の情報は直接取得できませんが、別の方法(集計関数)で間接的に取得できますGet各部門の最高給与

要件としては、各部門がグループ化されているため、最初にグループ化してから集計関数を使用して値を取得します

select post,min(salary)  emp group by post;
 
select post,min(salary) as &#39;最小&#39; from emp group by post;
ログイン後にコピー

each 部門の最低給与

select post,avg(salary) from emp group by post;
ログイン後にコピー

各部門の平均給与

select post,sum(salary) from emp group by post;
ログイン後にコピー

各部門の合計給与

    select post,count(age) from emp group by post;
    select post,count(salary) from emp group by post;
    select post,count(id) from emp group by post;
    select post,count(post_comment) from emp group by post;
ログイン後にコピー

各部門の平均給与 人数

select post, group_concat(name) from emp group by post;
ログイン後にコピー

グループ内の人数を数えるときは、

空でない任意のフィールドでカウントを完了できます。

、ID フィールドなど、データを一意に識別できるフィールドを使用することをお勧めします

集計 この関数は、考慮する必要がなく、各グループの個々のデータに対して必要な計算を自動的に実行します

3, group_concat

グループ化後に部門名をクエリし、

すべて各学科の下にあります。学生の姓は

select post,group_concat(&#39;hahha&#39;,name) from emp group by post;
ログイン後にコピー

select name,salary*12 from emp;
ログイン後にコピー
ログイン後にコピー

で、

でつなげることもできます。

group_concat()能够拿到分组后每一个数据指定字段(可以是多个)对应的值

concat就是用来帮你拼接数据

group_concat(分组之后用)

concat(不分组时用)

查询每个员工的年薪

select name,salary*12 from emp;
ログイン後にコピー
ログイン後にコピー

相关免费学习推荐:php编程(视频)

以上がmysqlステートメントをクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート