MySQLでよく使われる演算子と関数の概要

MySQLでよく使われる演算子と関数の概要

まずデータ テーブルを作成しましょう。

使用テスト;
テーブル「従業員」を作成します(
 emp_no int 符号なし、
 従業員名varchar(30),
 emp_sex varchar(3)、
 emp_age tinyint 符号なし、
 サルダブル、
 履歴 日時
);
従業員の値に挿入(1, '张三', '男', 18, 5000, '2012-04-23')、
(2, '李思', '男性', 27, 4500, '2013-05-23'),
(3, '王五', '男', 23, 4700, '2012-04-21'),
(4, 'Zilong', '男性', 19, 3800, '2011-03-04'),
(5, '李白', '男性', 15, 6200, '2015-09-09'),
(6, '劉備', '男性', 28, 2500, '2016-02-11'),
(7, '呂布', '男性', 21, 6000, '2010-10-18'),
(8, 'Shangxiang', '女性', 16, 4500, '2011-09-26'),
(9, '小喬', '女性', 15, null, '2013-07-05'),
(10, '大乔', '女', 16, 5000, '2017-09-01');

よく使用される演算子:
1: 等しい ( = )

 sal = 3800 の場合、従業員から * を選択します。
 select * from employee where sal = null; --ここでは null データは見つかりません

2: 等しい ( <=> )

 従業員から*を選択します。ここで、sal <=> 3800;
 select * from employee where sal <=> null; --ここでnullのデータを照会できます

3: 判断です(null)

 sal が null である employee から * を選択します。
 sal が null でない employee から * を選択します。

4: isnull() を使用して null 値を判定することもできます。

 従業員からisnull(sal)となる*を選択します。
 !isnull(sal) である従業員から * を選択します。

5: 最小値と最大値の間 ps: これは閉じた区間です

select * from employee where sal between 4500 and 5000;

6: 範囲外

select * from employee where sal not between 4500 and 5000;

7: およびおよびまたは

 給与が 4500 から 5000 の間ではない、または給与が null である従業員から * を選択します。
 sal = 4500 かつ emp_sex = '女' の場合、従業員から * を選択します。

8: より小さい (<)、より大きい (>)、以下 (<=)、以上 (>=)

select * from employee where sal >= 4500;

******************************************************************************************************************************************

数学関数
1: ランド();

 select rand() from Dual; --dual は疑似テーブルです select 1+1 from Dual;
 select rand(); --省略可能

2: least(value1, value2, ...) は最小値を返します

 最小(54,76,4,65,76,87,87,56,65,654,45,23,1,76)を選択します。
 select least(54,76,4,65,76,87,87,56,65,654,45,23,1,76) as min_value; --列名には別名を付けることができます

3: greatest(value1, value2, ...)は最大値を返します

select greatest(54,76,4,65,76,87,87,56,65,654,45,23,1,76);

4: round(M, D); M の丸められた値を返します。D は小数点以下の桁数を示します。デフォルト値は 0 です。

 round(1.69)を選択します。
 round(1.69, 1)を選択します。

5: abs() 絶対値

 5~10を選択
 abs(5-10)を選択します。

******************************************************************************************************************************************

要約機能

1: 平均();

 給与が 6000 以上である従業員から * を選択します。
 sal >= 6000 の従業員から avg(sal) を選択します。

2: カウント()

 従業員からcount(*)を選択します。
 従業員からcount(emp_name)を選択します。
 select count(sal) from employee; --print 9. ここではnull値は無視されます。select count(*) from employee where sal >= 4000;
 sal <= 4000 または sal が null の場合、employee から count(*) を選択します。

3: 合計()

select sum(sal) from employee where sal >= 6000;

4: 最小値()

select min(sal) from employee;

5: 最大()

select max(sal) from employee;

******************************************************************************************************************************************

日付関数

1: 現在の日付と時刻を取得する

 now()、sysdate()、current_timestamp() を選択します。
 now(6)、sysdate(6)、current_timestamp(6)を選択します。
 ps: now()、current_timestamp(); 違いはありません。SQL の実行が開始された時刻を示します。sysdate() はこの関数の開始時刻を示します。

2: 現在の日付を取得する

select curdate(); --年、月、日のみ

3: 現在の時刻を取得する

select curtime(); --時間、分、秒のみ

4: 日付追加操作 date_add

 従業員から history、date_add(history、interval '1 12:10' day_minute) を選択します。--date_add(history、interval '1 12:10' day_minute)
 従業員から history、date_add(history、interval '1-1' year_month) を選択します。--date_add(history、interval '1-1' year_month)
 従業員から history、date_add(history、interval '1' 秒) を選択します。--date_add(history、interval '1' 秒)

5: 日付減算演算 data_sub

select history, date_sub(history, interval '1-1' year_month) from employee;

6: 日付差を計算する

select history, sysdate(), datediff(sysdate(), history) from employee; --以天數來表示

7: 日付の指定された部分を取得する(日付を指定された形式に変換する)date_format()

 従業員から history、date_format(history、'%Y 年 %m 月 %d 数値') を選択します。
 従業員から history, date_format(history, '%d号') を選択します。
 employee から history, date_format(history, '%Y 年 %m 月 %d 日 %H 時間 %i 分 %s 秒') を選択します。

8: 日付の曜日を計算する

select history, dayname(history) from employee;

9: 中国語の日付文字列変換 date str_to_date()

 insert into employee values(11, '张飞', '男', 22, 3000, '2017年02月01号'); --エラー insert into employee values(11, '张飞', '男', 22, 3000, str_to_date('2017年02月01号', '%Y年%m月%d号%H時%i分钟%s秒'));

従業員の値に挿入(12, '次男', '男性', 22, 3000, str_to_date('2017-02-01 23:02:02', '%Y 年 %m 月 %d 日 %H 時間 %i 分 %s 秒'));
従業員の値に挿入(12, '次男', '男性', 22, 3000, str_to_date('2017-02-01 11:02:02', '%Y 年 %m 月 %d 日 %h 時間 %i 分 %s 秒'));
ps: h の場合は 12 時間制、大文字の H の場合は 24 時間制を意味します。

文字列関数

1: left(str, len)は文字列strの左端からlen文字を返します。

select left('abcdefg', 5);

2: 長さ()

select length('abcdefg');

3: lower(str)は小文字の文字列strを返します。

select lower('HELLO');

4: substring() は部分文字列を受け取り、2 番目のパラメータはインターセプトの開始位置、3 番目のパラメータはインターセプトする長さです。

select substring('helloworld',2,3);

5: concat() 文字列連結

select concat(emp_name, '員工') from employee;

6: 置き換える

select replace(emp_name, '李', '老') from employee where emp_name = '李四';

以下もご興味があるかもしれません:
  • MySQL Where 条件文の紹介と演算子の概要
  • MySQLで使用される演算子の例
  • MySQL ノート: 演算子の使用法の詳細な説明
  • mySQL UNION演算子のデフォルトルールの研究
  • MSSQL との比較で MYSQL を学ぶ (V) - 演算子
  • MySql における特殊演算子の使用の概要
  • MySQLの演算子をステップバイステップで教えます

<<:  Linux でファイル内の特定の文字の数を数える方法

>>:  JavaScriptのポイントごとのシリーズでこれは何ですか

推薦する

オンラインチャットを実現するVue+sshフレームワーク

この記事では、オンラインチャットを実現するためのVue + sshフレームワークの具体的なコードを参...

Docker実行コンテナが作成状態にある問題についての簡単な説明

最近の問題としては、次のような現象があります。システムには、docker run コマンドを継続的に...

CSS と JS を使用して下線効果を実装する方法の例

この記事では、主に 2 種類の下線の動的効果について説明します。1 つ目は、ホバーすると X 軸が内...

CentOS に MySQL 8.0 をインストールして設定するための詳細な手順

序文CentOS に MySQL をインストールして設定する手順は次のとおりです。文章yumソースか...

HTMLポップアップdivはモバイルの中央揃えを実現するのに非常に便利です

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

MySQL8 ベースの docker-compose デプロイメント プロジェクトの実装

1. まず、次のパスに従って対応するフォルダを作成します。 ローカルのdockerでmysqlを実行...

Linux の高並列性とパフォーマンス最適化の落とし穴の紹介

目次序文Linux アプリケーション実行中に開いているファイルが多すぎる問題の分析と解決Linux ...

MySQL のインデックス障害の一般的なシナリオと回避方法

序文これまでにも、一部の SQL ステートメントを不適切に使用すると MySQL インデックスが失敗...

LeetCode の SQL 実装 (177. 給与が N 番目に高い)

[LeetCode] 177. 最も高い給与従業員テーブルからn番目に高い給与を取得する SQL ...

流星効果を実現する JavaScript キャンバス

この記事では、JavaScriptキャンバスで流星の特殊効果を表示するための具体的なコードを参考まで...

入力[type=file]の起動が遅くて動かなくなる問題を素早く解決します

入力タグタイプがファイルで、タグ内にaccpet="image/*"属性が設定さ...

JS for ループで setTimeout を使用する 4 つのソリューション

目次概要解決策 1: クロージャ解決策2: 構造を分割する解決策3:解決策4: setTimeout...

Linuxにグラフィカルインターフェースをインストールする方法

1. Linuxのインストール(rootユーザー操作) 1. vncserver をインストールしま...

Windows での mysql-5.7.28 のダウンロード、インストール、および構成に関する詳細なグラフィックとテキストのチュートリアル

最近MySQLデータベースのバージョンを変更する必要があり、それを記録するために記事を書きます1. ...

HTML 9グリッドレイアウトの実装方法

ウェブサイトのレイアウトの多様化は、当社のフロントエンドの得意分野です。最近、UC ブラウザのデフォ...