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のポイントごとのシリーズでこれは何ですか

推薦する

背景画像に CSS3 変換を適用するためのソリューション

CSS 変換は便利ですが、背景画像にはまだ適用されていません。この投稿では、背景画像を回転させたい場...

MySQL の null (IFNULL、COALESCE、NULLIF) に関する知識ポイントのまとめ

この記事では、MySQL の null (IFNULL、COALESCE、NULLIF) に関連する...

JS でシングルトン モードを実装するための 6 つのソリューションの概要

序文今日は、デザインパターンのクリエーションパターンを見直していたところ、JS でシングルトンパター...

Div CSS 命名標準 CSS クラスの命名規則 (SEO 標準に準拠)

検索エンジン最適化 (SEO) では実行すべきタスクが多数ありますが、その中でもコードの最適化は重要...

Vue-CLI3.xはプロジェクトをサーバーに自動的にデプロイします

目次序文1. scp2をインストールする2. テスト/本番環境サーバーのSSHリモートログインアカウ...

初心者向けの一般的な Linux システムコマンドの完全なリスト

Linux コマンドの学習は、ほとんどの初心者にとって最大の障害です。今日は、Linux システムで...

MySQL インデックスに関するヒントのまとめ

目次1. インデックスの基礎知識1.1 インデックスの利点1.2 インデックスの有用性1.3 インデ...

Docker で Tomcat、MySQL、Redis をインストールするための詳細な手順

目次DockerでTomcatをインストールするtomcatイメージを使用してコンテナを作成する(イ...

インデックスは MySQL クエリ条件で使用されますか?

雇用主から MySQL クエリ条件でインデックスが使用されるかどうかを尋ねられた場合、どのように答え...

本をめくる効果を実現するネイティブJS

この記事では、ネイティブ JS で実装された本をめくる効果の図を紹介します。効果は次のとおりです。 ...

Linuxにgitをインストールする方法

1. はじめにGit は、規模の大小を問わずあらゆるプロジェクトを俊敏かつ効率的に処理するために使用...

クロスドメインの問題を解決するためのNginxの実用的な方法

フロントエンドとバックエンドを分離し、nginxを使用してクロスドメインの問題を解決するフロントエン...

方言変換のためのApache Calciteコード

意味Calcite は、Sql を SqlNode に解析し、次に SqlNode を特定のデータベ...

MySQLオンラインログライブラリの移行例

最近の事例をお話ししましょう。オンライン Alibaba Cloud RDS 上のゲーム ログ ライ...

MySQLデータベースのトランザクションとインデックスの詳細な説明

目次1. 事務:取引の 4 つの主な特徴:同時トランザクションはどのような問題を引き起こしますか? ...