MySQLデータベースの機能と制約の詳細な説明
MySQL データベースは、データを処理および保護するための豊富な機能と制約を提供する強力なリレーショナル データベース管理システムです。このブログでは、MySQL データベースの機能と制約を詳細に紹介し、その使用法を示す例を示します。
関数
文字列関数
文字列連結関数
CONCAT(str1, str2, ...)
: 複数の文字列を 1 つの文字列に連結します。
例:
SELECT CONCAT('Hello', ' ', 'World') AS Result;
-- 输出: Hello World
すべての文字列を小文字に変換します
LOWER(str)
: 文字列を小文字に変換します。
例:
SELECT LOWER('Hello World') AS Result;
-- 输出: hello world
文字列をすべて大文字に変換する
UPPER(str)
: 文字列を大文字に変換します。
例:
SELECT UPPER('Hello World') AS Result;
-- 输出: HELLO WORLD
文字列の左側のパディング
LPAD(str, len, padstr)
: 文字列の長さが指定した長さになるように、指定した文字を文字列の左側に埋め込みます。
例:
SELECT LPAD('Hello', 10, '*') AS Result;
-- 输出: *****Hello
文字列の右パディング
RPAD(str, len, padstr)
: 指定した長さになるように、文字列の右側に指定した文字を埋め込みます。
例:
SELECT RPAD('Hello', 10, '*') AS Result;
-- 输出: Hello*****
文字列から先頭と末尾のスペースを削除する
TRIM([BOTH | LEADING | TRAILING] trimstr FROM str)
: 文字列の先頭と末尾にある指定した文字を削除します (デフォルトはスペースです)。
例:
SELECT TRIM(' Hello ') AS Result;
-- 输出: Hello
文字列インターセプト
SUBSTRING(str, start, length)
: 文字列の部分文字列をインターセプトします。
例:
SELECT SUBSTRING('Hello World', 7, 5) AS Result;
-- 输出: World
応用
上記は、一般的に使用される文字列関数の一部であり、文字列の結合、大文字と小文字の変換、空白の埋め込みなど、文字列データの処理と変換に役立ちます。
数値関数
切り上げ
CEILING(x)
: x 以上の最小の整数を返します。
例:
SELECT CEILING(3.14) AS Result;
-- 输出: 4
切り捨て
FLOOR(x)
: x 以下の最大の整数を返します。
例:
SELECT FLOOR(3.14) AS Result;
-- 输出: 3
x/y の係数を返します。
MOD(x, y)
: x を y で割った余りを返します。
例:
SELECT MOD(10, 3) AS Result;
-- 输出: 1
乱数を求める
RAND()
: 0 から 1 までの乱数を返します。
例:
SELECT RAND() AS Result;
-- 输出
: 0.123456789
小数点以下 n 桁を切り上げて保持する
ROUND(x, d)
: x を小数点以下 d 桁に切り上げます。
例:
SELECT ROUND(3.14159, 2) AS Result;
-- 输出: 3.14
応用
数値関数は、数値の計算や操作に役立ちます。これらの関数を使用して、値の四捨五入、四捨五入、剰余などの演算を実行し、さまざまなニーズを満たすことができます。
日付関数
現在の日付を返す
CURDATE()
: 現在の日付を返します。
例:
SELECT CURDATE() AS Result;
-- 输出: 2023-06-23
現在時刻を返す
CURTIME()
: 現在時刻を返します。
例:
SELECT CURTIME() AS Result;
-- 输出: 12:34:56
現在の日付+時刻を返します
NOW()
: 現在の日付と時刻を返します。
例:
SELECT NOW() AS Result;
-- 输出: 2023-06-23 12:34:56
指定した日付の年を取得します
YEAR(date)
: 指定された日付の年を返します。
例:
SELECT YEAR('2022-01-01') AS Result;
-- 输出: 2022
指定した日付の月を取得します
MONTH(date)
: 指定された日付の月を返します。
例:
SELECT MONTH('2022-01-01') AS Result;
-- 输出: 1
指定した日付の曜日を取得する
DAY(date)
: 指定された日付の日数を返します。
例:
SELECT DAY('2022-01-01') AS Result;
-- 输出: 1
時刻を返します。日付は数値 DAY (または MONTH、YEAR) で延期されます。
DATE_ADD(date, INTERVAL number DAY | MONTH | YEAR)
: 指定した日付から一定時間遅れた日付を返します。
例:
SELECT DATE_ADD('2022-01-01', INTERVAL 1 MONTH) AS Result;
-- 输出: 2022-02-01
指定した 2 つの時刻間の日数の差
DATEDIFF(date1, date2)
: 2 つの日付間の差を日数で返します。
例:
SELECT DATEDIFF('2022-01-01', '2022-01-10') AS Result;
-- 输出: -9
応用
日付関数は、日付と時刻を操作および計算するための関数を提供します。これらの関数を使用して、現在の日付と時刻を取得したり、日付の年、月、日を抽出したり、日付の加減算を実行したりして、時間に関するさまざまなニーズを満たすことができます。
フロー制御機能
裁判官
IF(condition, value_if_true, value_if_false)
:条件に応じて判断し、対応する値を返します。
例:
SELECT IF(1 < 2, 'Yes', 'No') AS Result;
-- 输出: Yes
最初の値が null の場合は 2 番目の値を返し、それ以外の場合は最初の値を返します。
COALESCE(value1, value2, ...)
: 最初の null 以外の値を返します。
例:
SELECT COALESCE(NULL, 'Hello') AS Result;
-- 输出: Hello
ケースステートメント
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ELSE result END
:条件に応じて判断を分岐します。
例:
SELECT
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 80 THEN '良好'
WHEN score >= 60 THEN '及格'
ELSE '不及格'
END AS Result
FROM
students;
上記は一般的に使用されるプロセス制御関数の一部であり、条件判定、null 値処理、分岐選択などの複雑なデータ処理ニーズを満たす操作を実行するのに役立ちます。
制約
制約は、データの整合性と一貫性を保証するために使用されるルールです。MySQL データベースは、主キー制約、一意制約、外部キー制約など、さまざまな制約タイプを提供します。
主キー制約
主キー制約は、テーブル内の一意のレコードを識別し、テーブル内の各レコードの一意性を保証するために使用されます。
例:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
一意の制約
一意性制約は、テーブル内の列値の一意性を保証するために使用されます。
例:
CREATE TABLE employees (
emp_id INT,
emp_name VARCHAR(50),
emp_email VARCHAR(50) UNIQUE,
...
);
外部キー制約
外部キー制約は、2 つのテーブルのデータを関連付けてデータの一貫性を確保するために使用されます。
例:
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
order_date DATE,
...
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
外部キーを追加する
ALTER TABLE orders
ADD FOREIGN KEY (customer_id)
REFERENCES customers(customer_id);
外部キーを削除する
ALTER TABLE orders
DROP FOREIGN KEY fk_orders_customers;
検出の制約
制約を定義すると、データベース内のデータが期待されるルールと関係を確実に満たすことができます。データが制約条件を満たさない場合、データの整合性を確保するためにエラーまたは警告が生成されます。
非NULL制約
非 null 制約は、テーブル内の列の値が null にならないように制限するために使用されます。
例:
CREATE TABLE employees (
emp_id INT PRIMARY KEY,
emp_name VARCHAR(50) NOT NULL,
...
);
サンプル
上記は、MySQL データベースで一般的に使用される関数と制約の紹介です。これらの関数を通じて、データに対してさまざまな処理や計算を実行できますが、制約によってデータの整合性と一貫性が保証されます。関数と制約を合理的に使用すると、データベースがより強力で信頼性の高いものになります。
要約する
このブログでは、MySQL データベースの関数と制約を紹介し、文字列関数、数値関数、日付関数、プロセス制御関数の使用法とデモンストレーションをカバーし、主キー制約、一意制約、外部キーの定義と定義も紹介します。制約、アプリケーション。これらの関数と制約の使用をマスターすると、データベース内のデータの処理と保護が向上し、データ操作の効率と精度が向上します。
このブログが、MySQL データベースの機能と制約を理解するのに役立つことを願っています。ご質問やご提案がございましたら、お気軽にメッセージを残してください。できるだけ早く返信させていただきます。読んでくれてありがとう!