長年の咳の原因

副鼻腔炎による後鼻漏が原因かもしれない。

喉に痰が絡むため咳が出てしまう。

喉に痰が絡む原因が後鼻漏。

後鼻漏の原因は副鼻腔炎

すなわち咳の原因は副鼻腔炎だった?

チクナインを飲んでチクナインの点鼻薬を試して様子見ています。

だいぶ良くなってきた気がします。

アレルギーではなさそう。

SQLのマニアックな関数まとめ

SQLのマニアックな関数まとめ

SQLには日常的に使われる一般的な関数だけでなく、マニアックで特殊な関数も存在します。ここではその一部を紹介します。

レコード数をランダムに取得する関数

RAND()関数を使用してレコード数をランダムに取得できます。これは特にテストやサンプリングの際に便利です。

SELECT *
FROM your_table
ORDER BY RAND()
LIMIT 10;

このクエリはyour_tableからランダムに10件のレコードを取得します。

テーブルの存在を確認する関数

INFORMATION_SCHEMAを利用して、特定のテーブルが存在するかどうかを確認することができます。

SELECT COUNT(*)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'your_table';

このクエリはyour_tableという名前のテーブルが存在する場合は1を返し、存在しない場合は0を返します。

文字列をランダムに生成する関数

UUID()関数を使うとランダムなUUID(Universally Unique Identifier)を生成できます。

SELECT UUID() AS random_uuid;

このクエリはランダムなUUIDを返します。

JSONデータを操作する関数

SQLではJSONデータを操作するための関数もあります。例えば、JSON_EXTRACT()を使用してJSONデータから特定の要素を抽出できます。

SELECT JSON_EXTRACT(json_column, '$.key') AS extracted_value
FROM your_table;

このクエリはjson_columnという列からJSONデータのkeyに対応する値を抽出します。

ユーザー定義関数(UDF)

一般的な関数以外にも、ユーザーが独自の関数を定義することも可能です。ただし、データベースシステムによってサポートされる範囲や方法が異なります。

CREATE FUNCTION my_function(parameter_type)
RETURNS return_type
BEGIN
    -- 関数の処理を記述
END;

上記は一般的なUDF(ユーザー定義関数)の例ですが、具体的な実装方法はデータベースシステムによって異なります。

これらは一般的なSQL関数とは少し異なる、マニアックな関数の一部です。興味がある方はぜひ試してみてください。

以上が、SQLのマニアックな関数についてのまとめでした。

SQLでよく使用される関数まとめ

SQLでよく使用される関数まとめ

SQLには様々な関数がありますが、ここではよく使用されるものをまとめてみます。

文字列関数

CONCAT()

文字列を連結するための関数です。

SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM employees;

SUBSTRING()

文字列の一部を取得するための関数です。

SELECT SUBSTRING(name, 1, 3) AS initials
FROM products;

UPPER(), LOWER()

文字列を大文字または小文字に変換する関数です。

SELECT UPPER(name) AS uppercase_name
FROM customers;

SELECT LOWER(email) AS lowercase_email
FROM users;

数値関数

ROUND()

数値を丸めるための関数です。

SELECT ROUND(price, 2) AS rounded_price
FROM products;

ABS()

数値の絶対値を取得するための関数です。

SELECT ABS(quantity) AS absolute_quantity
FROM inventory;

SUM(), AVG(), MAX(), MIN()

集計関数です。

SELECT SUM(sales_amount) AS total_sales
FROM orders;

SELECT AVG(salary) AS average_salary
FROM employees;

SELECT MAX(price) AS max_price
FROM products;

SELECT MIN(quantity) AS min_quantity
FROM inventory;

日付関数

NOW()

現在の日時を取得するための関数です。

SELECT NOW() AS current_datetime;

DATE_FORMAT()

日付を指定したフォーマットで表示するための関数です。

SELECT DATE_FORMAT(order_date, '%Y-%m-%d') AS formatted_date
FROM orders;

これらはSQLでよく使用される関数の一部ですが、他にも多くの関数が存在します。使い方を覚えておくと、SQLクエリをより柔軟に記述できます。

以上が、SQLでよく使用される関数についてのまとめでした。

SQLのON句とUSING句の違い

SQLのON句とUSING句の違い

SQLにおいて、JOIN操作を行う際に使用されるON句とUSING句は、異なる目的で使われます。

ON句の使い方

ON句は、JOIN操作で結合条件を指定するために使用されます。結合するテーブル同士のカラムの値が一致する場合に行を結合します。一般的には、結合するカラム名とその条件を指定します。

SELECT *
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

この例では、table1table2column_nameで結合しています。

USING句の使い方

USING句もJOIN操作で使用されますが、異なる点は結合するカラム名を指定するだけで、結合条件を省略できるという点です。ただし、USING句を使う場合は、結合するカラム名が両方のテーブルで一致している必要があります。

SELECT *
FROM table1
INNER JOIN table2
USING (column_name);

この例では、table1table2column_nameで結合していますが、ON句と異なり、結合条件を記述する必要はありません。

違いのまとめ

  • ON句は結合条件を明示的に指定するために使用されます。
  • USING句は結合するカラム名が一致する場合に使用され、結合条件を省略できますが、カラム名の一致が必要です。

これらの違いを理解しておくと、JOIN操作をより適切に記述できます。

以上が、SQLON句とUSING句の違いについての解説でした。

SQLのWITH句の使い方

SQLのWITH句の使い方

SQLWITH句は、一時的な結果セットを作成し、それをクエリ全体で使用できるようにするための便利な方法です。主に以下の2つの目的で使用されます。

  1. 複雑なクエリを理解しやすくするために、一時的なビューを作成する。
  2. 同じサブクエリを複数回使用する必要がある場合に、コードを簡潔にする。

基本的な構文は以下の通りです。

WITH temporary_name AS (
    -- ここにサブクエリを記述
    SELECT column1, column2
    FROM your_table
    WHERE conditions
)
-- ここでtemporary_nameを使用してクエリを実行
SELECT *
FROM temporary_name

例を見てみましょう。

WITH department_totals AS (
    SELECT department_id, SUM(salary) AS total_salary
    FROM employees
    GROUP BY department_id
)
SELECT department_id, total_salary
FROM department_totals
WHERE total_salary > 50000;

この例では、department_totalsという一時的なテーブルを作成し、それを使用して条件に基づいて結果を抽出しています。

WITH句を使用することで、SQLクエリをより読みやすく、効率的に記述することができます。特に、複雑な集計や複数のサブクエリを含むクエリを扱う場合には、非常に便利な機能です。

以上が、SQLWITH句の基本的な使い方についての解説でした。

中級者くらいのエンジニアが勉強したいこと

英語スキル エラーログの解読、英文ページの解読(翻訳アプリがあるがあったほうが良い) 最近は外国人の方と一緒に働くことが増えてきている?ので英会話もできたほうが良さそうです。 後は外資系や海外の企業で働くことができれば年収もアップできそうです。

SQLなどのデータベース 複雑なSQLやパフォーマンスの改善などに役立ちます。

コンピュータサイエンスなどの基礎技術 実務にも活かされると思います。 基礎技術を知っているだけでもブラックボックスなことも理解に役立ちそうです。

AWSなどのインフラの知識

LPICLinuxコマンド、ネットワーク

rails3.1.12でのgem octopusの使い方

モデル名.using(:DB名).find(1)

using(:DB名)で使用するDBを指定して切り替えられる。

スコープが効いているので、スコープ内であれば切り替えたDBが有効になる。 ※切り替え後はデフォルトのDBを使用する場合でも、再度デフォルトのDBに切り替える必要がある。

以下のようにメソッド単位でも使用するDBが切り替えらる。

def sample
  Octopus.using(:DB名) do
    #処理
  end
end