MySQL初心者のための基本操作のまとめ

MySQL初心者のための基本操作のまとめ

図書館運営

クエリ

1.SHOW DATABASE; ----すべてのデータベースを照会する

2. SHOW CREATE DATABASE データベース名; ----データベースの作成モードを照会する

3.SHOW CREATE DATABASE xxx; ----xxxデータベースの作成モードを照会する

作成する

1.CREATE DATABASE データベース名; ----データベースを作成する 注意: 既存のデータベースを作成することはできません

2.CREATE DATABASE IS NOT EXISTS データベース名; ---- データベースが存在するかどうかを確認し、存在しない場合は作成します

3.CREATE DATABASE データベース名 CHARACTER SET 文字セット名; ----データベースを作成し、文字セットを指定します。通常はutf-8を使用します。

改訂

ALTER DATABASE データベース名 CHARACTER SET 文字セット名; ----データベースの文字セットを変更します

消去

1.DROP DATABASE データベース名; ---- データベースを削除する

2.DROP DATABASE IS EXISTS データベース名; ----まず存在するかどうかを確認し、削除します

使用

SELETE DATABASE (); ----現在使用中のデータベースを照会する

USE データベース名; ----指定されたデータベースを使用する

テーブル構造

テーブルクエリ

1.SHOW TABLES; ----データベース内のすべてのテーブルをクエリします

2.DESC テーブル名; ----指定されたテーブルの構造を表示します

3. SHOW TABLE STATUS FROM library name LIKE 'table name'; ----クエリテーブル文字セット(likeは特別な場合を除き「=」と同等です)

テーブルを作成

CREATE TABLE テーブル名(
列名 1 データ型 1 制約、
列名 2 データ型 2 制約、

列名 n データ型 n 制約
);

int: 整数型

  • 年齢 int

double: 小数型

  • スコアダブル(5,2)
  • 価格2倍

date: 日付。年、月、日のみを含む yyyy-MM-dd

datetime: 年、月、日、時、分、秒を含む日付 yyyy-MM-dd HH:mm:ss

タイムスタンプ: タイムスタンプタイプには、年、月、日、時、分、秒が含まれます yyyy-MM-dd HH:mm:ss

  • 将来このフィールドに値を割り当てない場合、または null 値を割り当てる場合は、デフォルトで現在のシステム時間を使用して値が自動的に割り当てられます。

varchar: 文字列

  • name varchar(20): 名前の最大長は20文字です
  • 張山 8文字 張山 2文字

CREATE TABLE 作成するテーブルの名前 LIKE コピーするテーブルの名前 ---- テーブルをコピーする

テーブルの変更

1. ALTER TABLE テーブル名 RENAME TO 新しいテーブル名; ----テーブル名を変更する

2. ALTER TABLE テーブル名 CHARACTER SET 文字セット名; ----テーブルの文字セットを変更する

**3.**ALTER TABLE テーブル名 ADD 列名 データ型; ----新しい列を追加します

4. ALTER TABLE テーブル名 MODIFY 列名 新しい列名 新しいデータ型; ----新しい列名とデータ型を変更します

テーブル内の削除操作

1.DROP TABLE テーブル名; ---- テーブルを削除する

2.ALTER TABLE テーブル名 DROP 列名; ---- 列を削除する

テーブルにデータを追加する - INSERT ステートメント

1. INSERT INTO テーブル名 (列名 1、列名 2、...) VALUES (値 1、値 2、...); ---- テーブルにデータを追加します

2.SELECT * FROM product; ----テーブル内のすべてのデータを表示する

3. INSERT INTO テーブル名 VALUES (値 1、値 2、値 3、...); ---- デフォルトですべての列にデータを追加します

4. INSERT INTO テーブル名 VALUES (値 1、値 2、値 3、...)、(値 1、値 2、値 3、...)、(値 1、値 2、値 3、...); ---- データを一括追加

注記:

  • 列名と値の数およびデータ型は一致している必要があります
  • 数値型を除き、他のデータ型のデータは引用符で囲む必要があります(一重引用符または二重引用符は許容されますが、一重引用符が推奨されます)

テーブル内のデータを変更する -updata

テーブル名を更新し、列名 1 = 値 1、列名 2 = 値 2、… [条件] を設定します。
注記:

  • 変更ステートメントに条件を追加する必要があります。条件を追加しないと、すべてのデータが変更されます。

テーブルからデータを削除する - 削除

DELETE FROM テーブル名 [WHERE 条件];

注記:

  • データを変更するのと同じである

単一テーブルクエリ

クエリ構文:

テーブル名リストからフィールドリストを選択、条件リストをグループ化、グループ化後の条件を持つフィールドをグループ化、並べ替え制限、ページング制限

SELECT 列名 1, 列名 2, ... FROM テーブル名; ---- 複数フィールドクエリ

SELECT DISTINCT 列名 1、列名 2、... FROM テーブル名; ----重複の削除。ただし、クエリ内のすべての列が繰り返される場合にのみ、重複の削除が実行されます。

SELECT 列名 1 演算子 (+ - * /) 列名 2 FROM テーブル名; ---- 四則演算

SELECT 列名 1, 列名 2, ... AS alias FROM テーブル名; ----as はエイリアスを作成するために使用され、シンプルで理解しやすいです

条件付きクエリ

状態分類

シンボル関数
>より大きい
<未満
>=より大きいか等しい
<=以下
=等しい
<> または !=等しくない
…と…の間特定の範囲内(含む)
で(…)複数選択
いいねプレースホルダーあいまいクエリ_任意の 1 文字%任意の複数の文字
NULLですNULLです
NULLではないNULLではない
AND または &&そして
またはまたは||または
または !いいえ、違います

集計関数

関数名とその機能

関数名関数
count(列名)アイテムの数を数える(通常はnullでない列を使用する)
max(列名)最大
min(列名)最小
sum(列名)
avg(列名)平均値

集計関数の構文

-- 標準構文 SELECT 関数名 (列名) FROM テーブル名 [WHERE 条件];

-- 製品テーブル内のレコードの合計数を計算します。SELECT COUNT(*) FROM product;

-- 最高価格を取得します。SELECT MAX(price) FROM product;
-- 最も価格の高い製品の名前を取得します。SELECT NAME,price FROM product WHERE price = (SELECT MAX(price) FROM product);

-- 最小在庫を取得します。SELECT MIN(stock) FROM product;
-- 在庫が最も少ない製品の名前を取得します。SELECT NAME,stock FROM product WHERE stock = (SELECT MIN(stock) FROM product);

-- 合計在庫数量を取得します。SELECT SUM(stock) FROM product;
-- Apple ブランドの総在庫数を取得します。SELECT SUM(stock) FROM product WHERE brand='Apple';

-- ブランド Xiaomi の製品の平均価格を取得します。SELECT AVG(price) FROM product WHERE brand='小米';

並べ替えクエリ

分類

キーワード関数
ORDER BY 列名 1 ソート方法 1、列名 2 ソート方法 2指定した列をASC昇順(デフォルト)またはDESC降順で並べ替えます。

- 注意: 複数のソート条件の場合、2番目の条件は現在の側の条件値が同じ場合にのみ評価されます。

ソート構文

-- 標準構文 SELECT 列名 FROM テーブル名 [WHERE 条件] ORDER BY 列名 1 ソート方法 1、列名 2 ソート方法 2;

-- 在庫の昇順で並べ替え SELECT * FROM product ORDER BY stock ASC;

グループクエリ

-- 標準構文 SELECT 列名 FROM テーブル名 [WHERE 条件] GROUP BY グループ化列名 [HAVING 条件 グループ化後のフィルタリング] [ORDER BY ソート列名 ソート方法];

ページネーションクエリ

-- 標準構文 SELECT 列名 FROM テーブル名 [WHERE 条件] GROUP BY グループ化列名 [HAVING グループ化後のフィルタ条件] [ORDER BY ソート列名 ソート方法] LIMIT 開始インデックス、クエリ番号;
-- 計算式: 開始インデックス = (現在のページ番号 - 1) * 1 ページあたりに表示される項目数

制約

1. 制約の概念と分類

制約の概念

  • データの正確性、有効性、完全性を確保するために、テーブル内のデータを制限してください。

制約の分類

制約例示する
主キー主キー制約
主キーの自動増分主キー、自動増分
個性的ユニーク制約
NULLではない非 Null 制約
外部キー外部キー制約
更新カスケードの外部キー外部キーカスケード更新
削除カスケードの外部キー外部キーカスケード削除

2. 主キー制約

主キー制約の特性

  • 主キー制約には、空でないと一意の2つの機能が含まれています。
  • テーブルには主キーとして1つの列しか持てません
  • 主キーは通常、テーブル内のデータを一意に識別するために使用されます。

テーブルを作成するときに主キー制約を追加する

-- 標準構文 CREATE TABLE テーブル名 (
	列名 データ型 PRIMARY KEY、
    列名データ型、
    ...
);

-- 学生テーブルを作成する CREATE TABLE student(
	id INT PRIMARY KEY -- id に主キー制約を追加します);

-- データを追加する INSERT INTO student VALUES (1),(2);
-- 主キーはデフォルトで一意です。重複データが追加されると、エラーが報告されます。INSERT INTO student VALUES (2);
-- 主キーはデフォルトでは空ではないため、null データを追加することはできません。INSERT INTO student VALUES (NULL);

-- 学生テーブルをクエリします SELECT * FROM student;
-- 学生テーブルの詳細を照会します。DESC student;

主キーの削除

-- 標準構文 ALTER TABLE テーブル名 DROP PRIMARY KEY;

-- 主キーを削除します。ALTER TABLE student DROP PRIMARY KEY;

テーブルを作成した後、主キーを別途追加する

-- 標準構文 ALTER TABLE テーブル名 MODIFY 列名 データ型 PRIMARY KEY;

-- 主キーを追加します。ALTER TABLE student MODIFY id INT PRIMARY KEY;

3. 主キーの自動増加制約

テーブルを作成するときに主キーの自動増分制約を追加する

-- 標準構文 CREATE TABLE テーブル名 (
	列名 データ型 PRIMARY KEY AUTO_INCREMENT、
    列名データ型、
    ...
);

-- 学生2テーブルを作成する CREATE TABLE 学生2(
	id INT PRIMARY KEY AUTO_INCREMENT -- id に主キーの自動増分制約を追加します。

-- データを追加する INSERT INTO student2 VALUES (1),(2);
-- null 値を追加すると、INSERT INTO student2 VALUES (NULL), (NULL); が自動的に増加します。

-- student2 テーブルをクエリします SELECT * FROM student2;
-- Student2 テーブルの詳細 DESC student2;

自動拡張を削除

-- 標準構文 ALTER TABLE テーブル名 MODIFY 列名 データ型;

-- 自動増加を削除します ALTER TABLE student2 MODIFY id INT;

テーブルを作成した後、自動拡張を別途追加する

-- 標準構文 ALTER TABLE テーブル名 MODIFY 列名 データ型 AUTO_INCREMENT;

-- 自動拡張を追加する ALTER TABLE student2 MODIFY id INT AUTO_INCREMENT;

4. ユニーク制約

テーブルを作成するときに一意の制約を追加する

-- 標準構文 CREATE TABLE テーブル名 (
	列名データ型UNIQUE、
    列名データ型、
    ...
);

-- student3 テーブルを作成する CREATE TABLE student3(
	id INT 主キー AUTO_INCREMENT、
	tel VARCHAR(20) UNIQUE -- tel列に一意制約を追加します);

-- データを追加します INSERT INTO student3 VALUES (NULL,'18888888888'),(NULL,'186666666666');
-- 重複データを追加するとエラーが発生します INSERT INTO student3 VALUES (NULL,'18666666666');

-- student3 データ テーブルをクエリします SELECT * FROM student3;
-- Student3 テーブルの詳細 DESC student3;

ユニーク制約の削除

-- 標準構文 ALTER TABLE テーブル名 DROP INDEX 列名;

-- 一意制約を削除します。 ALTER TABLE student3 DROP INDEX tel;

テーブルを作成した後、一意制約を追加します

-- 標準構文 ALTER TABLE テーブル名 MODIFY 列名 データ型 UNIQUE;

-- 一意制約を追加します ALTER TABLE student3 MODIFY tel VARCHAR(20) UNIQUE;

5. 非NULL制約

テーブルを作成するときに非NULL制約を追加する

-- 標準構文 CREATE TABLE テーブル名 (
	列名データ型NOT NULL、
    列名データ型、
    ...
);

-- student4 テーブルを作成する CREATE TABLE student4(
	id INT 主キー AUTO_INCREMENT、
	NAME VARCHAR(20) NOT NULL -- 名前に非NULL制約を追加します。

-- データを追加します INSERT INTO student4 VALUES (NULL,'张三'),(NULL,'李四');
-- NULL 値を追加するとエラーが発生します INSERT INTO student4 VALUES (NULL,NULL);

非NULL制約を削除する

-- 標準構文 ALTER TABLE テーブル名 MODIFY 列名 データ型;

-- 非NULL制約を削除します。ALTER TABLE student4 MODIFY NAME VARCHAR(20);

テーブルを作成した後、非NULL制約を追加します。

 -- 標準構文 ALTER TABLE テーブル名 MODIFY 列名 データ型 NOT NULL
 
 -- 非NULL制約を追加します。ALTER TABLE student4 MODIFY NAME VARCHAR(20) NOT NULL;

外部キー制約

外部キー制約の形式(通常はテーブル作成の最後に記述されます)

制約 外部キー名 FOREIGN KEY (このテーブルの外部キー列の名前) 参照 プライマリテーブル名 (プライマリテーブルのプライマリキー列の名前)

要約する

これでMySQL初心者向けの基本操作に関する記事は終了です。MySQLの基本操作の詳細については、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL 初心者ガイド - クイックリファレンス
  • MySQL 入門 - 概念
  • MySQL 入門 - SQL 実行プロセス

<<:  React ルーティング リンク構成の詳細

>>:  Dockerはローカルイメージとコンテナの保存場所を設定します

推薦する

MySQL の基本ステートメントを最適化するための 10 の原則の概要

序文データベースの応用において、プログラマーは継続的な実践を通じて多くの経験を積んできました。これら...

MySQL シャーディング入門ガイド

序文リレーショナル データベースは、システムのボトルネックになる可能性が高くなります。単一のマシンの...

MySQL のインデックスの原理とクエリの最適化の詳細な説明

目次1. はじめに1. インデックスとは何ですか? 2. インデックスはなぜ必要なのでしょうか? 2...

NginxはIP経由の直接アクセスを禁止し、カスタム500ページにリダイレクトします

設定ファイルに直接 サーバー{ listen 80 default; # IPへの直接アクセスを禁止...

ウェブページ印刷細線表+ページ印刷究極の戦略

最近、クライアントのために印刷していたとき、ページのヘッダーを印刷するのではなく、表の内容だけを印刷...

HTML ウェブページ画像タグ

画像タグ <IMG> を挿入します。今日私たちが目にするカラフルなウェブページはすべて、...

ウェブサイトにダークモード切り替え機能を持たせるための純粋なCSSフリー実装コード

序文ダーク モードの概念は、 MacOS系統のMojaveに由来し、ユーザーが選択できる 2 つのス...

Vueはスクロールロードテーブルを実装します

目次成果を達成する転がり荷重知識備蓄コンポーネントのパッケージ1. コンポーネントの命名2. 小道具...

SSHを使用してDockerサーバーに接続する方法

初めて docker に触れたときは本当に戸惑いました。初心者向けのチュートリアルを長い間読みました...

Javascript 操作メカニズム イベントループ

目次1. 4つのコンセプト1. JavaScriptはシングルスレッドです2. タスクキュー3. 同...

uniapp アプレットでウォーターフォール フロー レイアウトを実装するためのアイデアとコード

1. はじめに今、ウォーターフォールフローについて書くことは、古い内容の焼き直しと見なされますか?気...

MySql の null 関数の使用の共有

MySql の null に関する関数IFNULL ISNULL NULLIF IFNULL使用法:...

jsイベント委譲の詳細な説明

1. 各関数はオブジェクトであり、メモリを占有します。メモリ内のオブジェクトが増えるほど、パフォーマ...

MySQLがトランザクション分離を実装する方法の簡単な分析

目次1. はじめに2. RC および RR 分離レベル2.1. RRトランザクション分離レベルでのク...

Bash スクリプトでの配列メソッドの作成と使用の概要

Bashで配列を定義するbash スクリプトで新しい配列を作成する方法は 2 つあります。 1 つ目...