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 スロークエリ pt-query-digest スロークエリログの分析

1. はじめにpt-query-digest は、MySQL のスロー クエリを分析するためのツール...

TypeScriptジェネリックの使用

目次1. 使いやすい2. 関数内でジェネリックを使用する3. クラス内でジェネリックを使用する4. ...

シンプルなカルーセル効果を実現するネイティブ js

この記事では、シンプルなカルーセル効果を実現するためのjsの具体的なコードを参考までに紹介します。具...

IE8 互換性について: X-UA-compatible 属性の説明

問題の説明:コードをコピーコードは次のとおりです。 <meta http-equiv=&quo...

docker-compsoe を使用してフロントエンドとバックエンドを分離したプロジェクトをデプロイする方法

事前に言っておくDocker を使用すると非常にシンプルなデプロイメント環境を実現できることは誰もが...

Linux Crontab シェル スクリプトを使用して第 2 レベルのスケジュールされたタスクを実装する方法

1. シェルスクリプトcrontab.shを書く #!/bin/bash step=1 #ステップ間...

DockerでRedashの中国語版をデプロイしてインストールする方法の詳細な説明

1. インストール手順 Linux 環境でのローカル インストールと比較すると、Docker のイン...

MySQLクエリ時にフィールドにデフォルト値を割り当てる方法

必要フィールドをクエリする場合、フィールドに同じ値を指定する必要があります。この値はハードコードする...

MySQL SQL ステートメントが遅い場合の一般的な原因と解決策

1. インデックス不足または無効なインデックスによるクエリの遅延数千万件のデータを含むテーブルで、イ...

Ubuntu 18.04 MySQL 8.0 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0のインストールと設定方法を参考までに紹介します。具体的な内容は以下の...

CSS は、小さな鋭角のチャット ダイアログ ボックスで鋭角の吹き出し効果を実現します。

1. CSS を使用して、小さな尖った角のチャット ダイアログ ボックスと尖った角の吹き出しを描画...

divは、自動入力スタイルをブロックする入力ボックスとして入力を使用せずにコンテンツを入力できます。

今日、私は公開用の動的なウィンドウ スタイルを設計しましたが、マウスで入力をクリックしたときにブラウ...

Alibaba Cloud イメージリポジトリの Docker 構成変更の実装

docker リポジトリ自体は非常に遅いですが、中国の Alibaba Cloud ミラー リポジト...

MySQLでクエリキャッシュを実行する方法と失敗を解決する方法

関数を使用する前にパラメータのプロパティを理解して、関数の使い方をより深く理解する必要があることは誰...