sql >> データベース >  >> RDS >> Mysql

MySQLコマンド:一般的なMySQLクエリのチートシート

    MySQLは、一般的で広く選択されているオープンソースのリレーショナルデータベース管理システム(RDBMS)です。この記事では、MySQLコマンドについて説明し、ユーザーがMySQLをより効率的かつ効果的に操作できるようにするための一般的なMySQLクエリのチートシートを提供します。

    MySQLデータベースとは何ですか?

    MySQLは、OracleCorporationによって開発されたオープンソースのRDBMSです。もともとは、1995年5月23日にスウェーデンのMySQLABによって開発およびリリースされました。

    MySQLは優れたパフォーマンスを発揮し、ビジネスインテリジェンス(BI)アプリケーション、特に読み取りが多いBIアプリケーションで信頼性があります。 MySQLとInnoDBは一緒になって、OLTPシナリオに優れた読み取り/書き込み速度を提供し、同時実行性の高いシナリオでうまく機能します。さらに、MySQLは、オープンソースのMySQLCommunityServerとProprietaryEnterpriseServerの2つの異なるエディションを提供しています。

    MySQLは、Linux、Windows、macOSなどを含む多くのシステムプラットフォームで動作します。また、最も安定したデータベース管理システムの1つであり、一部のクラウドプラットフォームは「サービスとして」提供します。クラウドベースのMySQLサービスには、Oracle MySQL Cloud Service、Amazon Relational Database Service、およびAzure DatabaseforMySQLが含まれます。

    MySQLコマンド

    MySQLはコマンドを使用して、データを使用してクエリを作成し、特定のタスクと機能を実行することにより、MySQLデータベースと通信します。コマンドは、SQL(構造化照会言語)ステートメントにコード化された命令です。クエリを作成するには、データベースが理解できる一連の事前定義されたコードが必要です。

    MySQLは、数値を含むいくつかのカテゴリのすべてのSQL標準タイプのデータをサポートします 、日付と時刻文字列 、および空間 データ型。文字列のデータ型には、文字列が含まれます。 およびバイト文字列 。 MySQLは、ジオメトリタイプを使用してSQLのサブセットとして空間拡張も実装します。 Open Geospatial Consortium(OGC)に続く環境 仕様。

    MySQLチートシート

    以下は、ユーザーがMySQLをより簡単かつ効果的に操作するのに役立つ最も一般的に使用されるMySQLコマンドとステートメントの一部です。この記事では、MySQLコマンドラインクライアントコマンドを含む最も一般的に使用されるコマンドと、データベース、テーブル、インデックス、ビュー、トリガー、プロシージャ、および関数を操作するためのコマンドについて簡単に説明します。

    MySQLコマンドラインクライアントコマンド

    以下は、MySQLコマンドラインクライアントコマンドのリストです。

    mysql -u [username] -p;      # Connect to MySQL server
    mysql -u [username] -p [database];   # Connect to MySQL Server
    exit;                                # Exit mysql command-line client
    mysqldump -u [username] -p [database] > data_backup.sql; # Export data using mysqldump tool
    mysql> system clear;  # Clear MySQL screen console for Linux
    

    LinuxではMySQLコマンドラインクライアントコマンドを使用してMySQL画面のコンソールウィンドウをクリアできますが、WindowsOSではクライアントコマンドを使用できません。

    データベースを操作するためのMySQLコマンド

    以下は、データベースの操作に使用されるMySQLコマンドです。

    CREATE DATABASE [IF NOT EXISTS] database_name; # Create a database in the server
    SHOW DATABASE; # Show all available databases
    USE database_name; # Use a database with a specified name
    DROP DATABASE [IF EXISTS] database_name; # Drop a database with a specified name
    

    テーブルを操作するためのMySQLコマンド

    データベース内のテーブルを操作するためのMySQLコマンドは次のとおりです。

    CREATE TABLE [IF NOT EXISTS] table_name(column_list,...); # Create a new table
    SHOW TABLES; # Show all tables in the database
    DROP TABLE [IF EXISTS] table_name; # Drop a table from the database
    

    一般的に使用されるMySQLコマンド

    以下は、MySQLデータベースを使用するデータベース開発者およびデータベース管理者に最も一般的に使用されるMySQLコマンドのリストです。

    ALTER TABLE table_name ADD [COLUMN] column_name;
    ALTER TABLE table_name DROP [COLUMN] column_name;
    ALTER TABLE table_name MODIFY column_name type;
    ALTER TABLE table_name MODIFY column_name type NOT NULL ...;
    ALTER TABLE table_name CHANGE old_column_name new_column_name type;
    ALTER TABLE table_name CHANGE old_column_name new_column_name type NOT NULL ...;
    ALTER TABLE table_name MODIFY column_name type FIRST;
    ALTER TABLE table_name MODIFY column_name type AFTER another_column;
    ALTER TABLE table_name CHANGE old_column_name new_column_name type FIRST;
    ALTER TABLE table_name CHANGE old_column_name new_column_name type AFTER another_column;
    ALTER TABLE table_name ALTER column_name SET DEFAULT ...;
    ALTER TABLE table_name ALTER column_name DROP DEFAULT;
    ALTER TABLE table_name ADD new_column_name type;
    ALTER TABLE table_name ADD new_column_name type FIRST;
    ALTER TABLE table_name ADD new_column_name type AFTER another_column;
    ALTER TABLE table_name ADD INDEX [name](column, ...);
    ALTER TABLE table_name ADD PRIMARY KEY (column_name,...);
    ALTER TABLE table_name DROP PRIMARY KEY;
    

    選択

    SELECT * FROM table_name;
    SELECT * FROM table1, table2, …;
    SELECT column_name FROM table_name;
    SELECT column1, column2, ... FROM table_name;
    SELECT column1, column2, ... FROM table1, table2, …;
    SELECT select_list FROM table_name WHERE condition;
    SELECT select_list FROM table GROUP BY column1, column2, ...;
    SELECT select_list FROM table GROUP BY column_name HAVING condition;
    SELECT COUNT(*) FROM table_name;
    SELECT DISTINCT (column_name) FROM    table_name;
    SELECT select_list FROM table ORDER BY column_name;
    SELECT select_list FROM table ORDER BY column1 ASC [DESC], column2 ASC [DESC];
    SELECT column_name AS alias_name, expression AS alias, ... FROM table_name;
    SELECT select_list FROM table_name WHERE column LIKE '%pattern%';
    SELECT select_list FROM table_name WHERE column RLIKE 'regular_expression';
    

    選択–結合

    SELECT select_list FROM table1 INNER JOIN table2 ON condition;
    SELECT select_list FROM table1 LEFT JOIN table2 ON condition;
    SELECT select_list FROM table1 RIGHT JOIN table2 ON condition;
    SELECT select_list FROM table1 CROSS JOIN table2;
    

    説明

    DESCRIBE table_name;
    DESCRIBE table_name column_name;
    

    挿入

    INSERT INTO table (column_list) VALUES(value_list);
    INSERT INTO table (column_list) VALUES(list1), (list2), ...;
    

    更新

    UPDATE table_name SET column1 = value1, ...;
    UPDATE table_name SET column_1 = value_1, ... WHERE condition;
    UPDATE table1, table2 INNER JOIN table1 ON table1.column1 = table2.column2 SET column1 = value1, WHERE condition;
    

    削除

    DELETE FROM table_name;
    DELETE FROM table_name WHERE condition;
    DELETE table1, table2 FROM table1 INNER JOIN table2 ON table1.column1= table2.column2 WHERE condition;
    

    インデックス

    CREATE INDEX index_name ON table_name (column,...);
    DROP INDEX index_name;
    CREATE UNIQUE INDEX index_name ON table_name (column,...);
    

    表示

    CREATE VIEW [IF NOT EXISTS] view_name AS  select_statement;
    CREATE VIEW [IF NOT EXISTS] view_name AS select_statement WITH CHECK OPTION;
    CREATE OR REPLACE view_name AS select_statement;
    DROP VIEW [IF EXISTS] view_name;
    DROP VIEW [IF EXISTS] view1, view2, ...;
    RENAME TABLE view_name TO new_view_name;
    SHOW FULL TABLES [{FROM | IN } database_name] WHERE table_type = 'VIEW';
    

    トリガー

    CREATE TRIGGER trigger_name {BEFORE | AFTER} {INSERT | UPDATE| DELETE } ON table_name FOR EACH ROW trigger_body;
    SHOW TRIGGERS [{FROM | IN} database_name] [LIKE 'pattern' | WHERE search_condition];
    DROP TRIGGER [IF EXISTS] trigger_name;
    

    手順

    DELIMITER $$ CREATE PROCEDURE procedure_name (parameter_list) BEGIN body; END $$ DELIMITER;
    DROP PROCEDURE [IF EXISTS] procedure_name;
    SHOW PROCEDURE STATUS [LIKE 'pattern' | WHERE search_condition];
    

    機能

    DELIMITER $$ CREATE FUNCTION function_name(parameter_list) RETURNS datatype [NOT] DETERMINISTIC BEGIN -- statements END $$ DELIMITER;
    DROP FUNCTION [IF EXISTS] function_name;
    SHOW FUNCTION STATUS [LIKE 'pattern' | WHERE search_condition];
    

    ユーザーと権限

    CREATE USER 'user'@'localhost';
    GRANT ALL PRIVILEGES ON base.* TO 'user'@'localhost' IDENTIFIED BY 'password';
    GRANT SELECT, INSERT, DELETE ON base.* TO 'user'@'localhost' IDENTIFIED BY 'password';
    REVOKE ALL PRIVILEGES ON base.* FROM 'user'@'host';
    REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'host'; 
    FLUSH PRIVILEGES;
    SET PASSWORD = PASSWORD('new_pass');
    SET PASSWORD FOR 'user'@'host' = PASSWORD('new_pass');
    SET PASSWORD = OLD_PASSWORD('new_pass');
    DROP USER 'user'@'host';
    

    MySQLチートシートの結論

    MySQLは、読み取りが多いワークロード用の非常に高速なデータベースとしての評判があり、読み取りが多いプロセスに最適です。 MySQLチートシートには、MySQLデータベースユーザーがより効果的かつ簡単に管理できるようにするために最も一般的に使用されるコマンドとステートメントが含まれています。


    1. DBLINKを介してOracleユーザー定義型を参照していますか?

    2. 動的列を使用したMySQLピボットテーブルクエリ

    3. Oracleの「PartitionBy」および「Row_Number」キーワード

    4. ストアドプロシージャ内からのOracleテーブルまたはビューは存在しません